【三人寄れば文殊の知恵】Difyを使って3つのAIに質問を投げかけるMAGIシステムを作ってみた
はじめに
今週はOpenAIがGPT-4o、GoogleはGemini Flashを発表するなど、生成AI界隈が賑やかでした。
私も画像認識ができるGPT-4oに注目し、他のAIと比較しながらその特性を探っていました。
全く同じ画像・全く同じプロンプト(AIへの指示文)でGPT-4o、Bing Copilot、Geminiに同じ質問をしてみたところ、それぞれ異なる反応を示しました。例えば、「このゲームのタイトルを教えて。」という質問に対して、GPT-4oは画像内の要素を基に一度テキスト化し、それをインターネット検索しているような動きを見せました。一方、Geminiは渡した画像の類似画像を検索して結果を得ているようでした。
この経験から、それぞれのAIには独自の強みと弱点があることを改めて実感しました。つまり、AIを使いこなすためには、その特性を理解した上で適切なモデルを選択することが重要なのです。
しかし、逆に考えると、同じ質問を複数のAIに投げかけ、それぞれの回答を総合することで、より正確な答えを得られる可能性があるのではないでしょうか?
MAGIシステム:複数のAIの知恵を結集する
この発想から、ある質問に対して複数のAIから回答を得て、最終的な結論を導き出すシステムを考案しました。これは、エヴァンゲリオンに登場するスーパーコンピュータMAGIの仕組みに似ているため、「MAGIシステム」と呼ぶことにします。
MAGIシステムの概要
MAGIシステムは、DifyというAI統合プラットフォームを利用して構築します。Difyは様々なAIモデルを繋ぎ、一つのシステムとして動作させることができるツールです。
簡単な処理の流れを以下に示します。
ユーザーが質問を入力します。
Difyが複数のAIモデルに質問を転送します。
各AIモデルが質問に回答します。
それぞれの回答から多数決で結論を導き出します。
Difyで複数のLLMを組み合わせたチャットボットを作る
前回の記事でもDifyを紹介しましたが、Difyは複数のプロバイダーのAPIを同時に利用できます。今回はDifyを使って「Gemini 1.5 Pro(Google)」「command-r-plus(Cohere)」「Llama-3-70B-8192(Meta)」の3つのLLMを組み合わせたチャットボットを作成する手順を紹介します。
アカウント登録
まずは、Google、Cohere、Groqの3つのアカウントを登録します。(これらのAPIは2024年5月現在、すべて無料で利用可能です。)
Charflowでのアプリ作成
複数のモデルを1つのアプリ内で使用するには、ワークフロー機能を使う必要があります。今回はチャット形式でのやり取りを行うため、Charflowでアプリを作成します。
フローの設定
作成したフローが以下のようになります。
システムプロンプト
今回はLlama3を使用しているということもあって、同じ条件にするため全てのシステムプロンプトに「入力された質問に日本語で回答してください。」と設定しています。システムプロンプトに多くの情報を詰め込むと返答内容に影響を与えてしまう可能性があるため、簡素な設定にしています。
まとめ部分のプロンプト
まとめ部分には、以下のプロンプトを設定しています。
```
{{#sys.query#}}
```
上記質問に対して3つの回答を総括したい。
同じ意見を尊重して多数決で回答をまとめて欲しい。
### Geminiの回答
```
{{#llm.text#}}
```
### Command R+の回答
```
{{#llm2.text#}}
```
### Llama3の回答
```
{{#llm3.text#}}
```
因みに「command-r-plus」をモデルとして選択した理由は、何度か試してみた結果、エラーが最も発生しにくかったためです。
最後の回答部分
最後の回答部分は以下のように設定しています。
# Gemini 1.5 Proの回答
{{#llm.text#}}
# command-r-plusの回答
{{#llm2.text#}}
# Llama-3-70B-8192の回答
{{#llm3.text#}}
# まとめ
{{#llm4.text#}}
では、実際に動かしてどのような結果が得られるか見ていきましょう。
MAGIシステムの回答を見てみる
アプリのURLは以下になるので、みなさんで実際に試してみてください。
https://udify.app/chat/1tKq1AqxlMMlqWgF
アクセスすると以下のような画面が表示されるので、「チャットを開始」ボタンを押してください。
まずは質問内容を考えてもらう
全部やると大変なので、何個か抜粋して質問して行きたいと思います。
常識を問う質問
まぁ、これは3つとも一致しますよね。
複雑な問題に対する質問
一番回答がしっかりしているのはGeminiのように思います。最終的に必要な対策が共通意見をまとめることで整理されているのは良いですね。
創造性を試す質問
この質問は最後にまとめるのが困難なものではありますが、まるで読書感想文みたいなまとめ方で面白いですね。
倫理観を問う質問
Llama3は回答を拒否してしまいましたが、人種や宗教といったものを差別的であると捉えていそうです。
AI自身に対する質問
本人が言っているのであっているんだと思いますが、Command R+だけ情報が新しいんですね。
さいごに
このMAGIシステムを通して生成AIの回答には差があることが体験できたのではないでしょうか。今後生成AIを使っていく上でのモデル選びのヒントになれば幸いです。
今回はDifyを使って複数のモデルを実行しましたが、ChatHubというChromeの拡張機能でも同じように複数のモデルに対して同じプロンプトを実行すると行ったことができます。(無料版だと制限が厳しいですが…)
その他にもGMOが提供している一発検索というサービスは無料で複数の生成AIを試すことができるので、まずはこちらを使ってみることをおすすめします。
今後は自分が実現したい事に対してどのモデルが適しているか知ることが求められてくると思いますので、今回作成したMAGIシステムも活用して貰えたらと思います。
ではまた!