BERTでチャットボット
2024.05.07
■経緯
自然言語の機械学習のデモを作る必要があり、何かブラウザで見せられるものを作りたい。
ChatGPTは従量課金なので、できれば無料で動かせるものがよい。
BERTをJavascriptで動かすのが一番早そう。
■デモ作成の流れ
(仮説)
tensorflow.jsで出来そう。
(実際)
BERT用の事前学習モデルはpytorch形式が多く、tensorflow形式が少ない。
PyTorch -> ONNX -> OpenVINO -> TensorFlow / Tensorflow Lite の流れでモデルを変換する方法もあったが、バージョンの兼ね合いなどでなかなか変換がうまくいかない。
(対策)
tensorflowへの変換は諦め、transformers.js を使う
→ https://github.com/xenova/transformers.js
→ https://xenova.github.io/transformers.js/
(1)transformers.js が用意してくれているconvert.pyを使って Question-Answering用の日本語事前学習モデルをmodel_quantized.onnx に変換
(2)transformer.js でmodel_quantized.onnxを読み込む
(3)推論を行う
■デモサイト
https://booster-test.com/qa/
■所感
・BERTはオープンソースで、日本語の事前学習モデルも多く公開されているので使いやすい。
transformers.jsを使えばWebシステムに組み込める。
・ChatGPTだと従量課金なので、どうしても月額費用が気になってしまう。
よってカスタムで作れる方が望ましい。
・会社の製品紹介やFAQなどで使えると思う。
—————
(2024.05.25 改修)
→ model_quantized.onnx の初期ロードに時間がかかり過ぎるので、Flaskで予測用のAPIサーバを立ててAjaxでレスポンスを返すように改修。
transformer.js で実現できることがわかっただけでも収穫。
最新記事
- 自社サービス「クイズファミリー」の開発
- AWS Managed Blockchain(AMB)の使用・・・
- APIサービスをどう作るか
- C++による組込みプログラミング
- CUDAでGPUプログラミング
- BERTでチャットボット
- 脆弱性チェックツール
- Flutterでデスクトップアプリ
- MMPoseを使って姿勢推定(骨格検知)
- Laravel Livewire3を使ってみる
- Lineミニアプリ
- RustとPHPのパフォーマンス比較
- ボクシングをモーションキャプチャー
- Virtualbox上のUbuntuにDocker環境を作れ・・・
- AWSでのIPv6対応
- AWSのRDSでブルー/グリーンデプロイ
- 20年ぶりにCOBOL
- フィッシングメールのソースを見る
- GCPのVertex AIの注意点
- Azure AZ-900 に合格