日常的に使うようになった対話型AI、ChatGPT。まるで人間と話しているかのような自然な受け答えをしてくれますが、
- 「中身はどうなってるの?」
- 「何を理解しているの?」
と不思議に思った方も多いのではないでしょうか
この記事では、GPTの仕組みをわかりやすく解説し、“AIと上手に付き合うヒント”が見つかることを目指します。
1. “GPT”とは何か
ChatGPTの”GPT”は「Generative Pre-trained Transformer」の略で、以下の3つのキーワードが技術の核を表しています。
- Generative(生成):新しいテキストを生成する能力を持つ
- Pre-trained(事前学習済み):大量のテキストを使ってあらかじめ学習している
- Transformer:Googleが2017年に発表した自然言語処理の基盤技術1
GPTはこのTransformerというアーキテクチャをもとに設計されており、入力されたテキストの「次に続くトークン(単語の一部や記号を含む最小単位) 」を予測するタスクに特化した自己回帰型モデルです。
2. 言葉をどう理解している? – ベクトル表現の世界
AIは、人間のように「意味」で言葉を捉えているわけではありません。
実は、AIにとって言葉は「数値の並び=ベクトル」として処理されます。
この数値化(ベクトル化)が、AIがテキストを“計算”できるようにするカギです。
たとえば「パリ」や「フランス」という単語は、それぞれ高次元のベクトル、つまり長い数列に変換されます。
このベクトル空間では、「意味が似ている単語どうし」が数学的にも近い位置になるように設計されています。
イメージとしては、“単語どうしの距離”が意味の近さを表している感じです。
「パリ」と「フランス」は地理的にも文化的にも近い関係なので、ベクトル空間でもお互いに近い場所に存在します。
◼︎ トークン埋め込み(Token Embedding)
もう少し掘り下げてみましょう。
この「単語=ベクトル」という仕組みは、単なる分類だけでなく、単語どうしの関係性も“数式”として扱える面白さがあります。
ベクトルは加減算ができるため、意味の関係も数式で表現できるようになります。
例えば、「パリ」 − 「フランス」は、首都という概念 を持っていると言えます。つまり、「首都」と「その国家」の関係性が、ベクトルの引き算や足し算で表現できるということです。
【Quiz】それを踏まえると、「東京」という単語がどのあたりに存在するかは「日本」がどこにあるかで分かりますよね・・?
◼︎ Word2Vecとの違い
このような「トークン埋め込み」の仕組みは、昔からある Word2Vec などのモデルでも体験できます。
簡単に試せる例として、気になる方は下記のコードを実行してみてください。
import gensim.downloader
# 学習済みのWord2Vecモデル(Google Newsデータに基づく)を読み込む
model = gensim.downloader.load('word2vec-google-news-300')
# 「Paris - France + Japan」に最も類似する単語を上位3件取得
result = model.most_similar(positive=['Paris', 'Japan'], negative=['France'], topn=3)
# 結果を表示
print(result)
# [('Tokyo', 0.8142861723899841), ('Toyko', 0.6596698760986328), ('Osaka', 0.6350962519645691)]
ただし、Word2Vecのベクトルは“単語ごとに一つだけ”決まっていて、文脈によって変化しません。
一方、GPTのベクトル化(contextualized embedding)は、その単語が出現する文脈ごとに動的に変化します。
これによって、たとえば「Apple」が「果物」として登場するのか「企業」として登場するのか、文脈から見分けてより自然な理解ができるようになっています。
3. GPTの文章生成は1トークンずつの積み重ね
ChatGPTが自然に話せるのは、次に来るトークンの確率分布を逐次予測しているからです。以下のような手順を繰り返しています:
- 入力されたテキストをベクトル化(Embedding)
- 自己注意(Self-Attention)を使って全体の文脈を解析
- 次に来るトークンの確率分布を計算
- その中から1つを選択(ランダム性あり)
- 出力されたトークンを次の入力として繰り返す
つまり、「一文をまとめて作っている」のではなく、「1トークンずつ、順番に、確率的に」作っているのです。
◼︎ 予測のイメージ
※正確には次の出力候補は、単語単位ではなくトークン単位で出てきます。
4. 創造性はどう調整するのか
GPTの出力の”自由度”や“硬さ”を制御するパラメータとして有名なのが「Temperature」です。これは、出力時の確率分布を調整するスケーリング係数です。
- 小さい(例:0.2):高確率のトークンがより選ばれやすくなる → より定型的、安定した出力
- 大きい(例:1.5):低確率のトークンも選ばれやすくなる → より多様で意外性のある出力
例)「昔むかしあるところに、」以降の続きを生成:
- Temperature 小:
→「昔むかしあるところに、おじいさんとおばあさんが住んでいました。」 - Temperature 大:
→「昔むかしあるところに、宇宙人が上陸し、村を支配しました。」
その他の生成パラメータ
- Top-p (nucleus) sampling : 上位 p % の確率質量から抽選
- Top-k sampling : 上位 k 個の候補だけを対象
GPTは、創造性そのものを理解しているわけではなく、ランダム性が増すことで創造的に「見える」 文章が生まれる、というのが本質になります。
5. まとめ
ここまで紹介してきたように、GPTは「言葉をベクトルで扱い」「確率で次を予測する」ことで、驚くほど自然なテキストを生成します。
ただし、本質的には「意味を理解している」わけではありません。
GPTはあくまで統計的言語モデルです。極端に言えば、GPTの中身は高度に訓練されたオウムのようなものです。事実、AI研究者の中には大規模言語モデルを「確率的オウム(stochastic parrot)2」と呼ぶ人もいます。要するに、ChatGPTは自分で考えて会話しているのではなく、統計に基づいて次にもっともらしい言葉を並べているだけと言えます。
ハルシネーションにはご注意を!
GPTが自信満々でも、重要な決定に関わる事項は必ず裏取りを。
とはいえ、「意味があるように見える出力を、意味があるように感じさせる」。
これはまさに統計の力の極みです。
GPTの限界を正しく理解することは、「AIに頼りすぎない」「誤解しない」ための第一歩。
でも逆に、それを知っていれば、もっと安心して使いこなせるはずです。
「AIを信用しすぎず、でも怖がらず。道具として味方につける。」
そんな目線で、GPTと付き合っていけたらいいですね。
おわりに
「AIを使って、面白くて役立つサービスを作りたい!」そんな思いを持っている方、私たちと一緒に挑戦してみませんか?
Sapeetでは、AIや3D技術を駆使して、人々の健康や生活をもっと豊かにする新しい技術を日々作り上げています。もし、テクノロジーで「ひと」と「社会」をよりよくしたいという気持ちをお持ちでしたら、きっとSapeetはあなたの力を活かせる場所です。
技術にこだわりつつも、チームワークを大事にしながら一緒に成長していける仲間を探しています!カジュアルにお話しできるので、興味があれば気軽に面談に来てください。お待ちしています!
Views: 0