Up | 覚醒と睡眠の切り替え方法 | 作成: 2025-09-18 更新: 2025-09-18 |
そしてトークン追加は,つぎのアルゴリズムになっている: (1) つぎのアルゴリズムを1層として,これを多層に積む: [ x_1, ‥‥, x_m ] (トークンベクトル列) │ │← 位置エンコーディングを加算 │ ├───────────┐ │ ↓ │ ( Self-Attention ) │ z_i │ │← LayerNorm │← 加算 ──────┘ │ ├───────────┐ │ ↓ │ ( FFN ) │ z'_i │ │← LayerNorm │← 加算 ──────┘ ↓ [ x’_1, ‥‥, x’_m ] (つぎの層の入力) (2) 第1層に入力したテクスト (トークンベクトル列) [ x_1, ‥‥, x_m ] に対し,上のループの最終出力が [ o_1, ‥‥, o_m ] であるとき, logits_i = o_i W_O^T p_i = softmax( logits_i ) (3) [ x_1, ‥‥, x_m ] に,p_m が指すトークンベクトル y を,追加する: [ x_1, ‥‥, x_m ] → [ x_1, ‥‥, x_m, y ] テクストの学習は,この<(1), (2), (3)>がつぎのように変わる: [ x_1, ‥‥, x_m, ‥‥, x_n ] とする。 (3) は, (3') [ x_1, ‥‥, x_m ] に,x_(m+1) を追加する になる。 そして,「逆伝播」プロセスとして,つぎのことをする: (4) y が x_(m+1) になるように,パラメータを調節する したがって,つぎのルーチンの切り替えが,「覚醒と睡眠の切り替え」になる: この切替は,既存のルーチンの切り替えであるから,複雑なプログラムにはならない。 制御レイヤーの機能に加えることができる。 |