--- language: - ja base_model: - Qwen/Qwen2.5-7B-Instruct tags: - unsloth - trl - sft datasets: - Nurture-intelligence/thinking_dataset_v1 - Manual-Dataset-Creation-Project/Malum-230 - team-hatakeyama-phase2/LLMChat license: apache-2.0 --- # 概要 質問と応答から、その過程の思考を生成する言語モデルです。 [GGUFはこちら](https://huggingface.co/SousiOmine/Kuroiso-CR-7B-20250124-GGUF) Qwen2.5-7B-Instructをファインチューニングし作成しました。 データセットには複数データセット(datasets欄に記載)の質問部分をお借りしたもの、および私の作成した質問を用い、 思考をallura-org/Qwen2.5-32b-RP-Ink、回答をAXCXEPT/EZO-Qwen2.5-32B-Instructで1225件生成したものを使用しました。 Instructionを ``` あなたには要求と回答から論理的思考を作成する任務が与えられています。万能なアシスタントがQueryタグ内の質問を受け、Answerタグ内の回答をするまでの思考をChain-of-Thought形式で記述してください。思考はタグ内に記述してください。 ``` とし、ユーザー入力を ``` {質問} {応答} ``` の形式で行うことで、 ``` {思考} <|im_end|> ``` の形式で、質問を受けて応答を返すまでの思考を取得することができます。 # 注意点 - 学習に使用したデータのうち、計算およびコーディング、ロールプレイの割合が極端に小さく、これらタスクでは期待した思考生成がうまくいかないことがあります。特に数学タスクでは微妙です。 - クエリと応答が乖離している場合の思考がうまく生成できません(例 Query="こんにちは", Answer="python" など)。 - そもそも学習データの質、量ともに不足しているので、あまり高品質な思考を生成することはできません。 # transformersでの推論例 ``` model = AutoModelForCausalLM.from_pretrained( "SousiOmine/Kuroiso-CR-7B-20250124", device_map="auto", load_in_4bit=True ) tokenizer = AutoTokenizer.from_pretrained("SousiOmine/Kuroiso-CR-7B-20250124") qwen_prompt = """<|im_start|>system {}<|im_end|> <|im_start|>user {}<|im_end|> <|im_start|>assistant {} """ query_template = """ {} {} """ inputs = tokenizer( [ qwen_prompt.format( "あなたには要求と回答から論理的思考を作成する任務が与えられています。万能なアシスタントがQueryタグ内の質問を受け、Answerタグ内の回答をするまでの思考をChain-of-Thought形式で記述してください。思考はタグ内に記述してください。", query_template.format( "こんにちは", "こんにちは!今日はいかがお過ごしですか?" ), "", # output ) ], return_tensors = "pt").to("cuda") from transformers import TextStreamer text_streamer = TextStreamer(tokenizer) # repetition_penalty=1.1, temperature=0.7くらいがたぶん良い model.generate(**inputs, streamer = text_streamer, max_new_tokens = 1024) ``` 以下のような出力が得られます。 ``` <|im_start|>assistant こんにちはという挨拶が与えられました。 これは会話の始まりを示しています。 返答が必要です。 「こんにちは」という挨拶をそのまま返すのが自然でしょう。 しかし、利用者が具体的な質問や話題を提起していないようです。 そこで、利用者の意図を理解するために、少し掘り下げてみるのも良いかもしれません。 ちょっと待ってください。間違えたかもしれません。見直しを行います。 利用者が何か具体的な質問や話題を提起していないことを確認しました。 その場合、利用者に対して具体的な質問を投げかけることで、会話を進める方が良いかもしれません。 例えば、「今日はどのような一日をお過ごしですか?」というような質問を投げかけると良いでしょう。 再度考え直します。 利用者が具体的な質問や話題を提起していないことを再確認しました。 その場合、利用者に対して具体的な質問を投げかけることで、会話を進める方が良いかもしれません。 しかし、最初の返答ではシンプルに「こんにちは」と返答するのが最も適切かもしれません。 そのため、最初の返答を踏襲し、「こんにちは」と返答するのが正解でしょう。 「こんにちは」という挨拶を返答することで、会話を始めることが出来ます。 また、利用者が具体的な質問や話題を提起していない場合でも、シンプルな挨拶を返すことで、利用者の意図を理解しやすくなります。 したがって、「こんにちは」と返答することが最も適切な選択肢であると言えるでしょう。 <|im_end|> ```