はじめに
先日のGoogle I/Oイベントで、GoogleのチャットボットサービスであるBardが日本語に対応したことが発表されました。
今回はGoogleのBardとMicrosoftのBingAIを使った時の、比較を行ってみたいと思います。
チャットAI
大規模言語モデルを各社が開発する中で、そのモデルを元に人との会話用に調整されたチャットボットサービスがGoolge、Microsoftから公開されています。
Goolgeの開発した大規模言語モデルであるPaLM2をもとに開発されたチャットボットがBardです。
そのBardが2023年のGoogle I/Oで日本語への対応、順番待ちの撤廃が発表されました。
ただし、2023年5月時点ではまだ試験運用とされています。
japan.googleblog.com
Microsoftが出資しているOpenAIが開発した大規模言語モデルであるGPT-4。それをもとに開発されたチャットボットがBingAIです。BingAIはEdgeの機能としてユーザを補助する副操縦士という位置付けになっています。
news.microsoft.com
BingAIはMIcrosoftEdgeアプリに搭載されていてPCではEdgeブラウザから、スマホやタブレットではEdgeアプリから呼び出すことができます。
比較
BardとBingAIに質問をしながら簡単なエラー対応を行い比較します。
今回の比較内容はDockerのコンテナ内でpythonが実行できないことを想定しています。
なお、回答は画像で表示しています。
Bardとのやりとり
ユーザ:dockerでpythonを実行することができないのですが何が原因だと考えられますか?
可能性のある一般的な原因を列挙しています。
ユーザ側の発話から得られる情報が少ないため、初歩的な原因から確認をしているようです。
ユーザ:実行しようとするとcommand not found と表示されています。
ユーザ側の発話意図としては、PythonコマンドがDockerコンテナで実行できないことを伝えたかったのですが、
情報が不十分なことが原因でdockerコマンドが実行できないと捉えられてしまいました。
ユーザ:dockerコマンドは実施できることを確認しました。
dockerコマンドは実行出来ることを伝えたことで、Dockerの中で問題が発生していることを伝えることができました。しかし、情報が不足しているためか一般的な返答になっています。
ユーザ:どのように確認すればいいですか?
それぞれの確認方法について述べています。
別の回答も生成されました。ユーザの発言がどの提案に対してなのか明確に示していないことから複数の回答が用意されたようです。
Bardの回答について
Bardの回答は箇条書きの場合、可能性のある一般的な内容を返答しています。
ユーザからの情報が少ないためか、一般的な返答が多いです。
そして、最後の行ではDockerサポートへの問い合わせを提案しています。
Bardを使って以下のような傾向があると感じました。
- 一つの発話に多く情報を詰め込み、一度の発話から解決を目指そうとしている
- ユーザの発話から読み取れる範囲で回答を生成する
- できるだけ一般的な回答を、複数生成し誤情報を回避しながら解決を目指す
- 指示語が不十分であれば解答案を複数用意する
BingAIとのやりとり
会話のスタイルは「より厳密に」に設定しています。
dockerでpythonを実行することができないのですが何が原因だと考えられますか?
ブラウザの副操縦士としてユーザを補助することが目的で作られているため、web検索から外部の情報を取得しています。
ユーザから与えられる情報が少ないため詳細な情報を要求しました。
command not found と表示されています。
dockerにpythonがインストールされていない可能性にすぐに到達しました。
web検索をしていないところから、最初の検索で取得した情報をもとに回答を生成しているようです。
Dockerfileをどのように記述すればいいでしょうか?
Dockerfileの記述例を示してくれています。
docker-composeを使う場合はどのような記述になりますか?
Docker-composeを使う時の方法について丁寧に示しています。
BingAIの回答について
Webの情報を参照し、回答の生成を行っているため最新の情報を含めることができます。
また、ユーザの情報が不足している場合は、ユーザにさらに情報を求めることが対話の中で出来ています。
そして、最後には自身でより詳しく調べるように促しています。
BingAIを使って以下のような傾向があると感じました。
* 対話を繰り返すことでユーザの要求に応えようとしている
* ユーザの発話から読み取れないことは尋ねる
* 情報を十分に得てから回答を一つ提案している
* 暗黙的な内容を理解して回答している
おわりに
BardとBingAIを比較しました。
Bardは一度の発話で正確な回答を目指すため、一般的な回答の羅列になっているように感じました。より詳しく情報を与えることで効果的に機能するかもしれません。また、web検索による情報の取得を活用することで、より正確に回答できるのではないかと思います。
BingAIは対話を繰り返すことでユーザを満足させる回答を生成しているように感じました。あまり詳しく知らないことを、対話を繰り返しながら探っていく使い方に向いていると思いました。
今回の結果をもと、BingAIの方がエラーの原因を探したり、コードを書く時の手助けになると思いました。