報告の2.12章では、プロンプト、ファインチューニング、アテンションなどの技術を用いてモデルのパフォーマンスを向上させる方法について説明しています。
1. Prompting
プロンプティングはAI処理フローにおける重要なステップであり、モデルに対して実行すべきタスクを自然言語で指示するものです。効果的なプロンプトを作成する技術を習得することで、モデルの根本的な改善を行わずにLLMのパフォーマンスを大幅に向上させることができます。
)、しかし、今回の報告にはこれまで学んだことのない新しい情報が含まれており、今日はそれを補足的に学びたいと思います。
1.1 Graph of Thoughts Prompting
CoTと「ツリー・オブ・サーゲート」(ToT)は、推論タスクでのLLMのパフォーマンスを向上させるためのプロンプティング手法です。2023年には、ヨーロッパの研究者たちが「グラフ・オブ・サーゲート」(GoT)という別のプロンプティング手法を導入し、その潜在能力が示されました。GoTはLLMにより柔軟でグラフ構造に似た形で思考を模倣させることができ、これは人間の実際の推論プロセスに近いものです。
研究者たちはその後、GoTを実施するためのモデルアーキテクチャを設計し、ToTと比較してランキングタスクでの出力品質が62%向上し、約31%のコスト削減が確認されました。
1.2 Optimization by PROmpting (OPRO)
DeepMindが発表した論文では、「プロンプトによる最適化」(OPRO)が紹介されています。これは、LLMが問題の説明や以前の解決策に基づいて新たなプロンプトを生成することによってアルゴリズムのパフォーマンスを改善させる手法です。OPROは自然言語を通じてLLMを案内します。
例:
第二段階:「問題を慎重に検討し、一緒に解決しましょう。」訓練精度は63.2; 第四段階:「これを分解しよう!」訓練精度は71.3; 第五段階:「解法を計算しよう!」訓練精度は73.9; 第六段階:「数学の問題を解こう!」訓練精度は78.2。
これらの生成されたプロンプトは、特定のベンチマークにおけるAIシステムのパフォーマンスを向上させるために設計されています。「ステップバイステップで考える」や空白からのスタートといった他のプロンプティング手法と比較すると、OPROはほぼすべての23のBIG-bench Hardタスクにおいて精度を大幅に向上させました。
2. Fine-Tuning
ファインチューニングは、LLMの性能を強化するための手法としてますます注目を集めています。これは、小さなデータセット上でモデルをさらに訓練または調整することを意味します。ファインチューニングはモデルの全体的なパフォーマンスを向上させるだけでなく、特定のタスクにおけるモデルの能力を高め、モデルの挙動をより精密に制御できるようにします。
)を紹介しましたが、今日はQLoRAを見てみましょう:
2.1 QLoRA
2023年にワシントン大学の研究者が開発したQLoRAは、モデルのファインチューニング効率を向上させる新手法です。この手法により、メモリ使用量が大幅に削減され、単一の48GB GPU上での650億パラメータを持つモデルのファインチューニングが可能となり、完全な16ビットファインチューニングのパフォーマンスを維持できます。対照的に、同等規模の最先端のオープンソースLLMである65B Llamaモデルをファインチューニングするには通常約780GBのGPUメモリが必要です。したがって、QLoRAの効率はほぼ16倍向上しています。
QLoRAは、4ビットNormalFloat(NF4)、デュアル量子化、ページ最適化などにより効率を大幅に向上させます。QLoRAはGuanacoという名前のモデルの訓練に使用され、Vicunaベンチマーク(LLMの出力を評価するベンチマーク)においてChatGPTなどのモデルと同等かそれ以上のパフォーマンスを示しました。
特に注目に値するのは、Guanacoモデルは単一のGPU上で24時間のファインチューニングだけで成功したことでした。QLoRAは、モデルの最適化とさらなる改善を行う方法がより効率的になることを示しており、より高性能なモデルを作るのに必要なリソースが減少することを意味します。
3. アテンションメカニズム
LLMはさまざまなタスクを柔軟に処理することができますが、通常大量の計算リソースが必要です。前述の通り、高いトレーニングコストはAIのさらなる普及を妨げる要因となる可能性があります。最適化手法は、メモリ使用量の改善などを通じてAIの効率を向上させることを目指しており、これによりLLMがよりアクセスしやすく、実用的になります。
3.1 Flash-Decoding
スタンフォード大学の研究者たちが開発したFlash-Decodingは、長序列タスクを処理する際に従来のLLMが直面する非効率性に対処するために、アテンションメカニズムを加速する手法です。これは、キーと値を並列に読み込み、それぞれを再スケーリングおよび結合することで正しいアテンション出力を保持しながら実現されます。
様々なテストにおいて、Flash-DecodingのパフォーマンスはPyTorch EagerやFlashAttention-2などの他の主要な手法を上回り、より速い推論速度を示しました。例えば、バッチサイズ256、シーケンス長256の場合、Flash-DecodingはPyTorch Eagerよりも48倍、FlashAttention-2よりも6倍速いことが示されました。
につながる)