Up | ChatGPT とは何か | 作成: 2023-06-11 更新: 2025-06-30 |
|
入力テクストに応答テクストを返す。 応答テクストを生成するのは,Transformer である。 ChatGPT がやっていることは: この言い方は,「ChatGPT は Transformer 脳のただの外部インタフェース」のように聞こえるだろうか? ここは,「ChatGPT は,体を得た Transformer 脳」と読むところである。 脳は,体を得てはじめて脳になるのである。 Transformer の応答生成は,つぎのアルゴリズムになる:
↓トークン分割 [ t_1, ‥‥, t_m ] ↓対応するトークン点 [ x_1, ‥‥, x_m ] ┌→ [ x_1, ‥‥, x_m ] │ │ │ 生成終了?── YES ───→ 応答出力 │ │NO │ │← 位置エンコーディング加算 │ ↓ │ x_i^(1) = x_i ( i = 1, ‥‥, m ) │ x_i^(ℓ) │ ├─────┐ │ │ Self-Attention │ │ ↓ │ │ z_i^(ℓ) │ │ │← LayerNorm │ │← 加算 ─┘ │ │ │ ├─────┐ │ │ FFN │ │ ↓ │ │ z'_i^(ℓ) │ │ │← LayerNorm │ │← 加算 ─┘ │ ↓ │ x_i^(ℓ+1) │ x_i^(NL) │ ↓← Self-Attention, FFN │ o_i = x_i^(NL+1) │ ↓ │ logis │ ↓ │ [ p_1, ‥‥, p_m ] │ p_m : 「x_m の次は x_(m+1)」 │ │ └────┘m = m+1 ここで, ┌──────┼──────┐ ↓線型変換 ↓ ↓ Q_i = x_i W_Q K_i = x_i W_K V_i = x_i W_V └──┬───┘ │ ↓ │ α_i = sim( Q_i ; K_1, ‥‥, K_m ) │ │ │ └───┬──────┘ z_i = α_i V ↓← LayerNorm sim( Q_i ; K_1, ‥‥, K_m ) = softmax( Q_i (K_1)^T/√D, ‥‥ , Q_i (K_m)^T/√D ) ・FFN ↓ z'_i = σ( x_i W_1 + b_1) W_2 + b2 ↓← LayerNorm ・[ p_1, ‥‥, p_m ]
p_i = softmax( logits_i ) このアルゴリズムは,<学習モードの Transformer>のアルゴリズムのうちの「順伝播」を,ループさせたものである。 <学習モードの Transformer>は,トークンベクトルと各種重みの値を「逆伝播」のアルゴリズムで更新する。 これが, 「脳の成長」の意味になる。 この成長を止め ROM にしたのが,ChatGPT の Transformer 脳である。 ChatGPT は,この ROM の中の ChatGPT の応答生成プログラムは,トークンベクトルと各種重みの値が,プログラムの<定数>になる。 よって,生成される応答テクストは,質問テクストが入力された段解で決定している。 ChatGPT は,決定論である。 この押さえは,ChatGPT の論を地に足のついたものにする上で,ことのほか重要である。 |