ChatGPTに学習させる方法|追加学習・機械学習の訓練を解説!

ChatGPTに学習させる方法|追加学習・機械学習の訓練を解説!

ChatGPTをさらに快適に使いこなしたい方へ。

こちらの記事ではAIでより効率的に成果を生み出せるように「ChatGPTに追加学習させる方法」についてまとめています。

今回はChatGPTに学習させる方法として、ファインチューニングの手順や注意点にフォーカスして解説。

とはいえ公開されたばかりのChatGPT、本格的なパーソナライズ化にはまだまだ限界があります。将来的に改善される取り組みについても触れながらご紹介していきます。

ChatGPTの仕組み

ChatGPT 仕組み

ChatGPTの学習に触れる前に仕組みを理解を深めることが、ChatGPTの利用にあたり重要です。そもそも「ChatGPTってどんなロジックで動いているの?」を知らないと学習について理解が深まらないからです。

結論から言うとChatGPTとは、簡単にいえばWeb上の膨大なテキストデータを解析して、入力した質問の回答を出力する仕組みです。

つまり、ネット上にある無数の情報をインプットして、質問されたらインプットした情報の中からふさわしい情報をアウトプットしてるだけです。

さらに具体的にいうと、

GPT-3を微調整したInstruct GPTというモデルがベース!

サチ
人間のフィードバックを反映させた強化学習「RLHFによって生み出されたたもの!

強化学習(RLHF)については、OpenAIの2022年の論文で詳しく説明されています。

GPT-3の事前学習に使われているデータセットは以下の内容です。

データセット

サチ
現段階でChatGPTは2021年9月までのデータで学習しています。

ChatGPTになるまでの過程

ChatGPTの仕組み

ChatGPTの仕組みを深掘りしていくと、モデルの進化が見られます。

こちらは、モデルの特性と進化の過程を表した一覧です。

モデル 特性 進化の過程
GPT-3 自然な文書生成 アラインメント問題
InstructGPT 人間のフィードバック 対話特化
ChatGPT 対話に特化したより自然な文書生成

現在のChatGPTのベースとなるGPT-3の誕生により、自然な文書生成ができるようになりますが、アラインメント問題が生じます。

アラインメント問題とは

GPT-3が不正確な内容、または非道徳的な文を出してしまうという問題のこと。

GPT-3による生成文が人間の好みとalign(一致)していないことを指します。

サチ
非道徳的な生成文の出力についての課題は、大規模言語モデルをサービスへ組み込むとなった際に問題視されます。

この問題を解決するために登場したRLHFでファインチューニングをおこない、InstructGPTへと進化を遂げることに。

さらにこれを対話特化させることで、いまの高性能なChatGPTへと至るのです。

GPT-3

  • 入力文に続く文を予測するモデル
  • TransformerにおけるDecoderで構成される言語モデル
  • 言語モデルの利点:教師なし学習

InstructGPT

  • 人間のフィードバックをもとに学習させる
  • RLHF(=Reinforcement Learning from Human Feedback) という手法で実現

学習ステップは以下の過程を繰り返すことで反映されます。

  1. 教師あり学習モデル(SFT)
  2. リワードモデル(報酬)
  3. 強化学習モデル(RLHF)

ChatGPT

ChatGPTはInstructGPTと類似。違いは以下の2つ。

  • モデル:GPT-3.5
  • データ:会話データ

 

InstructGPTにおいては

「プロンプトと出力」

 

対して、ChatGPTにおいては

「対話に特化している」という点が特徴です。

サチ
ChatGPTの学習の流れもInstructGPTと同様の3ステップになっています!

ChatGPTに学習させる方法は3つ

ChatGPTに学習させる方法は3つ
サチ
chatgptにもっと学習させたい…

せっかくなので、「学習させる方法」についてChatGPTに聞いてみました。

ChatGPTに学習させる方法は3つ

一般ユーザーが独自に学習させることはできません」といった答えが出力されました。

機械学習の訓練は、あくまでOpenAIが管理しているものであるという内容。

ただし、APIサービスの利用を通して学習させることができるようなことも最後に付け加えてありますね。

それでは、質問を少し変えて「ChatGPTで効率的に成果を生み出せる使い方」について聞いてみました。

 

ChatGPTの解答は、以下のポイントに留意して活用することだという内容でした。

ポイント

  • クリアな目的を設定する
  • 質問を具体的かつ明確にする
  • 対話を短く保つ
  • フィードバックを活用する
  • 応用例やテンプレートを活用する
  • 自己解決能力を高める
  • タスクのアウトラインを作成する

サチ
具体的な目的を持って、対話の効率を高めることと、フィードバックを通じて教えることでモデルの学習に役立てることがより効率的な使い方だということですね!

 

以上を踏まえて「ChatGPTに学習させる方法」を調査した結果、以下の3つの方法をご紹介します。

ChatGPTに学習させる3つ方法

  • 学習段階からデータに入れておく
  • プロンプトに学習データを入力する
  • ファインチューニングする

 

ChatGPTのAPIについても気になる方は>>ChatGPTAPI について解説!をご覧ください。

学習段階からデータに入れておく

ChatGPTへ独自に追加学習させる方法1つ目は、学習段階からデータに入れておく方法。

サチ
この方法は、こちらの記事を参照しています。

まずは、あらかじめVectoreStoreに利用したい独自データを学習モデルとして登録しておきます。

検索時にはLangchainというライブラリで、ユーザーからの質問に該当する情報を独自データベースから抽出し、ChatGPTによって回答させるといった仕組みです。

ChatGPTに全てのデータは渡せないため、独自データをVectorStoreというデータベースに保管する必要があります。

サチ
VectorStoreとは、データを文字列ではなく数値で示すEmbeddingsというベクター形式のデータで保管するデータベースのこと。

プロンプトに学習データを入力する

2つ目は、プロンプトへ学習データを入力する方法です。

ユーザーの入力に対し、それに関連するデータがあれば該当箇所の文章を抜き出してプロンプトに入れ、その情報に基づく回答をするようにします。

たとえば特定データの一部をプロンプトに組み込んで、適切に回答できるよう該当する情報が書かれている部分を抜き出します。

それをコンテキスト情報としてプロンプトに入力すると、ChatGPTはそれに基づいて回答してくれるようにできるというもの。

サチ
しかし、プロンプトには約4000字の文字制限があるため、関連情報を全て入力することはできません。

そのため関連情報を抜粋して、プロンプトへ入力する必要があります。

LlamaIndexLangChainの関数を利用することで簡単に抽出が可能です。

ファインチューニングする

3つ目はファインチューニングすることです。

ChatGPTは事前学習済みの状態を初期値とし、特定タスクの適応を目的としたファインチューニングを実施しています。

ファインチューニングを行うには、対象とするタスクに応じたデータセットを用意します。

サチ
ファインチューニングは、ユーザーが所持するデータを用いて特定のタスクに適応させる学習方法!

ファインチューニングの手順

ファインチューニングの手順

ファインチューニングの手順は以下の通りです。

手順

  1. ライブラリをインストール
  2. テキストデータを用意、事前学習済みモデルを読み込む
  3. モデルが理解する形式へテキストデータを前処理
  4. モデルをファインチューニング
  5. ファインチューニングしたモデルを保存

ファインチューニングの注意点

ファインチューニング実施にあたっての注意すべきポイントは以下の3つです。

  • データの量・質
  • モデル選択
  • ハイパーパラメータ調整

データの量・質

用意するべきテキストデータは、以下の要件でモデルの性能が向上すると考えられています。

  • データ量が多いのが好ましい
  • データの質が高いほどいい

モデル選択

事前学習に用いたものと同じタスクに向いているものが、ファインチューニングに好ましいモデルとされています。

ハイパーパラメータ調整

ファインチューニングで用いるハイパーパラメータ(学習率・バッチサイズ)の調整により、モデル性能の向上が見込めます。

ハイパーパラメーター(Hyperparameter)とは
機械学習アルゴリズムの「設定」をするパラメータのこと。
モデルの性能へ大きな影響を与え、適切な値を選択することが重要。ハイパーパラメーターの最適化は機械学習の要!
手動・自動などの手法があります。

サチ
私たちユーザーは以上のポイント3つに注意して、適切なファインチューニングを実施することで、ChatGPTを追加学習させることが可能です!

ChatGPTをパーソナライズ化

ChatGPTをパーソナライズ化

ChatGPTのファインチューニングによって、ある程度の範囲でパーソナライズ化が可能です。

具体的には、ユーザーが所持するデータベースに応じ、ChatGPTがその学習データを取り込んで特定のコンテキストに適応させて文書生成するように調整することです。

サチ
ファインチューニングの際にユーザーが文書生成の質を向上させるため、多数のハイパーパラメーターを調整することも可能!
サチ
だからと言って、ChatGPTはあくまでコンピュータプログラム。人のような本格的パーソナライズ化には限界がある点に留意する必要も…

本格的なパーソナライズ化は限界がある

サチ
ChatGPTは、不正確であったり意味を持たない出力をすることも。
主に3つの理由から、この課題を解決するのは困難と言われています。

OpenAIはChatGPTの限界について、次のように示しています。

  • 強化学習おいて、現時点で信頼できる情報源(Ground Truthの取得元)がない
  • 解答の正確性を突き詰めて学習させれば、正しく答えられる質問に対しても解答不可と判断されるケースが増加
  • 教師あり学習は、モデルを誤った方向に導く可能性

人間の評価を使う「教師あり学習」の場合、モデルは必然的に人間の模倣をするようになり、以下の可能性が懸念されます。

ケース 懸念されるモデルの反応
人間の方が知識が多い場合 知ったかぶりする可能性
モデルの方が知識が多い場合 知っているのに知らないふりをする可能性

 

サチ
理想は、モデルが所持する知識のみに基づく正しい解答。人間に寄せて学習することによりギャップが生じてしまうという矛盾…

将来的に改善される取り組み

将来的に改善される取り組み

サチ
まだまだ公開されて日が浅い発展途上のChatGPT。

現在、OpenAI社ではChatGPTの性能向上に向けさまざまな研究が進められています。

そのなかで最も注目を浴びている、大規模な事前学習と効率的なモデルアーキテクチャーの開発。

さかのぼれば、2020年に今のChatGPTの基盤とも言われる「GPT-3」新モデルが発表。その性能は人間レベルに匹敵する文章生成能力を持つことが示された後、さらに「GPT-3.5」という最新の自然言語処理技術が採用されました。

GPT-3.5は、約13億個のパラメータで構成。これによって、かつてのAIチャットボットとは違う人間のような自然な文章生成や対話を可能に。

またOpenAI社はさらに高度な技術開発として、GPT-3の次世代版となる「DALL·E」「CLIP」モデルを発表し話題となりました。

  • DALL·E:文章の説明から画像を自動生成するモデル
  • CLIP:画像・文章の特徴量を共通の空間に埋め込むモデル

そして2023年3月14日に公開された「GPT-4」は、マルチモーダル大規模言語モデルです。

「GPT-4はGPT-3.5よりも遥かに創造的かつ信頼性が高く、より細かな指示に対応でき、25000語以上のテキストを同時に読み取ることが可能」と紹介されています。

こういった取り組みを遂げてきたChatGPTの進化は今後も止むことなく、より高度な自然言語処理タスクに対応するであろうと期待されています。

まとめ

ChatGPTは、ユーザー側でのファインチューニングで個人のニーズに合ったカスタマイズも可能であることがわかりました。

人工知能の中で今もっとも注目されているChatGPTの高い性能を発揮させるために、大量のデータセットで行う事前学習。

今後さらに効率的なモデルアーキテクチャーの開発などによる性能向上が加速していくことが期待され、ChatGPTからますます目が離せません!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA