別のところに投稿したコメントを貼るね:私が好きなリソース:セバスチャン・ラシュカの本「ゼロから作るディープラーニング」 これらの動画 / プレイリスト: https://youtube.com/playlist?list=PLoROMvodv4rOY23Y0BoGoBGgQ... https://youtube.com/playlist?list=PLoROMvodv4rOwvldxftJTmoR3... https://youtube.com/playlist?list=PL7m7hLIqA0hoIUPhC26ASCVs_... https://www.youtube.com/live/uIsej_SIIQU?si=RHBetDNa7JXKjziD これが私がtinystoriesで訓練した基本的な実装だよ: https://gist.github.com/nikki93/f7eae83095f30374d7a3006fd5af... (これは私にとって新しい分野だったから、上記を手伝うためにClaudeのコードをたくさん使ったよ) (前はCとmlxでやったけど、結局Pythonに屈した笑)でも、全体的にはこうなる: - テキストをトークン化する - 簡単なNNでトークンを埋め込む(それぞれをベクトルにマッピング) - 各トークンがどこにいるかをエンコードするために位置情報を適用する - アテンションを行う。これが重要で、私にとってもすごく興味深い部分。3つのニューラルネットワーク:Q、K、Vが各トークンに適用される。新しい埋め込みのシーケンスを生成して、各位置にはその位置のQと他の位置のKのドット積で重み付けされた全トークンのVが加算される。新しい埋め込みは前の層に「加算」される(こういう加算を「残差」と呼ぶ) - アテンションなしで別のNNパスも行い、出力を再度加算する(残差)。実際には、異なるQ、K、Vを持つ「ヘッド」が複数あって、出力はその2回目のNNパスの前にまとめられる。各段階で数値を適切に保つための正規化も行われる。アテンションとフォワードブロックを何度も繰り返して、最終層の出力の最後の埋め込みがサンプリングの基準になる。これがどれだけ早く一貫した文法を生成し始めるかに驚いたよ。訓練ループが各訓練段階で例の出力を示す生成ステップも行うのが、出力が時間とともに質的に改善されるのを見るのに役立ったし、学ぶ様子を「見る」のがちょっとクールだった。これにはMoEやスパース対デンスアテンション、さらにこれらの上にRLがあること(人間のフィードバック用か「バックトラッキングとスパース報酬での検索」のためか)については触れてない。まだコーディングしてないけど、ちょっと読んだだけ… さて、これは何かのプロセスを学ぶためのセットアップで、重みの中にそれを実行するプロセスが広がっているけど、そのプロセスが何なのかはまだよくわからない。「機械的解釈可能性」はそれに取り組むための分野で、最近調べてるんだ。