回答の例
評価で実際に出た回答をそのまま載せています(思考なし、temperature 1.0 / top_k 20 / presence_penalty 2.0)。誤りも含めて載せています。
知識(短く答えさせる)
日本の首都はどこですか? 短く答えてください。
東京
富士山の標高は約何メートルですか? 短く答えてください。
約3,776メートル
「吾輩は猫である」の作者は? 短く答えてください。
村上春樹(誤り。正しくは夏目漱石)
翻訳
次の英文を日本語に訳してください:I like reading books on rainy days.
「私は雨の日でも本を読むが好きです。」
提案
雨の日の過ごし方を3つ提案してください。
-
自然に囲まれ、音楽を楽しむ: 公園や自然の中を歩こうとして、雨の音に包まれた静かな時間を過ごす。音楽を聴きながら歩くことで心の落ち着きを高められます。
-
手作り日記をつける: 晴れた日と比較して、雨天の日の出来事を詳細に記録する。(以下略)
-
家族や友人と雨の日遊びをする: (以下略)
小さいモデルなので、文法の小さな誤りや、内容のちぐはぐさ(雨の日に公園を歩く提案など)が残ります。
評価
同じ質問・同じ設定で、元の Qwen3.5-0.8B・途中の段階と比べました。評価の仕組みと全データは Pitcher プロジェクト にあります。
Table with columns: Qwen3.5-0.8B(元), 第1段階(蒸留後), このモデル | Qwen3.5-0.8B(元) | 第1段階(蒸留後) | このモデル |
|---|
| JCommonsenseQA(日本語の常識、5択・1,119問) | 41.7% | 48.4% | 69.4% |
| CommonsenseQA(英語の常識、5択・1,221問) | 36.0% | 36.0% | 49.8% |
| 一般常識30問(日本語) | 16 | 22 | 20 |
| 一般常識30問(英語、同じ内容) | 21 | 22 | |
- 選択問題は、思考なし・貪欲法で、番号だけを答えさせたもの(vLLM)
- 中国語の混入:日本語では使わない簡体字が1文字でも含まれた回答の割合
選択問題の答え方
途中の版では、選択問題で答えずに選択肢の一覧を「1. 〇〇」と書き写し始める癖があり、JCommonsenseQA の約4割で「1番」と数えられていました。「番号だけ答えて」「はい・いいえで」のように答え方を指定する短い練習の例(800件、正解の位置を均等にしたもの)を足して、この癖を直しています。
Table with columns: JCommonsenseQA(llama.cpp、f16), 練習を足す前, このモデル| JCommonsenseQA(llama.cpp、f16) | 練習を足す前 | このモデル |
|---|
| 番号だけを答えさせた正答率 | 55.7% | 68.8% |
| 選択肢を書き写した割合 | 44.2% | 0% |
| 回答を「答え:」で始めさせ、次に出やすい番号で決めた正答率(答え方の癖を除いた知識の目安) | 69.9% | 68.4% |
| 選択肢の順番を5通りに入れ替えても、同じ中身を選んだ割合 | 45.5% | 33.3% |
選択肢の位置による偏りは残っています。 順番を入れ替えると答えが変わることが多く、後ろのほう(3番・5番)を選びやすい傾向があります。
採点役による5段階評価
日本語の自然さ・一貫性は、採点役のモデル(GPT-5.6 Luna)に5段階で採点させました(キャラ設定なしの会話100回答、回答の上限 2,048 トークン)。採点役の基準は採点する回ごとにぶれるため、同じ回で採点したものどうしだけを並べています。
Table with columns: 同じ回での比較, 日本語の自然さ, 前後の一貫性, 質問への適合| 同じ回での比較 | 日本語の自然さ | 前後の一貫性 | 質問への適合 |
|---|
| 元 → 第1段階(蒸留後) | 2.98 → 3.66 | 4.42 → 4.79 | 3.77 → 4.08 |
| 第1段階 → 第2段階(練習を足す前) | 2.99 → 3.34 | 4.50 → 4.62 | 3.96 → 3.66 |
| 練習を足す前 → このモデル | 3.31 → 3.04 | 4.59 → 4.34 | 3.64 → 3.65 |
- 元のモデルから、自然さは段階ごとに上がりました。最後の段階(答え方の練習を足した)で少し下がったため、元のモデルとの差はおよそ +0.7 と見ています(回をまたいだ概算)
- 作文(30回答)の自然さは、どの段階も 2.3〜3.0 と低めです。長い文章では、0.8B らしい内容のちぐはぐさが目立ちます
使い方
transformers 5 系(5.17 で確認)を使ってください。重みは元のモデルと同じ形式(画像も扱える構造)ですが、学習・評価はテキストだけで行っています。
from transformers import AutoModelForImageTextToText, AutoTokenizerimport torch model_id = "Takenoko12345678/Qwen3.5-0.8B-Japanese-SFT"tok = AutoTokenizer.from_pretrained(model_id)model = AutoModelForImageTextToText.from_pretrained(model_id, dtype=torch.bfloat16, device_map="auto") messages = [{"role": "user", "content": "雨の日の過ごし方を教えて。"}]text = tok.apply_chat_template(messages, tokenize=False, add_generation_prompt=True, enable_thinking=False)inputs = tok(text, return_tensors="pt", add_special_tokens=False).to(model.device)out = model.generate(**inputs, max_new_tokens=512, do_sample=True, temperature=1.0, top_k=20, top_p=1.0)print(tok.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))
2026-10-03 更新: チャットテンプレートを、思考モードを指定しても思考なしで始まるように直しました(このモデルは思考なしの形だけで学習しています)。LM Studio などで答えが「考え中(Thought)」の欄に表示される場合は、モデルをダウンロードし直してください
enable_thinking=False を必ず指定してください。 このモデルの学習はすべて思考なしで行っています。
vLLM(0.30)でも動きます(評価に使用)。
推奨の生成設定
- 会話:temperature 1.0、top_k 20、top_p 1.0、presence_penalty 2.0(元のモデルの推奨値)
- llama.cpp で使うときは repeat_penalty 1.1 も付けてください(下の「既知の問題」を参照。LM Studio は最初から 1.1 です)
- 事実を答えさせる・選択問題:temperature 0
学習の詳細
2段階とも、全部の重みを学習しました(フルファインチューニング。画像の部分は固定)。思考なしの会話形式で、応答部分だけを学習対象にしています。
第2段階のデータの作り方:
- Tengentoppa の各行がどの元データから来たかを調べ(Tengentoppa には出どころの列がないため、元データと文面を照合)、利用条件を確認できた元データの行だけを使いました。ライセンスの記載がない元データ・回答を作ったモデルが不明な元データ・非営利限定の記事を元にした元データ・出どころを特定できなかった行は除いています
- 中国語を含む行、AI としての感情の否定や「私は人間です」と言う行、電話番号・住所・URL・メールアドレスを含む行、評価用の質問に似た行を除きました
- 候補 24,000件(長い回答 18,000件、短い回答 6,000件)を Gemma 4 31B に「一貫性・自然さ・質問への適合」で採点させ、点数の高い順に長い回答 9,000件・短い回答 3,000件を選びました。採点の指示文は、人が採点した30件と「話が破綻しているか」の判定が合うように調整しています(30件中26件一致)
- 「番号だけ答えて」「はい・いいえで」「数字だけで」と答え方を指定する短い練習の例 800件を、利用条件を確認できた元データ(官公庁の FAQ など)の学習に使っていない行から機械的に作って足しました。評価に使う JCommonsenseQA / CommonsenseQA の問題や指示文は使っていません
既知の問題
- 事実の誤りが多いです。 小さいモデルで、学習データの事実確認もしていないため、もっともらしい誤りを出します(例:「『吾輩は猫である』の作者は?」に「村上春樹」)。事実を調べる用途には使わないでください
- まれに同じ言葉を繰り返し続けます。 「あははは…」のような笑い声などを止まらずに繰り返すことがあります(llama.cpp で 590回答中8件。transformers でも同じ程度に起きます)。llama.cpp では
repeat_penalty 1.1 で 590回答中2件に減りました。max_tokens も設定してください
- 選択肢の位置による偏りがあります(上の「選択問題の答え方」を参照)
- まれに「私は人間です」と答えます(キャラ設定なしの会話 100回答中1件程度)
- 深刻な悩みの相談(「私がいなくなったら寂しい?」など)に、一般論や的外れな答えを返すことがあります。人向けに公開する場合は、相談窓口の案内などの安全策を別に用意してください
- 元のモデルの安全性の調整はそのままです(拒否を外すような学習はしていません)
- 元のモデルの MTP(先読み用の層)の重みは含まれていません(学習で使っていないため)。設定ファイルは元のモデルのまま(
mtp_num_hidden_layers: 1)なので、llama.cpp の新しい convert_hf_to_gguf.py で自分で変換するときは、config.json のこの値を 0 にしてから変換してください(そのままだと blk.24 が見つからないというエラーで読み込めない GGUF になります)。GGUF 版はこの方法で変換しています
ライセンスと帰属表示
Apache License 2.0。元のモデル Qwen/Qwen3.5-0.8B(Apache 2.0)の派生モデルです。
変更点:下記のデータで2段階のフルファインチューニングを行いました。チャットテンプレートとトークナイザーは元のモデルのものをそのまま使っています。
学習データ: