0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GastroHealthシステム(マルチエージェント部分)

Posted at

はじめに

単一のエージェントではなぜ不十分で、なぜ複数エージェントのシステムを構築する必要があるのか。この問題はよく聞かれます。私はその理由として二つの要因を考えています。一つ目は、エージェントシステムというのは、実際にはLLMを用いたシステムだという点です。また、LLMはそれぞれ得意分野が異なります。例えば、Claudeはコーディングが得意で、Geminiは推論が得意です。使用している環境によっては、一つのモデルだけでは足りない場合があります。二つ目は、ユーザーのクエリが複雑な場合がある点です。こうしたクエリや質問を解決するには、複数のステップが必要になることがあり、各ステップで異なるLLMを使う場合があります。以上が、マルチエージェントシステムの必要となる理由です。

構築

私のシステムでは、レシピの生成やユーザーの複雑な問題への対応において、より良い生成結果を出すためにマルチエージェントを用いるよう設計しました。例えば、ユーザーが「糖尿病を患っていて気持ちも落ち込んでいる。今日は晩ご飯に何を食べたほうがいいか」と質問をした場合、どう回答すればよいでしょうか。この問題は実際には三つの側面があります。心理的情報、病気、そしてレシピ・栄養の側面です。この問題を解決するだけなら単一のエージェントでも対応できると思いますが、各側面をそれぞれのエージェントに担当させれば、回答の精度を上げられます。さらに、専門特化したLLMを使えば、例えば医療論文を学習済みのLLMを医師エージェントとして用いることで、一般的なLLMと比べて、より正確な生成結果を出せる可能性があります。このアイディアに基づいて、このマルチエージェントを設計しました。
以下の図を説明します。
image.png
私のシステムは複数のLLMを使います。推論(Reasoning)モデルと非推論(Reasoning)モデルを使い分けています。推論モデルの特徴は、生成時にまず内容トークンではなく推論トークンを生成し始め、推論プロセスの後に内容の生成を開始する点です。このモデルは非推論モデルと比べて、生成は遅い一方で品質が高い傾向があります。そこで私はこの特徴を活かし、この推論モデルにSupervisorとSummaryの二つの役割を持たせています。まず、ユーザーが複雑なクエリを入力すると、Supervisor(推論モデル)が問題を分析し、各エージェントが解決できる小さな問題に分割します。次に、そのサブ問題を専門エージェントへ送ります。専門エージェント(非推論モデル)がそれぞれ解決した生成結果を、最後に推論モデルがもう一度統合し、最終的な回答を生成します。専門エージェントは非推論モデルを使っています。この複数のエージェントを構築するために、LangGraphというフレームワークを使っています。このフレームワークの良い点は、各LLMの生成結果を可視化できる点です。そのため、バグを取り除く際、どの段階でどのLLMの生成に問題があるかをすぐに把握できます。

最後

エージェントシステムはLLMの能力と密接に関係しています。より性能の高いLLMを使えば、より良いエージェントを構築できます。現在はさまざまマルチモーダルエージェントがあり、例えば画像を認識でき、音声を理解てき、文章も理解できます。また、現時点で最も高度なエージェントの例としては、自動運転やロボットが挙げられると思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?