
1,549 文字
LLMの数学的な精度を、たった1行のテキストで改善する方法についてお話しします。例えば、「stabilitiesという単語(意図的に間違って書かれています)に『s』は何個ありますか?」というプロンプトがあるとします。見ての通り、大文字のSが2つと小文字のsが2つで合計4つありますが、LLMはそれを理解できません。なぜなら、LLMはトークンという単位で物事を見ているからです。そのため、この特定の単語にはsが3つあるという誤った回答をしてしまいます。
では、LLMに自力で正しい答えを出させようとせずに、精度を上げる最も簡単な方法は何でしょうか?プロンプトにたった1行のテキストを追加するだけで、魔法のように正しい答えに変わります。それは、LLMにコードを使用するように指示することです。
これを機能させるには、ChatGPTやGemini、MROLなど、どのLLMを使用する場合でも、Pythonのリプル(コードを実行できる環境)にアクセスできる必要があります。このように指示すると、LLMは自身の知識を使用せず、ツールを使って回答を得ようとします。
簡単に言えば、LLMという存在は、自身の限られたメモリを使用する代わりに、ツールの使用という方法を選択します。ツールの使用とは、特定の外部接続をトリガーすることです。例えば数学などの特定のプロンプトに対して、LLMは内蔵メモリを使用する代わりに、特定のツール(この場合はPythonリプル)を呼び出す必要があることを理解します。
つまり、Pythonインタープリターのようなものです。LLMは自身の知識を使って特定の文字や数字の出現回数を計算する代わりに、Pythonリプルや計算機などのツールを使用します。この場合はPythonリプルを使用して、与えられた問題を解決します。
これは数学の問題や、通常のプロンプトでは難しい文字数のカウントなどに特に有効です。なぜなら、LLMはトークンしか認識できないからです。LLMと会話して「stabilitiesという単語に『s』は何個ありますか?」と尋ねた場合、LLMが見ているのは次のようなものです。単語として「stabilities」を見ているのではなく、301、265、302、4168、3889、436というような形で認識しています。
そのため、LLMにとってこれを判断するのは非常に困難です。しかし、Pythonコードを書くことで、LLMは単語全体をコピーし、カウントして答えを返すことができます。
これは様々なプロンプトに非常に効果的です。オープンソースのライブラリやモデルを使用する場合は、Langchainを使用したPythonリプルを利用することで、Pythonコードを実行する機能を得ることができます。他にもたくさんの方法がありますが、LLMの精度を向上させるこの非常にシンプルなプロンプトのコツをお伝えしたかったのです。
例えば、「メアリーはりんごを3、4個持っていて、2人の友達がいて、2人の友達と1人の友達が3個のりんごを取りました。メアリーには何個のりんごが残っていますか?」という問題を、単に質問するのではなく、「コードを使用して」と指示するだけで、LLMはPythonコードを書いて最終的な答え(この場合、メアリーには1個のりんごが残っている)を出してくれます。
これは数学的な精度を向上させる最も簡単な方法の1つであり、オープンソースツールでも実装可能です。このビデオは、Andre Karpathyの最新のLLMに関するビデオに触発されて作りました。LLMの精度を向上させたい人なら誰でも役立つ小さなスニペットにしてみました。また別の動画でお会いしましょう。ハッピープロンプティング!
コメント