世界を動かす技術を、日本語で。

Gemma 3 270Mをローカルでの試行のために純粋なPyTorchで再実装

概要

  • rasbt/LLMs-from-scratch は、大規模言語モデルの自作方法を解説するリポジトリ
  • GitHub 上で多くのスターとフォークを獲得
  • 通知設定 の変更にはサインインが必要
  • 66,300以上のスター9,300以上のフォーク を記録
  • 機械学習や自然言語処理に興味がある開発者向け

rasbt/LLMs-from-scratch リポジトリ概要

  • LLMs-from-scratch は、大規模言語モデル(LLM)をゼロから構築する方法を解説するプロジェクト

  • rasbt (Sebastian Raschka)による運営

  • GitHub 上で公開されており、コミュニティから高い評価

  • 機械学習ディープラーニング自然言語処理 の実践者や学習者向け

  • PyTorch など主要なフレームワークを活用した実装例を多数掲載

    • 各ステップごとに 理論解説実装例 をセットで提供
    • トークナイザー埋め込み層アテンションメカニズム など重要コンポーネントの詳細解説
    • 学習データ準備 から 推論 までの全体フローを網羅
  • 通知設定 の変更や詳細な操作には GitHubアカウントでのサインイン が必要

rasbt/LLMs-from-scratch の人気の理由

  • 66,300以上のスター9,300以上のフォーク という高い人気
  • オープンソース で誰でも自由に閲覧・利用可能
  • 実践的なコード例詳細なドキュメント による学習効率向上
  • 最新の LLM技術動向関連リソース へのリンクも充実

開発者・学習者へのメリット

  • LLMsの構造理解実装力向上 に最適な教材
  • 自己学習研究開発 の出発点として活用可能
  • コミュニティ貢献フィードバック を通じたスキルアップ
  • GitHub 上での共同開発やディスカッションへの参加支援

Hackerたちの意見

みんな、こんにちは!最高のチームと一緒にこのモデルを作ったよ。先週、これがフロントページに載ったときにたくさんの質問に答えたけど、ここでももっと答えるのが楽しみだよ。個人的には、みんながこのモデルにアクセスできるようになったことが嬉しいし、使ってみて価値を感じてもらえたらいいなと思ってる。

あなたとチームがいろんなタスクでモデルをファインチューニングしていると思うけど、何か結果を共有してくれない?(エイリアンNPCのファインチューニングしか見たことないんだ)

この小さいモデルのサイズの2/3を埋め込みに使うことについて、あなたの考えを聞きたいな。バイトレベルの語彙を使って、パラメータの予算をトランスフォーマーのパラメータに使ったら、何が違ってくると思う?パフォーマンス(トークン/秒)は落ちるかもしれないけど、精度は上がるかもね。

ありがとう!本当に素晴らしい小さなLMだね。トレーニングに必要なハードウェアは何か、どのくらいの時間がかかったか教えてもらえる?

関数呼び出しはあるの?MCPと一緒に使えるのかな?

すごくバカな質問なんだけど、AIエッジギャラリーアプリでGPUで実行するとtfliteモデルが'[multimodal][multimodal]'しか出力しないのはなんで?CPUではちゃんと動くのに。

こういうすごく小さいモデルって、現実世界で何か役に立つと思う?もちろん、学習や学術目的は別としてね。

もちろん、モデルが知識を持っているとは期待せずに自然言語でやり取りするのはいいよね。情報がすべて取得されるツールの使用や埋め込みに向いてる。

そうだね!私にとっての主な価値は、単なる教育用やおもちゃのモデルじゃないんだ。企業向けの繰り返し可能なタスクや、個人使用のためのローカルな高速開発モデルにすごく価値があると思う。これは、私がGoogleの外で働いていたときの役割からインスパイアされた例で、あるビジネスがリアルタイムのテキスト処理を必要としていたんだ。このチュートリアルは1年前のGemmaバージョンで作られたけど、今はGemma 270mで再現できるかもね。 https://developers.googleblog.com/en/gemma-for-streaming-ml-... https://www.youtube.com/watch?v=YxhzozLH1Dk

多言語翻訳タスクに関しては、正しいことが多いみたいだね(ソーステキストは[1][2]から)。粗いけど、旅行者のフレーズブックとしては役立ちそう。翻訳内容は「Рошешуа́р(フランス語:Rochechouart) — フランスの都市、ノヴァ・アキテーヌ地域の自治体で、ヴェルヌ県にある。人口は3637人(2022年)」。この都市はパリから約360km、リモージュから34kmの距離にある。

LoRaを使えば、特定の狭いタスクに対してすごく良くできるようになるよ。例えば:

  • 特定の方法で返答する、特定のJSONスキーマに従ったり、キャラクターの声で話したり
  • テキストの分類が得意(例えば、メールやスパムの分類)
  • 大量のテキストを要約するのが得意、例えばメールを短いタイトルやURLスラッグに変える
  • あらかじめ定義したルールに従ってタグやカテゴリを追加する(コミュニティ用、コンテンツのタグ付け、マーケティングなど)
  • スパムや重複の検出、または何かをフラグ付けすること

これらを使ってコードや文章を書くのは無理だけど、狭い範囲の使い方にはめっちゃ役立つよ。「バカ」なモデルの面白いところは、あまり世界について知らないから、無関係なコンテンツを考え出す可能性が低いことだね。

KVキャッシュとMacのCPUでコンパイルしたら、A100 GPUよりも速いなんてすごいね。

これは、GPUが波形を埋められず、メモリのレイテンシを隠せないからじゃない?その理由が気になるな。

MacだとCPUとGPUがメモリを共有するから、A100はGPUがサポートしてない部分をRAM/CPUに転送する必要があるのかな?(俺の最初の予想)

コンパイル版がA100のイーガー版より遅いってことは、何かしら最適じゃないことが起きてるね。

小さいサイズがGPUを十分に活用できていないせいかもしれない。例えば、少し大きめのQwen3 0.6BモデルではA100が速いよ(ここをスクロールして一番下を見るとわかるよ:https://github.com/rasbt/LLMs-from-scratch/tree/main/ch05/11...)

誰か(またはOP)に、複雑なNERや似たようなワークフローのためにこのモデルをファインチューニングするレシピを教えてもらえないかな?先週Gemma3 270Mが出たときにファインチューニングを試みたけど、全然成功しなかった。多くのチュートリアルはチャットアプリやロールプレイ向けだけど、このモデルはPDFからデータを抽出してクリーンアップするような、俺のような使い方にぴったりだと思うんだ。

これ、試してみたことある? https://huggingface.co/dslim/bert-base-NER どんな感じか気になって、テストする価値があるか知りたいんだ。

これは、バックグラウンドでJAXを使っているgemma-llm Pythonライブラリを使ってるよ:https://gemma-llm.readthedocs.io/en/latest/colab_finetuning....

270Mの埋め込みはどんなユースケースがあると思う?トークン埋め込みにこだわるべきか、それとも文やドキュメントの埋め込みを意味のある形でプールしてもいいのかな?文やドキュメントレベルで意味のある埋め込みにするためにはファインチューニングが必要?

もしゼロからトレーニングしたい場合、合理的なGPUセットアップでどのくらい時間がかかる?

「合理的」という言葉は曖昧だけど、住宅ユニットで動かせるようなものを想定しているなら、ゼロからのトレーニングはかなり時間がかかるよ。これがこのモデルをリリースする理由の一部なんだ。今はゼロから始める必要がなくて、ファインチューニングは多様なハードウェアで合理的に行えるからね。

比較のために言うと、3090で124Mモデルをトレーニングできるよ(nanoGPTを見てみて)。その場合、各バッチは約500,000トークンになって、前向きと後ろ向きの実行に10秒くらいかかるかな。このモデルがトレーニングされた6兆トークンだと、約4年かかる計算になる。つまり、短く言うと「長すぎる」ってことだね。

これはすごく基本的な質問かもしれないけど、商業用のモデル(SonnetやChatGPTなど)を使うだけの開発者として、この小さなローカルモデルのユースケースは何かある?どんな使い方が期待できるのかな?すぐに使えるものがあるのか、それとも有用な動作を得るためにカスタムのポストトレーニングが必要なの?商業ツールのユーザーとしてモデルを理解するのと、ここでの議論の間には大きなギャップがある気がするけど、その間のステップが何か分からないんだ。

要約とか、超基本的なツールの使い方があって、ネットを行き来する必要もないし、エッジコンピューティングのおかげでコストもゼロだよね。

あと、秘密性とプライバシーも大事かも。

それは重要な質問だね。ここに長い回答を書いたから、役に立てば教えてね。 https://news.ycombinator.com/item?id=44913558

一般的な用途としては(教育以外で)、

  • プライベートなオンデバイスモデル(ウェブAPI経由のモデルよりも低遅延の可能性あり)
  • エッジデバイス
  • アルゴリズム研究(新しいアイデアのプロトタイプをより早く安く作れる)
  • 分類やカテゴリ分けのような安価なタスク;確かにそれにはデコーダースタイルのLLMは必要ないけど、より自由な形式でできるのが多くのシナリオで役立つ
  • 文法のサニティチェッカー
  • 他のモデルへのルーター(GPT-5スタイル)

伝説だな。

新しい3270インターフェースかと思ったら、ちょっと残念。