GPUって、もともとはゲームの映像をきれいに速く描くための部品でした。それが今やAIの計算に欠かせない主役になっている。よく考えると不思議ではないでしょうか。絵を描く道具と、文章を書いたり画像を作ったりするAI。まるで用途が違うのに、なぜ同じ部品が両方で主役を張れるのか。
以前、GPUが速いのは行列のかけ算が「独立」だからという話を書きました。あのときは「なぜ速いのか」を見ました。今回は少し手前にさかのぼって、「そもそもなぜ、ゲーム用の部品をAIに使えると見抜けたのか」を見てみます。
用途が違えば、道具も違うはず
ふつうに考えれば、目的が違う仕事には違う道具を使います。絵を描くなら絵筆、文章を書くならペン。ゲームの映像用に磨かれた部品が、言葉を扱うAIでそのまま主役になるというのは、直感に反します。
でも、ここで一つ視点を変えてみます。道具を「何に使うか」ではなく、「中でどんな形の計算をしているか」で比べる。表面の用途を一度はがして、計算の骨格だけを取り出して並べてみる。すると、意外な一致が見えてきます。
中身をそろえて見ると、同じ形が出てくる
ゲームで立体的な映像を描くとき、コンピュータは大量の点の位置や色を計算しています。ある点に「回す・動かす・光を当てる」といった操作をする場面では、数字の並びに決まった掛け算と足し算を繰り返します。これは行列やベクトルの計算として書けます。
一方、いまのAIの中心にも、大量の行列のかけ算が何度も出てきます。言葉や画像を数字の並びに直し、それに重みという別の数字の並びを掛けて足し合わせる。前回見た「独立した積和の山」が、ここでも顔を出します。
もちろん、ゲームの描画もAIも、行列のかけ算だけで全部が終わるわけではありません。実際には、描画なら陰影づけや画像の貼り込みがあり、AIなら非線形変換やAttentionなどがあります。それでも、どちらの処理にも「大量の数字に同じ形の掛け算と足し算を流し込む」という太い共通部分がある。この共通部分が、GPUの得意技とよく合っていました。
数学では、見た目が違っても構造が対応していることを同型と呼びます。ここで言いたいのは厳密な意味で「描画とAIが同じ対象である」という話ではありません。用途は違う。でも、計算の骨格に同じ形が現れる。だから、片方で磨かれた道具が、もう片方でも効いたのです。

景色が変わる
この見方を使うと、あちこちで同じことが起きているのに気づきます。
音楽の音の並びも、株価の時系列も、SNSのつながりも、数字の並びと、それに対する掛けて足す操作、という形に落とせる場面があります。表面のジャンルはバラバラでも、構造が似ていれば、同じ道具と同じ数学が使えることがある。
AIが言葉も画像も音も同じような部品で扱えるのも、これと近い話です。入り口の見た目を数字の並びにそろえてしまえば、あとは似た形の計算を何度も流せる。
GPUがAIで効いた理由を、並列化の天井という別の数式から見た記事もあります。
数式で正面から見る
「同じ形」というのを、式で見てみます。ゲームでもAIでも、よく出てくる計算の最小単位はこう書けます。
$$y = \sum_{i} w_i x_i$$
右側の記号は「掛けて、足す」を並べて合計する、という意味です。$x_i$ は入力の数字たちです。ゲームなら点の座標や色に関わる数字、AIなら言葉や画像を数字に直したものだと読めます。$w_i$ はそれに掛ける重みです。$\sum$ は「全部足す」の合図で、掛けた結果を残らず足し合わせます。
大事なのは、この式のどこにも「これはゲーム用」「これはAI用」という区別が書かれていない、という点です。$x_i$ に点の座標を入れれば描画の計算の一部になり、言葉を直した数字を入れればAIの計算の一部になる。中身を入れ替えても、式の形は残ります。
$$Y = WX$$
たくさんの $y = \sum_i w_i x_i$ をまとめて書くと、この一行になります。$X$ は入力を並べたもの、$W$ は重みを並べたもの、$Y$ は計算結果を並べたものです。GPUをAIに持ち込んだ人たちが見抜いたのは、用途の名前ではなく、この形が大量に現れるという事実だった、と読めます。
持ち帰り
ゲーム部品のAI転用は、偶然のひらめきだけで説明するより、表面の用途をはがして「同じ形」があると気づいた結果として見るほうがしっくりきます。違うものの中に同じ構造を見つける。これは数学が昔からずっとやってきたことです。
そう考えると、次にまったく別の分野で使われている技術を見たとき、「これ、中身は自分の知っているあの計算と同じ形かもしれない」と疑ってみたくなりませんか?
あわせて読みたい関連記事。


