Claude-3.5-Sonnetが推論でOpenAI-o1モデルに勝つのに役立つプロンプトというのが話題になっているらしいので内容を見てみた【LLM】

LLM

LLM界隈で「Claude 3.5 SonnetでもOpenAI o1をアウトパフォームすることが可能」みたいな話が出回っていたので、今回はその内容を見ていきます。

ちなみにローカルLLMで使用されるような小規模言語モデルの性能も上がるみたいです。

プロンプト

プロンプト(英語)

以下が話題のプロンプトです。

Begin by enclosing all thoughts within <thinking> tags, exploring multiple angles and approaches.
Break down the solution into clear steps within <step> tags. Start with a 20-step budget, requesting more for complex problems if needed.
Use <count> tags after each step to show the remaining budget. Stop when reaching 0.
Continuously adjust your reasoning based on intermediate results and reflections, adapting your strategy as you progress.
Regularly evaluate progress using <reflection> tags. Be critical and honest about your reasoning process.
Assign a quality score between 0.0 and 1.0 using <reward> tags after each reflection. Use this to guide your approach:

0.8+: Continue current approach
0.5-0.7: Consider minor adjustments
Below 0.5: Seriously consider backtracking and trying a different approach


If unsure or if reward score is low, backtrack and try a different approach, explaining your decision within <thinking> tags.
For mathematical problems, show all work explicitly using LaTeX for formal notation and provide detailed proofs.
Explore multiple solutions individually if possible, comparing approaches in reflections.
Use thoughts as a scratchpad, writing out all calculations and reasoning explicitly.
Synthesize the final answer within <answer> tags, providing a clear, concise summary.
Conclude with a final reflection on the overall solution, discussing effectiveness, challenges, and solutions. Assign a final reward score.

プロンプト(日本語)

Google翻訳で日本語にしてみました。

まず、すべての考えを <thinking> タグで囲み、複数の角度とアプローチを検討します。
ソリューションを <step> タグ内の明確なステップに分解します。20 ステップの予算から始め、複雑な問題の場合は必要に応じてさらに予算を要求します。
各ステップの後に <count> タグを使用して残りの予算を示します。0 に達したら停止します。
中間結果と反省に基づいて推論を継続的に調整し、進行に合わせて戦略を調整します。
<reflection> タグを使用して定期的に進捗状況を評価します。推論プロセスについて批判的かつ正直に考えます。
各反省の後に <reward> タグを使用して 0.0 から 1.0 までの品質スコアを割り当てます。これを使用してアプローチを導きます。

0.8 以上: 現在のアプローチを継続
0.5 ~ 0.7: 小さな調整を検討
0.5 未満: 後戻りして別のアプローチを試すことを真剣に検討

確信が持てない場合や報酬スコアが低い場合は、後戻りして別のアプローチを試し、<thinking> タグ内で決定を説明します。
数学の問題については、形式表記に LaTeX を使用してすべての作業を明示的に示し、詳細な証明を提供します。
可能であれば、複数のソリューションを個別に検討し、考察の中でアプローチを比較します。
考えをメモ帳として使用し、すべての計算と推論を明示的に書き出します。
<answer> タグ内で最終的な回答をまとめ、明確で簡潔な要約を提供します。
全体的なソリューションについての最終的な考察で締めくくり、有効性、課題、およびソリューションについて議論します。最終的な報酬スコアを割り当てます。

どうやらタグづけがミソみたいですね。

概要

元記事を日本語訳でザックリ見ていきます。

LLM における推論とは

LLM における推論とは、これらのモデルの以下の能力を指します。

  1. 論理的に考える
  2. 推論する
  3. 複雑な問題を解決する
  4. 入手可能な情報に基づいて適切な判断を下す

LLMは推論するために明示的に訓練されていないが、O1とO1 miniを除いて推論能力に似た行動を示すことがあります。

LLM における推論がなぜ重要なのか?

LLM の推論能力はいくつかの理由で重要です:

  1. より深い理解: 真の推論能力は、LLM がパターン マッチングを超えて世界をより深く理解できることを示します。
  2. 問題解決: 推論能力の向上により、複雑な領域でより効果的な問題解決が可能になります。
  3. 意思決定: 強力な推論能力を備えた LLM は、複雑な意思決定プロセスにおいて人間を支援することができます。
  4. 一般化: 推論の改善により、LLM は「分布外」タスクでより優れたパフォーマンスを発揮し、一般化可能性を高めることができます。
  5. 実用的なアプリケーション: 推論機能は、科学的発見を加速し、政策立案を強化し、教育や医療におけるパーソナライズされたサービスを改善することができます。たとえば、時系列データのデータセットを取得し、識別するのが困難または時間のかかるタスクであるパターンを見つけて、それを使用して正確に将来を予測する自律型 AI エージェントを考えてみましょう。

プロンプトパラダイムの詳細

元記事の執筆者はプロンプト生成までの過程などについて、以下のように述べています。

OAIがO1およびO1-miniモデルを発表した際、AIが複雑な問題を解決するために考える時間を持つことが、AGI(人工汎用知能)への新たな革新であることを理解しました。そこで、既存の最先端モデル(例:Claude Sonnet 3.5)がO1モデルと同じように推論できるようにできないか考えました。

その後、Northeastern大学の「Reflexion」や/locallamaサブレディットのコメントを参考にし、Dynamic Chain of Thoughts(CoT)、反省、言語的強化を組み合わせた新しいプロンプトの枠組みを作成しました。

この枠組みは、Dynamic CoTが初期の推論経路を生成し、反省メカニズムを通じて評価・洗練されます。各反省フェーズの後、モデルは報酬スコアとしての言語的強化を受け取り、今後の推論に活かします。

このサイクルプロセスにより、モデルは出力を反復的に改善し、変化する条件に適応し、複雑な問題構造に効果的に対応できます。たとえば、自律ナビゲーションのような多段階の意思決定タスクでは、Dynamic CoTを用いて道を探索し、障害や環境の変化に直面した際に反省メカニズムで戦略を再評価します。そして、言語的強化スコアが行動の調整に関する指針を提供します。

この結果、AIシステムは単に行動から学ぶだけでなく、時間とともに推論能力を向上させ、動的な現実のアプリケーションでの問題解決能力を高めることができます。

ザックリまとめると、「動的思考連鎖(Dynamic CoT)」「振り返り(Reflection)」「言語的強化(Verbal Reinforcement Learning)」の組み合わせにより、推論能力が向上したということですね。

ベンチマーク結果

ベンチマーク結果では、GPT-4の性能を上回り、OpenAI o1モデルと同等の性能を達成していることが示されています。

また、Llama 3.1 8Bなど他のモデルに適用した場合でも性能が大きく向上しており、いかにインパクトが大きいかがよくわかります。

まとめ

先のプロンプトを活用することで、大規模言語モデルを使わずとも、小規模なオープンソースモデルでも推論性能が向上しますので、ローカルLLMの性能にお困りの方や、現在のClaude 3.5 Sonnetの性能を引き上げたい方は、ぜひお試しください。

【Reference】

https://www.reddit.com/r/ClaudeAI/comments/1fx51z4/i_made_claude_35_sonnet_to_outperform_openai_o1/?rdt=35006

https://medium.com/@harishhacker3010/can-we-make-any-smaller-opensource-ai-models-smarter-than-human-1ea507e644a0

スポンサーリンク

LLM

Posted by このめ