見出し画像

3ヶ月でのチャットボット自動生成AIの開発がただの沼な件について

こんにちは。wevnalの榎本です。BOTCHAN EFOというプロダクトの新プランがリリースされました。その中の1つの機能として、AIでCHATBOTを自動で作ってしまうジェネレーターの開発秘話をご共有いたします。

そもそも:BOTCHAN EFOとは?

BOTCHAN EFOについてはすでに記事が出ていますので今回のプロジェクトについても全体はそちらの方がわかりやすいのでリンクを貼っておきます!!

そもそものそもそもでチャットボット(Chatbot)って何?

チャットボットとは、人間同士が会話するように、ロボットが自動で対話する技術です。自動的な会話技術に関してはルールをあらかじめ用意しておくものやAIなどさまざまなものが出ています。また現在のコミュニケーションとして、LINEが流行っていることからも会話型形式に一般の方々も慣れているため、チャットボットがいいのかもしれませんね!


この記事で話すことと話さないこと

開発のきっかけから実際の開発中の苦労について、その詳細をお話ししていければなと思います。

ただの愚痴も含まれますし、実際のAI開発者の苦悩を一般の方にも理解していただければと思います。

画像1

話すこと
- CHATBOT生成器とは?
- 開発の裏側
- CHATBOT生成器の今後
話さないこと
- 具体的な開発手法
- こうするのが良かった!というような知見やTips

CHATBOT生成器とは?

会社HPに存在するお問合せフォームや予約フォームのURLを生成器に入れることでAIがチャットボットを作成してくれるものです。(選択肢によって動くフォームなどは未対応です。すみません...)

画像2

下記に弊社社長が自社サイトのお問合せフォームを入れて、遊んでいる動画があるので見てください。

自動生成を試してみたい方はぜひこちらから!

開発の裏側

AIでCHATBOTを自動生成したいというニーズは社内にありましたが、そこまで本気では考えていませんでした。しかし、社内から開発依頼がありました。開発期間はだいたい3ヶ月くらいでしたが、その時の我々の心情はこちら....

画像3

ここが沼への入り口でした...

AIは手段の1つであり、今回はAIを使う必要はないと考えて、スタートしました。(本音は使いたくない...)

そもそもお問い合わせフォームや資料請求フォームや予約フォームというのは裏側に下図のようなものが書かれています。なのである程度書き方のルール(文法)が存在するので、フォームにあるプログラムの文法を用いて、チャットボットを作るのに必要なものは取得できるでしょって認識でした。AIに関しては、使うとなると学習データの準備がいるし、検証回数は増えて大掛かりになりそうだなという認識でした。

画像4

しかし、開発から2週間で我々は沼に足を踏み入れ始めていることを実感しました...

ルールがほとんど守られていないフォームだらけだった

画像5

上で見せた例のフォームは比較的綺麗に見えると思います。しかし厳密性は除いて、たった一部削除して、改行がないだけでも先ほどより見にくくないですか?見にくいだけならまだしも、これは一部間違っています。これでも大体同じようにフォームが表示されます。

<p>ラジオボタン1つとっても裏側はこんな感じです。(例)</br></br>
<input type="radio" id="a" name="a" value="a" checked>
<label for="a">このようにお問い合わせ
</label>
<div><input type="radio" id="c" name="c" value="b"><label for="c">フォームの裏側は
</label></div><input type="radio" id="a" name="c" value="c">
<label for="c">書かれています。</label>

世の中のフォームの中には見た目だけ調整されており、コードがぐちゃぐちゃなフォームが沢山あることを知りませんでした。本当にビックリするような奇想天外なコードで溢れており、ルールでの精度は40%ほどでした!(外からは見えないからいいよねってことだと思います)

逆にこの時は、間違っていても動くHTMLの汎用性に感銘を受けていました。

最終的には約13ページにも及ぶ開発施策アイデアシートになるほど、大量の検証を行いました(右にはエンジニアの末路を載せておきます)。

画像6

簡単にどんなことをしたかというと、ルールベースでは、”コード探索・仮想ブラウザでの操作・OCR技術・x-y cut”などの様々な技術を使いましたが、どの技術もかなりの数の対応不可なフォームが出てきました。やればやるほど、見てはいけないものが見えてくる沼に心を折られそうになってきています。

そこで使いたくはなかったですが、AIを使用することにしました。この時の心情はこちら....

やばいな〜時間間に合うかな〜...データどうしよう...教師なしでやるか?事前学習モデルって通用するかな...

ここからは時間との勝負だったので、”1.論文リサーチ・2.モデルの選定・3.学習データ収集・4.学習アルゴリズム・5.検証”を並列で動かすことになっていきます。各項目について少し詳細に書きます。

1.論文リサーチ

いくつか参考となる論文を見つけたのですが、かなり大きなモデルを大規模データで検証しており、この時点でかなり望み薄な気がしてきました。時間が限られていて、大規模なデータを集めることは不可能なため、別の学習アルゴリズムやモデル部分を工夫することに意識が行き始めています。

2.モデルの選定

RNNやLSTMなどの自然言語の基本的なAIモデルから〜GPTクラスの大規模モデルを動かして、感触が良かったモデルを選定していきました。ここは精度だけではなく、リリース時の負荷や速度も考える必要があるため、最後までここは検討することになります。

3.学習データ収集

初期は人手で集めて、後半では”教師なし学習”のような、モデルの結果をモデルに渡して、入れれば入れるほど精度がよくなるようにしていきます。

4.学習

3でも記載した通りで”教師なし学習”のような学習サイクルを回していきます。さらに、ルール時に出てきたフォームの特徴の知見を生かした前処理方法を多数試していきます。かなりここが重要でした。文法ミスや不要な情報はモデルにとって負担なのでここである程度綺麗にすることが後半で効いてきました。

試行錯誤を行い、初期のAI精度は50%程度でした(リリース可否については精度70%以上)。精度的には低いですが、我々としてはルールベースでは不可能なものに対応できそうな気がする結果をいくつか見れたので、このままAI精度の改善に注力することにしました。ここからはゴールデンウィークも潰し、データ収集から学習・検証を繰り返し、リリース直前の精度は7割を超えてきて、なんとか間に合いました。

AI開発あるあるなのですが、AI開発者は自ら作ったモデルに親心にも似た感情が出てきます。そのため、検証中もAIが失敗すると、「これはフォームが悪い・なんて汚いフォームをうちのAIに見せさせるんだ!」AIは悪くないと謎の擁護をしていました(完全に病んでます)。

とある調査によると"フォームの離脱率は約70%くらいある"というデータが存在するのですが、今回大量のフォームを見てきて、なんとなくその理由が見えてきました。フォームでのストレスって”ほんのほんの少し”でもあると、無意識にやめたくなってくるんですよね。例えば、文字位置がずれてるとか、レイアウトが途中でほんの少し変わる。そんな程度であっても、何故かデータ収集の際にも後回しにしていました。

そして、面白いことに今回のAIで生成できないフォームはそういうものが多かったです。もしかすると、後回しにしたため、学習データが比較的ストレスが少ないフォームに偏ってしまったのか、それともそういったフォームはHTMLが汚いことがあるので、AIが苦手だったのか。理由は明確ではないですが、AIにも離脱したいフォームがあるということですね!笑。


CHATBOT生成器の今後

今はまだ学習データも少なく、対応できないフォームもまだあります。今後はデータをさらに収集し、精度を改善していこうと思います。そのためにも現在はフォーム自体を自動で大量に作るシステムも導入されていますので、今後はそのあたりのデータも含めて精度の改善を行なっていくつもりです。そして最終的には好きな風にAIに指示を出すことで、chatbotが作れるとかだと幸せですよね。


最後に宣伝です。

BOTCHANシリーズは、お客様の売り上げ貢献にコミットするマーケティングチャットボットです。

30日間は無料で全機能使えます(無料期間中は支払い登録不要でご利用いただけます)。導入までも最短5分で設置までできるので、お気軽に試していただけるかと思います。

もし気になった方は、新規登録はこちらからお願いします!

どうせ無料なんでやっておいて損はないです!!笑




wevnalは、「人とテクノロジーで情報を紡ぎ、日常にワクワクを」をミッションに掲げて、「BXプラットフォームBOTCHAN(ボッチャン)」というマーケティングSaaSプロダクト事業を行っています! 今はサポートよりも、ステキな方との出会いがほしい。