子供の小遣いの値段で簡単に実現!
ChatGPT + LlamaIndex 0.6 による
チャットボット
の実装
徳和 貴成(とくわ たかなり)
成果が出ないのに
お金だけかかり続ける・・
ベンダーまかせ
上手くいかないと
「データが適切でない」
と言われる
毎月かかる維持費 蓄積されないノウハウ
ひたすらPoC
ブラックボックス
ChatGPTで
自分で実装すれば
いいんでない?
しかし、ChatGPTは一般的な情報しか学習していないという問題がある
モデル自体を再学習させる方法
最新のGPT-3.5、GPT-4に対応しておらず、利用料も高い
ファインチューニング(Fine-tuning)
インコンテキストラーニング(In-Context Learning)
この問題を解決するための、外部から新しいデータを学習させるための
以下の方法がある
チャットの文脈の中で情報を与え、それを元に回答を返せるようにする方法
比較的新しいGPT-3.5-turboというモデルが利用でき、通常のAPIの利用範
囲で簡単に実装可能
LlamaIndex(リャマインデックス) v0.6
ChatGPTを利用して質問応答チャットボットを簡単に作
成できるライブラリ
回答させるための元テキストをインデックス化し、Embeddding
(エンベッティング)=「埋め込み」という技術でベクトル表現
に変換、そこに質問(クエリ)を投げることにより、そのベクト
ル表現を元に類似した文の検索を行い回答を返す仕組み
インコンテキストラーニングが超簡単に実装可能
習うより
慣れろ!
「名古屋」についてのチャットボットを作ってみる!
基礎情報として、インターネットで名古屋の情報を片っ端からコピペして1つのテキス
トファイルにまとめて保存。気持ち、グランパスの情報多め。
このあたりの情報はおそらく学習済のため、ゼロショットでも問題ないが、
正確性を高めるため、記述する。
ChatGPTは鎌倉ハムKウィンナーのCMで有名な「山田昌」を知らない!
でたらめ
な出力
名古屋
としては
大問題!
「山田昌」についての情報をテキストに追加しておく
まずはインデックス化、たったこれだけでインデックス化完了!
先ほど用意した
テキストファイルを
dataフォルダに保存しておく
インデックス化したファイルを読み込めば、後は質問をするだけ!
名古屋人と仲良くなるには、まずは名古屋のものを好きになってみることから始めましょう。
名古屋グランパスなどを話題に取り入れると良いでしょう。また、積極的に話しかけることも大切です。
自分の好きなことを話したり、名古屋の知り合いを伝えたりすると、相手も心を開いてくれるでしょう。
仕事の場面で仲良くなりたいときは、誠心誠意、仕事に取り組んでいる姿を見せることが大切
名古屋人と仲良くなるにはどうしたら良いですか?日本語で答えてください。
【質問】
【回答】
動作結果は下記の通り
グランパスについては、テキストで多く情報を入れたため、反映されていると
いう結果となっている。
Webアプリケーションとして実装する
Flaskという簡単なWebアプリケーション
フレームワークを利用すれば、半日もか
からず実装可能!!
環境はオンプレでもAWSのようなクラウドサービスでもOK!
アプリケーションはAPIの利用料以外は全て無料!
テキストにない情報は、ChatGPTのみで判断して回答を返す。
荒子観音はChatGPTでは提案されなかった場所。テキストの情
報にあるため、そちらをキチンと見ていると言える
山田昌についても正しく出力できる事を確認
gpt-3.5-turboのAPI呼び出しの料金は1Kトークン(約1000文字)で$0.002
1ドル130円で換算で0.26円!10万トークンでも26円!
Open AIがセキュリティ的に心配なら、Microsoft Azure OpenAIも利用可能!
(teamsなどと同じ)
ChatGPT
AIベンダーに丸投げでは成功しない!
自ら学び、実際に
手を動かして実装しよう!
真のDXは内製にある!
そして、内製では足りない部分をAIベンダーに協力してもらう事により、
さらに素晴らしいイノベーションを起こすことが出来るはず!

ChatGPT + LlamaIndex 0 .6 による チャットボット の実装