はじめに
AIと25年越しに開発したかった帳票プログラムの開発を始めてから1年。
その開発の過程で「結局AIはどうやって動いているのか」を考え始めてから、約半年が経った。
私がITの世界に入ったきっかけは、大学卒業後に半導体の販売会社に入社したことだった。
当時、日本は世界の半導体の60%を生産する「半導体立国」だった。半導体は「産業の米」と呼ばれ、その周辺部品であるキャパシタ(コンデンサ)なども国内で生産する「電子立国」でもあった。
私がラッキーだったのは、文系出身であったにもかかわらず、当時の日本はバブル前で企業に余裕があり、入社後も人材教育に力を入れていたことだ。そのおかげで、半導体の基礎を実地で学ぶ機会に恵まれた。
そうした経緯もあり、AIについてもプログラマーとしてのロジックはもちろんのこと、AIの中心であるGPUのハードウェア特性を早い段階から理解することができた。
しかし、緑寿を超えた私には、「結局AIとは何なのか」を自分の言葉で語れるようになるまでに、約半年が必要だった。
きっかけは「いぬのおまわりさん」
そんな中、ふとYouTubeを見ていたところ、今から5年前に大人気だった「ののかちゃんのいぬのおまわりさん」を久しぶりに見た。何度見ても飽きず、思わず微笑んでしまう。
そして、そこでハッと閃いた。これがAIを一番わかりやすく表現できる例えだと。
AIとは、インターネットから引き出されたテキストデータをもとに作られた空間の中で、たくさんの「いぬのおまわりさん」に道を聞きながら言葉を話す計算機である。
AIは何をしているのか
AIがやっていることを一言で言えば、大量のデータをもとに、人にはできないほどの規模の行列演算を行い、「モデル」を作ることだ。
スカラ・ベクトル・マトリックス
行列演算を理解するために、まず3つの基本を押さえておきたい。
- スカラ(scalar):大きさだけを持つ、ただの数値ひとつ。例:気温「25」、点数「80」。
- ベクトル(vector):数値を一列に並べたもの。例えば単語ひとつを、数百〜数千個の数値の並びで表現する。これを**埋め込みベクトル(embedding)**と呼び、AIはトークンをこの形に変換して扱う。
- マトリックス(matrix/行列):ベクトルを縦横に並べた表。ニューラルネットワークの「重み(学習した知識そのもの)」はこのマトリックスとして保持されている。
AIの計算とは、突き詰めると「入力のベクトルに、学習済みのマトリックスを掛け合わせて、新しいベクトルを作り出す」という操作の繰り返しだ。Attentionもこの行列同士の掛け算(行列積)によって、トークン間の依存関係を計算している。GPUが得意とするのは、まさにこの大量の行列積を同時並行で処理することである。
テンソルとは
スカラ・ベクトル・マトリックスをまとめて一般化した概念が**テンソル(tensor)**である。
- スカラ=0のテンソル(数値ひとつ)
- ベクトル=1のテンソル(数値の並び)
- マトリックス=2のテンソル(数値の表)
- そして3以上のテンソル=マトリックスをさらに何層にも重ねた、多次元の数値の塊
これを図でイメージするなら、ベクトル(1)は数値をXY平面上に点として並べた2次元の図で、マトリックス(2)はそこにZ軸を足した3次元の立方体で表現できる。つまり「2次元/3次元」はあくまで可視化に使う空間の軸の数であり、テンソルの階数(1次元・2次元・3次元)そのものとは別の話だ。
しかし、人は4次元以上になるとこれは描くことできないし、これを無理やり理解しようとすると、ますますわからなくなる。
実際のAIモデルでは、1つのトークンは単なる数値の列ではなく、4096次元のベクトルとして表現されることが多い(モデルの規模によって数値は変わるが、数千次元は珍しくない)。つまり「今日」という1単語ですら、4096個の数値の並びとして扱われているということだ。
さらに、文章は複数のトークンからなるため、「トークン数 × 4096次元」という2階のテンソル(マトリックス)になる。これに「バッチ(同時に処理する文章の本数)」の次元が加わると3階のテンソルになり、Attentionの内部では「注意の頭の数(マルチヘッド)」の次元まで加わって、実際には4次元・5次元のテンソルが飛び交っている。
GPUの中では、この巨大な多次元のテンソル同士が絶え間なく掛け合わされ、足し合わされている。「いぬのおまわりさん」に例えるなら、1匹1匹が4096個の特徴(手がかり)を持っており、それを何千匹分も同時に照らし合わせて道を尋ねている、というイメージだ。
現代のAI計算は、主にGPUと呼ばれる半導体によって行われ、1秒間に1兆〜十数兆回もの計算が可能だ。(到底人ではできないので人工知能とよぼれます)このGPUを使い、インターネット上にあふれるテキストデータをコンピュータが扱える数値(これをトークンという)に変換し、Attentionという計算式によって単語同士の依存関係を調べ、その結果を数値データとしてまとめていく。これを学習という。
OpenAI、Anthropic、Googleといったクラウドの各社は、定期的に新しいデータや新しい学習方法を用いてモデルを改良し、新しいモデル名を付けて公開している。
・OpenAI →・ GPT-5.6
・Google → Gemini 2.5 / 3系
・Anthropic → Claude 4 / 5系
・Meta → Llama 4系
プロンプトを入力すると何が起きるか
では、プロンプトにテキストを入力すると、AIの内部ではどのようなことが起きているのか。
① テキストの内容を受け取る
ユーザーが入力した文章を受け取る。
② テキストをトークンへ変換する
コンピュータは文章をそのままでは理解できないため、細かい単位に分割する。この単位をトークンと呼ぶ。
例えば、
今日は天気が良いですね
という文章は、複数のトークンへ分解される。さらに、各トークンはコンピュータが計算できる数値へと変換される。
③ 必要に応じて外部情報をプロンプトに加える(RAG)
AI自身の学習データだけでは答えられない場合がある。その場合はインターネットや社内文書などの外部情報を検索し、その内容を入力プロンプトに追加する。この仕組みを**RAG(Retrieval-Augmented Generation)**と呼ぶ。RAGはあくまで入力に情報を足す仕組みであり、次のAttentionの計算を代替するものではない。
④ Transformer の Attention で意味を解析する
こうして組み立てられた入力トークン列に対し、Transformerという技術の中核であるAttentionが、常にトークン同士の関係を計算する。これはRAGの有無にかかわらず、すべての推論・生成のステップで行われる基本演算である。
例えば、
先月の売上を見せて
という文章では、「先月」「売上」「見せて」がどのように関係しているかを計算する。
⑤ 次のトークンを予測する
Attentionの計算結果と、モデルが学習した大量の知識を組み合わせて、次に出すべきトークンを予測する。
1トークンを出力したら、その結果を含めて再び次のトークンを予測する。これを何度も繰り返す。
⑥ トークンを文章へ戻す
最後に、生成されたトークン列を人間が読める文章に変換し、画面に表示する。これが私たちが目にしているAIの回答である。
いぬのおまわりさん理論、再び
ここに「いぬのおまわりさん」理論を重ねると、こう説明できる。
AIは、答えを丸暗記した巨大な辞書ではない。AIは「意味の宇宙」の中を旅しながら、たくさんのいぬのおまわりさん(=Attention)に道を聞き、目的の答えの近くまで進んでいく仕組みだ。
そのため、時には目的の答えにぴったりと到着することもあれば、時には隣の答えに着いてしまうこともある。
「高次元ベクトル空間」と説明するよりも、この例えの方が初心者にはずっと伝わるはずだ。この話は、わかりやすく説明したが実際には1950年代から始まるパーセプトロンの理論や真空管に始まりトランジスタ、IS、LSIなど多くの歴史が存在します。
そのあたりはまたの機会に語りたいと思いう。