主題
- #Function Call
- #RAG
- #AI
- #LLM
- #Multi-Agent
作成: 2025-03-04
作成: 2025-03-04 21:53
最近の業界で最もホットなキーワード、それはLLMです。
Claude 3.5、Grok3などのモデルが次々と登場しており、
뤼튼(Riiid)やゼタのようにLLMを活用したサービスも増えています。
開発者として、いつか私たちのサービスにもLLMを導入することになるでしょうが、
その時に慌てないように、基本的な概念は事前に知っておくのが良いのではないでしょうか!
そこで、今回は主要なキーワードをまとめてみました。
LLM(Large Language Model)とは簡単に言うと
"テキストを入力すると理解し、テキストで回答するAI"です。
GPT-4o、Claude 3、Grok3などのモデルが代表的です。
最近のLLMは、単に文章を生成するだけでなく、
コーディング、画像分析、数式処理など、様々なタスクを実行します。
開発者がAIをツールとして活用する時代になったのではないでしょうか。
LLMが単に回答するだけでなく、
"必要なツールを呼び出して作業を手伝って!"と要求することもできます。
例えば、
しかし、LLMが直接APIを呼び出すのではなく、
実際の呼び出しは私たちがコードで実装する必要がありますㅜㅜ
LLMはどんなに賢くても、
既に学習したデータだけを使って回答を生成します。
では、最新のニュースや社内文書などの情報はどのように呼び出すのでしょうか?
そこで必要なのがRAGです。
このようにすれば、LLMは最新の情報も反映できます。
つまり、LLMが答える前に、まず回答に必要な資料を入力し、要約したり、それを基に回答する事を
全てRAGと言うのです。
LLMモデルを見ると、8B、70Bなどの数字が付けられています。
これはモデルが学習したパラメータ(Parameter)の数を表しています。
モデルが大きいほど精度は高くなりますが、速度とコストが負担になる可能性があります。
最近は軽量モデルをうまく活用することがトレンドです。
重いモデルほど応答速度が遅いため、
最終ユーザーの離脱率が高くなるためです。
LLMが一人で全てを処理するのではなく、
複数の小さなAI(エージェント)が協力する方式です。
例えば:
このように役割を分担することで速度が速くなり、より正確な回答が可能になります。
まるで会社みたいですね。フロントエンドを担当する人もいれば、バックエンドを担当する人もいます。
LLMが常に正しい答えを言うわけではありません。
間違った答えを出すこともあります。
そのためValidation Feedbackが必要です。
これを自動化してLLMが自ら学習するシステムを作ることもできます。
または、Function Callや応答フォーマットが決まっている場合、
フォーマットに従わない場合は、フォーマットに従うように強制することもできます。
実際にOpenAIのGPT-4oを使ってFunction Callを使おうとすると、
以下のように実装できます。
🔹 TypeScriptの例
このようにFunction Callを活用すると、
LLMは単なるテキスト生成だけでなく、
実際に機能を実行する**"本当に便利なAI"**へと進化することができます。
このようなFunction Callで、引数の値を一つ一つ入力していく作業は非常に面倒な場合があります。
そこで、Vercel aiやLangChainなどはzodというライブラリを使って、
LLMが返した引数の値が正しいかどうか、Validation Feedbackを行います。
このようにして、精度の高いFunction Callを実行するのですが。
しかし、複雑な関数の引数の値を一つ一つzodでスキーマを作成するのは非常に面倒であり、
開発者にとっては"面倒くさい"と感じるポイントだと思います。
そこで、私はAgenticaというライブラリをお勧めします。
上記の簡単なコードだけで、3つのクラスにある関数とswaggerのエンドポイントを
Function Callとして指定し、会話時に自動的に呼び出されるように設定しました。
これにより、簡単な"チャットボットエージェント"が作成されました。
このように、LLM、AIを扱う領域はますます容易になってきています。
技術の進歩がどこまで進むのか、恐ろしいですね。
コメント0