ChatGPTに最新の専門知識を組み込もう!

はじめに

こんにちは!ambrの VRxAI Laboratory でAIの開発に取り組んでいる木村と申します。第一弾のボイスコマンドプロジェクトに引き続き、現在は第二弾として、ChatGPTを活用して自由に音声会話ができるNPCの開発に取り組んでおります。そのモックプロダクトとして、当社が開発したxambrプラットフォームに関する質問に回答してくれるアテンダントNPCを開発いたしました。

本記事ではその開発で取り組んできた内容の中でも、回答の正確性向上や、専門的な内容についても回答できるようにすることを目的に採用した、Search&Ask法を中心にご紹介いたします。

音声会話NPCのイメージ

専門的な内容も回答できるBotを作ってみた!

ChatGPTを利用する際に、最新の内容や、専門的な内容については上手く答えてもらえなくて困ったことはありませんか?今回はその弱点を補う方法として、’Search & Ask’という方法を採用いたしました。この方法を用いることで、以下のような質問回答アテンダントを作ることができました。実際に会話してみると、次のようになりました。

Q.「こんにちは!」

A.「こんにちは!どのようにお手伝いできますか?」

Q.「xambrの実績ってどうなんですか?」

A.「xambrは、東京ゲームショウの25周年記念イベント「TOKYO GAME SHOW VR 2021」やトレーディングカードゲームマジック:ザ・ギャザリング」のバーチャル・アート展など、さまざまなプロジェクトで活用されています。具体的には、TOKYO GAME SHOW VR 2021では4日間で21万人以上の参加者があり、そのうち66.7%がVRバイスを利用して体験しました。また、「マジック:ザ・ギャザリング」のバーチャル・アート展では、総勢83名のアーティストによるカードアートを展示しました。これらの実績から、xambrは法人向けメタバース構築プラットフォームとして成功していると言えます。」

Q.「Grab & Playとはどのような機能ですか?」

A.「Grab & Playは、xambrの主な機能の一つであり、VRワールド内で画像や動画を見る際にポインターで対象物を掴んで自分の正面にもってくることができる機能です。仮想空間内で画像や動画を見るための最適な方法として考えられ、xambrの基盤に実装されています。」

Q.「xambrの名前の由来は?」

A.「記事にはxambrの名前の由来についての情報はありません。すみませんが、お答えいたしかねます。」

評価まとめ

  • ChatGPT の学習内容に含まれていない内容についても、高い精度で回答している
  • 知らないことについては、無理をして回答せず、知らない旨を回答している
  • 特別にキャラクターを作りこんでいないにもかかわらず、挨拶にも自然に応答できている

以上のように、Search & Ask 法を採用することによって、通常のGPTモデルでは回答が難しい内容にも対応できるBotを作成することができました。

Search & Ask 法って?通常のChatGPTと何が違うの?

ChatGPTのような大規模言語モデルは、大量の文章データを学習することで、文章の内容を理解したり、自然な文章を作成することができるようになっています。その一方で、学習時データに含まれていなかった最新のデータや専門的な内容に関しては回答が難しくなるという特徴があります。これを補うために、Search & Ask 法では、回答に必要になる記事をSearch(検索)し、検索された記事をヒントとして加えてAsk(質問)します。そのため、Search & Ask 法はChatGPTをそのまま使う方法と比べると、以下のような特徴があります。

  • 検索された記事をヒントにして回答を作成するため、
    • より正確な回答をすることができる
  • 記事は自由に作成することができるため、
    • レーニング時に含まれていなかった最新の内容も回答できる
    • 専門的な内容についても回答できる

Search & Ask 法のプロセス

  1. 回答内容の参考として利用する記事を事前に作成

    1. Wikipediaのように、セクション毎に分けた記事を作成する。
    2. セクションごとにEmbeddingされたデータを用意する。(EmbeddingについてのOpenAI公式説明ページはこちら
      xambrプロダクトに関する記事イメージ
  2. Search

    1. ユーザーからの質問テキストをEmbeddingする。
    2. 質問Embeddingを、上記で作成した記事セクションEmbeddingと比較し、関連度の高い記事を検索する。
  3. Ask
    1. 質問テキストと検索された記事セクションからプロンプトを作成し、ChatGPTに投げかけ、回答を得る。
      実際に作成されたプロンプト例

Search & Ask 法に関する詳しい内容についてはこちらに記載されています。

ファインチューニングはしないの?

Search & Ask 法以外にも、上記のChatGPTの弱点を補う方法として、追加で学習を行うという’ファインチューニング’も挙げられます。ファインチューニングすることによっても、最新のデータを加えたり、専門的な内容を学習させることは可能ですが、Search & Ask 法のほうが回答の正確性が高くなります。これは、ファインチューニングではあらゆる質問に回答できるようモデル内に情報を’記憶’させる必要がある一方で、Search & Ask 法では回答時に必要な情報を参照することができることが理由です。その他にも、ファインチューニングは、トレーニングやモデルの管理などが大変な一方で、Search & Ask 法では記事を準備し、差し替えるだけで更新ができるという、運用面での利点もあります。

他に活用方法は?

今回はSearch&Ask法を使って、専門的な内容にも受け答えができるBotを作成しましたが、最新の内容も回答できる、専門的な内容も回答できるという特徴を利用すれば以下のような活用例が考えられます。

  • 社内ナレッジに関する質問回答Bot
  • カスタマーサポートBot

利用料はどれくらい?

Search & Ask 法では、通常の方法でChatGPTを利用する場合に比べて、Embedding費用と、追加のprompt input費用がかかってきます。Embedding費用はChatGPT利用料に比べると無視できるほど小さく、最終的な利用料はおよそ以下の通りとなります。

  • 通常のChatGPT: 約3円 / 会話
  • Search & Ask: 約11円 / 会話

概算では以下の通り想定いたしました。それぞれのAPI使用料についてはこちらのページを参考としております。

  • Embedding: $0.0001 / 1K tokens
    • 参考: スーパーマリオwikipedia記事 34,468 tokens(28,668 文字) → $0.0034 / wiki記事
    • 質問テキストEmbedding 料金: およそ 1円 / 3000 質問
      • 参考: ”xambrって他者のプロダクトと比べてどうなんですか?” → 32 tokens(27文字)
  • ChatGPT GPT-4: Input $0.06 / 1k tokens, Output $0.12 / 1k tokens
    • 1会話のやりとりあたり Input 1k token, Output 100 tokens
通常のChatGPT Search & Ask
記事のEmbedding 0円 0.5円 / 記事
質問テキストのEmbedding 0円 ≒0円
ChatGPT input 約1円 / 会話 約9円 / 会話
ChatGPT output 約2円 / 会話 約2円 / 会話
合計 約3円 / 会話 約11円 / 会話

最後に

今回はSearch&Ask法により、最新のデータや専門的な内容についても回答することができるBotを作成することができました。今までもChatGPTを活用した質問回答Botは多く開発されてきましたが、当手法により更に使い勝手の良いBotを作成することができるようになり、開発のスピードが更に加速していくことが期待できます。これからも日々進化するAI技術を取り入れ、ambr も更に進化していきます。引き続き、皆様の期待に応えられるよう努力して参りますので、どうぞご期待ください!