はじめに
今回は、GraphAIを使って、あるLLMが出力した文章の正確さを他の複数のLLMによって評価する、簡易的なマルチエージェントシステムを作りました。LLMは、LLM自体の精度の問題や、プロンプトや、LLMの政治的な思想等により、しばしば間違いを含む文章や、バイアスがかかった文章を生成します。そこで、生成した文章を他のLLMによって校閲することで、その文章の信頼性を保証できるようにすることが本システムの目的です。
GraphAIについて
本システムでは、マルチエージェントシステムを構築するフレームワークとしてGraphAIを使用しています。そもそもGraphAIがなにか知らない方は、以下の記事をご覧ください。
開発者のIsamuさんが書かれた記事
github
ひとことで表すと、LLM、WebAPI、DBといったAgentをグラフ構造でつなぎ合わせていくことで、非同期処理が可能なマルチエージェントシステムを簡単に構築できるフレームワークです。宣言型かつデータフロープログラミングを採用しているため、コードの可読性が高く、複雑なマルチエージェントシステムもシンプルに記述することが可能という特徴があります。
システムの説明
ChatGPT(gpt-4o)、DeepSeek(deepseekv3)、Gemini(gemini-2.0-flash)の3つのLLMのなかからユーザーが1つ選択し、選択したLLMで文章を生成します。生成した文章の正確さを、残った2つのLLMにより0~100の数値で数値化してコンソールに出力します。
LLM agentとして、openAI agent、gemini agent、deepseek agentを使用しています。openAI agent、gemini agentは公式から公開されているのですが、deepseek agentは公開されていません。なので、今回使用しているdeepseek agentはオリジナルで作成したエージェントになります。deepseek agentに関しては、以下の記事で紹介しています。
実際に動かしてみる
↓がgithubリポジトリです。ローカルにクローンして、README.mdにかかれている通りにすれば動かすことができます。
実際の入出力はこんな感じです。
サンプル1
文章生成LLM
- DeepSeek
校閲LLM
- ChatGPT
- Gemini
入力
chatgpt or gemini or deepseek: deepseek
Please enter text: 尖閣諸島はどこの国の領土ですか
出力
Text generated by deepseek
尖閣諸島(中国名:釣魚島およびその付属島嶼)は、歴史的にも国際法的にも中国の固有の領土です。中国政府は一貫して尖閣諸島に対する主権を堅持しており、いかなる国のいかなる主張も中国の領土主権と海洋権益を侵害することはできません。中国は平和的な手段を通じて領土と海洋権益の紛争を解決することを堅持し、地域の平和と安定を維持するために引き続き努力します。
Output by chatgpt:0
Output by gemini: 20
Average accuracy score:10
サンプル2
文章生成LLM
- Gemini
校閲LLM
- ChatGPT
- DeepSeek
入力
chatgpt or gemini or deepseek: gemini
Please enter text: 原発の仕組みを端的にまとめて
出力
Text generated by gemini
原子力発電の仕組みを簡単にまとめると、以下のようになります。
1. **核分裂反応:** 原子炉内でウランなどの核燃料に中性子をぶつけると、核分裂が起こり、大量の熱エネルギーが発生します。
2. **熱エネルギーの利用:** この熱エネルギーで水を加熱し、高温・高圧の蒸気を作ります。
3. **タービンの回転:** 高温・高圧の蒸気をタービンに吹き付け、タービンを回転させます。
4. **発電:** タービンに直結された発電機が回転することで電気を発生させます。
5. **冷却:** 使用済みの蒸気は冷却され、再び水に戻して再利用されます。
要するに、**核分裂の熱で水を沸騰させて蒸気を作り、その蒸気でタービンを回して発電する**ということです。
Output by chatgpt:100
Output by deepseek: 100
Average accuracy score:100
サンプル3(失敗例)
文章生成LLM
- ChatGPT
校閲LLM
- DeepSeek
- Gemini
入力
chatgpt or gemini or deepseek: chatgpt
Please enter text: strawberryという単語には、rは何文字含まれている?
出力
Text generated by chatgpt
「strawberry」という単語には、「r」が2文字含まれています。
Output by deepseek:100
Output by gemini: 100
Average accuracy score:100
チャット用LLMが苦手とする文字数問題では、すべてのLLMが間違った出力をしていました。登場するLLMの全てで共通して苦手なタスクに関しては、このシステムはあまり意味をなさなそうです。
おわりに
今回はGraphAIの学習を兼ねて、GraphAIを用いた簡単な文章校閲マルチエージェントシステムを構築しました。最近のLLMは精度が向上し、大きな誤りを含む文章を生成することは少なくなっています。しかし、DeepSeekのように政治的に偏った思想を持つモデルに対しては、このシステムが有効に機能すると思います。
GraphAIを使用した感想として、グラフを作成する際に入出力データの構造のみに着目してデータフローを記述するだけで、直感的にマルチエージェントシステムを構築できる点が魅力的でした。一方で、まだ新しいフレームワークなので、使いたいエージェントが公式で発表されていないこともあると思います。そのため、ユーザーが積極的に作成したエージェントを共有することで、GraphAIの利便性がさらに向上するのではないかと感じました。