Skip to content
Cloud AI エンジニア入門ガイド
Go back

02. ChatGPT大規模言語モデルの仕組み

ChatGPTを使い始めると、不思議に思う挙動がいくつも出てきます。同じ質問なのに毎回答えが違う。長い会話だと前半を忘れる。簡単な文字数の数え上げを間違える。どれも内部の仕組みから素直に説明できます。

この章の全体像として、トークン、次のトークン予測、見渡せる範囲、学習の三段階の4つを番号順に並べ、読み終えると出力のゆらぎや物忘れ、数え上げの誤りを仕組みから説明できるようになることを示した図

シリーズ目次前章: 01. ChatGPTとは何か次章: 03. ChatGPTを使い始める:画面・プラン・準備

Table of contents

Open Table of contents

この章のねらい

鍵1 トークン:言葉を扱う最小単位

モデルは文字や単語をそのまま扱っていません。文章をトークン(token) という小さな断片に割ってから処理します。トークンは単語より細かいこともあれば、複数文字をまとめたものになることもあります。

英語では「おおむね1トークン ≒ 4文字程度」、日本語では1文字が1トークン以上になることが多く、同じ内容でも日本語のほうがトークン数が多くなりがちです。

たとえば「東京の天気を教えて」という文は、内部でこういう断片の並びになります(割り方はモデルによって違います)。

["東京", "の", "天気", "を", "教え", "て"]

このトークンという単位が、後に出てくる料金計算や、一度に扱える情報量の上限(コンテキストウィンドウ)の基準になります。

分割の様子と、言語によるトークン数の違いをまとめると次のようになります。

入力文「東京の天気を教えて」が6つのトークンへ分割される様子と、英語ではおおむね1トークンが4文字、日本語では1文字が1トークン以上になりやすいという違いを並べ、数え上げを間違える理由を示した図

Note

「『りんご』は何文字ですか」のような問いをモデルが間違えるのは、見ているのが文字ではなくトークンだからです。人間が文字として見ているものを、モデルは直接には見ていません。

鍵2: 次のトークンを予測し続ける

大規模言語モデルの中核の動作は単純です。これまでの文章を入力として受け取り、次に来るトークンの確率分布を計算し、その中から1つ選ぶ。これを終了条件に達するまで繰り返します。

入力文をトークンに分割し、次のトークンの確率を計算して1つずつ出力していく流れの図

「今日はいい」まで与えられたとき、モデルは次のような確率を出します。

候補確率(例)
天気0.62
0.21
気分0.09
その他0.08

常にいちばん確率の高い候補を選ぶと、毎回まったく同じ答えになり、文章も単調になります。そこで実際には、確率に従ってある程度ランダムに選びます。同じ質問でも毎回少しずつ答えが違うのは、このランダム性のせいです

このばらつき具合を調整する値を温度(temperature)と呼びます。ChatGPTの画面では普通いじりませんが、APIでは指定できます(第10章)。

モデルがやっているのは、正しい答えを検索することではなく、もっともらしい続きを作ることです。この性質が、後で出てくるハルシネーションの根にあります。

鍵3 コンテキストウィンドウ:一度に見渡せる範囲

モデルが一度の処理で参照できるトークン数には上限があります。これをコンテキストウィンドウ(context window) と呼びます。入力(これまでの会話、添付ファイルの内容、システム上の指示)と出力の合計がこの枠に収まる必要があります。

会話が長くなると、古い部分は枠から押し出されるか、要約に置き換えられます。長い会話で最初の指示を忘れたように見えるのは、これです。

枠の中に何が入り、何があふれるのかを図にすると分かりやすくなります。

システム上の指示、これまでの会話、添付ファイルの内容、これから生成する出力がコンテキストウィンドウという1つの枠に収まり、枠からあふれた古い会話は要約に置き換えられるか失われることを示した図

対策は単純です。

鍵4: 学習の三段階

ChatGPTらしい応答は、次の三段階の学習を経て作られます。

事前学習、教師ありファインチューニング、人間のフィードバックによる強化学習という三段階を示した図

段階何をするか何が身につくか
事前学習大量のテキストで次トークン予測をひたすら学習する言語能力と広範な知識の統計的な傾向
教師ありファインチューニング(SFT)「良い応答例」を人が作り、それを真似させる指示に従い、対話形式で答える振る舞い
人間のフィードバックによる強化学習(RLHF)複数の応答に人が優劣をつけ、好まれる方向へ調整する有用さ・安全性・丁寧な口調

事前学習で得られる知識は、辞書のように整理して格納されているわけではありません。パラメータ(モデル内部の膨大な数値の集まり。重みとも呼ばれます)に、統計的な傾向として溶け込んでいます。だから、うろ覚えのところが滑らかに埋まってしまう。

また、事前学習に使われたデータには時期の区切りがあります。これを知識カットオフと呼び、それ以降の出来事は原則として知りません。最新情報が必要な場合はWeb検索機能を使う必要があります(第7章)。

RLHFは人間に好まれる応答を強化します。その副作用として追従性(sycophancy)、つまり利用者の主張に同調しやすい傾向が出ます。自分の仮説をぶつけて「そのとおりですね」と返ってきたら、それが検証結果なのか、ただの同意なのかを疑ってください。

推論モデルとの違い

2024年末以降、答える前に長い中間思考を生成してから最終回答を出す推論モデル(reasoning model) が出てきました。人間が下書き用紙で計算してから答えを清書するのに似ています。

内部でやっていることは相変わらず次のトークン予測です。ただ思考過程そのものを長く生成させると、多段階の推論や複雑な計算の精度が上がります。その代わり遅いし、高い。使い分けは第5章で扱います。

仕組みから説明できるよくある現象

現象原因
毎回答えが違う次トークンを確率的に選んでいるため
存在しない論文やURLを作る「もっともらしい続き」を生成しているため
長い会話で前提を忘れるコンテキストウィンドウの上限を超えたため
文字数の数え上げを間違える文字ではなくトークンを見ているため
こちらの誤りに同調するRLHFにより好まれる応答へ寄る傾向があるため
最近のニュースを知らない知識カットオフ以降のデータを持たないため

これはバグではなく設計上の性質です。直るのを待つのではなく、使う側が前提として織り込んでください。

現象ごとに別々の理由があるわけでもありません。ここで見た4つの鍵から、すべてが枝分かれしています。

トークン、次のトークン予測、コンテキストウィンドウ、学習の三段階という4つの鍵から、数え上げの誤り、答えのゆらぎ、作り話、物忘れ、同調、最新情報を知らないという6つの現象が枝分かれして生じることを線で結んで示した図

要点

参考資料


シリーズ目次前章: 01. ChatGPTとは何か次章: 03. ChatGPTを使い始める:画面・プラン・準備


Share this post:

Previous Post
03. ChatGPTを使い始める:画面・プラン・準備
Next Post
01. ChatGPTとは何か