AIはなぜ賢い?ChatGPTの心臓部「トランスフォーマー」超入門

こんにちは。ゆうせいです。

最近、ChatGPTや高精度な翻訳(ほんやく)サービスなど、AIの進化が止まりませんよね。

「なんであんなに自然な文章が作れるんだろう?」

「AIはどうやって言葉を理解しているの?」

新人エンジニアのあなたなら、一度はそんな疑問を持ったことがあるかもしれません。

その驚くべき進化の裏には、ある革新的な技術の存在があります。

それが、今回ご紹介する「トランスフォーマー(Transformer)」です!

トランスフォーマーと聞くと、ロボットや変圧器(でんあつき)を想像(そうぞう)するかもしれませんが、AIの世界では全く別のものを指します。

ものすごく簡単に言ってしまうと、トランスフォーマーは「文章の意味をものすごく上手に理解するためのAIの仕組み(設計図)」のことなんです。

今、世の中を席巻(せっけん)しているChatGPTや、Googleの検索エンジンを賢くした「BERT(バート)」といった有名なAIたちは、実はこのトランスフォーマーという技術を土台にして作られています。

いわば、トランスフォーマーは、現代の「言葉をあつかうAI」にとっての共通言語であり、最強のエンジン(心臓部)のようなもの。

この記事では、「トランスフォーマーって結局、何がすごいの?」「それが登場する前と後で、何が変わったの?」という疑問を、エンジニアの卵であるあなたに向けて、できるだけ分かりやすく解説していきます。

専門用語も出てきますが、しっかりとかみ砕いて説明しますから安心してくださいね。

さあ、AIの「賢さ」の秘密を一緒にのぞいてみませんか?

トランスフォーマー登場前夜:みんなどんなことで困ってた?

トランスフォーマーがなぜ「革命的」と呼ばれるのか?

それを知るためには、トランスフォーマーが登場する前、AIたちがどんなことで悩んでいたのかを知る必要があります。

人間が「言葉」をあつかうとき、単語の「順番」ってものすごく重要ですよね?

「私はあなたが好き」と「あなたは私が好き」。単語は同じでも、順番が違うだけで意味が全く変わってしまいます。

この「順番」が大切なデータ(「時系列データ」と呼びます)をあつかうために、昔のAIは「RNN」という仕組みを使っていました。

AIの先輩たち(RNNやLSTM)

専門用語がさっそく出てきましたね。でも大丈夫、カンタンに解説します!

  • RNN (Recurrent Neural Network)
    • 読み方は「アール・エヌ・エヌ」です。
    • これは「前の単語を記憶しながら、次の単語を読む」という仕組みを持ったAIです。
    • 例えるなら、「伝言ゲーム」に近いかもしれません。前の人から聞いた言葉(記憶)と、今聞いた言葉を合わせて、次の人に伝えます。
    • こうすることで、AIは文章の流れ(文脈)を理解しようと頑張っていました。

でも、このRNNには大きな弱点がありました。

それは、「記憶力がとっても短い」こと!

伝言ゲームでも、人数が増えると最初の言葉が全然ちがう内容になっちゃいますよね?

RNNも同じで、長い文章になると、最初の方に何が書いてあったかすっかり忘れてしまうんです。

「忘れっぽい」を改善したLSTM

この「忘れっぽさ」を解決するために登場したのが、「LSTM(エル・エス・ティー・エム)」です。

  • LSTM (Long Short-Term Memory)
    • 名前の通り、「長く・短く」記憶を調整できる仕組みです。
    • 例えるなら、「メモ帳を持った、賢い伝言ゲーム参加者」です。
    • LSTMは、「この情報は重要だから、しっかりメモ帳(長期記憶)に書いておこう」「この情報は今だけ必要だから、頭(短期記憶)で覚えておこう」という判断ができるようになりました。

これで、AIはかなり賢くなりました。

RNNよりもずっと長い文章を覚えられるようになり、機械翻訳や文章作成の精度(せいど)がぐっと上がったんです。

それでも残った「大きな壁」

LSTMの登場で、AIの文章理解は大きく進歩しました。

「もうこれで完璧じゃない?」と思いきや、エンジニアたちはまだ頭を抱えていたんです。

なぜなら、RNNやLSTMには「根本的な限界」があったからです。

限界(1):「順番にしか処理できない」という壁

これが最大の壁でした。

RNNもLSTMも、その仕組み上、「1番目の単語を読んでから、2番目の単語を読む」「2番目を読んでから、3番目を読む」…というように、必ず「順番に」処理しなくてはいけません。

想像してみてください。1000語もある長い文章を、AIが1語ずつ「読んで、考えて、次へ」と処理していくんです。

…ものすごく時間がかかりそうですよね?

特に、現代のAI開発で活躍(かつやく)する「GPU」(ジーピーユー)という部品は、「たくさんの計算を同時にやる(並列処理)」のが大得意です。

それなのに、RNNやLSTMは「1つずつ順番に」しか処理できないため、GPUのパワーを全く活かしきれていなかったんです!

限界(2):「遠くの言葉を忘れちゃう」という壁

LSTMは確かに記憶力が良くなりました。

でも、人間が書く小説(しょうせつ)のように、ものすごく長い文章になったらどうでしょう?

「1ページ目に出てきた登場人物の重要なセリフが、50ページ目でどう影響(えいきょう)するか」

ここまで離れていると、さすがのLSTMでも関係性を見つけるのが難しく、やっぱり情報を忘れてしまいがちでした。

まとめると、トランスフォーマーが登場する前、AIの世界は…

  1. 計算が遅い!(GPUのパワーを活かせない)
  2. やっぱり忘れっぽい!(超・長い文章はニガテ)

という大きな悩みを抱えていたのです。

さあ、このどうしようもない壁を、トランスフォーマーはいったいどうやって打ち破ったのでしょうか?

そのカギこそが、次のテーマである「アテンション」なんです!

革命の核心!「アテンション(Attention)」という仕組み

さあ、お待たせしました!

前のセクションで話した「計算が遅い!」「遠くの言葉を忘れる!」というAIの大きな悩みを、一気に解決(かいけつ)したのが、トランスフォーマーの心臓部である「アテンション(Attention)」という仕組みです。

日本語に訳すと「注目」ですね。

アテンションって何? 例えるなら「文章のどこが一番重要か」に印をつける機能

トランスフォーマーの「すごい!」は、本当にこの一点につきると言ってもいいくらいです。

では、アテンションとは一体なんでしょう?

これは、例えるなら「蛍光(けいこう)ペンで、文章の大事なところに線を引く」機能のようなものです。

人間が文章を読むときを想像してください。

例えば、「私は公園で、昨日買ったばかりの赤いボールを犬になげた」という文があったとします。

この文の「なげた」という言葉の意味を理解するとき、あなたは無意識(むいしき)に「誰が?(→私)」「何を?(→ボール)」という、文の中の他の言葉に「注目」しますよね。「公園」や「昨日」という言葉は、この「なげた」という動作自体には、あまり関係がありません。

アテンションは、AIにこの「無意識の注目」を学習させたものなんです。

AIが文章を処理するとき、関連するすべての単語を平等(びょうどう)にあつかうのではなく、「今読んでいるこの単語にとって、文中のどの単語が一番重要か?」を自動的に判断し、その重要度に応じて「注目」の度合いを変える。

これがアテンションの基本的な考え方です。

RNN/LSTMとの決定的な違い

「あれ? LSTMのメモ帳と何が違うの?」と思ったかもしれません。

とても良い質問です!

LSTMは、「1番目、2番目、3番目…」と順番に情報を伝言ゲームのように伝えていき、途中で「メモ」に残すかどうかを判断していました。でも、処理はあくまで「順番」でした。

しかし、アテンションは違います!

アテンションは、文章を処理するときに「順番」にとらわれません。

文章全体を一度に(あるいは一気に)見て、「この単語と、あの単語が、強く関係している」という情報の「地図」のようなものを作ってしまうんです。

この「順番にやらなくていい」という特性が、革命を引き起こしました。

思い出してください。RNN/LSTMの最大の壁は「順番にしか処理できない」ことでしたよね?

アテンションを土台にしたトランスフォーマーは、文章をまとめてドカンと処理できます。

これは、GPUが得意な「並列処理」と、ものすごく相性が良いんです!

「計算が遅い!」という悩みが、これで一気に解決しました。

自分自身の文脈を読む「自己アテンション(Self-Attention)」

トランスフォーマーで特に重要なのが、この「自己アテンション(Self-Attention)」です。

(「セルフ・アテンション」と読みます)

これは、アテンションの仕組みを「自分自身(いま処理している文章そのもの)」に対して使うことを意味します。

先ほどの「私は公園で、昨日買ったばかりの赤いボールを犬になげた」という文で考えてみましょう。

AIが「ボール」という単語を処理するとき、自己アテンションはこう考えます。

「この『ボール』という単語は、文中のどの単語と一番関係が深いかな?」

すると、「買った」「赤い」「なげた」といった単語に強い「注目」が集まります。

逆に、「私」や「公園」への注目は少し弱くなるでしょう。

このように、文中のある1単語が、同じ文中の「他のどの単語と関連しているか」を、すべての単語同士の組み合わせで一気に計算するのが、自己アテンションです。

この仕組みのおかげで、たとえ文章が長くなって、関連する言葉が遠く離れていても、AIは「あ、50ページ前のあの言葉と、今のこの言葉が関係しているぞ!」と気づくことができるようになりました。

「遠くの言葉を忘れちゃう」という悩みも、これで解決に向かったわけです!

すごいですよね!

アテンションという発明によって、AIは「順番」という呪縛(じゅばく)から解放(かいほう)され、「速度」と「長距離の記憶力」の両方を手に入れました。

では、この強力なアテンションを使って、トランスフォーマーは具体的にどうやって文章を「理解」し、どうやって「新しい文章を作って」いるのでしょうか?

次のセクションで、トランスフォーマーの内部構造をもう少し詳しく見ていきましょう!

トランスフォーマーの構造をのぞいてみよう

前のセクションで、「アテンション」という画期的な仕組みが、AIに「速度」と「記憶力」をもたらした、という話をしましたね。

では、トランスフォーマーは、この強力なアテンションを、内部でどのように使っているのでしょうか?

ここでは、トランスフォーマーの「設計図」を、少しだけ詳しくのぞいてみましょう。

トランスフォーマーのモデルは、大きく分けると2つの部品(ブロック)から成り立っています。

それは、「エンコーダ」と「デコーダ」です。

エンコーダの役割:文章の意味を「理解」するチーム

  • エンコーダ (Encoder)
    • これは「符号化(ふごうか)するもの」という意味です。
    • 役割を例えるなら、「原文(げんぶん)をじっくり読んで、その意味や文脈(ぶんみゃく)を深く理解する専門チーム」です。

あなたが日本語の文章を英語に翻訳(ほんやく)するとき、まずは日本語の文章全体を読んで、「あ、これはこういう意味だな」と頭の中で理解しますよね?

エンコーダがやっているのは、まさにその「理解する」という作業です。

入力された文章(例:「私は猫が好き」)を受け取ると、エンコーダは内部にある「自己アテンション(Self-Attention)」を使って、文中の単語同士の関係性(「私」と「好き」、「猫」と「好き」の関係など)を徹底的(てっていてき)に分析します。

そして、その文章が持つ「意味」や「ニュアンス」を、AIが扱いやすい数値のデータ(専門用語で「文脈ベクトル」などと呼びます)にぎゅっと圧縮(あっしゅく)します。

これがエンコーダの仕事です。

デコーダの役割:理解した意味から「新しい文章を作る」チーム

  • デコーダ (Decoder)
    • これは「復号(ふくごう)するもの」、つまりエンコーダの逆ですね。
    • 役割を例えるなら、「エンコーダチームがまとめた『理解メモ』を受け取って、それを元に新しい言語(ターゲット言語)の文章を書き出す専門チーム」です。

先ほどの翻訳の例で言えば、「『私は猫が好き』という意味だな」と理解した(エンコーダ)後、今度は「それを英語でどう表現しようかな?」と考えながら、「I like cats.」という単語を1つずつ書き出していく作業。これがデコーダの仕事です。

デコーダは、エンコーダが作った「文章の意味データ」に「注目」(アテンション)しながら、出力する文章を1単語ずつ生成していきます。

(補足)マルチヘッド・アテンション:いろんな角度から「重要度」をチェックする仕組み

トランスフォーマーの論文(ろんぶん)を読むと、必ず「マルチヘッド・アテンション(Multi-Head Attention)」という言葉が出てきます。

「自己アテンションと何が違うの?」と混乱(こんらん)しそうですが、難しくありません。

これは、アテンション(注目)を「いろんな視点から同時に行う」仕組みのことです。

例えば、「私は公園で犬とボールで遊んだ」という文の「遊んだ」に注目するとき、

  • Aさんは「誰が?」という視点(→私)に注目するかもしれません。
  • Bさんは「何と?」という視点(→犬、ボール)に注目するかもしれません。
  • Cさんは「どこで?」という視点(→公園)に注目するかもしれません。

もしAさん(1つの視点)しかいなかったら、「誰が」遊んだかは分かっても、「何と」遊んだかを見落としてしまうかもしれませんよね?

マルチヘッド・アテンションは、このAさん、Bさん、Cさんのような「複数の視点(ヘッド)」を同時に用意して、それぞれの視点でアテンション(注目)を行います。

そして最後に、みんな(Aさん、Bさん、Cさん)の結果を持ち寄って、「総合的(そうごうてき)に判断すると、この文はこういう関係性だね」と結論を出すんです。

1つの視点に頼る(たよる)よりも、複数の視点からチェックしたほうが、より深く、正確に文章の関係性を理解できる。

この「合わせ技」によって、トランスフォーマーは非常に高い精度を実現(じつげん)しているんです。


このように、トランスフォーマーは「エンコーダ(理解チーム)」と「デコーダ(作文チーム)」が連携(れんけい)し、その内部では「マルチヘッド・アテンション(多角的な注目)」がフル回転することで、複雑(ふくざつ)な文章を扱っているんですね。

トランスフォーマーの「得意」と「苦手」

ここまで、トランスフォーマーが「アテンション」という仕組みで、いかにAIの世界を変えたかをお話ししてきました。

「順番」の呪縛(じゅばく)から解放(かいほう)され、GPUのパワーをフル活用できるようになった…なんだか、無敵(むてき)の技術のように聞こえますよね。

ですが、どんなに優れた技術にも、やっぱり「得意なこと」と「苦手なこと」があります。

トランスフォーマーも例外ではありません。

その両方を知っておくことが、エンジニアとしてとても大切ですよ!

メリット(得意なこと):並列処理で学習が超高速!

これはもう、何度もお話ししてきた最大のメリットですね!

  • RNNやLSTMの場合:「1語目を処理→2語目を処理→…」と、文章の長さ分だけ「順番に」待たなくてはいけませんでした。
  • トランスフォーマーの場合:「1語目から100語目まで、全部まとめてドン!」と処理できます。

これは、計算を担当(たんとう)する「GPU」という部品の力を最大限に引き出せることを意味します。

たくさんの計算を「同時並行(どうしへいこう)」で進められる(これを「並列処理(へいれつしょり)」と言います)ため、RNNやLSTMとは比べ物にならないスピードで学習を終えることができるんです。

この「速さ」があったからこそ、インターネット上の膨大(ぼうだい)な文章データをAIに学習させることが可能になり、今のChatGPTのような賢いAIが誕生(たんじょう)しました。

メリット(得意なこと):遠く離れた言葉の関係もわかる

これもアテンションの強力なメリットです。

RNNやLSTMは、伝言ゲームのように情報を伝えていたため、文章が長くなると最初の方の情報を忘れてしまいがちでした。

しかし、トランスフォーマーの「自己アテンション」は、文の1番目の単語と100番目の単語の関係性(かんけいせい)を、直接(ちょくせつ)計算することができます。

どれだけ距離(きょり)が離れていても、「順番」に関係なく「関連度」を計算できるため、非常に長い文章の文脈(ぶんみゃく)も正確に理解できるようになったんです。


さて、ここまでは良いことずくめでした。

では、逆にトランスフォーマーが悲鳴(ひめい)をあげるのはどんな時でしょうか?

デメリット(苦手なこと):とにかく計算量が膨大(ぼうだい)

これが、トランスフォーマーの最大の弱点であり、メリットの裏返しでもあります。

自己アテンションは、「すべての単語」と「他のすべての単語」との関連性を、全部計算しますよね?

もし文章の長さ(単語の数)が $N$ 個だった場合、計算量はだいたい $N$ の2乗( $N \times N$ )に比例(ひれい)して増えていきます。

これが何を意味するか、わかりますか?

  • 10語の文章なら、計算量は $10 \times 10 = 100$ 回くらい
  • 100語の文章なら、計算量は $100 \times 100 = 10,000$ 回くらい
  • 1,000語の文章なら、計算量は $1,000 \times 1,000 = 1,000,000$ 回くらい

文章の長さが10倍になるだけで、必要な計算の量は100倍に跳ね上がってしまうんです!

これを「計算量が爆発(ばくはつ)する」なんて言ったりします。

そのため、トランスフォーマーは、ものすごく高性能なGPU(それも1台ではなく、何百台、何千台も!)を必要とします。

当然、莫大(ばくだい)な電気代とコストがかかるわけです。

私たちがChatGPTのようなAIを(今のところ)無料で使えるのは、開発元の企業がものすごいコストを負担(ふたん)してくれているからなんですね。

デメリット(苦手なこと):たくさんのデータがないと賢くならない

トランスフォーマーは、非常に複雑(ふくざつ)で巨大なモデルです。(専門用語で「パラメータが多い」と言います)

複雑なモデルを賢くするには、それに見合った「膨大な量の教科書(学習データ)」が必要です。

もし、教科書がペラペラ(データが少ない)だったら、複雑なモデルは「丸暗記」はできても「応用力(おうようりょく)」が身につきません。

インターネット全体から集めたような、本当にたくさんのテキストデータを学習させて、はじめてトランスフォーマーはその真価(しんか)を発揮(はっき)します。

もし手元に少しのデータしかない場合、下手にトランスフォーマーを使うよりも、昔ながらのLSTMを使ったほうが、かえって良い結果(けっか)が出ることさえあるんですよ。


このように、トランスフォーマーは「超・強力だけど、超・大食い(計算量とデータ量がすごい)」なエンジンなんです。

このクセを理解した上で、次のセクションでは、このエンジンが私たちの身近でどう活躍(かつやく)しているかを見ていきましょう!

私たちの身近にあるトランスフォーマー

さて、ここまでトランスフォーマーの仕組みや、得意・苦手について学んできました。

「なんだかすごく大規模(だいきぼ)で、自分とは遠い世界の技術みたい…」と感じたかもしれません。

でも、実はトランスフォーマーを土台にした技術は、すでにあなたの毎日の生活にガッチリと入り込んでいるんですよ!

いくつか代表例(だいひょうれい)をご紹介(しょうかい)しますね。

機械翻訳(Google翻訳など)

トランスフォーマーが、その名を世界にとどろかせた最初のきっかけが、この機械翻訳(きかいほんやく)の分野です。

まさに、トランスフォーマーの論文(ろんぶん)自体が「Attention Is All You Need(アテンションこそが、君の必要なすべてだ)」というタイトルで、翻訳タスクの改善(かいぜん)をテーマにしていました。

エンコーダ(理解チーム)が原文(例:日本語)を理解し、デコーダ(作文チーム)がその意味を元に訳文(例:英語)を生成する。

この「エンコーダ・デコーダモデル」は、翻訳のためにあるような仕組みですよね。

昔の翻訳サービスと比べて、今のGoogle翻訳やDeepLの翻訳が驚(おどろ)くほど自然(しぜん)で、文脈(ぶんみゃく)を理解しているのは、まさにトランスフォーマーのおかげなんです。

チャットボット(ChatGPT)

今や説明不要(ふよう)かもしれませんが、ChatGPTやGoogleのGemini(旧Bard)など、私たちが「生成AI」と呼ぶものの多くは、トランスフォーマーをベースに作られています。

特に、ChatGPTの「GPT」とは、"Generative Pre-trained Transformer" の略です。

ほら、名前の中にそのまま「トランスフォーマー」が入っていますよね!

これらは主に、トランスフォーマーの「デコーダ(作文チーム)」の部分を強力に改良(かいりょう)したモデルです。

膨大(ぼうだい)なテキストデータを学習し、「次に来る単語は何か?」を予測(よそく)し続けることで、あの流暢(りゅうちょう)な会話や文章作成を実現(じつげん)しているんです。

文章の要約や検索エンジン

「長いニュース記事を読む時間がないから、3行でまとめて!」

こんな「文章要約(ようやく)」も、トランスフォーマーが得意とする分野です。

エンコーダで文章全体の意味を理解し、デコーダでそれを短い文章に凝縮(ぎょうしゅく)して生成します。

また、Google検索も「BERT(バート)」というトランスフォーマーベースの技術を使っています。

BERTは "Bidirectional Encoder Representations from Transformers" の略。

これも「トランスフォーマー」が入っていますね!

BERTは特に「エンコーダ(理解チーム)」に特化したモデルです。

あなたが検索窓(けんさくまど)に入力した、ちょっと曖昧(あいまい)な言葉や、話し言葉のようなキーワードでも、BERTがその「文脈」や「本当の意図」を深く理解しようと働きます。

だから、私たちが求(もと)めている情報に、より正確にたどりDけるようになっているんですよ。


どうでしょう?

翻訳、チャット、検索…。

あなたが「便利だな」と感じるサービスの裏側(うらがわ)では、今日もトランスフォーマーがものすごい勢い(いきおい)で計算を続けているんです。

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。