// FAILURE LOG · CHATBOT ATTEMPT

ChatHBA はなぜ崩壊したか

研究で TF 越えを達成した HBA で、実際に会話できるモデルを作ろうとした試み。結論から言うと、会話は崩壊しました。学び多い失敗として記録します。

やったこと

  1. 英語の Q&A データを自前で 5,377 件生成 (46 カテゴリ)
  2. char-level vocab を Q&A 全体から再構築
  3. HBA v2 と同じ構造のモデル (容量だけ少し増やした) を fine-tune
  4. インストラクション風プロンプト Q: ... A: ... 形式で学習

結果

指標
訓練 PPL6.46
体感的な会話品質完全崩壊

実際の生成例

Q: What is the capital of France?
A: It is Otewkia.

Q: How are you today?
A: ::: h.

Q: Tell me a joke.
A: The is the is the is the...

数値上の PPL (6.46) は HBA v2 の 5.32 とそう違わないのに、実際に走らせると意味のあるテキストが出てこない

なぜ崩壊したか — 3 つの仮説

仮説 01

char-LM の根本的限界

char-LM は文字単位の予測なので、F-r-a-n-c-e → P-a-r-i-s のような長距離の概念連鎖を学ぶには context 64 文字では足りません。語彙ベース LM なら 1 トークンで完結する関係が、char では 8-10 ステップに分解されます。

仮説 02

データ量 vs 容量のバランス

5,377 QA で 46 カテゴリは、各カテゴリ平均 120 件程度。HBA の容量に対してデータ規模が中途半端で、汎化ではなく丸暗記モードに陥った可能性。訓練 PPL が下がっても汎化テストで意味のある文が出てこないのは過学習に近い症状です。

仮説 03

蒸留無しの fine-tune は弱い

研究編で TF 越えを達成したのは蒸留があったから。ChatHBA は教師なしで直接学習しているため、HBA 単体の表現力がそのまま出ます (PPL の絶対値は出るが、構造的学習にならない)。

学び

ただし HBA 自体が悪いわけではない

HBA は 特化用途で実用性あり。例えば Speculative decoding のドラフトモデルなど、最終出力が大きい教師モデルから来る前提で、軽量で高速なルーティングを担う役割。

BPE/WordPiece トークン化と組み合わせれば、また違う結果になる可能性。研究はここで一区切り、次のフェーズへ。

次の方向

PLAN A

日本語対応 HBA

vocab=8000 程度の語彙ベース HBA。char 縛りを外して、まず意味的タスクが解けるか検証する。

PLAN B

BPE 噛ませた HBA char-LM

純 char ではなく BPE トークナイザを噛ませて、context あたりの情報量を増やす。HBA の構造はそのまま。

PLAN C

Speculative Decoding のドラフトとして評価

HBA の高速性を活かし、大きい教師モデルのドラフトモデルとしての実用性を測る。研究編で示した PPL 4.73 が活きる可能性。


ここまでの実装と全データは GitHub に置いてあります。気が向いたら続編をやります。