【検証：ChatGPT】AIとの効果的なコミュニケーション方式とは②

前回記事：[【検証：ChatGPT】AIとの効果的なコミュニケーション方式とは①](https://qiita.com/motonobu_ut/items/fd64b75249db54e0caee)

# はじめに
ChatGPTなどの大規模言語モデル(LLM)の発展に伴い、直接的あるいは間接的にAIとコミュニケーション[^1]する機会が増加していくことが予想されます。本記事では、AIとの「効果的なコミュニケーション[^2]」の方式を見つけるため、シチュエーションとUIに着目し、長所と短所について検証[^3]しました。

# 問題設定
本記事では、1人の人間とAIとのコミュニケーション方式を、AIエージェントの数に基づいて場合分け[^4]し、検証します。以下に場合分けとシチュエーション例を記載します。また、UIについて、言語モデルだけを使用する場合と、3Dプラットフォームを活用した場合を比較します(以降前者を「**テキスト形式**」、後者を「**3D形式**」と呼びます)。検証での議題は、全く知らない状態からどれだけ知識や見識を得ることができるかを確認するため、著者の全く専門外の領域である「日本のファッションの歴史」としました。

１．単一エージェント：チャット、電話、面談など
２．複数エージェント：打ち合わせ、セミナーなど
３．多数エージェント：講演、放送など

# 検証環境
- 言語モデル：ChatGPT API (gpt-3.5-turbo)[[参考1](#参考)]
- 音声認識：Whisper API[[参考1](#参考)]
- 3Dプラットフォーム：Unity Pro（エディターver：2021.3.0f1）[[参考2](#参考)]
- 3Dモデル：unity-chan（unitychan.unitypackage ver.1.1.1）[[参考3](#参考)]
- 合成音声：VoiceVox [[参考4](#参考)]（VOICEVOX:春日部つむぎ[[参考5](#参考)]）※本記事中に音声なし
- 口パク：uLipSync[[参考6](#参考)]
- 3D空間背景：Skybox AI(v0.3.0 alpha) [[参考7](#参考)]、Wispy Skybox [[参考8](#参考)]
- 画像生成：stable diffusion ver1-4[[参考9](#参考)]

# 検証１．単一エージェント
テキスト形式は、ChatGPTのデフォルトの使用方法で、議題についてテキストで質問しました。3D形式では、1体の3Dキャラクターと議題についてやりとりしました（デモ作成では、[[参考10](#参考)]を参考にさせていただきました）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/892617/d92c767d-08d2-c68e-0206-206d91df66e3.png)
**3D形式イメージ© Unity Technologies Japan/UCL**

#### 結果

||テキスト形式|3D形式|
|---|:---|:---|
|長所|- 回答が迅速<br>- ある程度長文でも対応可能<br>- ツールとして扱える|-「会話」感がある（気軽さが増す）|
|短所|- タイピングと読解に集中する必要<br>（「勉強」感がある）|- 回答にラグ(数秒〜)<br>- 長文を聞くと疲労（慣れが必要）<br>- 没入感がある分「ツール」と扱いきれない|

総じて、単一のエージェントとのやりとりについては、テキスト形式の方が使いやすい印象でした。3D形式では気軽さが増す印象ですが、背景や歴史がなく知識だけある相手と会話を続けると、音声アシスタントとの会話のような感覚になりました。
また、3D形式は、「発言」単位の入出力だとリアルタイムとは感じきれない部分が課題と感じました（現実では表情やジェスチャー、空気感などによってリアルタイムに会話が更新される）。工夫の余地は多分に残されていると思いますが、作り込むためのハードルは一定あるようです。

# 検証２．複数エージェント
テキスト形式は、異なる初期設定のエージェントと対話しました。「LLMエージェントがコミュニケーションする場が、アウトプットを向上させる」[[参考11](#参考)]ことを示唆する研究報告や、エージェント同士の対話によって回答を洗練させようとする試みがあります（Camel-AutoGPT [[参考12](#参考)]）。3D形式では、2体の3Dキャラクターと議題についてやりとりしました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/892617/c50f2372-6465-845e-a422-c6b35d9cc9a3.png)
**3D形式イメージ© Unity Technologies Japan/UCL**

#### 結果

||テキスト形式|3D形式|
|---|:---|:---|
|長所|- たまに単一エージェントの回答に含まれにくい要素を出す|- 気軽さがさらに増す印象（先の会話を見ながら聞き流し）<br>- 人間が会話に参加してもしなくてもよい|
|短所|- 重複内容が目立つ<br>- 革新的な効果があるというほどではない印象|- 会話を収束させるのに工夫が必要<br>- 気軽に「打ち合わせ」の代わりとして扱うことはできない|

総じて、テキスト形式では、API使用回数が増える割に単一のエージェントよりも優れている箇所が少ない印象でした。3D形式では、合成音声を出力させる前に今後の想定やりとりを表示させておくことで、発話前にこちらから会話の流れを変えることができますが、ゴールを設けていなければ会話が無限に続くので、その点は工夫が必要です。
また、単一エージェントと比較すると、話が深くなるようにそれぞれのエージェントの初期設定を工夫する必要があるので、その点も試行錯誤が必要です。
「打ち合わせ」の代わりとしての活用は、意思決定の部分に課題があるので、リハーサル用という印象です。アイデアとして、担当者に似せた性格を持たせたエージェントを複数用いて、多数決をとって意思決定するなどが考えられますが、AIのバイアスを一度通すことによる影響は解釈困難なため、おすすめはできません。

# 検証３．多数エージェント
これまでの検証から見えてきた、「複数エージェントではまれに良い結果を出す」という点と、3Dプラットフォームの「リアルタイム性」を両方満たすことができる例として、「コメント欄」を思い付いたので、実装してみました（本検証では、「3D形式」のみ）。
![3D_Gif](https://github.com/utmoto/HITL/assets/17790965/2b4d895b-b40d-4666-b354-a0f20cd1b389)
<strong>3D形式イメージ© Unity Technologies Japan/UCL</strong>

#### 構成
1.	ChatGPTに、議題についての解説（台本）を提案させる
2.	文や章単位で、画像生成AIを使用してイメージ画像を作成（スライド）
3.	読み上げられる台本や人間の発表内容を入力にコメント欄が更新
4.	コメント欄で質問がでると、コメント欄にその質問の回答がつく
5.	コメント欄は人間の音声入力や、その回答に対しても反応する

#### 全体結果
||3D形式|
|---|:---|
|長所|- 視聴の飽きが軽減する、知らない領域でも印象に残る|
|短所|- エージェントの数に応じてAPI使用回数が多くなる[^5]<br>- ある程度集中してみる必要がある<br>- 信頼性は高くない[^6]|

「議題」から台本とスライドを生成し、コメント欄をつけるところまで実装できました。コメント欄は「それらしく」機能している印象です。よく観察すると現実のコメント欄とは異なりますが、それを感じる前に次のコメントがつくので、個人的にはあまり気になりませんでした。信頼性の問題もあるので、そのままでは個人や内輪で議題のイメージを深めるために使用するのが妥当そうです。
また、検証を通して、多数エージェントを気軽に活用するには、以下が重要だと感じました。
- エージェントと向き合って会話しなくてもよい（知識やアイデアだけを活用する）
- 会話やコメントが表面的で一時的でもよい（現れてすぐ消える）
- 意思決定や責任が発生する要素を担わない
- 信頼性が高いと錯覚しないような使い方

## パターン別検証
コメント欄では、複数のエージェントの初期設定をうまくパターン化しないと、同じような内容のコメントが繰り返される現象が発生しました。以下にエージェントの初期設定のパターン別に長所・短所を記載します。エージェント設定はChatGPTに典型的な要素を列挙させて選出しました。

|パターン→|コメント欄らしく|業界別|アイディエーション|
|---|:---|:---|:---|
|エージェント設定|好意的なコメンテーター、荒らしなど|金融業、建設業など異なる業界の専門家|オープンエンデット、用語説明など|
|長所|動画サイトのコメント欄に近い印象|異なる業界の知見や発想が反映される（頻度としてはまれ）|専門用語への説明がつき、新しい観点がリアルタイムで喚起される|
|短所|知見が深まることはほとんどない印象|関係ないので判断できないor一般論で回答、となる場合が多く調整が必要|知らない領域だと何が新しいアイデアかを判断できない|





# まとめ
今回の検証の範囲では、「テキスト形式は単一エージェント（デフォルトの使い方）が最も取り回しがよい」という印象を受けました。2つ以上のエージェントを上手く活用するには、タスクごとの工夫が必要そうです。3D形式では、「効果的なコミュニケーション」という観点で、多数のエージェントを用いたアイディエーションが最も3Dにした意味を感じました。全く知らない領域でも、単語とイメージが紐づき鋭そうなコメントが付くとある程度楽しめることは発見でした。
また、デモコードの量は1,000行程度なので、比較的簡単に自動化コンテンツが作成できることを実感できました。今後も急速に発展することが予想される大規模言語モデルの活用方法の1つとして参考にしていただければ幸いです。

改善点やご質問などあれば、コメントいただければ幸いです。

# 参考
1.	Introducing ChatGPT and Whisper APIs https://openai.com/blog/introducing-chatgpt-and-whisper-apis
2.	Unity Pro https://unity.com/products/unity-pro
3.	unity-chan  https://unity-chan.com/  © Unity Technologies Japan/UCL
4.	VOICEVOX  https://voicevox.hiroshiba.jp/
5.	VOICEVOX 春日部つむぎ https://voicevox.hiroshiba.jp/product/kasukabe_tsumugi/
6.	uLipSync  https://github.com/hecomi/uLipSync
7.	skybox AI  https://skybox.blockadelabs.com/
8.	Wispy Skybox  https://assetstore.unity.com/packages/2d/textures-materials/sky/wispy-skybox-21737
9.	Rombach, Robin et al. “High-Resolution Image Synthesis with Latent Diffusion Models.” 2022 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) (2021): 10674-10685.　 https://huggingface.co/CompVis/stable-diffusion-v1-4
10.	【ChatGPTで感情・表情を生成・表現するAIキャラクター】一日で俺の嫁を作る方法・続　https://qiita.com/gyokuro338/items/50ff6f19b6e98cfabf32
11.	Nair, V., Schumacher, E., Tso, G.K., & Kannan, A. (2023). DERA: Enhancing Large Language Model Completions with Dialog-Enabled Resolving Agents. ArXiv, abs/2303.17071.  https://arxiv.org/abs/2303.17071
12.	Camel-AutoGPT  https://github.com/SamurAIGPT/Camel-AutoGPT
13.	【検証：Stable Diffusion】曖昧な文章に生成AIでイメージ画像をつけたらわかりやすくなるのか　https://qiita.com/motonobu_ut/items/0fea15bba0127d217e64


[^1]:本記事では 、「AIに議題を投げかけ、AIから知識や見識を得ること」を想定
[^2]:本記事では 、「人間が気軽に、効率よく、有益な知識や見識が得られること」とする
[^3]:検証での評価は主観的な意見のため、あくまでご参考としていただければ幸いです
[^4]:場合分けの定義は以下です
・単一：人間とAIの1対1のコミュニケーション
・複数：AI同士で相互作用可能だが、やり取り単位では1対1のコミュニケーション
・多数：人間とAIの1対多のコミュニケーション
[^5]:API使用料金は、本検証（デモ作成の試行錯誤含む）全てで3USD程度でした。Open AIの登録時にお試しで付与される18USDの無料枠には収まりましたが、同様の検証を試される際は、プログラムの停止し忘れに注意し、API使用上限を設定するなどの対策をとることを推奨いたします
[^6]:生成画像は意図通りの出力とならないことも多い[[参考13](#参考)]ため、言語モデル単体の利用よりも信頼性は落ちると考えます