1 ポイント 投稿者 GN⁺ 2024-09-01 | 1件のコメント | WhatsAppで共有
  • 週末に数時間を投じて、LLMの動作の仕組みをコードで追いながら、実装・学習・利用の流れを一度に見られるワークショップ
  • ハンズオンはLLMの紹介から始まり、入力データ、トークナイザー、モデルアーキテクチャの実装へと段階的に進む
  • アーキテクチャ実装後は、GPT-2とLlama 2、事前学習、事前学習済み重みのロードを扱い、実際のモデル利用の流れまでつなげる
  • LitGPTを活用した重みの利用と命令ファインチューニング、ベンチマーク評価、会話性能評価まで含まれている
  • 書籍、GitHubリポジトリ、ワークショップコード、Lightning Studio、LitGPTリポジトリがあわせて提供されており、自分で手を動かして試しやすい

3時間ワークショップ動画の流れ

  • LLMを実装し、学習させ、利用するプロセスを1つのコーディングワークショップとして扱う
  • クリック可能なチャプター表示があり、必要なトピックへすぐに移動できる
  • 基礎と入力処理

    • 0:00 ワークショップ概要
    • 2:17 LLM紹介
    • 9:14 ワークショップ資料
    • 10:48 LLM入力データの理解
    • 23:25 シンプルなトークナイザークラス
  • モデル実装と学習

    • 41:03 LLMアーキテクチャのコーディング
    • 45:01 GPT-2とLlama 2
    • 1:07:11 事前学習
    • 1:29:37 事前学習済み重みのロード
    • 1:45:12 LitGPTによる事前学習済み重みの利用
  • ファインチューニングと評価

    • 1:53:09 命令ファインチューニング
    • 2:08:21 LitGPTによる命令ファインチューニング
    • 2:26:45 ベンチマーク評価
    • 2:36:55 会話性能評価
    • 2:42:40 締めくくり

試すために必要な資料

1件のコメント

 
GN⁺ 2024-09-01
Hacker News のコメント
  • 無知な質問かもしれないが、これは Andrej Karpathy の https://www.youtube.com/watch?v=kCc8FmEb1nY と内容が違うのか気になる
    • Andrej のシリーズも素晴らしいし、Sebastian の本とこの動画も素晴らしい。
      重なる部分は多いが、互いに別のトピックをより詳しく扱っていたり、焦点が違っていたりする。Andrej のシリーズ全体は見る価値が十分にあるし、今後出てくる Eureka Labs の取り組みもとても良さそう。Sebastian のブログと本も、時間とお金をかける価値があると思う
  • Sebastian の記事は良いし、本も楽しみ。LLM の構成方法について細かい内容が多いが、長期的には戦場はそちらに向かうように思えるので、Llama と OpenAI が学習データをどう精製し構造化できるのかも、もっと扱ってくれるとうれしい
  • PyTorch を使うのは、ゼロから作る LLMではない
    良い PyTorch チュートリアルではあるが、低レベルだと装うのはやめよう、ということ
    • アップルパイを一から作るには、まず宇宙を発明しなければならない
    • Sebastian のコンテンツは本当に好きだが、この点には同意する。Karpathy のシリーズのように自動微分エンジンをゼロから作るところから始めるまで、ディープラーニングにちゃんと入っていけなかった
      それ以前は fast.ai で学ぼうとしたが、いきなり Pytorch でネットワークを作り始めるので、すぐ離脱した。高校で Java を学ぶのと同じくらい面白くなく感じたし、自分が扱っているものが何なのか理解する必要があった
    • Bach の演奏を学ぶ:自分でピアノを作るところから始める
    • どの基準で低レベルではないのか? Python で socket API だけを使って IRC クライアントを書くのも、ゼロからではないのか?
    • LLM の文脈では pytorch.nn も低レベルだ。教育では、あまりに多くの抽象化レイヤーを一度に扱わないことが重要
  • 以前 Azure で nanoGPT をゼロから学習させる実践ガイドを書いた。手で追いやすく、実用的なほうだと思う
    https://16x.engineer/2023/12/29/nanoGPT-azure-T4-ubuntu-guid...
    • 本当に費用が200ドルしかかからなかったのか気になる
      それで作ったもので何ができたのか、最近の出来事をどう学習させるのかも気になる
  • 非合理的かもしれないが、programming や development の代わりに coding という言葉を使うことには、基本的にネガティブな印象を受ける
    • このコミュニティでも言葉にかなりこだわる部類の人が投稿した記事で、そういう反応が出るのはかなり大げさに感じる
      さて考えてみると、"code" は codex という媒体の内容として定めるものだ。歴史的背景は https://en.wikipedia.org/wiki/Codex を見ればよく、法分野の規則集から出発して、英語では少なくとも16世紀半ばから他の領域へ用法が広がった
      "program" は意図の集合を掲げて公にすることに近く、たとえば「まず Bach を演奏し、その次に Mozart を演奏する」といった意味が伴う。この用法は「規則集」としての code より数世紀後に出てきた
      "develop" は展開していくという意味なので良いが、前の2語のように規則や逐次的な手順を含意してはいない
    • ブラジル出身だが、これが面白いのは、僕の友人や同僚の間では英語で話すときは普通 coding を使い、ブラジル人同士ではポルトガル語の動詞のように codar をよく使うからだ
      正確な理由はわからないが、ブラジルポルトガル語では "program" が売春と強く結びついているからだと思う
    • 完全に同意。1年前にもこのテーマで議論していた: https://news.ycombinator.com/item?id=36924239
    • 今ではおそらく不人気な見解だと思うが、そうした判断がジャッジゲートキーピングとして受け取られる雰囲気の中でも同意する
    • これはもう少しヨーロッパ的な感覚に近い
  • 自分が探していた、まさにその細かさのレベル。ディープラーニングと pytorch の経験はかなりあるので、それをゼロから実装する場面は見たくない
    Andrej の資料は自分には低レベルすぎて、細部にはまり込んで迷子になりがち。批判というより、私と似た状況の人に役立ちそうなコメント
  • 素晴らしい。ちょうど昨日、Transformer/Attention と LLM が正確にどう動くのか気になっていた
    ずっと前に深い RNN でバックプロパゲーションがどう動くかは追ったことがあるので、残りも見たら面白そうだと思っていた
    • 直感を得たいなら、3b1b の動画がかなりうまく説明してくれる。ただし、かなり細かい部分まで踏み込むわけではない
  • 良い。Windows 11 でも動くとよい
    Windows が明示的に言及されていない場合、たいていその環境ではテストされておらず、任意の問題でうまく動かないことをよく見かける
    • WSL2 では GPU にアクセスできるので、問題なく動きそう。Cuda toolkit のインストールは忘れてはいけないし、NVidia が WSL2 専用に提供しているものもある
      https://developer.nvidia.com/cuda-downloads?target_os=Linux&...
    • Windows 11 で動かないなら、WSL(Windows Subsystem for Linux)で試してみるのも手
  • このページは実質的に YouTube 動画を入れたコンテナにすぎない。ページ説明に同じリンクが入っているので、HN のリンクを動画へ直接リンクするよう変えたほうがよい
    • むしろ Sebastian Raschka の記事リポジトリを探す追加の手間を省いてくれたわけだ
    • 彼は動画とコードをたくさん共有していて、資料としての価値は本当に大きい。単にクリエイターを支援すればいいのでは?
    • 著者本人のウェブサイトを支援しない理由があるのか?サイトも良さそう