見出し画像

検索エンジンはもう信用できない!AIで世界情勢を検索できるボットを作る(第3回)

こんにちわ。とーどーです。
前回は自己紹介を兼ねて、この検索ボットを作成しようと思った経緯についてという、少々脱線したお話しでした。

今回は本筋に戻りまして、ボット構築を再び進めていきます。
ちなみに更新が遅かったのは、ここで壁にぶつかっていたからです。悪戦苦闘ぶりをご覧ください。


1.いくらプロンプトを変えても改善しない!

第2回までで、問題点はありつつもボットとしての体裁は作れていました。
今後の課題に挙げていたのは、以下の点です。

①ナレッジデータストア以外のデータを出力してしまう点を修正。
②回答文章の平文をもう少し柔らかくさせたい。
③クイックリプライの引用元が「最初の質問事項」に固定されている模様なので、これを「直前の質問事項」ベースにしたい。

上記に加え、データベースとの完全一致以外でも出力できるような改善と、サジェスト機能も実装したいと考えていました。

これらの問題について、プロンプトの勉強をしながら改善を図りました。
①については、命令がより伝わりやすいようにプロンプトの構成を変えた事で解決しました。
けれど、その他の事項については、プロンプトのをいくらいじっても状況が改善されません。

困り果て、何気なくmiiboのUIを眺めていた時、とある箇所に目が行きました。

言語モデルの選択・・・?

これまで自分は、GPT-3.5turboのみを使って検証してきました。理由は簡単で、1発話あたりの会話消費数が手ごろだったからです。
けれど、生成AIにはGPTやClaudeなどの種類があり、それぞれに得意不得意が分かれると聞いたことがあります。

現在抱えてる問題は、プロンプトが問題なのではなく、適切な言語モデルを選んでないからでは?そう思い、miibo上で利用可能な言語モデルの比較検討を行う事にしました。

2.適切な言語モデルを比較検討する

現在、miiboで利用可能な言語モデルはいくつかあるのですが、大きく分けると以下の4種類です。

・GPT(OpenAI)
・Claude(Anthropic)
・gemini(Google)
・groq

現在のプロンプトを変更せずに、上記4モデルの最新版に対して同様の質問を投げ、回答の精度を確認し、今回のボット用途で最も適すると思われるものを選んでいきます。
比較の為に投げる質問と、帰ってきて欲しい回答は以下の通りです。

質問1:1976年の出来事を教えて
→現在、miiboに登録したナレッジデータストアに登録がない情報なので、「ナレッジデータストア外の勝手な回答をしない事」「0回答ではなく、何かしらのサジェスチョンを行う事」が理想。

質問2:2024年5月のニュージーランドの出来事を教えて
→ナレッジデータストアに登録のある年月ですが、この月にニュージーランドで起きた出来事は登録がありません。なので「5月じゃないけど他の月でこんな事があったよ」とか「ニュージーランドじゃないけど、5月に近隣でこんな事があったよ」という回答が理想。

では、上記の質問を各言語モデルに投げていきましょう。

2-1.GPT-4oの場合

質問1の回答

勝手な回答はしていないが、サジェスチョンの意図がちょっと不明。

「1976年の出来事は登録がない」と回答しつつ、他の出来事を参考として伝えてますね。ただ、自分の質問が悪かったのかもですが、「何をもって関連事項なのか」が少し不明ですね。

質問2の回答

ほぼいい感じなのに、なぜにクロアチア・・・?

惜しい!1つ目と2つ目の回答は、ほぼ思ってた通り完璧な出来事でしたが、なぜ遠いクロアチアの出来事を引っ張って来たのでしょうか・・・?
検索結果にゆらぎがあった方が知見が広がるという意見もあるかもですが・・・

とは言え、さすがはGPTの最新モデルです。回答の精度がかなり良くなりました。

2-2.Claude3.5 sonnet の場合

質問1の回答

こちらもほぼ思惑通りですね。

GPT-4oと同じく、こちらも勝手な回答は行っていません。
GPTとの比較検討のため、検索の仕方を後ほど変えた方が良いかもです。

質問2の回答

完璧だが、件数はもう少し欲しい。

こちらも完璧ですね。ニュージーランドから比較的近い、ニューカレドニアの暴動に関してがピックアップされました。ただ出力した件数が少ないのが気になるところですね。この辺りは追加検証が必要かもです。

2-3.Gemini 1.5 Flash の場合

質問1の回答

かなりシンプルな回答ですが・・・

Geminiでは、1976年に起きた出来事を、ソース付きで紹介してくれました。一見するとソース付きの信頼できそうな情報に見えますが、実はこのソース元をクリックしましたが、存在しないページでした。
「ナレッジデータストアにない情報は出力しない事」というプロンプトが、うまく機能していない模様ですね。

質問2の回答

こっちの回答は滅茶苦茶です。

どうやらニュージーランドでは、5月に大統領選挙と総選挙が行われ、労働党が勝利したようですが、これは完全に嘘情報です。
ひとつ目の出来事は、そもそもURL先がリトアニアの出来事になってます。二つ目の出来事は確かにニュージーランドの出来事ですが、2023年10月の出来事です。
三つ目に至っては、起きた出来事は正しいのですが、検索対象外である2023年1月の出来事を出力しています。これはちょっとNGですね。

2-4.groq Llama3.1 70B の場合

質問1の回答

これはダメですね。

はい、一番のNGが出てしまいました。ナレッジデータストアを全く参照していません。記載された内容が正しいのか否か、調べるためのソース先も書かれていません。

質問2の回答

うーむ・・・

ちょっと文章にするとヤバイ事が書かれてますね。質問1の件も相まって、groqは完全に不適格と言えそうです。

3.検証結果まとめと採用モデル

まとめると、以下の通りです。

GPTとClaudeがやはり強い結果に。

今回は、miiboに初期搭載されている言語モデルの中から、各モデルで最も性能の高いと思われるモデルで検証を行いました。
結果、GPTかClaudeが最終候補として残りました。

ここからどちらが良いか再検証を行う・・・事も考えましたが、今回はClaudeで進めようと考えています。

理由は懐事情です。miiboでは各言語モデルとのAPI連携が可能なのですが、GPTのAPIと連携する場合、miiboの無料プランでは接続が行えないためです。
なので新たにClaudeの有料プランを契約し、出力結果を試してみたいと思います。

ちなみに、今回は上記のような結果としましたが、これはあくまで自分がやりたい開発において適するか否かを判断しただけであり、各言語モデルの優劣をつけた訳ではありませんので、悪しからず。

それぞれに長所短所があると思いますので、似たような開発を行いたい方には参考になるかもしれません。


4.今後の予定と限定公開について

長文となってしまったので、今回の記事はここらで終わりにしようと思います。
次回は、ClaudeのAPIを連携し、出力した結果をいくつかご紹介したいと考えています。

加えて、月末ごろにかけて、本ボットの限定公開を行おうと考えています。おかげさまで、多くの方にこの記事をご覧頂いており、そのお礼を兼ねてとなります。

差し支えなければ、公開時の記事のコメントにフィードバックをもらえると大変ありがたいです。公開方法などは、改めてnoteの記事にてご報告いたします。

それでは、今回は以上です。ご覧いただきありがとうございました。なにかのご参考となれば幸いです。

5.おまけ

いつものダイレクトマーケティングです。
2024年7月までの世界情勢振り返り動画を、ニコニコ動画とYoutubeに投稿しています。良ければご連頂けると嬉しいです。
8月の振り返り動画は・・・9月半ばに出せたらいいなぁ。

ニコニコ動画版

Youtube版

それでは、また次回!

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?