8
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

初心者の失敗:フォーマットの違いで学習はこう変わる——CoTを活かすフォーマット設計の重要性

8
Last updated at Posted at 2025-10-05

ChatGPTが提案したコードをそのまま使ったら、なぜか出力からCoT(Chain of Thought)が消えてしまった——。

本記事は、東京大学 松尾・岩澤研究室 LLM開発コンペ2025 において、Team K.A.T.Oの一員として参加した私が、RLT実装中に直面した「フォーマットミスによるCoT消失事件」と、そこから得た学びを共有するものです。

形式は単なる統一ルールではなく、説明可能性・評価容易性・再現性 を担保するための基盤でした。
初心者の視点から具体的な失敗例と考察を紹介します。

本プロジェクトは、国⽴研究開発法⼈新エネルギー‧産業技術総合開発機構(以下「NEDO」)の「⽇本語版医療特化型LLMの社会実装に向けた安全性検証‧実証」における基盤モデルの開発プロジェクトの⼀環として⾏われます。

RLT実装におけるフォーマットの役割

Sakana AIのRLT(Reinforcement Learning from Teacher)は、教師モデルの思考過程(reasoning traces)を活用して、生徒モデルを強化学習的に最適化する手法 です。

スクリーンショット 2025-10-04 194932.png
出典:Sakana AI RLT 公式ページ

Team K.A.T.Oでは「Sakana AI RLTをベースに進める」という方針があったため、形式は bespoke形式 を採用していました。
しかし、私は当初ChatGPTに提案されたサンプルコードを鵜呑みにし、gms8k形式で実装してしまったのです。

フォーマット比較:bespoke vs gms8k

bespoke形式(正しい形式)

思考過程を 明示的に分離 し、最終回答とセットで保持します。

{
  "question": "x^2 - 5x + 6 = 0 を解け",
  "thought": "二次方程式の解の公式を使う。x = [5 ± sqrt(25 - 24)] / 2 = (5 ± 1) / 2。",
  "answer": "x=2, 3"
}

gms8k形式(誤って使った形式)

最終回答だけを保持。思考過程は残らない。

{
  "question": "x^2 - 5x + 6 = 0 を解け",
  "answer": "x=2, 3"
}

この差が、「出力からCoTが消える」原因でした。

実際のつまずきと気づき

  • なぜgms8k形式を選んだか
    ChatGPTが提案したコードをそのまま使ったため。深く考えずに「動いたから良し」としてしまった。

  • なぜbespoke形式が必要か
    チーム方針として「Sakana AI RLTをベースにする」ことが決まっていたため。自然に形式もbespokeが必須となっていた。

  • 気づいたきっかけ
    リーダーから「出力がgms8k形式になっている」と指摘され、初めて気づいた。
    実際に出力JSONを開いて確認していなかったことが最大の原因。

形式ミスより怖いのは“静かな失敗”

初心者として特に感じたのは、エラーが出ないことの怖さ でした。

  • rank設定エラー → すぐに落ちるので原因追跡ができる
  • フォーマットミス → エラーは出ない、でも思考過程が静かに消えている

「動いているように見えるのに正しく学習されていない」状況は、エラーよりも発見が遅く、成果に直結する致命傷になりかねません。

CoTフォーマットいろいろ

今回のような「CoTを保持する形式」はbespoke以外にも存在します。

形式 特徴
bespoke 思考過程を独立したフィールドに保持 { "thought": "...", "answer": "..." }
OpenAI style 思考過程を回答文中に埋め込む "思考過程: ... 最終回答: ..."
ComplexQA style 推論ステップを列挙して明示的に保存 "steps": ["定義確認", "式変形", "結論"]
Scratchpad 長い推論過程を「ノート」的に保持し、最終回答を別で出す "scratchpad": "途中計算..."

ポイント:

  • bespokeは「構造化」
  • OpenAI styleは「文章内に埋め込み」
  • ComplexQAは「ステップ列挙」
  • Scratchpadは「長文対応」

タスクや目的によって最適なフォーマットは変わります。

改善できたポイント(再発防止の工夫)

今回の失敗は、いずれも「少しの確認や仕組み化」で防げたものだったと振り返っています。

1. 出力JSONを確認していなかった

実際には、学習前に出力JSONを一度も開いていませんでした。
もし出力をして形式をチェックしていれば、gms8k形式になっていることにすぐ気づけたはずです。

2. 「なぜこの形式か」を考えていなかった

ChatGPTが出したコードをそのまま使い、思想を理解しないまま動かしていました。
もし「このコードはRLTのどのSTEPを実現しているのか?」を考えていれば、チーム方針と形式が噛み合っていないことに早い段階で気づけたはずです。

3. ログを眺めるだけで満足していた

学習ログにエラーが出ていなかったので「進んでいる」と思い込んでいました。
しかし reasoning が出力されているかを実際に確認すれば、
CoTが消えていることにもっと早く気づけたはずです。

学び

  • 形式を守ることは形式統一ではなく、説明可能性と評価容易性の担保
  • 出力を必ず「中身を確認する」ことが再現性の第一歩
  • エラーより怖いのは“静かな失敗”

初心者視点ではありますが、これらの気づきが同じように取り組む方の助けになれば幸いです。

参考

8
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?