背景
ChatGPTがなぜ0から会話できるようになった流れを細かくわかりやすく説明したいと思います。
ネットで調べてみると、意外とChatGPTに関するシンプルな説明が少なく、一番最初から詳しく解説する記事も少いような気がします。
ですので、私が理解しているChatGPT(他の言語モデルも同じく)の全体的な中身を0から1まで説明してみたいと思います。
*認識が間違っているところもあると思いますが、ぜひコメントで教えていただきたいです。
1.まず最初の最初、「モデル」から話ししたいと思います。
モデルは一番最初の段階では、ただのランダムな数字で構成されています。(ウェイト(Weights)という概念をわかればより簡単に理解できると思いますが、実は正規分布でランダムに初期化されたWeightsで構成されています。でも数字として理解しても特に問題ないかと思います)
なので、この時点のモデルは何にも知らず、何も理解できないです。例えば、「How are you?」をinputすると、「1?<L+L#&」のような何でもないoutputが出てくると思います。
2.プレトレーニング(Pre-training)
ここからモデルは、インターネットから収集されたものすごい膨大なデータを使って学習をスタートします。学習よりはデータを全部自分の中に入れるようなイメージです。(ここで入れるデータはunlabeledと呼ばれます。なぜかというと、わざと準備されたデータではないからです。)
*GPT-3の場合は、学習データは約3,000億の単語で、31億のサイトの内容を含んでいました。メインとなっている言語は英語で、全体の約46%を占めています。一方、日本語は約5%でした。なので、今ChatGPT4になっても英語は一番性能が強いです。
次のステップは自己教師あり学習(Self-supervised learning)です。これは自然言語処理のベースとなっている、非常に有名なTransformerのSelf-attention(単語と単語の間の関係性を理解する)アーキテクチャに基づいてます。
自己教師あり学習で行う作業は、非常に単純で、「一つの単語(token)につなぐ次の単語を予測する」ことだけです。
この単純すぎる作業を数百億回以上自己訓練後、How の後はare、areの後はyou,モデルはHow are youのようなフレーズを予測できるようになりました。どちらかというと、いきなり言語力をできたような感じです。(ですので、モデルが言語力を身につけることは本当に偶然なことです。こんな単純作業を繰り返すだけで会話能力を持つAIが現れるとは想像できませんでした。不思議ですね)
*ちなみに、OpenAIは0からGPT3.5まで約5年ほど学習しました。
この時点のモデル(Base model)はものすごいデータを学習しましたが、まだ会話する能力はないです。「How are you」をinputすると、「How are you?what’s your name?where are you from?.....」みたいな関係ないoutputが出てきます。なぜかというと、モデルは「How are you」を見たことありますが、それが質問としての回答を求められていることを理解していないためです。そのため、outputは文字化けにはならないですが、適当に学習データで見た内容をoutputするような状態です。
③ファインチューニング(fine-tuning)
会話できるChatbotになるために、fine-tuningが必要です。つまり、GPT3.5からChatGPT3.5に進化することです。
fine-tuningによって実現できることは主に2つがあります。
一つはモデルの行動をコントロールし、明確な指示や条件をモデルに与えることです。例えばChatGPTなら、人間と会話してほしいという指示を覚えさせます。
もう一つは、モデルの性能アップで、プレトレーニングで学んだ間違ってる内容を直すとか、新たな知識を得ることです。
ファインチューニングには必要なデータ量が非常に少なくなります。(まだまだ多いですが、プレトレーニングと比べるとわずかくらいなレベルです。)
モデルを特別な指示に対応できるようになりたいために、特化したデータセットを使って学習します。(例えば画像系ならよく使われるImageNetを学習させて、画像系のタスク対応できるようなLLMになるとか)
この時にやる作業はプレトレーニングの際と変わらず「一つの単語につなぐ次の単語を予測する」ことだけです。
ただ、変わったことはweightsに対しての調整で、一部を調整するではなく、全体的なweightsを一括で調整することです。こうすると、モデルのoutputはなってほしいストラクチャー(この問に対してはこの回答してほしいとか)に少しずつ近づきます。
fine-tuningができた時点で、やっとモデルが「How are you」に対して「I am fine」を回答することをわかって、GPTが会話できるChatGPTになりました。