0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AIとは何か ―「ののかちゃんのいぬのおまわりさん」で理解するTransformerとAttention

0
Posted at

はじめに

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など多くの歴史が存在します。

そのあたりはまたの機会に語りたいと思いう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?