モジュール 02 · 第 3 回

考えてから答えさせる

間違えやすい 6 問をそれぞれ 5 回ずつ実行すると、直接答えさせた場合は 21 回正解、先に推論過程を書かせると 29 回正解、思考モードをオンにすると全問正解でした。考えてから答えさせるとなぜ効くのか、そしてどれだけの代償を払うのかを説明します。

  • 約 35 分
  • 難易度:入門
  • 検証:2026-09-14 deepseek-flash

コードと実行結果は実際に動かしたときのまま載せているため、コメントと出力は中国語です。

「9.11 と 9.9 はどちらが大きい?」という問題は小学生でも正解できるのに、LLM はよく間違えます。前のモジュールの実験では、deepseek-flash は思考をオフにすると 9.11 と答えました。

同じモデルでも、聞き方を変えれば正解できます。先に推論過程を書かせてから、答えを出させるのです。この課では、この方法が実際どれほど役に立ち、いくらかかるのか、そして「思考モード」とどんな関係にあるのかを実験で見ていきます。

先に過程を書くとなぜ効くのか

モジュール 01 第 2 課を思い出してください。モデルは一度に 1 トークンずつ生成し、各トークンはそれまでのすべての内容に基づいています。

「答えだけを答えて」と求めると、モデルは最初のトークンで結論を出さなければなりません。9.11 と 9.9 を比べるのに「計算」する場所がなく、直感に頼るしかありません。そしてその直感は、学習データにある大量のバージョン番号に引っ張られているかもしれません。ソフトウェアのバージョンなら、9.11 は確かに 9.9 より新しいのです。

先に過程を書かせると、たとえば「9.9 は 9.90 と書ける。小数点以下第 1 位を比べると 9 は 1 より大きい……」のように、その推論のステップが後に続くトークンの入力になります。結論を書く段階では、すでに書いた推論に基づいて結論を出すことになり、何もないところから当て推量するのではなくなります。

つまり、考えてから答えさせるとは、本質的には下書きの場所を与えることです。モデルがどれだけ「考えられる」かは、どれだけ書き出したかで決まります。

実験:三つのやり方を比べる

間違えやすい問題を 6 問選びました。前に見た小数の比較、文字数え、正方形の面積、アルファベット数えに、新しい 2 問を加えています。

  • 1 本のひもを 3 回二つ折りにしてから、真ん中をはさみで 1 回切ると、ひもは何本になるか?(答えは 9:3 回折ると 8 重になり、真ん中を切ると切り口が 16 か所でき、元の両端と合わせて 9 本になる)
  • りんごを 3 個持っていて、1 個食べ、さらに 2 個買い、それから半分を友だちにあげた。いくつ残っているか?(答えは 2)

三つのやり方は、どれも deepseek-flash を使います。

DIRECT = "只回答最终答案,一个数,不要任何解释。"
STEP_BY_STEP = "先一步一步写出推理过程,最后单独一行写“答案:”加上一个数。"

METHODS = [
    ("直接回答", DIRECT, False),        # 关掉思考
    ("先推理再回答", STEP_BY_STEP, False),  # 关掉思考,但要求在回答里写推理过程
    ("开启思考", DIRECT, True),         # 打开思考模式,回答里只要答案
]

各問題を各やり方で 5 回ずつ実行し、回答の「答案:」(答え:)の後ろにある数字を取り出して正解と照合します(完全なコードは code/02-prompting/reasoning.py)。私が実行した結果です。

直接回答:21/30 正确,平均输出 1 词元,共 0.0003 美元
    9.11 和 9.9 哪个大?(正确答案 9.9)→ ['9.11', '9.11', '9.11', '9.9', '9.9']
    “秋天的叶子一片片落下”这句话有几个字?(正确答案 10)→ ['11', '11', '11', '11', '12']
    单词 raspberry 里有几个字母 r?(正确答案 3)→ ['3', '2', '3', '3', '3']
先推理再回答:29/30 正确,平均输出 244 词元,共 0.0091 美元
    9.11 和 9.9 哪个大?(正确答案 9.9)→ ['9.11', '9.9', '9.9', '9.9', '9.9']
开启思考:30/30 正确,平均输出 431 词元,共 0.0160 美元

結果を読む

直接答えさせると 9 回間違えた。文字数えの問題は 5 回すべて間違え、しかも答えは 11 だったり 12 だったりとばらばらでした。小数の比較は 5 回中 3 回間違えました。面白いことに、見た目はより複雑なひもとりんごの 2 問は、直接答えさせても全問正解でした。この種の問題は学習データでよく見かけるからかもしれません。

推論過程を書かせると、誤りが 9 回から 1 回に減った。プロンプトに「先に一歩ずつ推論過程を書いて」という一文を加えただけです。残った 1 回の誤りはやはり 9.11 の問題で、過程を書いても万全ではないことがわかります。推論の最初の一歩でつまずくと(たとえば最初から「11 は 9 より大きい」と決めてかかると)、後の推論はその誤りに沿って進むだけです。

思考モードは全問正解。思考モードがしていることも実は同じで、ただより徹底しています。モデルはまず reasoning_content で一通り考えます。この部分は専用の学習を受けていて、自分でチェックし、矛盾に気づけば引き返してやり直します。最後の content には答えだけが入るので、こちらも処理しやすくなります。

代償はトークン。直接答えさせると平均の出力は 1 トークンだけですが、推論過程を書かせると 244 トークン、思考をオンにすると 431 トークンです。30 回分の費用は 0.0003 ドルから 0.016 ドルに増え、50 倍以上です。応答時間もそれに応じて長くなります。

手動で過程を書かせるか、思考をオンにするか

2026 年 9 月時点で、DeepSeek の主力モデルはどれも思考モードに対応しているので、たいていは思考をオンにするだけでよく、プロンプトで「一歩ずつ考えて」と手動で求める必要はありません。

手動で推論過程を書かせる方法は、次のような場合にはまだ役に立ちます。

  • 使っているモデルが思考モードに対応していない。
  • ユーザーに推論過程を見せたい。たとえば問題解説の指導や、判断の根拠を示す場合です。思考モードの reasoning_content は開発者向けの下書きで、内容も形式もあなたには制御できないので、ふつうはユーザーにそのまま見せません。
  • 推論のやり方を制御したい。たとえば「まず既知の条件を挙げ、次に求める量を挙げ、それから一歩ずつ計算する」と求める場合です。

手動のやり方では、注意点が一つあります。モデルに先に過程を、後で答えを書かせることです。プロンプトで「先に答えを出し、それから理由を説明して」と求めると、モデルはまず直感で答えを出し、それからその答えのために理由をこしらえます。それでは推論を書かせた意味がありません。

モデルに考えさせる価値があるのはいつか

考えてから答えさせるのはタダではありません。この実験では、思考で費用が 50 倍以上になりました。

価値がある:複数ステップの計算、論理的推論、慎重な照合が必要なタスク、コーディング、複雑な計画。こうしたタスクでは、間違えたときの損失が余分にかかるわずかな費用よりずっと大きいのがふつうです。

価値がない:簡単な分類、翻訳、書き換え、文章から一つのフィールドを抽出すること、雑談。こうしたタスクはモデルが「直感」でうまくこなせるので、思考は遅延と費用を増やすだけです。前の課の書き込みの分類は、思考をオフにしても 20/20 正解でした。

迷ったときは、モジュール 01 第 6 課の方法を使いましょう。実際のタスクで、思考のオンとオフをそれぞれ一通り実行し、正答率と費用を比べるのです。

練習問題

  1. reasoning.py の問題に、モデルが間違えやすいと思う問題を 3 問加えて(「1 週間後は何曜日か」「二つの時刻は何分違うか」など)、三つのやり方のどれが最もよい成績になるか見てください。
  2. STEP_BY_STEP を「先に答えを出し、それから理由を説明して」に変え、最後の行は変わらず「答案:」と書かせます。一通り実行して、正答率が元と比べてどう変わったか見てください。
  3. 思考をオンにしたときに reasoning_content を表示して、モデルが 9.11 の問題でどう考えているか見てください。途中で考えを変えていますか。

確認テスト

1. モデルに「先に推論過程を書いてから答えを出す」よう求めると、なぜ正答率が上がるのですか?

モデルは一度に 1 トークンずつ生成し、後の内容はそれまでに書いた内容を土台にしています。直接答えを求めると、モデルは最初のトークンで結論を出さなければならず、直感に頼るしかありません。先に推論過程を書かせれば、そのステップが後の生成の入力になり、結論は推論に基づいて出されます。モデルに下書きの場所を与えるのと同じです。

2. プロンプトで「先に答えを出し、それから理由を説明して」と求めると、どんな問題がありますか?

モデルはまず直感で答えを書き、後の「理由」はその答えの根拠を探すだけで、答えを正すことはありません。推論は答えの前に書かれて初めて、答えを導く助けになります。

3. あなたのアプリはユーザーのレビューを「好評」「不評」の 2 つに分類し、1 日に 10 万件処理します。思考モードをオンにすべきですか?

ふつうは不要です。感情分類は簡単なタスクで、思考をオフにしても十分うまくいくことが多く、オンにすると費用が何倍にもなり、遅延も長くなります。まず実際のレビューを少しだけ使って、オンとオフでそれぞれ一度テストし、正答率に大きな差がなければ思考をオフにします。

質問と議論

このレッスンでつまずいたところは、ここで質問してください。他の人の質問に答えるのも歓迎です。

質問で 3 ポイント、回答で 6 ポイント。審査を通過すると公開されます。

議論を読み込んでいます…