24 ポイント 投稿者 GN⁺ 2025-01-31 | 1件のコメント | WhatsAppで共有
  • 教育目的で設計されたPyTorchベースのシンプルなLLM訓練プロジェクトで、効率的な訓練と最新のサンプリング手法を適用

Features

  • 最小コードベース: PyTorchで実装されており、複雑な抽象化がない
  • 最新アーキテクチャ: GPTモデルで、Flash Attention、RMSNorm、SwiGLU、効率的なサンプリング手法を含む
  • 訓練機能:
    • 混合精度 (bfloat16/float16)
    • 勾配累積
    • ウォームアップによる学習率減衰
    • 重み減衰および勾配クリッピング
  • データセット対応: TinyStoriesデータセット処理を内蔵
  • カスタムトークナイザー: SentencePieceトークナイザー訓練を統合

インストール

  • Python 3.8+
  • PyTorch 2.0+ および CUDA
  • 最新のGPUを推奨

クイックスタート 🚀

オプション 1: フル訓練サイクル

  1. データセットの準備
  2. 訓練開始
  3. テキスト生成

オプション 2: 事前訓練済みモデルを使用

  1. アセットをダウンロード
  2. 推論を実行

事前訓練済みモデルの詳細

  • TinyStoriesデータセットで訓練済み
  • 語彙数4096トークン、8ヘッド、8層トランスフォーマー、埋め込み次元512
  • 約4億トークンで18.5時間訓練
  • 検証損失: 1.0491

訓練環境の仕様

  • GPU: NVIDIA L4 Tensor Core
  • vCPUs: 16
  • RAM: 64 GB
  • VRAM: 24 GB

参考: この実装は教育目的で、現代のLLM訓練プラクティスを参考に作られている。本番環境ではモデルサイズとデータセットを拡張することが推奨される。

1件のコメント

 
GN⁺ 2025-01-31
Hacker Newsのコメント
  • あるユーザーは、GPTの実装をCで進める中で、メモリ管理とデータ管理の重要性を学んだと述べている。そのプロジェクトは約1500行のコードで構成されており、GitHubリンクも共有している

  • 別のユーザーは、numpy を使って自力で実装するのが次のステップだと説明している。強力な抽象化を使って始め、その後徐々に抽象化を取り除くことで、システムを完全に理解できると強調している

  • Google Colabノートブックを使い、A100 GPUで約2時間かかるプロジェクトが共有されている。無料アカウントでも動作する可能性があると言及している

  • GitHubには、Andrej KarpathyのnanoGPTのような複数のプロジェクトがあり、MoEが実装された別のプロジェクトもあると説明している

  • あるユーザーは、特定のモデルを特定のデータセットで学習させ、その結果をテストできるかどうかを質問している。オープンソースのプロジェクトを探しており、GPUが使えるかどうかを示し、CPUで代替できるDockerコンテナを望んでいると述べている

  • 別のユーザーは、自作のマルチチャネルトークナイザーを使って実装した話を共有している。主人公の名前が頻繁に繰り返されるため、バグがあるのではないかと疑っていると述べている

  • Om Alveは、投稿がバイラルになり、その努力に価値があったことへの感謝を伝えている

  • この技術が数百行のコードで実装できる点が興味深いと言及している。最先端モデルのコード行数を推測してみてはと提案している

  • SmolLMとは関係がないと述べつつ、HuggingFaceのブログリンクを共有している

  • 学習用データセットの例やユースケースについて共有してもらえるかと質問している