Close

Web技術Tips

Homepage Tips Homepage Tips

ホームWeb技術Tips【簡単】『AI Engine』のチャットボットにWordPressの記事データを学習させる

SHARE

SHARE

WordPress 2023.11.09(更新)

【簡単】『AI Engine』のチャットボットにWordPressの記事データを学習させる

前回の記事では WordPress プラグインである『AI Engine』の使い方についてまとめました。
AI Engine は ChatGPT にも使われている OpenAI の API を簡単に WordPress に導入し使うことができました。

その記事の続きとして、今回はチャットボットに WordPress の記事を学習させてブログに関する質問に答えられるようにする方法を紹介します。
AI の調整は通常、時間と知識が必要な作業ですが、プラグインを利用することで時間も知識もない方でも簡単にできます。

2023/09 追記
Train a new modal で選択できるモデルが Turbo(gpt-3.5-turbo-0613)だけになっています。
Turbo は「chat-completion format(チャット補完形式)」のデータが必要と言われ、ファインチューンの開始ができない状況のようです。

→ バージョン1.9.81 にて修正されたようです。

チャットボットとは

チャットボットとの会話

チャットボットとはこのような ChatGPT のような無人でチャットを行う Web パーツです。
プラグイン AI Engine の基本機能として Web サイトに導入することができます。
自動記事生成や画像生成などの機能と同じように AI Engine の機能のひとつとして無料で使用できます。

ファインチューニングとは

ファインチューニング(ファインチューン)を日本語にすると「微調整」が最も近いです。
ゼロから学習させるのではなく、既存の学習済みモデルに層を追加し、追加で学習させることで少ない労力でデータを学習させることが出来ます。
要するに、誰かが作った既存の AI のモデルをカスタマイズするということです。

例えば、通常の ChatGPT にホームページ制作会社の「DOE」についても答えることは出来ませんが、ファインチューニングを行うことにより、ホームページ制作会社である「DOE」について学習させて理解させたモデルを作成することができます。

ファインチューンを有効化するには

AI Engine のインストール方法は前回の記事ですでに説明しましたので割愛します。
プラグインをインストールし、OpenAI で発行した API キーを設定してからチャットボットの設定をします。

チャットボットの設定をします

[Meow Apps] > [AI Engine] のチャットボットタブから設定ができます。
初期設定では日本語になっていないため、「メインの設定」「見た目の設定」からラベルのテキストを変更して日本語に変更します。

ファインチューンを有効化します

ファインチューンはダッシュボードタブから有効化します

ファインチューンは初期状態では無効化されているので、ダッシュボードタブから有効化にします。
有効化すると上部のタブメニューにファインチューンタブが追加されます。

ファインチューニングに必要なデータセットは自動生成できます

ファインチューニングのためには、十分な量の質問と回答のデータセットが必要になります。
具体的には最低 500 個程度は必要であり、良い結果を達成するには 3,000 ~ 5,000 個はあったほうがいいようです。(参考記事

データセットを用意する方法はなんでもよく、ChatGPT に文章から質問と回答のセットを大量に生成させてもいいですが、AI Engine には WordPress の記事からデータセットを自動生成する機能があるのでそれを使ってみます。

データセットを自動生成する

ここでデータセットを自動生成できる

AI Engine でデータセットを生成するには、ファインチューンタブから設定画面を開き、上部のメニューの「モデルの調整」を「データセットビルダー」に変更し、「投稿ジェネレーター」を選択します。

すると画像のように投稿からデータセットを生成する命令文が英語で表示されます。
デフォルトではすべてのデータセットが英語で作成されるため、命令文の文末に「日本語を使用してください。」を追加することで日本語で作成されます

命令文に文章を追加した

「Run Bulk Generate」をクリックします。

アラートが表示されますが、OK をクリックします。

生成中

しばらくして、投稿のデータから 624 件のデータセットが生成されたようです。

データを正しいフォーマットにする

質問と回答の左側がバツマークになっているので、フォーマットをします。
上のメニューから「投稿エディター」を選択し、「Format with Defaults」をクリックすると、セパレートの文字列が追加され一括でフォーマットされます。

ボタンを押してもフォーマットされない

「Format with Defaults」をクリックしても何も起きず、デベロッパーツールにエラーが出ているので原因を調べると、どうやら不正なデータがあったため失敗したようです。
「Export as CSV」でエクスポートし、「Reset Entries」でデータを削除し、「Import File」でデータをインポートしてからもう一度「Format with Defaults」をクリックすると、バツマークがチェックマークに変わり正常にフォーマットできました。
データが3件減っていたので、いらないデータが取り除かれたことでフォーマットができるようになったようです。

フォーマット後、バツマークがチェックマークに変わりました

モデルをトレーニングする

データをアップロードする

次はフォーマットした質問と回答のデータセットを OpenAI にアップロードし、ファインチューニングの準備をします。
「Upload to OpenAI」をクリックし、データを JSONL 形式で OpenAI にアップロードします。

アップロードに成功すると画面が切り替わるので、「Train Model」をクリックします。

このように設定

使用するモデルを選ぶモーダルウインドウが開くので、モデルを選択し、適当なモデル名を入力したら Start をクリックして学習をスタートさせます。
モデルは Curie もしくは Davinci が推奨なので、今回は Davinci で進めてみます。
「Enable HyperParams」をチェックすると、ハイパーパラメータの設定をしてモデルの精度を上げることができるようですが、今回は設定しません。

このようなアラートが表示されます

ファインチューニングが開始されるとこのようなアラートが表示されるので OK をクリックします。

モデルの料金

OpenAI Pricing より料金抜粋

ファインチューニングのモデルは4種類あり、料金が異なります。(2023/07 現在)
Turbo や GPT-4 は現在ファインチューニングに使うことが出来ませんが、いずれ選べるようになるかもしれません。

学習中はときどきリフレッシュボタンを押す

PENDING 中はときどき Refresh Models ボタンを押します。

学習が開始されると PENDING というステータスになり、その後 RUNNING を経て SUCCEEDED になったら完了です。
アラートに数分から数日かかると書いてあったとおり、データ量によって前後しますが学習が終わるまでそれなりに時間がかかります。
ときどき「Refresh Models」をクリックしましょう。(30分に1回くらい)
全く Refresh Models を押さず放置してたら1日経っても完了していなかったことがあったので、放置しているだけだと終わらない可能性があります。

ファインチューニング済みモデルをチャットボットに適用する

トレーニング完了

約2時間半後、何度目かの Refresh Models をクリックしたあと SUCCEEDED に変化し完了しました。
このファインチューニング済みモデルをチャットボットに適用してみます。

モデル一覧に追加されている

モデル一覧に入力したモデル名で追加されています。
TUNED というアイコンがついているのがファインチューンで追加されたモデルです。

警告メッセージ

ファインチューンで追加されたモデルは「カジュアルなファインチューン」にチェックしなくてはいけないようです。
チェックすると警告メッセージは消えました。

質問してみた

質問してみました

DOE の記事について学習させたので、DOE を知っているか聞いてみると、ホームページ制作会社の DOE について回答できていました。

左:turbo 右:ファインチューニング済みモデル

通常のモデル(turbo)に DOE について質問したのを比較すると、学習が行われたことがわかります。
「プロデューサーの事業体」といった聞き慣れない言葉が出てきましたが、まだ自然な言語で答えることは出来ていないようです。
これはデータセットを増やしたり、ハイパーパラメータを調整することで改善するのかもしれません。

まとめ

プラグインを使うことで WordPress の画面上だけで記事を学習させて質問に答えられるようになりました。
個人的には AI エンジニアのような人だけができると思っていたことが素人でも簡単にできたことに驚きました。
GhatGPT の登場によって AI がさらに身近になりましたが、それに伴い関連ツールも進化し、私たちのようなエンドユーザーが AI について学習するコストもどんどん下がってきていると感じます。

DOE(横浜)のニュースとブログ

News News

横浜のWeb制作会社DOEはホームページ制作に関連するWeb技術、Webデザイン、SEO対策情報など人気&おすすめ記事を随時公開中です。
尚、Twitterでは現場の声がリアルタイム配信中です。良かったらShareして繋がってください。