ChatGPTがリリースされてから、各企業ではどのようにChatGPTを活用させるかという方法に注目が集まっています。業務の中で企画のアイディア創出のための壁打ちを行ったり、文章の生成を資料作成や日々のコミュニケーションツールを利用する際に活用するなど、既に多方面でChatGPTを頻繁に使用されているという方も多くいらっしゃるのではないでしょうか。
そんな中で期待されているのが、ChatGPTへ特定のデータを学習させて、独自のAIとして利用するといった内容です。ChatGPTは非常に制度の高い文章生成AIであるため、この機能を利用して再学習させることで、オリジナリティを追加して業務の中で利用できるのではないか、という試みとなります。
既に社内文書や社内wikiなど特定の情報をChatGPTに読み込ませて、オリジナルのChatbotのような機能を実現する取り組みを見かけたことがあるという方も、この記事を読んでいる方の中にはいらっしゃるのではないでしょうか?そんな利活用を実現させるために、今回は『ChatGPTに特定の情報を学習させる方法はあるのか?』というテーマでご紹介していきます。
もし自分で独自の学習をさせてChatGPTを利用してみたいと考えている方は、ぜひ最後まで目を通してみてください。
ChatGPTに独自の情報を学習させることは可能?
ChatGPTにユーザーが独自の学習をさせることは可能なのでしょうか?結論から述べると、『可能』です。ChatGPTには企業で運用しているルールや、コミュニティの中で共有されている知見を学習させて、業務の中で利活用できるように再学習させることが可能になってきます。
例えば企業で扱っている複雑な運用をChatGPTに集約させれば、膨大な数のマニュアルを作成する手間を省くことが可能になります。また、現在は人の力でQA対応を行っているオペレーターの労力も場合によっては不要となり、人件費に対して大幅なコストカットが見込めるかもしれません。
中にはこれらを既に実施して業務の中で運用している企業や、学習させるためのツールを公開しているサービスも存在します。こちらでは、個人が実践できる例から企業が取り入れている方法までご紹介します。
ChatGPTに情報を学習させる方法①:学習段階のデータに情報を入れる
まず、ChatGPTに対して学習段階のデータに情報を入れることを考えてみます。学習段階のデータとは、OpenAIが提供しているChatGPTの中に既に取り込まれている情報のことを指します。
では、現在利用しているChatGPTに対して特定の情報をユーザーがピンポイントで学習させることは可能なのでしょうか?こちらの答えは『NO』となります。
ChatGPTが既に学習しているデータについてはOpenAI側にて管理されているため、ユーザー側から意図的に情報を組み込むことは、残念ながら不可能です。取り込まれている情報も2023年10月分まで(GPT-4)とのことで、新たに学習させる方法は公開されていません。
ChatGPTにどのようなデータが事前学習として用いられているかを確認してみたところ、以下のような回答が返ってきました。
ChatGPTの事前学習に用いられている具体的なデータセットの例
・Webページ︰インターネット上に公開されているテキスト情報
・書籍︰書籍のテキスト
・学術論文︰学術的なテキスト
・会話のデータ︰オンラインフォーラム・チャットログなど
逆に言うと、OpenAI側で精度の高い学習データが取り込まれているからこそ、ChatGPTがここまでのパフォーマンスを発揮できているともいえるでしょう。
ChatGPTに情報を学習させる方法②:ファインチューニングする
ファインチューニングとは、既に学習されている内容に対して新しいデータを追加し、ChatGPTを再学習させることを指します。つまり、ChatGPTの持つ回答の精度や文章生成スキルはそのままにして、新たな知識を追加で身につけた文章生成AIを生み出す、というイメージを持っていただければよいかと思います。
こちらのファインチューニングを利用すれば、ChatGPTという既に出来上がっているモデルを再利用できるため、新しいモデルを自分で作る手間を省くことが可能になります。独自のデータや社内文書などを学習させる方法としては、このファインチューニングが最も一般的です。
ファインチューニングにはいくつか方法がありますが、一般的な実行方法は以下の通りです。
1.必要となるモデルをインストールする。
2.学習をさせるためのデータセットを準備する。
このデータセットはファインチューニングを行ったあとのAIの精度に大きく関わってくるため、十分な量と質を持つものである必要があります。
3.収集したデータセットをモデルが理解しやすい形式に変換する。
ChatGPTは文章生成AIのため、テキストデータである必要があります。
4.事前学習を行ったモデルに対して、収集したデータセットを使用して再学習を行う。
こちらの作業が一般的にファインチューニングと呼ばれる作業です。
5.ファインチューニング後のモデルを評価する。
性能を評価し、必要があればファインチューニングを繰り返して精度を向上させます。
GPTモデルのような機械学習を行うためには、ハイパーパラメーター(Hyperparameter)と呼ばれる設定値が精度を大きく左右すると言われています。
上記の手順にて実装して、ChatGPTをパーソナライズ化することが可能となります。しかし、ChatGPTでは現在ファインチューニングに対してのサポートは行っていません。(2024年5月現在では、ファインチューニングが出来るようになっています!)
実践する場合は、独自でデータセットを作成し、OpenAIにて公開されているChatGPTのAPIを利用して実施する必要があります。APIを経由して学習させた内容はChatGPTの学習データとしては利用されません。
そのため、これまでのように情報漏洩などの心配をせずに学習させることが可能となります。企業など機密情報を扱う組織にとっては、この仕様は嬉しいですね。
トークン量の制限を受けずに大量のデータを学習させることも可能になるため、自主的に実践できるのであれば、この方法は効果的と言えるでしょう。ただし、APIの使用にはトークンの使用量に応じて料金が発生してきます。
AIの精度を上げるために大量のデータを学習させるとなると、APIの利用コストもかさむこととなってしまうため、特に個人で実装する場合は十分な注意が必要です。
ChatGPTに情報を学習させる方法③:プロンプトを使う
ChatGPTに情報を学習させる方法として、こちらが最も一般的で手軽な方法になります。プロンプトを投げる際に必要な情報を含めることによって、ChatGPTにプロンプト内に含まれている情報から回答してもらうことができます。
しかし、ChatGPTに投げられるプロンプトには情報量に制限があります。GPT-3.5 では最大 4096 トークンまで、GPT-4.0 では最大 8192 トークンまでという壁が存在するため、学習可能な情報量としてはごくわずかです。
このトークンの制限を超えると、ChatGPT上では以下のようにエラーとなり、回答が得られなくなってしまいます。日本語は英語に比べるとトークンの使用量が多いため、条件としては更に厳しいものとなります。
新書サイズの書籍1冊分でも6万文字程度の情報量になるため、4000トークン程度で生成AIとして望んだ性能を実現するには、限界があると言えるでしょう。ChatGPTはプロンプトに含めるトークンの量が多くなればなるほど、回答の精度が落ちるといった弱点も存在します。
また、プロンプト経由で学習した内容の記憶は、同セッション内のみで有効となっています。つまり、自分以外のユーザーが利用したときには異なるセッションとなってしまうため、学習データは忘れ去られて元の状態に戻ってしまうこととなるのです。
上記のような理由からも、ChatGPTに対して大量のテキストデータを学習させたい場合は、プロンプトでの学習方法は限界があると予想できます。
※ChatGPTのトークンについてさらに知りたい方は、以下の記事で解説していますので合わせてチェックしてみてください!
ChatGPTに情報を学習させる方法④:APIを使った各社ツールを使う
最後に情報を学習させる手段として、企業にて提供されているツールを使用するといった方法があります。現在各企業では、ChatGPTを利用した独自AIの作成をサポートしてくれるツールが数多くリリースされています。
既に多くのユーザから望まれている機能にはなるため、この傾向は今後も増えてくると予想されるでしょう。その中の一つが、anybot社が提供するanybot for ChatGPTです。
anybot for ChatGPTより引用
こちらではCSVやテキストファイル、pdfなどの自社データをインプットとしてChatGPTに学習させることが可能になります。自分でこれらの作業を実現する場合はITに対する深い知見が必要でしたが、ツールのみで学習させることが可能になるためとても手軽です。
UIも感覚的で、使いやすいものとなっています。利用料や料金体系等は公開されていませんが、興味のある方はanybot社へぜひ問い合わせてみて下さい。
【2024年現在は可能】ChatGPTは独自情報を学習させることをサポートしていない
上記でも述べましたが、現在の段階ではOpenAI側はChatGPTに対して独自情報を学習させることについてサポートを行っていません。つまり、OpenAI側からファインチューニング等の方法が公式で発表されているわけではないということになります。
そのため、独自のデータを学習させようとする場合は、独力で上記で述べたファインチューニング等の方法を試す必要があるということになります。しかし、ITに対する専門的な知見やプログラミングスキル、環境構築に対する知見が発生してくるため、難易度は高いものとなっています。
個人でファインチューニングを行うためには、インターネット上などで情報を探しながら実践していく必要があります。
【2024/05/21追記】ChatGPTでファインチューニングが可能に!
ついにChatGPTでファインチューニングができるようになりました!
こちらについて記事にまとめていますので少々お待ちください…!
まとめ
この記事をまとめると、
・ChatGPTには、学習段階のデータへ独自データを入れ込むことはできない。→【2024/05/21追記】現在はChatGPTでファインチューニングが可能に!
・学習段階のデータはOpenAI側にて管理されている。
・独自データを学習させるには複数の方法があるが、API経由にてファインチューニングを行う方法が一般的である。
でした。
個人が利活用するには壁が多い段階ですが、既に各所でChatGPTを利用した取り組みが開始されているため、個人レベルで簡単に実施できるのも遠くはない未来かもしれませんね。
- ChatGPTで〇〇を効率化したい
- スライドを作るならどのAIツールがおすすめ?
- おすすめのGPTsが知りたい
同じ悩みを解決した人がいるかもしれません。ぜひ質問してみてください!