MEGAZONEブログ
AWS re:Invent 2024 セッションレポート #AIM306|ツールの使用と最前線のエージェント: LLM作業のための高度なテクニック
Tool use & agents at the frontier: Advanced techniques for LLM actions
セッション概要
- タイトル:Tool use & agents at the frontier: Advanced techniques for LLM actions
- 日付:2024年12月4日(水)
- Venue:Wynn | Convention Promenade | Latour 2
- スピーカー:
- John Baker(Principal Engineer, Amazon Web Services (AWS))
- Nicholas Marwell(Member of Technical Staff, Anthropic)
- 業界:Cross-Industry Solutions
- 概要:LLMは、学習した内容に加えて何かを追加することはできません。 LLMは、これらの欠点を克服するためにツールとAgnetsを使用してAPIとリアルタイムシステムにアクセスし、追加のデータを活用した回答を提供します。高度なプロンプトエンジニアリングとシステム設計により、Amazon BedrockのAnthropic Claudeモデルを使用してツールとエージェントを活用する方法を学びます。
はじめに
過去1年間で、LLMは信じられないほど速いペースで進化してきました。
LLMの発展と問題解決能力
最初のLLMは単にテキストで尋ね、テキストで答えるだけでした。情報については知る方法がありませんでした後、RAGの発展で学習されていない情報への回答も可能になりましたが、これもある程度整理されたDocumentsがなければ可能でした。しかし、今は変わりました。
LLMの限界は明確だった。単純な算数問題についても二桁算数は完璧でしたが、三桁、四桁など桁数によって精度が千差万別でした。その原因は、学習データ自体に2桁のデータがほとんどだったからです。これにより、LLMは、非常に単純な問題についても学習した内容がないと、回答精度が低下する可能性があることを確認しました(2022 MRKL Paper)。だから私たちはツールという概念を導入して高精度を達成したいと思います。
Balloon Effect(バルーン効果)
以前は、ツールを使用して学習していないデータやリアルタイムデータに対応できるように改善しました。だから今、すべてが完璧ですか?そうではありません。一つの問題を解決したところ、別の問題があちこちに生じました。まるで片側を押すと反対側が膨らむ風船のように。
最初の問題はHallucinationです。たとえば、「あなたは電卓を持っています。数学の質問をしたら、電卓を使用し、電卓を使用するときに「計算、式、数字、数字」の形で答えてください。同じものを作成して答えを出力します。
2番目の問題はPrompt Injectionです。すべての情報を1つのプロンプトに追加するには、ユーザーがツールについて質問する場合は、公開されてはならない情報まで回答に含めることができます。
3番目の問題は過度の入出力です。複数の情報をプロンプトに入れると、入力トークンの量が多くなり、それによって遅延時間が長くなり、応答が一貫していないため、応答解析のために特定の構文が必要になり、出力トークンまで多くなりました。
Function Call
Tool UseがToolを使用する方法についての内容である場合、Function CallはTool Useをどのように実装しますか?の内容です。基本的な動作方法は次のとおりです。
- ツール専用の特別なフレーズをシステムやユーザーの質問とは別の部分として追加します。
- モデルは、ツールが提供されたら使用できるように学習されている必要があります。
- Stop reason は解析が容易でなければなりません。
Function Callは次の順序で動作します。
デフォルトでは、プロンプト内にFunction Call用のSyntaxを追加し、利用可能なfunctionを指定します。
ユーザーメッセージを含むModel Invokeを行うと、
モデルはFunction Call構文で答えます。
モデルの応答テキストを使用して、応答構文がFunction Callに関連しているかどうかを確認します。
応答構文がFunction Call関連の場合は、特定のAPIを呼び出します。
APIを介してデータを収集し、もう一度モデルに情報を渡します。
最後に、モデルはリアルタイム情報を含む応答を出力します。
もちろん、Tool Use(Function Call)とエージェントは同時に利用可能です。
まとめ
一般に、生成型AIに利用するRAG技術は、先制的に文書を整理して特定のDBに保存する必要がありました。しかし、今回のセッションで確認したAgentとToolを活用した方法は、別途の作業なしでリアルタイムデータを活用できないLLMにリアルタイムデータを提供し、複雑な問題に対して高度化されたレスポンスができるようにする上でRAG技法より即時の活用と修正これが可能だと思われます。 ToolとAgentsを適用する過程でコード実行過程やその他のコンテキストが追加されることにより、従来になかった幻覚現象、Prompt Injectionなど新しい問題が発生する可能性がありますが、これらの問題点が発生しても、ToolとAgentsは今後LLMの性能改善とワークロードの効率化に重要な役割を果たすことが期待されます。
記事 │MEGAZONECLOUD AI & Data Analytics Center(ADC) Data Engineering 2 Team チョン・ジソン マネージャー