LLMを多用して記事を作成しました。
AIの進化に伴い、複数のAIモデルを組み合わせたシステムの開発が進んでいます。特に、エヴァのMAGIシステムのように複数の大規模言語モデル(LLM)の出力を利用した意思決定システムの実装例が増えてきています。
従来のシステムでは、大きく2つの方式が一般的です:
- 統合判断方式: 複数のLLMの出力を参考にして、最終的な判断を1つのLLMが行う
- 投票方式: 複数のLLMが1つの議題に対して投票を行い、その結果で結論を出す
今回紹介するシステムでは、LLM自体が他のLLMの回答を評価し、投票するアプローチを採用しています。この仕組みにより、YES/NO質問以外の複雑な意思決定にも対応できるシステムを構築することができます。(何番煎じ感)
システムの特徴と仕組み
このシステムの特徴は、各LLMが他のLLMの回答を見て、自身がどの回答に投票するかを決めるプロセスを導入した点です。各LLMが単なる生成器ではなく、評価者としても機能します。
ワークフロー
具体的なプロセス
- 各LLMが独自に回答を生成: 複数のLLMが個々に回答を出します
- LLMが他のLLMの回答を評価: 各LLMは、他のLLMの回答を見て、それを評価します
- LLMが自ら投票先を選択: 評価に基づき、最も信頼できると考える回答に投票します
- 専用LLMによる最終判断: 投票集計用のLLMが投票結果を分析し、最も適切な回答を最終結果として選択します
この仕組みにより、単純な多数決ではなく、投票パターンや各回答の特徴を考慮した、より洗練された選択が可能になっています。
従来方式との違い
- 従来の方式: 各LLMが生成した回答をもとに、1つのLLMが総合的な判断を行う、またはLLMが単純に投票を行う
- 新方式: 各LLMが他のLLMの回答を評価し、投票先を選択することで、より詳細な判断が可能
システムの特徴
- 複雑な意思決定への対応: YES/NO形式以外の、複数の選択肢がある問題にも対応可能
- 多様な視点の統合: 異なるアルゴリズムやデータセットを持つLLMの意見を統合
- 評価プロセスの導入: 単純な多数決ではなく、回答の質も考慮した選択が可能
Difyを活用したシステム構築
このシステムは、DifyというAIプラットフォームを使用して構築されています。Difyは複数のAIモデルを組み合わせ、視覚的にフローを設計できるオープンソースのツールです。
Difyでのシステム構築ステップ
- アプリケーションの作成: 適切なアプリケーションタイプを選択
- フローの設計: WorkFlow機能を使い、複数LLMを組み合わせた意思決定フローを設計
- モデルプロバイダーの設定: 各LLMのAPIキーorローカルLLMを設定し、使用するモデルを選択
実装
全LLM回答
投票先検討
集計
- ブロック図の命名は適当です。
- ローカルLLMを使用しているのは、自分のPCで動くモノが好きだからです。
- 大手APIを使用した方が早いし良い回答になります。
- IFブロックなどで回答を無理やり遅延させていますが、他に良い方法があるかもしれません。
- プロンプトやyamlは記事が煩雑になるので割愛。
動作
- 質問を入力すると、3つのLLMで会議して一番良かった回答を出力してくれます。
- 回答ブロックを適宜置くことで、進行ステータスを示せます。
- 会議している感を出すポイントです。
- 各LLMの投票時の根拠を回答ブロックで出力しても良いです。
- 回答が煩雑になるので削除しました。
まとめ
- Difyを活用することで、複数のLLMを組み合わせた投票システムを比較的容易に構築できます。
- 普通に全てのLLMの回答入力にして再度回答させた方が出力の質が良くなります。