はじめに
大規模言語モデルにおける自動チェーン・オブ・ソートプロンプティングとは何でしょうか? このブログでは、この疑問を小さな部分に分解し、チェーン・オブ・ソート(CoT)プロンプティングの定義から始め、Auto CoTの利点と発展について説明します。最後に、LLM API がAuto CoTを適用する際の核心部分であることについて議論します。強力なAuto CoTを探求するために、ぜひご覧ください!
CoTプロンプティングとは?
チェーン・オブ・ソート(CoT)プロンプティングは、大規模言語モデル(LLM)の推論能力を強化するための手法です。GPT-3などのLLMは、質問応答、テキスト生成、問題解決など、さまざまなタスクで顕著なパフォーマンスを示しています。
しかし、多くの複雑な推論タスクでは、LLMは完全で首尾一貫した段階的な解決策を提供するのに苦労することがあります。CoTプロンプティングは、言語モデルに「思考の連鎖」—最終的な答えに至るまでの中間的な推論ステップのシーケンス—を生成させることで、この問題に対処しようとします。
CoTプロンプティングの核となる考え方は、言語モデルに直接的な答えを提供させるのではなく、問題について明示的に段階的に考えさせることです。これは通常、「これを段階的に考えましょう」や「あなたの推論を説明してください」といったプロンプトを入力の質問や問題とともに含めることで行われます。CoTプロンプティングは、特に複雑で多段階のタスクにおいて、より正確で説明可能な出力をもたらすことができます。

なぜAuto CoTが必要なのか?
重要な問題は、チェーン・オブ・ソート(CoT)プロンプティングには主に2つのアプローチがあり、両方とも大きな欠点があることです。
Zero-Shot-CoTの限界
このアプローチでは、言語モデル(LM)に質問を与え、「段階的に考えて」答えにたどり着くよう単純に依頼します。利点は、追加情報や例を提供する必要がないため、非常に使いやすいことです。しかし、大きな欠点は、LMの段階的な推論がしばしば誤りを含む可能性があることです。そのため、最終的な答えが信頼できない場合があります。
Manual-CoTの限界
このアプローチでは、LMに対して詳細な例を手動で作成し、問題を論理的なステップに分解して正しい答えにたどり着く方法を示します。これらの注意深く作られた例を提供することで、LMは新しい問題をより良く解決するためにその知識を活用できます。利点は、LMの推論が手動の例を参照できる場合により堅牢で正確になることです。しかし、主な欠点は、これらの詳細な例を作成するのに非常に時間がかかり、多くの人間の労力と専門知識を必要とすることです。まったくスケーラブルではありません。

Auto-CoTによる限界の克服
まとめると、Zero-Shot-CoTは簡単ですが信頼性が低く、Manual-CoTはより堅牢ですが非常に労力がかかります。これが、著者らが提案する「Auto-CoT」アプローチで解決しようとしている主要な課題です。
一部の研究者が提唱するAuto-CoTの核となる考え方は、手動の人間の努力を必要とせずに、LMが使用できるデモンストレーション例を自動的に生成することです。これにより、既存の両方のアプローチの利点—信頼性の高い推論と、よりスケーラブルな方法—を組み合わせることができる可能性があります。
Auto CoTはどのように開発されたのか?
このセクションでは、Zhuosheng Zhang、Aston Zhang、Mu Li、Alex Smolaによって2022年に発表された「Automatic Chain of Thought Prompting in Large Language Models」という論文の詳細を探ります。研究の詳細に興味がない場合は、次のセクションに進んでください。

提案されたアプローチ
既存のCoTアプローチの限界を克服するために、著者らはCoTプロンプティングのためのデモンストレーションを自動的に構築する「Auto-CoT」パラダイムを提案しています。
主要なステップは次のとおりです:
- 「段階的に考えましょう」というプロンプトでLLMを活用し、デモンストレーション質問に対する推論チェーンを生成します。
- 生成された推論チェーンに誤りが含まれる可能性があることを認識し、著者らは選択されたデモンストレーション質問の多様性を確保することに焦点を当てています。
- 著者らは、デモンストレーションを自動的に構築するための2段階のアプローチを開発します: a. データセットの質問を類似性に基づいてクラスタに分割します。 b. 各クラスタから代表的な質問を選択し、Zero-Shot-CoTを使用してその推論チェーンを生成します。
評価
著者らは、算術、常識、記号推論を含む10のベンチマーク推論タスクでGPT-3を用いてAuto-CoTアプローチを評価しています。パフォーマンスをZero-Shot-CoTおよびManual-CoTパラダイムと比較しています。
主な発見
結果は、Auto-CoTアプローチが、手動でのデモンストレーション設計を必要とするManual-CoTパラダイムと一貫して同等またはそれを上回るパフォーマンスを示すことを示しています。これは、LLMが手動の努力なしで効果的なCoT推論を実行できることを示しています。
Auto CoTはどのように機能するのか?
Auto-CoTの核となるアイデアは、言語モデル(LM)がチェーン・オブ・ソート(CoT)プロンプティングに使用できるデモンストレーション例を、手動で作成されたデモンストレーションに頼るのではなく、自動的に生成することです。
Auto-CoTアプローチの段階的な動作は次のとおりです:
ステップ1 質問のクラスタリング:
- 最初のステップは、テスト質問のセット(LMが評価される質問と、標準ベンチマークデータセットからの既存の質問)を取得し、それらを類似性に基づいていくつかのクラスタにグループ化することです。
- このクラスタリングにより、デモンストレーション質問が多様なタイプの問題をカバーするようにし、あまり類似しすぎないようにします。
ステップ2 デモンストレーションの生成:
- 各質問クラスタに対して、Auto-CoTはそのクラスタから代表的な質問を選択します。
- 次に、「段階的に考えましょう」というプロンプトを使用して、その代表的な質問に対する推論チェーンをLMに生成させます。
- この推論チェーン(中間ステップと最終的な答えで構成される)が、そのクラスタのデモンストレーション例となります。
ステップ3 LMへのプロンプティング:
- 新しいテスト質問でLMを評価する際、Auto-CoTは自動的に生成されたデモンストレーション例のセットをLMに提供します。
- LMはこれらのデモンストレーションをガイドとして使用し、テスト質問に対する答えにたどり着くために自身の段階的な推論プロセスを実行します。

Auto CoTを使用するには?
必要条件:
- Python バージョン3.8以上
インストール:
- 指定されたバージョンとPyPI URLを使用して、必要なPyTorchとtorchtextパッケージをインストールします:
pip install torch==1.8.2+cu111 torchtext==0.9.2 -fhttps://download.pytorch.org/whl/lts/1.8/torch_lts.html - その他の要件は
pip install -r requirements.txtを実行してインストールします。
データセット:
以下のGitHubリポジトリからデータセットをダウンロードします:
- https://github.com/kojima-takeshi188/zero_shot_cot/tree/main/dataset
- https://github.com/kojima-takeshi188/zero_shot_cot/tree/main/log
クイックスタート:
クイックスタートガイドについては、try_cot.ipynb ノートブックを参照してください。
手順:
デモの構築:
- 以下のコマンドを実行して、“multiarith” タスク用のデモを構築します:
python run_demo.py --task multiarith --pred_file log/multiarith_zero_shot_cot.log --demo_save_dir demos/multiarith
推論の実行:
- 以下のコマンドを実行して、“multiarith” データセットで推論を実行します:
python run_inference.py --dataset multiarith --demo_path demos/multiarith --output_dir experiment/multiarith
Auto-CoTの引用:
作業でAuto-CoTを使用する場合は、以下の論文を引用してください:
@inproceedings{zhang2023automatic,
title={Automatic Chain of Thought Prompting in Large Language Models},
author={Zhang, Zhuosheng and Zhang, Aston and Li, Mu and Smola, Alex},
booktitle={The Eleventh International Conference on Learning Representations (ICLR 2023)},
year={2023}
}

LLM API:Auto-CoT適用の核心部分
Auto-CoTとLLM APIの組み合わせの利点は?
- 強力な言語モデルへのアクセス:
- Auto-CoTは、段階的な推論チェーンを生成し正確な出力を生み出すために、大規模言語モデルの能力に依存しています。
- LLM APIを統合することで、研究者や開発者は、GPT-3、Megatron-LLM、InstructGPTなど、最新かつ最も強力な言語モデルを活用してAuto-CoTシステムを強化できます。
- 柔軟性とカスタマイズ:
- 言語モデルごとに異なる強み、バイアス、能力を持つ場合があります。LLM APIを統合することで、ユーザーは特定のタスクやアプリケーションに対して異なるモデルを試し、そのパフォーマンスを比較できます。
- この柔軟性により、研究者は言語モデルを自分のニーズに合わせて微調整およびカスタマイズし、Auto-CoTシステムの全体的な有効性を向上させることができます。
- スケーラビリティとデプロイ:
- LLM APIは多くの場合、言語モデルの提供とデプロイのためのスケーラブルで信頼性の高いインフラストラクチャを提供し、Auto-CoTシステムが増加するワークロードを処理し、より広範なユーザーベースにサービスを提供できるようにします。
- LLM APIのスケーリング機能を活用することで、研究者や開発者はプロダクション環境でAuto-CoTシステムをより簡単にデプロイおよび維持できます。
- 継続的なモデルの改善:
- 言語モデルは急速に進化しており、新しい改良されたバージョンが頻繁にリリースされています。LLM APIを統合することで、Auto-CoTシステムはこれらの進歩の恩恵を受け、言語モデルの最新の能力を常に把握できます。
- これにより、Auto-CoTシステムは高品質な結果を提供し続け、言語モデルの分野が進歩するにつれて競争力を維持できます。
LLM APIを自分のプロジェクトに統合するには?
Novita AI は、ユーザーに多くのモデルを呼び出すためのLLM APIを提供しており、新しくリリースされたllama-3–8bやllama-3–70bも含まれています。LLM APIを統合する前に、Playgroundで無料で異なるモデルを試し、そのパフォーマンスを比較できます。

さらに、カスタマイズされたニーズに対応するために、temperature(モデルの出力のランダム性と探索を制御)、top_p(temperatureを使用したサンプリングの代替で、nucleus samplingと呼ばれ、モデルがtop_p確率質量を持つトークンの結果を考慮する)、presence_penalty(モデルが以前に生成したものとは異なるテキストを生成するよう促す)、maximum tokens(モデルの生成出力の最大長を設定する)などの主要なパラメータを調整して、特定のアプリケーション要件に合わせてモデルの出力を最適化できます。このレベルの調整により、LLMの能力をAuto-CoTシステムと完全に組み合わせることができます。

LLM APIに関する詳細情報、統合のためのコード手順、価格、その他の機能については、当社のウェブサイトをご覧ください。

まとめ
このブログでは、チェーン・オブ・ソート(CoT)プロンプティングの概念と、Auto-CoTと呼ばれる自動化アプローチの必要性について探りました。既存のCoT手法には限界がありますが、Auto-CoTアプローチは、手動の努力を必要とせずに、言語モデルを段階的な推論に導くためのデモンストレーション例を自動的に生成することを目的としています。質問のクラスタリングやデモンストレーション生成を含むAuto-CoTの主要なステップについて議論しました。最後に、LLM APIを統合することで、Auto-CoTシステムを強化するための強力で柔軟な言語モデルを提供でき、パフォーマンスの向上、スケーラビリティ、継続的なモデル改善につながることを強調しました。全体として、Auto-CoTは大規模言語モデルの推論能力を強化する上でエキサイティングな発展を表しています。
Novita AI は、100以上のAPIにアクセスできる無限の創造性のためのワンストッププラットフォームです。画像生成、言語処理、音声強調、動画操作まで、手頃な従量課金制で、GPUメンテナンスの手間から解放されながら、独自の製品を構築できます。無料でお試しください。
