ChatGPT + Embeddings で蜜源・花粉源に詳しいチャットボットをつくる 前編
すぐにチャットボットに触ってみたい方はこちら。
ChatGPTは何を聞いても流暢に返事をしますが、間違ったことを答えることもしばしば。
そこで、あらかじめ情報を与えた上で質問することを考えます。
情報を与えた上で質問をすると回答の精度が良くなる
例えば以下のように太郎と花子の誕生日をrole: systemで与えておきます。
{
"花子": {
"誕生日": "1977-12-15"
},
"太郎": {
"誕生日": "2010-07-07"
}
}
手はじめに以下の質問。
お次は、
年齢や名前をふまえた上で回答しているように見えます。
適当な情報を与えた上で質問をすると回答の精度があがりそうですね。
次に、回答に必要な情報をどうやって選ぶか考えます。
質問1に答えるには太郎と花子、2人の誕生日が必要ですが、2と3では一人だけの誕生日で十分です。
この例では情報が少ないので選別する必要がないですが、実用を考えた場合はそうもいきません。現在(2023/06)ChatGPT3.5に一度に与えられる情報は日本語の場合15,000文字程度です(質問と返事含めて)
そこでEmbedding !
embedding(埋め込み) といきなり言われても困ると思いますが、語りたいことが多すぎるので説明しないことにします・・・というわけにもいかないのでちょっとだけ。
embeddingとは言葉どうしの計算ができるようにベクトルに変換する操作です。ベクトルに変換すると次のような計算ができるようになります。
国王 - 男 + 女 = 女王
私達はこの式が成り立つことを知っていますが、字面のみをなぞった計算ではこの結果にたどり着くことができません。
男王 - 男 + 女 = 女王
これであればembeddingしなくても計算できますが、私達は通常、男王という言葉は使いません。
"私達が使っている言葉"を計算可能にしてくれるのがembeddingです。
これを使って、質問に答えるために必要な情報をあらかじめ選んで与えることができます。
蜜源・花粉源に詳しいチャットボットつくる
ここからは実際の作り方です。
過去に手掛けたサイトみつばち百花の蜜源・花粉源データベースをembeddingしてChatGPTと組み合わせチャットボットを作ってみます。
ですが、記事が長くなるのでここから先は別記事でお送りします。
みつばち百花、作ったのは2013年。ずっと気にかけていたんですが活かし方がわからず。今回このような形で紹介できるのが嬉しいです。
皆さんの中で持て余しているデータベースがあればぜひChatGPT + Embeddings 試してみてください。