「CustomGPT.ai」でPublickeyのコンテンツを学習させたチャットBotを作ってみた。サイト検索の代わりになるか? 回答の精度と3つの大きな課題
ChatGPTを開発したOpenAIの技術を用いて、インターネット上のコンテンツをAIに学習させる機能を備えた「CutomGPT.ai」(以下CustomGPT)と呼ばれるサービスが登場しました。開発したのはPoll the People社です。
CustomGPTは、ChatGPTの持つ幅広い汎用の知識に加えて、特定のWebサイトの情報などを学習させることで、特定の情報に詳しくなるようにカスタマイズできるAIだと説明されています。
Product Hunt Launch Alert
— Poll the People (@PollthePeopleAp) February 10, 2023
Today, we launched our https://t.co/PhjhqGcTkH on @ProductHunt.
What is it: It lets you "Build Your Own ChatGPT" - with your data.
Come check us out and let us know how we did!https://t.co/MvAOQgNAmz#chatgpt #AI #OpenAIChatGPT
例えば、製品のマニュアルやFAQを学習させることで「この製品の電源スイッチはどこにありますか?」「マニュアルからオートにモードに切り替える命令は?」といった、特定の製品に特化した質問に的確に答えられるチャットBotの開発などに用いることが想定されます。
CustomGPTとは別のサービスですが、PublickeyでもソースコードをAIに読み込ませることで「この機能の関数はどこに実装されている?」といったコードと対話できるAI機能を組み込んだIDE「qqbot」と呼ばれるサービスを1カ月前に紹介して、非常に注目されました。
参考:IDEにChatGPTを統合、「この関数のテストコードはどこ?」「XXXを実装するならどう書けばいい?」など、AIでコードと対話できる「qqbot」登場
特定の領域の知識を学習させたチャットBotは、これまで一般的だったキーワードによる検索よりもずっと高度かつ便利な検索の実現が期待できるのです。
15分たたずに簡単にチャットBotの設定と学習が完了
そこで、CustomGPTにPublickeyのコンテンツを学習させて、Publickeyに書かれた内容をすらすらと答えてくれるチャットBotができれば、サイト内検索の代わりに使えるかもしれないことに思い当たりました。
いちいちサイト内検索機能の結果からWebページを開いて内容を参照する手間も省け、読者の利便性も向上するはずです。
というわけで、CustomGPTを実際に使い、Publickeyの内容を学習させたチャットBotを作ってみることにしました。
まずCustomGPTにサインアップし、有償プランを選択します。現在、有償プランは3種類あり、チャットBotを外部に公開できるのは、月額99ドルの「Standard」プランもしくは月額499ドルの「Enterprise」プランのいずれか。
うまくいけば、Publickey専用のAIチャットBotを公開できるかもしれないと期待を込めて「Standard」プランを選択し、クレジットカードでの支払いを設定しました。
すると、プロジェクトを作ることができるようになります。
ここからが具体的なチャットBotの作成開始です。
まず、チャットBotに学習データを読み込ませるためのXMLサイトマップを指定します。
XMLサイトマップとは、Webサイトに含まれる記事のURL一覧を載せたXML形式のファイルです。基本的にはGoogleなどの検索エンジンに、適切にWebページを読み込んでインデックスしてもらうために作成されており、インターネット上に公開されています。
Publickeyのサイトマップは「https://www.publickey1.jp/sitemap.xml」で公開されているので、これを指定します。
いまのところCustomGPTにデータを読み込ませる方法はサイトマップしか用意されていないようです(逆に、サイトマップさえ作れれば、ネット上の情報はなんでも読み込ませることができるはずで、私以外の人も上記のPublickeyのサイトマップを読み込ませれば私と同じことが可能です。試験目的であれば自由にお使いください)。
次にプロジェクトに名前を付けます。「Publickey-bot-20230212」としました。
必要な準備はこれだけです。「Create Project」ボタンを押せば、このプロジェクト用のチャットBotが作成され、学習が開始されます。
ダッシュボードから学習状況が参照できます。
ほんの数分で「Pages Found」と「Pages Crawled」が4999になりましたので、Publickeyの記事が正常に読み込まれていることが分かります。4999ページなのは、Standardプランにおける学習可能なページの上限が5000ページであるためでしょう。
Publickeyの記事は現時点でだいたい6000記事ほどで、サイトマップは新しい記事から並んでいるため、最近の記事はすべてカバーできているはずです。
そして15分ほどで「Pages Indexed」が5000を超え、学習がほぼ終わったようです。学習速度はかなり速いのではないでしょうか。
Publickeyの内容を学習し、答えてくれるチャットBotが出来上がった
さっそく質問してみましょう。
CustomGPTのWebサイトには日本語が使えるかどうかは記述されていませんでしたが、ChatGPTでは問題なく日本語が使えたので、CustomGPTでも使えると予想していました。実際、下記のように問題なく日本語で受け答えができました。
1つ目はマイクロソフトのクラウド戦略について聞いてみました。
質問が一般的すぎたせいか、この回答がPublickeyの記事を参考にしたのか、それとも一般的な知識から導き出されたものなのか、ちょっと迷う回答です。
そこで、この記事執筆時点でPublickey以外にはあまり掲載されていないような内容についての質問をしてみることにしました。
先週金曜日に公開した記事「CloudflareはAWSのようなパブリッククラウドと競合する企業になるのか? 同社COOに直接聞いた」は、Publickey独自の内容になっています。これについて聞いてみましょう。
記事で私は「少なくとも現時点では直接AWSのようなパブリッククラウドと競合を強める計画がないことを明かしました。」と書いたのですが、チャットBotはこの部分の意図は読み取ってくれなかったようです。
ただし、記事に書いた「おそらく、Cloudflareは今後も同社のグローバルなネットワークの強みを活かして、AWSや他のパブリッククラウドの、ある特定の機能に対して競合するサービスを開発し提供していくつもりではあると思われます。」の部分は、ほぼそのまま回答しています。
もう1つ、同じく金曜日に書いた記事「ファイル連携ミドルウェア「HULFT」がクラウドサービスに。iPaaSとして「HULFT Square」をセゾン情報システムズが提供開始」について質問してみましょう。
この回答も、記事に書いてある「HULFT Squareは、クラウドサービスを統合するプラットフォームサービス、いわゆるiPaaSとして位置づけられており、AWSやMicrosoft Azure、Google CloudやSalesforce、Slack、Kintone、ServiceNow、Boxなどクラウドサービスとの接続、Oracle Database、Microsoft SQL Server、MySQL、PostgreSQL、JDBCなどデータベースとの接続機能、ExcelやCSV、固定長や可変長などのファイルデータ、FTPやRESTといったプロトコルなどさまざまなデータの連携に対応します。」の内容をそのまま答えています。
ここから、少なくともこのチャットBotは明らかにPublickeyの記事から学習したことを基に回答していることが分かります。
今度はPasskeyについて聞いてみましょう。
Publickeyでは以前からPasskeyについては詳しく紹介してきました。例えば「Google、パスワードレスを実現する「Passkey」の開発者向けサポート開始。Androidデバイス間の同期、Androidを使ってWin/MacでのWebサイトへのログインなど実現」の記事では、「Passkey(s)とは、パスワードレス機能の業界標準であるFIDO Alliance(ファイドアライアンス)の策定する仕様「FIDO/WebAuthn」に沿って実装される機能です。」という文章から20行以上を使ってPasskeyを詳しく解説しています。
しかしチャットBotの答えは予想外にあっさりしたものでした。
別の記事「PublickeyのIT業界予想2023。クラウドのコスト上昇懸念、Passkeyの普及、AIによる開発支援の進化、WebAssembly環境の充実など」では、「Passkeyは本人であることを証明するための3要素、すなわちパスワードなどの「知識」、トークンなどの「所有」、本人の身体的特徴の「生体要素」のうち少なくとも2つと公開鍵暗号の組み合わせによって、パスワードの漏洩などによる事故を起こさない堅牢な仕組みが手軽に使えるようになりました。」と解説しており、これを要約したように見えます。
こうしてみるとまだ回答の精度は十分ではないかもしれませんが、とにかく想定した通りに、Publickeyの内容を学習してそれなりに回答してくれるチャットBotができました。
まだCustomGPTのボットを一般公開できない3つの大きな課題
ではこれをPublickeyの検索機能として公開できるかというと、まだいくつかの課題により公開は現実的ではないと考えています。
もちろんそこには回答の精度の問題もありますが、それ以外にも下記に示すような3つの大きな理由があります。
(1) 月額99ドルあたり500回から700回程度しか答えられないため、コストが高い
(2) 答えが出るまで10秒から30秒程度かかるため、待ち時間が長すぎる
(3) Publickeyに関係ない質問にも自由に答えてしまうため、他用途にも使われてしまう
1つ目はCustomGPTの価格設定に依存した問題ではあります。今回選択した月額99ドル、つまり現時点でだいたい月額1万3000円程度の「Standard」プランには1カ月あたり「500K query Credit」(50万クエリクレジット)が与えられています。
果たして、1クエリクレジットとはどのくらいでしょうか? いくつか質問をしてみたあとでダッシュボードを見てみると、右下に「7267 Query Credit Used」と表示されていることに気が付きました。
記憶があいまいではありますが、おそらく7回から10回くらいは質問を試したあとだったように思います。これでクエリクレジットの消費が7267だとすると、質問1回あたりだいたい700から1000クエリクレジットを消費した計算になります。
すると1か月あたり50万クエリクレジットの割り当てでは、500回から700回程度しか質問できないことになります(ちなみにCustomGPTのデモ用チャットBotに「スタンダードプランでは何回の質問ができますか?」と聞くと、「500回」と返ってきました)。
比較対象として、広告表示のないWebサイト向け全文検索機能としてGoogleのサーチAPIを利用しているシックスアパートの「サイトサーチ」サービスの料金を見てみると、月額917円で月間500回まで検索可能です。
つまり両者にはだいたい10倍くらいの価格の開きがあるわけです。
この金額が妥当かどうかは利用する立場によって異なると思いますが、500回から700回で月額99ドルは、Publickeyにとってはかなり高いなあ、と感じます(現在Publickeyには、Googleの広告が表示される無料のサイト内検索機能を組み込んでいます)。
なんでも答えてくれるので他用途に使われてしまう
質問を入力してから回答が表示されるまで10秒から30秒程度待たされることも、ユーザビリティの観点では課題です。
検索機能はほんの一瞬で検索結果が表示される一方、チャットBotでは質問ごとに10秒以上待たされるのでは、検索の代わりにするには遅すぎると考えています。
そしてなにより、Publickeyに関係ない質問にも自由に答えてしまうことは大きな課題です。
例えば、Publickeyのコンテンツには恐竜が滅びた理由について言及したものは一切ありませんが、このPublickey-bot-20230212はこんな質問にも答えてくれます。
おそらくCustomGPTは汎用のチャットBotの上にサイトごとのコンテンツを学習させているので、汎用の回答機能もそのまま残っているのでしょう。
しかしCustomGPTに月額料金を支払う立場としては、恐竜が滅びた理由を調べられたり歴史上の人物を調べられたりできてしまうのは、Publickeyの読者に役立つと想定していた目的以外でクエリクレジットが消費されるので、お金の支払い損になります。
「Standard」プランではチャットBotを公開可能なことは前述しました。しかしこの状態では、課金をしたうえで一般公開するという判断はできそうにありません。
今後のサービスの進化に期待
もちろんここに挙げた課題は現状のCustomGPTに対するもので、まだ登場したばかりのサービスだと考えれば、今後確実にブラッシュアップされていくでしょう。
Microsoft Azure上ではすでにOpenAIのサービスが開始されており、Googleも来月には対話AI「Bard」の基盤となる「LaMDA」のAPIを公開することを明らかにしていますから、CustomGPTと似たような機能のサービスは他からも登場してくるはずです。
そうした中で、この手のサービスは料金も下がり機能も急速に充実していくであろうことは十分期待できます。今後そうしたサービスが登場し次第、いろいろと試していきたいなと思っています。
あわせて読みたい
Go言語が実行時のプロファイラ情報でコンパイルを最適化する「Profile-guided optimization」パブリックプレビュー
≪前の記事
Passkeyに対応するAndroid用の新パスワードマネージャ「Credential Manager」α版をGoogleがリリース。デバイス間でクレデンシャル同期可能に