GPT-4、ChatGPT、LLaMA 3、Mixtral 8x7bなどの生成モデルを使ってチャットボットを構築する方法

会話AIへの需要が高まり続ける中、パーソナライズされた人間のようなインタラクションを提供できる高度なチャットボット技術へのニーズも高まっています。近年、GPT-4やChatGPTのような生成モデルや、LLaMA 3やMixtral 8x7bのようなオープンソースの代替モデルが、これまでにない精度と洗練さで自然言語入力を理解し、それに応答できるチャットボットを構築するための有望なツールとして登場しています。

この記事では、生成モデルの基礎と、チャットボットを構築するためにそれらをどのように使用できるかを探ります。

チャットボットと会話型AI

LLaMA 3とMixtral 8x7b:ChatGPTとGPT-4のオープンソース代替品

ChatGPTとGPT-4は、OpenAIが開発した2つの高度な言語モデルです。ChatGPTは "Chat Generative Pre-training Transformer "の略で、学習データに基づいて人間のようなテキストを生成できる大規模な言語モデルである。2022年11月に導入され、質問に答えたり、情報を提供したり、様々なタスクに関与したりと、会話形式でユーザーと対話する能力で、瞬く間に広く注目されるようになった。

GPT-4(「Generative Pre-training Transformer 4」)はGPT-3の後継で、2023年3月にOpenAIによって発表された。GPT-4はAIの言語モデルの分野で大きな飛躍を意味し、前モデルと比較してさらに大きなサイズと強化された機能を誇っている。GPT-4は、自然言語処理、コンピュータ・プログラミング、創作など幅広い領域において、非常に詳細で正確なテキストを生成することができる。

ChatGPTとGPT-4は、教師なし学習を使用して膨大な量のデータで学習され、驚くべき精度と流暢さで人間の言語を理解し、生成することを可能にします。これらのモデルは、会話AI、コンテンツ生成、そしてカスタマーサービス、教育、エンターテインメントなどの業界における様々なアプリケーションの開発に新たな可能性をもたらしました。

その直後、Meta社からLLaMA 3が、フランスのAIスタートアップMistral AI社からMixtral 8x7bがリリースされた。これらの生成モデルは、ChatGPTとGPT-4に代わるオープンソースのモデルです。高度なチャットボットを構築したいのであれば、これらは非常に良い候補です。LLaMA 3とMixtralを自分のサーバーにデプロイするか、NLPクラウドAPIを通して簡単に使用することができます。

このような生成AI LLMはすべて、少し練習が必要だ。まず、これらのモデルが期待通りに動作するためには、適切なプロンプトを与える必要があるからだ。また、これらのモデルは「ステートレス」であり、会話の履歴を保持しない。

チャットボットに適切なプロンプトを使用する

もしあなたが、ちょっとしたコンテクストやフォーマットなしに、素朴にこれらのモデルにリクエストを送ると、そのレスポンスにがっかりすることになるだろう。なぜなら、これらのモデルは非常に多機能だからだ。チャットボットの作成に役立つだけでなく、質問応答、要約、言い換え、分類、エンティティ抽出、商品説明の生成など、他の多くのアプリケーションにも対応できる。そのため、まず最初に行う必要があるのは、モデルにどの「モード」を採用すべきかを伝えることだ。

リクエストの例です:

This is a discussion between a [human] and an [ai]. 
The [ai] is very nice and empathetic.

[human]: I broke up with my girlfriend...
[robot]:
            

この例では、2つのことがわかる。

まず、会話モードであることをモデルが理解できるように、簡単なフォーマットを追加した: ([human], [ai], ...).

第二に、モデルが何をやっているのか、どのようなトーンを使うべきなのかを理解しやすくするために、上部にコンテキストを追加した。:

このプロセスをより簡単にするために、OpenAIとNLP Cloudの両方が、このフォーマットを代行してくれる専用のチャットボットAPIエンドポイントを提案しています。

コンテキストだけでは十分でないこともあります。例えば、非常に特殊なトーンやキャラクターを持つチャットボットを作りたいとします。その場合、独自の生成モデルを微調整したいと思うでしょう。OpenAIやNLP Cloudでは、生成AIに基づいてチャットボットを微調整することができます。

もう一つのシナリオは、特定のドメイン知識に関する質問に答えるチャットボットを作りたい場合です。この場合、微調整は解決策にはならない。代わりに、セマンティック検索に基づいた独自の検索拡張世代(RAG)システムを作りたいでしょう。 RAGとセマンティック検索についての専門記事はこちら。

チャットボットの会話履歴を管理する

生成AIモデルは "ステートレス "モデルであり、つまり、あなたが行うリクエストはすべて新しく、AIはあなたが行った以前のリクエストについて何も覚えていない。

多くのユースケース(要約、分類、言い換え...)では問題ありませんが、チャットボットに関する限り、より適切な応答をするためにチャットボットに議論の履歴を記憶させたいので、これは間違いなく問題です。

例えば、AIにあなたがプログラマーであることを告げたとする。

これを実現する最善の方法は、すべてのAI応答をローカル・データベースに保存することである。例えば、PostgreSQLデータベースは、非常に優れた効率で、長いテキストの保存をサポートしています。

そして、チャットボットに新しいリクエストをするたびに、次のようにします:

これは、GPT-4、ChatGPT、LLaMA 3、Mixtralのような生成モデルのパワーを完璧に活用する、労力をほとんど必要としない多用途で堅牢なシステムである。

各モデルには、履歴に渡すことができるテキストの量を決定する独自のコンテキスト・サイズがあることに注意することが重要です。例えば、GPT-4の現在のコンテキストサイズは8kトークン(つまり7kワード以下)であり、Mixtral 8x7bの現在のコンテキストサイズはNLPクラウドの16kトークン(つまり14kワード以下)です。会話履歴がこれを超える場合、履歴の最も古い部分を切り捨てるか、ディスカッションの最も重要な部分のみを保持することをお勧めします。

チャットボットのコンテンツ制限

OpenAIは、AIが生成するテキストがガイドラインを遵守するよう、ChatGPTとGPT-4にコンテンツ制限を実装しました。チャットボットが生成するコンテンツを監視・規制することで、OpenAIはよりポジティブで信頼性の高いユーザー体験を生み出すことを目指しています。これには、特定のトピックに関する情報の要求をブロックしたり、事前に審査された信頼できる情報のみを提供したりすることも含まれます。

しかし、そのような制限のない生成モデルを好んで使用し、回答の質がより多様で正確だと感じる人もいる。LLaMA 3やMixtral 8x7bにはそのような制限がない。このようなAIモデルを使用する場合、責任を持ってAIを使用するのは開発者の責任である。必要であれば、チャットボットのために適切なプロンプトを作成したり、独自のチャットボットを微調整したり、AIモデルに到達する前にユーザーのリクエストをフィルタリングすることによって、制限を実装することができます。

結論

GPT-4、ChatGPT、LLaMA 3、Mixtral 8x7bのような生成AIモデルは、チャットボットと会話AIを次のレベルに引き上げた。これらの高度なモデルは、あなたのコンテキストを理解し、それに適応することが非常に得意です。ほとんどの場合、適切なコンテキストを設定するだけで十分ですが、高度なユースケースの場合は、独自のAIモデルをトレーニング/微調整するのが最適なソリューションです(これらのモデルは非常に小さなデータセットを必要とするため、かなり簡単です)。

NLP Cloudでは、他のモデルの中でもLLaMA 3やMixtral 8x7bを簡単に試すことができます。また、これらを微調整し、ワンクリックで自分専用の生成AIモデルを展開することもできます。 まだの方は、NLPクラウドを無料でお試しください。

チャットボットの導入方法についてご不明な点がございましたら、お気軽にお問い合わせください!

François
NLPクラウドのフルスタックエンジニア