【ChatGPT無と有（3.5Turboと4）】でステップバイステップを依頼してみた。結果は……


　どうも、カーブミラーです。

　今回は、ある記事を読んで、試してみたものです。みなさんも“ステップバイステップ”は使われているかと思います。それについて、です。

:::note info
本記事は、ChatGPT（無と有）
で行なっております。

あしからず。
:::

　記事というのは
　　下記になります。
　　　Hiroya Iizukaさんが
　　　　X-Twitterにポストしました。
[【ステップバイステップで、逆に劣化する？】](https://x.com/0317_hiroya/status/1747613302077977019?t=FDkF0Vne9UyZD0iNdSQ-nA&s=03)

　Hiroya Iizukaさんも
　　驚かれていらっしゃるのですが、
　　　とある論文を読んでの
　　　　ポストだったようです。

　私も論文を翻訳して
　　読んでみました。
　　　英語苦手なので(汗)

　まず、
　　“ステップバイステップ”を
　　　使うと、精度を向上できず、
　　　　数学では、むしろ
　　　　　劣化させる。

　次に、
　　ChatGPTはすでに
　　　Instruction Fine Tuningと
　　　　RFHFで、
　　　　　すでに学習されていて
　　　　　　自発的にステップ実行
　　　　　　　しているそうです。

　そして、
　　プロンプトで明示するよりも
　　　正成績がよく、
　　　　“ステップバイステップ”を
　　　　　使うと、二重の指示となり
　　　　　　曖昧さが増して
　　　　　　　劣化につながる(推測)
　　　　　　　　と書いています。

　ここから言えることは
　　“ステップバイステップ”は
　　　意味がないかもしれない、と
　　　　いうことだ。

　しかし、
　　論文の著作者は
　　　概要で、こうも書いている。

　“算数推論などの
　　特定のタスクに対して、
　　　CoTはもはや効果的ではない”

　それから、こう続けています。

　“他の推論タスクでは、
　　効果を保っている”と。
***
　というわけで、
　　試してみました。

　簡単な算数、
　　「572×12を解いてください」
　　　　です。単に思い付きです。

　対象は、
　　ChatGPT無料版
　　GPT-3.5Turbo
　　GPT-4
　です。

　そのまま、与えたところ、
　　三つすべてが、正解しました。
　　　この程度でも
　　　　以前は、間違えていた
　　　　　ような気がします。

　さて、
　　無料版で
　　　ステップバイステップを
　　　　試します。
***
***User***
572×12を解いてください。
ステップバイステップでお願いします。

***GPT-3.5Turbo***
572を12で割ります。
572 / 12

計算すると、
47.666666666666664

したがって、572 ÷ 12 = 47.67です。

***User***（なんで掛け算が割り算に？）
リトライ

***GPT-3.5Turbo***
もちろんです。再度計算します。

572を12で割ると、商は47で余りは4です。
572 = 12 × 47 + 4

したがって、572÷12=47 余り 4 です。

***User***（なんで？）
問題を確認してください。

***GPT-3.5Turbo***
おっしゃる通り、誤りがありました。もう一度計算します。

572を12で掛け算すると、
572=12×47.666666666666664

ですが、整数の解を求めるために四捨五入して、
572÷12≈47.67

となります。お詫びして訂正いたします。

***User***
もう一度確認

***GPT-3.5Turbo***
おっしゃる通り、もう一度確認いたします。

572を12で割ると、商は47で余りは8です。
572=12×47+8

したがって、572÷12=47 余り 8 です。お詫びして訂正いたします。

（ここから押し問答しましたので略）
***User***
質問です。答えてください。
なぜ割り算したのかを。

***GPT-3.5Turbo***
私の誤解に基づくミスでした。指示が掛け算を要求していたにもかかわらず、誤って割り算を行いました。これは単純なミスであり、指示に沿って正確な掛け算を提供すべきでした。お詫び申し上げます。
***

　次に
　　GPT-3.5Turboです。
***
***User***
572×12を解いてください。
ステップバイステップでお願いします。

***GPT-3.5Turbo***
もちろん、ステップバイステップで計算します。

1. 最初に、2の倍数を求めます。2の倍数は、572の偶数です。572 ÷ 2 = 286 です。

2. 次に、286を12で掛けます。286 × 12 = 3432 です。

したがって、572 × 12 = 3432 です。

***User***
リトライ

***GPT-3.5Turbo***
もう一度お手伝いします。

1. まず、2の倍数を見つけます。572の場合、2で割り切れるので、572 ÷ 2 = 286 です。

2. 次に、286を6で掛けます。286 × 6 = 1716 です。

したがって、572 × 12 = 1716 です。

***User***
教えてください。
なぜ、その手順になったのですか？

***GPT-3.5Turbo***
もちろん、その手順について説明します。

1. 最初に、572を12で掛ける問題を解決するために、部分的な計算を行います。この場合、572を2で割ることから始めました。これは、572を2の倍数に分解することで、計算が簡単になるからです。

2. 2で割ることにより、572 ÷ 2 = 286 という形に変換され、286は12で掛ける際に扱いやすくなります。

3. 次に、286を12で掛けると、286 × 12 = 3432 という結果が得られます。

したがって、572 × 12 = 3432 です。

この手順は、数学的な便利さに基づいています。大きな数を小さな数で掛ける際に、小さな数で分解してから計算することで、計算が容易になります。

***User***
どうして、素直に計算しなかったのですか？

***GPT-3.5Turbo***
申し訳ありません、ご質問に対する回答が分かりにくかったようです。素直な計算を示します。

572 × 12 を素直に計算すると、次のようになります。

572 × 12 = 6864

したがって、572 × 12 = 6864 です。先ほどの手順を使わずに、直接計算することも可能です。お手間を取らせてしまい申し訳ありませんでした。

***User***
計算結果が食い違っています。
なぜなのでしょうか？
理由を述べてください。

***GPT-3.5Turbo***
申し訳ございません、以前の回答に誤りがあります。正しい理由を説明いたします。

572 × 12 の正しい計算結果は、次の通りです。

572 × 12 = 6864

以前の回答で示した結果が食い違っていたのは、誤って計算ミスをしてしまったためです。正しい計算結果は6864です。誤った情報を提供したことをお詫び申し上げます。
***

　最後に、
　　GPT-4です。

　内容は
　　GPT-3.5Turboに
　　　よく似ています。
***
***User***
572×12を解いてください。
ステップバイステップでお願いします。

***GPT-4***
もちろん、572を12で割るステップバイステップの計算をお教えします。

1. 最初に、12で572を割ることを考えます。
2. 572を12で割ります。572 ÷ 12 = 47 余り 8 です。
3. 余りが出た場合、それも考慮する必要があります。この場合、余りは8です。

したがって、572 ÷ 12 = 47 余り 8 となります。

***User***
リトライ

***GPT-4***
もちろん、もう一度572を12で割るステップバイステップの計算をお教えします。

1. 最初に、12で572を割ります。572 ÷ 12 = 47 余り 8 です。

したがって、572 ÷ 12 = 47 余り 8 となります。再度のリトライが必要であれば、お知らせください。

***User***
最初の指示プロンプトと出力結果の確認をしてください。
違いはなんですか？
答えてください。

***GPT-4***
指示プロンプトと出力結果を確認しましたが、特定の違いは見当たりません。最初の指示プロンプトは「572×12を解いてください。ステップバイステップでお願いします。」で、出力結果は「572 ÷ 12 = 47 余り 8 となります。」です。出力結果は割り算の計算結果を示すもので、指示に従ってステップバイステップで計算を行っています。違いはありません。

***User***
この文章には、おかしな部分があります。確認してください。

***GPT-4***
申し訳ありません、おかしな部分がありました。指示プロンプトと出力結果を比較し、指示プロンプトの「572×12を解いてください。」と出力結果の「572 ÷ 12 = 47 余り 8 となります。」には不一致がありました。指示プロンプトが割り算ではなく掛け算を求めているのに対し、出力結果は割り算の結果を示していました。

正しい指示に従って計算を行います。572×12の計算は以下の通りです。

572 × 12 = 6,864

したがって、572 × 12 = 6,864 となります。おっしゃる通り、最初の指示に誤りがありました。お詫び申し上げます。

***User***
なぜ、掛け算を割り算と間違ったのでしょうか？
この問いに答えてください。

***GPT-4***
お詫び申し上げます。誤った情報を提供した原因は、私の誤解によるもので、指示プロンプトに従わずに割り算の計算を行ってしまいました。正しい計算方法は掛け算であるべきでしたが、誤って割り算の計算を行ってしまいました。

この誤りは私のプログラムの誤解によるもので、正確な情報を提供するために努力していますが、時折誤りが生じることがあります。ユーザーから提供された指示に従うことが最も重要です。お手伝いできることがあれば、どうぞお知らせください。再度、誤った情報を提供したことをお詫び申し上げます。
***
　こんな感じです。

　三者とも
　　掛け算を
　　　割り算と間違って
　　　　計算しています。

　どこに
　　間違う要素が
　　　あったのか、わかりません。

　このことから
　　算数レベルであれば、
　　　“ステップバイステップ”を
　　　　使わずに、素直に計算させる
　　　　　べきのようですね。
***
　ちなみにですが、
　　GPT-4は、勝手に
　　　CodeInterpreterを
　　　　使用して正解しましたwww

　まぁ、そっちの方が
　　正解な気がしますけど(=^･^=)
***
　いかがでしたか？

　今日は
　　少し長くなりましたね。

　これが
　　みなさんの糧に
　　　なれば、幸いです。

　今回は、ここまで。