RTX 5080 1台でゼロから学習した235MパラメータのLLM

Reddit r/LocalLLaMA / 2026/4/22

💬 オピニオンDeveloper Stack & InfrastructureTools & Practical UsageModels & Research

要点

  • 開発者は「Plasma 1.0」という235Mパラメータのトランスフォーマ言語モデルを、PyTorch上で完全にゼロから構築し、事前学習済みチェックポイントやHugging Faceのダウンロードを使わずに生テキストで全重みを学習しました。
  • モデルはGQA(クエリ16ヘッド/KV4ヘッド)やSwiGLUのFFN、RoPE、RMSNormのpre-norm、埋め込みのtiedなど、LLaMA風のアーキテクチャ要素を取り入れ、32kのSentencePiece BPE語彙を使用しています。
  • 学習はコンシューマ向けのRTX 5080を1台用いて、bf16の混合精度と勾配チェックポイントを使い、シーケンス長1024でおよそ50億トークンを学習したとしています。
  • 著者は事前学習パイプライン一式を自作しており、データ収集(FineWeb-Edu、Wikipedia、StackExchange、コード、ArXiv)、品質・有害性フィルタ、MinHashによる重複排除、独自トークナイザ学習、ドメイン重み付き混合、そしてloss maskingによるinstruction tuningを実装しています。
  • Plasma 1.1は現在トレーニング中(500Mパラメータ)で、マルチターン性能の改善やbyte fallbackによる語彙拡張を目指しており、リポジトリも公開されています。

みなさんこんにちは、

これをしばらく取り組んでいて、ここでも共有しようと思いました。PyTorchで、最初からまったくの自作で小さなトランスフォーマー言語モデルを作りました。事前学習済みの重みはなし、HuggingFaceのダウンロードもなしです。すべてのパラメータを、単一のコンシューマーGPUで、生テキストから学習しました。

現在のリリースはPlasma 1.0です(235M params、18層、隠れ次元1024)。LLaMAスタイル:GQAで、クエリヘッド16、KVヘッド4(head_dim 64)。FFNはSwiGLUで中間次元2816、RoPEはtheta 10000、RMSNormのpre-norm、埋め込みの重み共有(tied embeddings)。32kのSentencePiece BPEボキャブラリ。bf16の混合精度に加えて、5080に収めるために勾配チェックポイントを使い、seq len 1024で約5Bトークン学習しました。

また、完全なパイプラインも自分で書きました:

  • データ:FineWeb-Edu、Wikipedia、StackExchange、コード、ArXiv
  • 品質および毒性のフィルタリング
  • MinHashによる重複排除
  • カスタムのSentencePieceトークナイザ
  • ドメインに重み付けしたデータ混合
  • 損失マスキング付きでの事前学習とインストラクション・チューニング(アシスタントのトークンからのみ学習する)

インストラクション・チューニング後のサンプル出力:

You: When was World War 1? 1386.ai: World War I began on June 26, 1914.

You: What is a steak made of? 1386.ai: A steak can be made from various types of meat, including beef.

言うまでもなく、Llama 3と競っているわけではありません。このスケールでは、幻覚(ハルシネーション)や奇妙な出力、そしてかなり厳しい天井があります。ですが、このやり方で実装すると、大きいモデルを単にファインチューニングするだけでは得られないことをたくさん学べました。

Plasma 1.1は現在学習中です(500M params)。マルチターンの性能向上と、バイトフォールバック付きのより大きなボキャブラリを目指しています。

リポジトリ:github.com/eb1386/1386.ai

パイプラインやアーキテクチャ選択についての質問なら何でもお答えします。

submitted by /u/ExcellentTip9926
[link] [comments]