エンジニアのためのディープラーニングガイド: Transformerモデルを理解する
(interdb.jp)- 2017年に登場したTransformerは、機械翻訳から出発してほぼあらゆる分野へと拡張され、現代のエンジニアが知っておくべき中核的なAI知識となった
- このガイドは、エンジニアがTransformerを理解するために必要な範囲だけを追えるよう、ニューラルネットワークからアテンションまでを段階的に構成している
- そのまま実行できるPythonコード例と参考資料があわせて提供されており、読むだけで終わらず、手を動かして確認しながら学習できる
- 本文はニューラルネットワーク、RNN、NLPとアテンション、Transformer、Python・数学の基礎付録に分かれており、PyTorchとLLMベースのMulti-Agents項目も追加されている
- 教育・非商用目的での利用条件は比較的開かれている一方、問い合わせ時には検証用SNSアドレスを2つ以上求めるなど、匿名での連絡には制限がある
Transformerを理解するための学習ルート
- The Engineer’s Guide To Deep Learningは、エンジニアがTransformerを理解するために必要な最小限のルートを提供する簡潔なガイドブックである
- 現在のAIは第3の黄金期と位置づけられている
- それ以前の2度の黄金期は1950〜1960年代と1980年代だった
- 当時は期待が技術的能力を上回り、失望につながった
- 2010年代半ばに始まった現在のAI黄金期は、期待を継続的に上回る流れとして説明されている
- Transformerは2017年に導入されたブレークスルーである
- 当初は機械翻訳モデルとして開発された
- その後、影響はほぼあらゆる分野へと広がった
- 学習補助資料として、実行可能なPythonコード例を提供している
- 読者ごとに合った資料を選べるよう、追加の参考資料もあわせて紹介している
文書構成と更新
- ガイドはTransformerへいきなり飛び込むのではなく、必要な基礎を順に積み上げられるよう構成されている
- Part 1: Neural Networks — ニューラルネットワークの基本概念
- Part 2: Recurrent Neural Networks (RNNs) — RNN、LSTM、GRU
- Part 3: Natural Language Processing (NLP) and Attention Mechanisms — 機械翻訳とアテンションを含むNLPの中核原理
- Part 4: Transformer — Transformerモデル
- Appendix: Basic Knowledge — Transformerの理解に必要な最小限のPythonと数学の知識
- 変更履歴は2024年5月21日の初版公開以降、継続している
- 2024年7月23日: Parts 1・2にPyTorch版を追加
- 2024年9月16日: LLMベースのMulti-Agentsセクションを追加
- 今後は、現在開発中のさまざまなTransformerベース技術や、近い将来の次なる主要ブレークスルーまで扱う可能性がある
利用条件と連絡方法
- 著作権FAQの利用条件は、教育・非商用利用を中心に開かれている
- 教育機関に所属する教員と学生は、学習目的で文書と図を自由に使用できる
- 非商用の集まりや講義では、サイトリンクと著作権を明記すれば文書と図を使用できる
- 商用利用項目のrevenue shareとfull buyoutの説明はジョークであり、商業的関係を結ぶ意図はないと明記している
- 問い合わせメールには、検証目的でLinkedIn、TwitterなどのSNSアドレスを最低2つ提供する必要がある
- XZ backdoor事件以降は、匿名の個人からの連絡は受け付けていない
1件のコメント
Hacker Newsのコメント
Transformers from Scratch: https://e2eml.school/transformers.html
Andrej Karpathyの入門シリーズも良い: https://karpathy.ai/zero-to-hero.html
Let's build GPT: from scratch, in code, spelled out: https://www.youtube.com/watch?v=kCc8FmEb1nY
GPT with Andrej Karpathy: Part 1: https://medium.com/@kdwa2404/gpt-with-andrej-karpathy-part-1...
3Blue1Brownの「But what is a GPT? Visual intro to transformers | Chapter 5, Deep Learning」: https://www.youtube.com/watch?v=wjZofJX0v4M
「Attention in transformers, visually explained | Chapter 6, Deep Learning」: https://www.youtube.com/watch?v=eMlx5fFNoYc
3Blue1Brownのニューラルネットワーク再生リスト全体: https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_6700...
Kerasチュートリアルにしてはかなり高い
昨年の受賞解法を理解した上で、より小さな下位課題を選んでみるつもり: https://scrollprize.org/
たとえばLSTMの勾配を展開する部分は、好みのフレームワークで実装できるよう助けるためではなく、理解を助けるためのもの
複数のフレームワークで解法を見せる目的も、数式がどういう形をしていて、それがコードではどう見えるかを結びつけるためにある
とくにTransformerアーキテクチャで面白い部分は、アテンション機構が順列不変である点。人々がその固有の性質を打ち消すために位置埋め込みを使わないならなおさらで、グラフの特定ノードや個々のエッジまで任意にマスクできるので、ドメイン知識をアーキテクチャに落とし込む柔軟性が高い
多くの場合は位置埋め込みが依然として必要かもしれないが、アテンション層の入力を単なる1次元シーケンスとして扱う過度に限定的な見方から離れ、もっと賢く設計できる
理解している限りでは、MLエンジニアはPyTorchのようなフレームワークでモデルを作るエンジニア、AIエンジニアはプロンプトエンジニアリングやOpenAI/Claude APIのようなAIソリューションの上にアプリケーションを作るエンジニア、MLOpsはモデルのデプロイやサービングを助ける人たち、という区別だと思うが合っているだろうか
上の役割は現実には「最先端の研究をする」から「CSVを一度開いたことがある」まで全部を含みうる
影響を出したいなら、そのあたりを非常にうまくやればいい。システム統合やビジネス分析のような分野でも使えるスキルで、アルゴリズムや最近では学習済みモデルですら研究する人たちが持ってきてくれる
技術者のあいだでもソーシャルネットワークが身元と信頼の確認手段として採用されるのを見ると、かなり苦い気分になる。一部の政府がビザ/移民審査にソーシャルネットワークのユーザー名を求め始めた時点でも十分ひどかったのに、今や技術者にメールを1通送るのにも社会的証明が必要なのかと思ってしまう
XZの攻撃者は、GitHubでログインできる非常に多くのサービスにアクセスできたはず。元記事の筆者も、1年以上放置されたトークン漏えいによって潜在的に侵害されていたPyPIから何かをダウンロードしていた可能性が高いと思う
また機械学習分野にいるのだから、GitHub、conda、PyPIから監査が難しい巨大なPythonフレームワークをダウンロードする可能性も高いし、その分野の人たちは信頼できないモデルもダウンロードして実験する
それなのに、MIMEやその他の拡張を無効にしたコマンドラインのメールクライアントで読める平文メールが問題だというのか