【AI初心者向け】ChatGPTの学習の仕組み・応答の仕組みをわかりやすく徹底解説

ダウンロード: 生成AIを活用したコンテンツ制作の拡大無料ガイド
伊佐 裕也(いさ ひろや)
伊佐 裕也(いさ ひろや)

最終更新日:

公開日:

ChatGPTは生成AIチャットボットの一つであり、プロンプトと呼ばれる指示文を入力することで自然な言語での回答が得られるツールです。日常的な業務で活用せずとも、一度使ってみたことがある方は多いかと思いますが、どんな仕組みで動いているのでしょうか。

【AI初心者向け】ChatGPTの学習の仕組み・応答の仕組みをわかりやすく徹底解説

生成AIをコンテンツ制作に活用するための入門ガイド

コンテンツ制作に役立つプロンプトの書き方など、制作のプロセスにAIツールを適切に取り入れる方法をご紹介します。

  • 生成AIの概要と、独自のコンテンツを作成する方法
  • コンテンツ制作業務全般に役立つAI活用のメリット
  • AIに関する懸念点への回答
  • チームにAIを導入するためのヒント

    今すぐダウンロードする

    全てのフィールドが必須です。

    ダウンロードの準備ができました

    下記のボタンよりダウンロードいただけます。

    本記事では、AI技術について専門的な知識はないものの仕組みを知ってみたいという方向けに、どう学習してChatGPTというサービスが成り立っているのか、プロンプトを送って回答が返ってくるまでにどんな仕組みで動いているのかの2点について、わかりやすく解説します。

    ChatGPTの基本的な内容について知りたい場合は、以下コラムをご覧ください。

    【AI初心者向け解説】 ChatGPTがデータを学習し、製品としてリリースされるまでの仕組み

    【AI初心者向け解説】 ChatGPTがデータを学習し、製品としてリリースされるまでの仕組み

    ChatGPTは、自然な言葉でやり取りができる生成AIチャットボットの一つです。2022年11月に一般向けサービスとして登場し、さまざまな質問への回答やタスクの実行が可能なことから爆発的に広まり、生成AIが広く知られるきっかけとなりました。

    ChatGPTはさまざまなAI技術が複合的に使用され、高度なプロセスで学習を行うことで、誰でも日常生活や業務に活用できるAIチャットボットとして仕上がっています。その仕組みをわかりやすく解説すると、以下のような流れになります。

    1.  膨大なデータをもとに事前訓練して言葉を覚える
    2.  「次に続く言葉を予測する仕組み」がベースに
    3.  チャットボットとして受け答えができるように調整
    4.  さまざまな調整を行い、安全性を確保
    5.  ユーザーからのフィードバックをもとに改善

     

    0. ChatGPTの技術のベースとなる「Transformerモデル」

    学習の仕組みを学ぶ前段として、ChatGPTのベースとなる技術について押さえておきます。

    ChatGPTというツールは、「Transformer(トランスフォーマー)モデル」と呼ばれるAIアーキテクチャをベースに作られています。このモデルをベースに、「GPT(Generative Pre-trained Transformer)」という名前のオリジナルのアーキテクチャが作られ、ChatGPTの根幹となっています。

    アーキテクチャとは「構造」を意味する言葉で、システムを動かすための仕組みのことです。

    「自転車」を例に考えると、「ペダルを回すことでチェーンを動かし、チェーンが後輪を回転させることで前進する」という仕組みがアーキテクチャです。どの自転車もこの仕組みは同じであり、「Transformerモデル」がこれに当たります。生成AIチャットボットはすべて、Transformerモデルをベースにしています。

    また、自転車の品質を上げて競合に打ち勝つために、メーカー各社はペダルからチェーンへの力の伝え方やギアの重さを調整するなどして独自の構造を作ります。これが「GPT」に当たり、その他の生成AIチャットボットも独自のアーキテクチャを作っています。

    0. ChatGPTの技術のベースとなる「Transformerモデル」

     

    1. 「事前訓練」にて膨大なデータを学習

    さて、ここからツールとしてのChatGPTを作るための学習の過程に入ります。

    AIと呼ばれる技術にはさまざまなタイプがあるものの、近年ではAIといえば「機械学習」を指します。ChatGPTも例に漏れず、機械学習によって作られています。

    機械学習とは、コンピュータがデータを学習し、特定のタスクを実行できるようにするものです。例えば、犬と猫の画像データを学習し、コンピュータが写真を見て「これは犬だ」「これは猫だ」と判定できるようにします。

    ChatGPTでは自然言語を扱うため、学習に用いるデータも自然言語でなければなりません。

    ChatGPTの事前訓練では、インターネット上から収集した膨大なテキストデータが用いられています。これにはニュース記事や各種Webサイトはもちろん、書籍の情報なども含まれています。こうしたデータを大量に学習することで、言葉の意味や単語同士の結びつきを理解していきます。

    なお、「事前」訓練とは呼んでいますが、この学習をもって独自のアーキテクチャ「GPT」は完成します。Generative Pre-trained TransformerのPre-trainedは「事前訓練済み」という意味で、ここまでのプロセスが完了していることを表します。

    「膨大なデータを学習」と述べましたが、具体的に、どのような学習を行っているのでしょうか。

    重要なポイントは、「自己教師あり学習」と「ディープラーニング」です。以下、わかりやすく簡潔に解説します。
     

    1-1. 自己教師あり学習

    1-1. 自己教師あり学習

    機械学習の中でも、さまざまな学習方法があります。その中で最低限押さえておきたいのは、「教師あり学習」と「教師なし学習」です。

    どちらも、多くのデータを学習させる点では同じです。私たち人間も何度も繰り返し勉強することで、物事を理解し、テストで正解できるようになります。

    教師あり学習では、犬の画像には「犬」、猫の画像には「猫」のラベル(正解)を付与します。これにより、コンピュータは「犬」の特徴と「猫」の特徴を覚えていきます。

    一方の教師なし学習では、ラベルを付与しません。そのため、仮に同じ学習を行ったとき、コンピュータは特徴を学習してもそれが「犬」か「猫」かまではわかりません。さらには、画像の中に「犬みたいに見える猫」のような中間の特徴の画像が多かった場合、第3の分類を生み出すかもしれません。

    そのため、画像の「犬」「猫」判定は教師あり学習のほうが適しているといえます。

    ただ、教師あり学習には「人間の専門家が一つずつラベルを付与する必要がある」という課題があり、大量のデータを用意するのは困難です。ここで登場するのが、「自己教師あり学習」です。

    1-1. 自己教師あり学習_1

    ChatGPTの学習データにおいて、例えば「犬も歩けば棒に当たる」という文章があったとき、自己教師あり学習では文の一部を隠して「犬も歩けば棒に◯◯◯」という擬似的な問題を作ります。コンピュータはここに何が続くのか推論を繰り返し、自身で回答を評価することで徐々に正解に近づけていきます。

    実際にはもっと複雑な仕組みがありますが、このように自身で教師ありデータを作成することで膨大なデータの学習を実現し、ChatGPTは自然言語を学んでいきます
     

    1-2. ディープラーニング

    AI関連のニュースが珍しくなくなったいま、ディープラーニングという言葉を聞いたことがきっとあることでしょう。

    1-2. ディープラーニング

    ディープラーニングとは、機械学習の手法の一つで、「ニューラルネットワーク」という構造を使用します。技術的な詳細は割愛しますが、「人間の脳のニューロンの働きを模したもの」とだけ覚えておいてください。

    ディープラーニングは、コンピュータ自身が繰り返し学習を行うための仕組みです。教師あり学習・教師なし学習に並ぶ別の手法ではなく、これらの学習を著しく加速させるための仕組みとなります。ディープラーニングとそうでないものの違いは、いくつかありますが、最も明確な違いは「扱えるデータ量」が膨大かそうでないかです。

    ChatGPTはTransformerモデルをベースに作られている、と述べましたが、このTransformerモデルもディープラーニングの一種です。

    ChatGPTが自然な会話での応答を実現するためには、膨大なデータの学習が必要となります。ディープラーニングによってこれが可能となっているのです。
     

    2. Transformerモデルは「次に続く言葉を予測する仕組み」

    ChatGPTを作るためには、最初に「1.」で解説した膨大なデータによる事前訓練を行います。事前訓練は主に「自己教師あり学習」をベースに進められ、これは「ディープラーニング」によって著しく加速し膨大なデータを次々に学習します。ChatGPTではこの仕組みとして、「Transformerモデル」を採用しています。

    ここで余談として、「ChatGPTのやっていることは人間とかなり似ている」という話をします。

    ChatGPTはディープラーニングによって人間には不可能な速さで学習を進めるものの、想像もつかない未知のプロセスを辿っているのではなく、やっていることは「事前にテスト勉強をしてからテストに臨む」という学校生活のプロセスに似ています。

    例えば数学のテストが控えているとした場合、テストに出てくるであろう数式の問題を解けるようになるために、その数式の練習問題をいくつも解くでしょう。いくつも解くことで数式を理解し、テストで問題が出てきたときに正解を導くことができます。

    つまり、「学習」と「本番」では同じことをしている、ということです。ChatGPTの仕組み、ひいてはAI(機械学習)の仕組みも同じであり、「学習」で大量の練習問題を学ぶことで「製品版」にて同じことができるようになります。

    ここで本題に戻りますが、ディープラーニングは大量の練習問題を「なんらかの解き方で回答していくこと」を指し、Transformerモデルは「解き方の一種」と考えることができます。数学でいえば、「問題を計算して回答し答え合わせをする」や「解答を参照して途中式を考える」といった学習の手法がありますが、Transformerモデルはこのような解き方の一つといえるのです。

    この話からわかるように、Transformerモデルは「事前訓練にて膨大なデータを学習するとき」、「本番にてプロンプトから回答を返すとき」の両方で働いています。

    では、Transformerモデルはどのような解き方で、つまりどのような仕組みで自然言語を理解しているのでしょうか。見出しにて「次に続く言葉を予測する仕組み」と述べていますが、以下よりその内容についてわかりやすく解説していきます。
     

    2-1. Transformerモデルの核心「自己注意機構」

    Transformerモデルは、2017年にGoogle が発表した論文で初めて登場しました。自然言語を理解するためのこの技術は、生成AIチャットボットはもちろん、Google 翻訳といった翻訳システムでも使われています。

    Transformerモデルが優れている理由は、その根幹である「自己注意機構」にあります。自己注意機構は、入力された文章全体を一度に認識し、単語と単語がどのくらい関係しているのかを計算します。例えば「犬も歩けば棒に当たる」という文があったら、「犬も」と「当たる」の関係が強いだろうと計算します。

    自己注意機構それ自体は以前からあった技術で、感覚としては人間の「注意(意識)を向ける」能力を模倣したものです。

    例えば以下の写真を見たとき、人間は瞬時に「汽車の写真だ」とわかりますが、これは空や線路部分を除外して汽車の部分に「注意を向けている」ために可能となっています。

    2-1. Transformerモデルの核心「自己注意機構」

    コンピュータでは、学習を繰り返すことで「こういった写真ではココを注意すればいい(見ればいい)」と判断できるようになり、「汽車の写真だ」と回答できるようになっていきます。この例から、画像認識においても自己注意機構が使用されていることがわかります。

    これまでの自然言語処理のアーキテクチャでは、基本的に文章の冒頭から順に認識していました

    Transformerモデルの自己注意機構では、全体を一度に見ることで遠く離れた単語同士の関係性も認識することが可能です。また、自然言語において重要である単語の順番についても理解します。これにより、訓練速度が圧倒的に速く、文章の意味を正確に捉えることができます。
     

    2-2. Transformerモデルは何をしている?

    Transformerモデルは、入力された文章に対し、以下のような流れで処理を行います。

    1.  入力された文章を「コンピュータが理解できる内容(数値)」に変換【エンコード】
    2.  その内容から“次に来る言葉”を予測
    3.  “次に来る言葉”を自然言語に変換し直し、出力【デコード】

    以下は、Transformerモデルの働きを簡略化した図です。

    2-2. Transformerモデルは何をしている?

    【エンコード】
    Transformerモデルはまず、入力された文章をエンコードし、「コンピュータが理解できる内容(数値)」に変換します。

    なぜ、一度変換する必要があるのでしょうか。

    人間は自然言語をそのまま理解できますが、コンピュータはそうはいきません。「コンピュータは0と1だけで計算を行っている」という話を聞いたことがあるかと思いますが、このように、数値にしなければコンピュータは理解ができないと捉えておくといいでしょう。

    今回は、「犬も歩けば」を入力することにします。

    エンコード

    エンコードではまず、入力された文章をバラバラにします。例えば「犬/も/歩けば」といったように分割しますが、実際には単語で区切るというよりはもっとバラバラのようです。

    バラバラにしたこれらを「トークン」と呼びます。

    エンコード_2

    次に、トークンをコンピュータが理解できる内容(数値)に変換しますが、これを「ベクトル」と呼びます。ここではそう呼ぶものだということだけ覚えておいてください。

    ベクトル化の際に自己注意機構が働き、特に重視するべきトークンを判断したり、単語同士の影響度合いを計算したりします。

    これらも一緒にベクトル化することで、Transformerモデルは入力内容を把握します。

    エンコード_3

    Transformerモデルは「学習時」と「本番」の両方で働いていると述べましたが、「学習時」には、ベクトル化した内容にIDを割り振って記憶します。

    以下の数値は無造作に当て込んだだけですが、エンコードの仕組みはこのように理解できます。

    • 犬も歩けば
    • 犬/も/歩けば
    • 2000/357/30082

    これを積み重ねていくことで、人間でいうところの知識が増えていきます。

    【予測】
    Transformerモデルでは、エンコード後、“その次に来る言葉”を予測します。予測は同時に何パターンも行われるため、同じ質問をしても違う答えが返ってくる、という仕様が生まれます。

    予測

    「犬も歩けば」という文が入力されたとしたら、次は「棒に当たる」と返したいところです。

    まだ学習がゼロの状態だと、きっとトンチンカンな言葉が後ろに続くことでしょう。しかし膨大なデータを学習していく中で、「棒に当たる」が確からしいと判断できるようになっていきます。

    【デコード】
    最後に、“予測した次の言葉”を「デコード(自然言語へ変換し戻す)」します。

    【デコード】

    「学習時」には、この回答を自身で評価し、パラメータとして記憶します。パラメータとは、入力された内容に対し「こう処理するといいよね」というルールのようなものです。

    「犬も歩けば」という入力に対しては「棒に当たる」と返すといい、というパラメータを作ることができれば、そのAIは優秀だといえます。

    以上のような流れで、Transformerモデルは膨大なデータを「事前訓練」しています。
     

    3. 「ファインチューニング」にてチャットボットとして調整

    長くなりましたが、以上のようにして独自のアーキテクチャ「GPT」が完成します。しかし、この状態ではまだ、ツールとしてのChatGPTとは程遠いといえます。

    「次に来る言葉を予測する」ことがTransformerモデルの機能だとしたら、「犬も歩けば」と入力したとき、「棒に当たる」と返ってくるべきです。しかし、ChatGPTで「犬も歩けば」とだけ書いたプロンプトを送ると、まるで会話をするかのように返答が返ってきます。

    3. 「ファインチューニング」にてチャットボットとして調整

    このように、「次に来る言葉を予測する」仕組みを「対話形式」として調整することを、「ファインチューニング」といいます。
     

    3-1. ファインチューニング:学習済みモデルを目的に合わせて微調整

    すでに学習の済んだAIモデルを、目的に合わせて微調整することを「ファインチューニング」と呼びます。これは機械学習の運用においては一般的な手法です。

    例えば、ChatGPTの活用法として「自社の情報を追加で学習させて社内FAQを作る」というものがあったり、画像生成AIの活用として「追加学習させて独自のテイストや人物データを作る」というものがあったりしますが、これらもファインチューニングです。

    ChatGPTを作るためのファインチューニングでは、人との対話を行うために特化したトレーニングが行われます。

    トレーニングでは、会話形式のデータが用いられます。例えば、過去のチャット記録やカスタマーサポートの会話ログなどが挙げられます。これにより、ChatGPTは「どのように質問に答えるか」「どのタイミングでどんな情報を提供すべきか」といった、ユーザーとの会話に必要なスキルを身につけていきます。

    また、このファインチューニングの過程では、人間の専門家がAIの応答を評価し、適切な修正を加えます。これにより、ChatGPTはより自然で使いやすい対話型AIとして仕上がり、「犬も歩けば」というプロンプトにも会話のように返答できるようになるのです。
     

    3-2. Google 翻訳の翻訳機能もファインチューニングによるもの

    「次に続く言葉を予測する」Transformerモデルの別の活用例として、Google 翻訳などの翻訳システムもあるとご紹介しました。このシステムも、ファインチューニングによって作られています。

    ChatGPTなどの対話型AIチャットボットでは、入力に対してその返答内容を予測するようにファインチューニングしますが、翻訳システムでは「別言語への翻訳を返す」ようにファインチューニングされているのです。
     

    4. 安全な使用のための対策

    ファインチューニングの時点でツールとしてのChatGPTの形はほぼ完成していますが、安全に使用できるツールにするにはもう少し調整が必要です。

    AIが生成する内容には、不適切な内容が含まれないようにする必要があります。特に、ビジネスシーンでの利用を考えると、暴力的・差別的な内容や誤情報が含まれていないかを確認するプロセスが重要です。

    また、偏った情報(バイアス)が含まれることも避けなければなりません。

    こういった、ツールの安全な使用に影響する要素を排除するように調整が行われ、私たちが誰でも簡単に利用できるChatGPTが出来上がります。
     

    5. フィードバックをもとに改善

    ChatGPTが製品として世に出てからも、ユーザーのフィードバックをもとに改善を繰り返しています。

    実際のプロンプト入力欄の下にも書いてありますが、ChatGPTをはじめとする生成AIは必ずしも正しい回答を返せるわけではありません

    ユーザーからのフィードバックが集まることで、応答性能を常に高めています。
     

    【AI初心者向け解説】 ChatGPTがプロンプトを処理し回答を返すまでの仕組み

    私たちがChatGPTを使うとき、プロンプトにて質問やリクエストを入力すると、それに対する回答が返ってきます。

    【AI初心者向け解説】 ChatGPTがプロンプトを処理し回答を返すまでの仕組み

    簡潔にいえば、ChatGPTが教えてくれたように回答を生成しています。

    本記事では、「Transformerモデルは『事前訓練にて膨大なデータを学習するとき』、『本番にてプロンプトから回答を返すとき』の両方で働いている」と解説しました。

    すなわち、私たちがテスト勉強の練習問題とテスト本番の問題を同じプロセスで解くのと同様に、プロンプトから回答を生成するまでの処理は学習時と同じ流れで行っています。

    以下からは、「日本一高い山はなんですか?」というプロンプトに対し、「日本一高い山は富士山です。」と返ってくると仮定して、処理の流れを見ていきましょう。
     

    1. 【エンコード】入力されたプロンプトをベクトルに変換

    学習の仕組みの解説を繰り返すことになりますが、ChatGPTは入力されたプロンプトをまずベクトルに変換します。

    このとき、自己注意機構が重要な働きをします。「日本一高い山はなんですか?」をバラバラのトークンに分解したあと、どのトークンが重要なのかを判断する必要があるためです。この質問では「山」がトピックなので、自己注意機構は「山」を最も重要だと判断します。

    また、これまでの解説のとおり、自己注意機構はトークン(単語)同士の結びつきも計算します。

    プロンプトのうちどこが重要なのか、トークン同士はどういう関係なのかを計算するためには、これまでに学習してIDを割り振ったベクトルと照らし合わせて判断します。
     

    2. 【デコード】

    エンコードしたベクトルをもとに、Transformerモデルは「次に続く言葉」を予測します。ChatGPTでは対話するようにファインチューニングされているので、プロンプトに対して最適だと思われる回答を生成していきます。もちろんこのときにも、自己注意機構が重要な役割を果たします。

    「日本一高い山はなんですか?」という質問に対して回答するなら、「日本一高い山は富士山です。」の他に、「それは富士山です。」や「富士山が日本一高い山です。」といった回答もありでしょう。

    人間の場合は、一瞬で頭の中に回答を作り、口から発話していきます。一方、ChatGPTの場合は1トークンごとに予測していきます。

    具体的には、「日本一高い山はなんですか?」に続く言葉(トークン)として、「日本一」「それは」「富士山が」を候補として選出します。その後、最適な回答としてより確率が高いものを選び、回答用のトークンとして出力します。今回の仮定では、「日本一」が採用されます。

    この時点では、「日本一高い山はなんですか?」「日本一」の状態です。これではまだ回答として完成していないので、もう一度デコードに回します。そして、「日本一」に続く最適な言葉(トークン)として、「高い」を選出します。

    「日本一高い山はなんですか?」「日本一高い」となったので、これを再度デコードに回し…というように繰り返すことで、1トークンごとに予測し、回答を完成させていきます。

    続くトークンをどんどん出力し、「これで最適な回答が完成した」と自己評価できたら、トークンを自然言語に変換し直します。このように同じプロセスを繰り返すことで、ChatGPTは長文の回答も可能にしています。
     

    前に入力した内容も考慮

    ChatGPTなどの対話型生成AIの特徴は、一度の受け答えだけでなく、まるで人と会話をするように連続で受け答えできる点にあります。これは、それまでの会話も考慮して次の回答を生成できるためです。

    例えば、「日本一高い山はなんですか?」「日本一高い山は富士山です。」という会話のあと、「二番目はなんですか?」と聞くと、「二番目は北岳です。」と教えてくれるでしょう。

    しかし、新しいチャットルームを作成していきなり「二番目はなんですか?」と聞いたら、さすがに「北岳」とは返ってこないでしょう。

    実際にやってみました。

    前に入力した内容も考慮

    ChatGPTでは単なる回答だけでなく、こちらが知りたいと思っているであろう付属情報も教えてくれます。

    続けて、「二番目はなんですか?」と聞いてみました。

    前に入力した内容も考慮_4

    しっかり北岳について教えてくれました。

    今度は新しいチャットルームを作成し、すぐに「二番目はなんですか?」と聞いてみました。今度は、辞書的な意味を教えてくれました。何か別のことを聞きたかったのではないかと推測し、次に尋ねてほしいことについても教えてくれます。

    ChatGPTが、前の会話の内容を受けて回答を生成していることがよくわかります。

    この特徴を利用すると、専門的な内容を尋ねたあとに素人向けへの解説を依頼して理解度を上げたり、アイデア出しの壁打ち相手になってもらったりといった活用ができます。

    ここまでChatGPTの仕組みについて解説してきましたが、実際の使い方やコツについて知りたい方は以下コラムをご覧ください。

     

    ChatGPTの仕組みを知って実務に活用しよう

    こうしてみてみると、人間の知性を模倣した技術であるAIといえど、決められた仕組みに従って入出力を行っているということがわかります。

    ChatGPTはプロンプトを入力するだけでさまざまな回答が得られる、誰でも簡単に使える便利なAIツールです。

    特に仕組みを知らずとも業務改善や生産性向上に活用できますが、仕組みを理解することで生成AIへの理解度が増し、その他の対話型生成AIや画像生成AIなどの仕組みや使い方にも理解が深まるでしょう。

    HubSpotではこの他にもマーケティングやセールスに役立つ資料を無料で公開していますので、ぜひこちらからご覧ください。

     

    生成AIをコンテンツ制作に活用するための入門ガイド

    関連記事

    この入門ガイドでは、コンテンツ制作のプロセスにAIツールを適切に取り入れる方法をご紹介します。