おさかなLM について

このサイトには 2つのモデルがいます。ブラウザの中で育てる小さな 「こざかなモード」と、あらかじめ学習ずみの 「おさかなモード」です。 そして世の中には GPT-3 のような 巨大なモデルがあります。 この3つは しくみは ほとんど同じで、ちがうのは 大きさだけ。 どれくらい ちがうのか、見てみましょう。

1. パラメータの数

パラメータとは、モデルの中にある 調整できる つまみのことです。 学習とは、この つまみを 少しずつ回して、ちょうどいい位置を さがす作業。 つまみが多いほど、こまかい規則を おぼえられます。

こざかなブラウザで そだてる
約17万
おさかなこのサイトのチャット
約870万
GPT-32020年 OpenAI
1750億
10万100万1000万1億 10億100億1000億1兆
※ この図は 対数スケールです。目もりが1つ右へ進むと 10倍。 ふつうの目もりで描くと こざかなも おさかなも 点にすらならず、 まったく見えなくなってしまうためです。

本当の比は どれくらい?

対数の図は「桁のちがい」は分かりますが、実感は つかみにくいものです。 ほんとうの倍率は こうです。

こざかな を 1 とすると
おさかな は 51 倍、GPT-3 は 103万 倍

時間に たとえると、こうなります。

こざかな1秒
おさかな51秒
GPT-312日
さかなの大きさで たとえるなら、こざかな が 1cm の メダカ、 おさかな が 51cm の 大きめの魚、GPT-3 は 10.3km。 シロナガスクジラ(約30m)を 340頭あまり ならべた長さです。

同じ縮尺で 描いてみる

面積で くらべてみます。こざかな を 小さな四角として、 同じ縮尺で となりに おさかな を描くと このくらい。

こざかな17万
おさかな870万
GPT-3 は 一辺 約6,100px → この先ずっと …
GPT-3 を 同じ縮尺で 描くと 一辺およそ 6,100ピクセル。 フルHD画面(幅1920px)を 横に3.2枚 ならべても まだ入りません。 だから この図には 描けないのです。

2. 学習に つかったデータの量

モデルは 文章を トークンという かたまりに分けて読みます (トークン可視化で 実際に見られます)。 読んだ量にも 大きな差があります。

こざかな会話 400本
約8千
おさかな会話 6万本
約116万
GPT-3ウェブ・書籍など
3000億
1千1万10万100万1000万 1億10億100億1000億1兆
単位は トークン数。こちらも 対数スケールです。

データと モデル、どちらが 大きい?

パラメータ数と データ量を 割り算すると、意外なことが 分かります。 読んだ言葉 1トークンあたり、いくつの数字を 持っているかです。

こざかな 約 20 個 / トークン データより モデルが 大きい → 丸暗記できてしまう
おさかな 約 7.5 個 / トークン まだ 覚える余地が ある
GPT-3 0.58 個 / トークン 1個も 使えない → 丸暗記は 不可能
GPT-3 は 読んだ言葉の数より 持っている数字のほうが 少ないので、 文章を しまっておくことが そもそも できません。だから 「言葉の ならびかたの きまり」を 学ぶしか ないのです。 モデルは 文章の 入れ物では ありません (こざかなLMを育てるで くわしく 説明しています)。

3. 学習に かかる 時間と場所

 どこでどのくらい
こざかな きみのブラウザ(JavaScript) 約 1分半
つづきから なら 約15秒
おさかな ふつうのパソコン(CPU 4コア) 約 10分
GPT-3 データセンターの GPU 数千台 数週間
こざかなの「つづきから」は、あらかじめ学習しておいた土台に 自分の会話を 足すだけの ファインチューニングです。世の中の AI も、 大きな土台をいちど作ってから 用途ごとに つづきを教える という作りかたを しています。ゼロから作りなおすより ずっと安いからです。
GPT-3 の学習には およそ 3.14×1023 回の計算が必要だったと 見積もられています。もし これを おさかなモードを学習させたのと同じ パソコン1台でやろうとすると——
およそ 4万7千年 かかります
ブラウザの JavaScript だけでやるなら 約1184万年(概算)

4. 中身の かたち

3つとも Transformer という 同じ設計です。層を積み重ね、 「どの言葉に注目するか」を計算しながら、次の言葉を予想します。 ちがうのは、その積み方の規模だけです。

「層の数」「層の幅」と言われても ぴんと来ないので、 動かして 確かめてみてください。つまみを 動かすと 図と パラメータ数が すぐに 変わります。

幅は、ことば1つを 表すのに 使う 数字の個数です。図では 横はばで 表しています。 層は、その数字を 何回 作り直すか。1つの層の中では 「どの言葉に注目するか(ちゅうい)」と「考えをこねる(FFN)」を 行います。
※ 図は 層の 積み重なりかたを 表したもので、1つの層の 内部(ヘッドの分かれ方、 正規化、残差接続)は 省いています。パラメータ数は 語彙4,096・文脈128 として 実際の式で 計算しており、 6層・幅384 のとき おさかなモードの 8,726,016 と 一致します。
※ ここでは 語彙を 4,096 に そろえているため、「こざかな にする」を 押したときの 数は ブラウザで育てる ときの 約17万とは ちがいます。 こざかなモードは 使う語彙を 約1,500に しぼっていて、 そのぶん 埋め込みが 小さくなるためです。
 層の数1層の幅読める長さ語彙
こざかな 26464約1,500
おさかな 63841284,096
GPT-3 9612,2882,04850,257
「読める長さ」は 一度に見わたせるトークン数。おさかなが 128 しかないので、 長い会話を続けると 前のほうを忘れてしまいます。

5. 大きさで 何が変わるのか

小さいモデルにも できることは あります。こざかなでも、 1分半の学習で「さかなっぽい 話しかた」を つかみ、教えた文を 覚えます。 おさかなになると、60のトピックを 話し分けられます。

では 何が足りないのか。小さなモデルは、

GPT-3 のような大きなモデルは、桁ちがいの つまみと 読書量によって、 翻訳・要約・プログラミングなど 教わっていない仕事まで こなせるようになりました。 ただし その代わりに、数千台のGPUと 数週間が必要です。

大事なのは、しくみは まったく同じだということ。 こざかなモードで きみが動かしている 学習のループは、 GPT-3 を つくったものと 本質的に 同じ手順です。ちがうのは 規模だけ。 だから、ここで起きていることが 分かれば、あちらで起きていることも 分かります。

さわってみる

こざかなモード →ブラウザの中で ゼロから 育てる。自分の文章も 教えられる。 おさかなモード →学習ずみの 870万パラメータと おはなしする。 トークン可視化 →モデルが 文章を どう分けて見ているか。

数値の出どころ: こざかな・おさかなは このリポジトリの実測値(既定設定)。 GPT-3 は論文 Language Models are Few-Shot Learners(2020) の公表値。 「4万7千年」は 3.14×1023 FLOPs を 実測 213 GFLOPS で割った概算です。