- 著者はGPT-2に似たトランスフォーマーモデルを手作業で構築し、単純なシーケンスを予測することで、トランスフォーマーと注意機構へのより深い理解を得た。
- このトランスフォーマーは既存の重みを使って学習されておらず、各重みは手動で割り当てられている。
- トランスフォーマーに選ばれたタスクは "aabaabaabaab..." シーケンスを予測することで、次の出力を決定するために直前の2つのトークンを参照する必要がある。
- 著者は 'a' を0、'b' を1で表すトークン化方式を使用している。
- モデルのコードはjaymodyのpicoGPTによるGPT-2実装をベースにしており、簡略化のためにいくつかの修正が加えられている。
- モデルの次元には、コンテキスト長5、語彙サイズ2、埋め込みサイズ8が含まれる。
- 著者は埋め込み重みを設計し、最初の5要素を位置の1-hot埋め込みに、次の2要素をトークンIDの1-hot埋め込みに使っている。
- トランスフォーマーブロックは q、k、v 行列を生成し、その結果を再び埋め込みへ射影し、さらにトークン埋め込み重みを使って次トークンのロジット集合へ再射影するよう設計されている。
- 著者は注意ヘッドの設計と埋め込み空間への射影について詳しく説明している。
- 最後の段階では、トランスフォーマーブロックの実行結果に転置したトークン埋め込み重みを掛けて最終ロジットを得る。
- モデルは学習のためにソフトマックス関数を使用し、与えられたシーケンスに対して妥当な補完を生成できる。
- このモデルは、曖昧でないコンテキストでテストした場合に100%の成功率を達成した。
- 著者は、読者がトランスフォーマーと注意についてより直感的な理解を得て、自分自身のモデルを作ってみることを勧めている。
- 記事には、
numpy を使って計算し、トークン化・予測・シーケンス補完のための関数を定義したモデルの完全なコードが含まれている。
- 著者は、コンテキストウィンドウの縮小や、積和演算の融合、KVキャッシュなどの技法を使うことで、モデルの効率を高められると提案している。
- この記事は、言語モデル分野、特に機械学習やAIに関心のある人を対象としている.
1件のコメント
Hacker Newsの意見