[P] Dante-2B:2×H200でゼロから2.1Bバイリンガルのイタリア語/英語完全オープンLLMをトレーニングしています。フェーズ1完了—構築内容の紹介

Reddit r/MachineLearning / 2026/4/6

📰 ニュースDeveloper Stack & InfrastructureTools & Practical UsageModels & Research

要点

  • Dante-2Bは、イタリア語テキストにおける一般的な「英語優先」の多言語モデルの弱点を避けることを目的に、16日間で2×H200 GPU上にてスクラッチから学習した2.1Bパラメータのデコーダー専用バイリンガル(イタリア語/英語)LLMです。
  • モデルの中核設計には、イタリア語/英語/コード向けに特別に構築した64K BPEトークナイザが含まれています。トークナイザのオーバーヘッドを削減し、形態素処理(例:イタリア語のアポストロフィによる縮約やアクセント付き文字を原子的なトークンとして保持すること)を改善することを意図しています。
  • GQA、SwiGLU FFN、RMSNorm、RoPEといったLLaMA風のアーキテクチャ選択に加え、H200向けのFlash Attention最適化により、密な2Bモデルに対する効率的な学習と推論を狙っています。
  • フェーズ1は、DeepSpeed ZeRO-2とFP8(torchao経由)を用いて、seq_len 2048で100Bトークンまで完了しています。学習は安定しており、約28% MFUを報告しています。フェーズ2では、さらに20Bトークンを加えて約4〜7日で、コンテキストを4096へ拡張する予定です。
  • フェーズ1後の初期結果では、文法や冠詞の使い方が破綻しないイタリア語生成が確認されており、イタリア語を後回しに扱う典型的なオープンソースモデルを上回ることが期待されます。

問題

イタリア語テキストとローカルモデルを扱っていると、つらさがわかります。世の中のあらゆるオープンソースLLMはイタリア語を後回しにしています——英語優先のトークナイザ、英語優先のデータ、そして場合によってはファインチューニング中に少しだけイタリア語を混ぜる、といった具合です。その結果、トークン数が不必要に膨らみ、形態処理がうまくいかず、モデルがイタリア語を「ローマで観光客がコーヒーを注文する」みたいに話すようになってしまいます。

私は、ゼロからこの問題を直すことにしました。

Dante-2Bとは

2.1Bパラメータ、デコーダのみの密なトランスフォーマー。最初から学習——Llamaのファインチューニングはせず、Mistralにアダプタを付けることもしません。2×H200のGPUで16日かけて、ランダム初期化から首尾よくコヒーレントなイタリア語へ。

アーキテクチャ:

  • GQA付きのLLaMAスタイル(20クエリヘッド、4 KVヘッド——5:1の比率)
  • SwiGLU FFN、RMSNorm、RoPE
  • d_model=2560、28層、d_head=128(H200でのFlash Attention向けに最適化)
  • 重み共有の埋め込み、MoEなし——全2.1Bパラメータがトークンごとに有効
  • イタリア語+英語+コード専用に作ったカスタム64K BPEトークナイザ

なぜトークナイザが重要なのか

ここが、多くの多言語モデルが黙って失敗するポイントです。標準的な英語中心のトークナイザはl'intelligenzal'intelligenzaに分割します——イタリア語話者が1.5語ほどに感じるものを、3トークンにしてしまうのです。これをドキュメント全体にわたって掛け算すると、コンテキストウィンドウの20〜30%をトークナイザのオーバーヘッドに無駄にしていることになります。

Danteのトークナイザは、文字バランスを取った混合データ(約42%イタリア語、約36%英語、約22%コード)で学習され、イタリア語のアポストロフィによる縮約をそのまま保つカスタムの事前トークナイズ用正規表現を使っています。アクセント付き文字(à、è、é、ì、ò、ù)は事前に結合して原子的なユニットにされています——運よく2バイトがつながったりしない、常に単一トークンです。

小さな違いが、イタリア語テキストに対する効率と品質にとてつもない影響を与えます。

学習セットアップ

データ: 約300Bトークンのコーパス。イタリア語Webテキスト(FineWeb-2 IT)、英語の教育コンテンツ(FineWeb-Edu)、イタリアのパブリックドメイン文学(171K冊)、法務/議会のテキスト(Gazzetta Ufficiale、EuroParl)、両言語のWikipedia、コードにはStarCoderData。すべて品質ティア付きで、uint16のバイナリに事前トークナイズ済みです。

フェーズ1(完了したところ): seq_len 2048で100Bトークン。DeepSpeed ZeRO-2、torch.compile(reduce-overhead付き)、torchaoによるFP8。コサインLRスケジュールで3e-4 → 3e-5、2000ステップのウォームアップ。約16日、堅牢そのもの——NaNイベントなし、OOMなし、28%の一貫したMFU。

フェーズ2(進行中): 学習率を下げつつ、さらに20Bトークン追加して4096コンテキストへ拡張。あと約4〜7日かかる見込みです。

今すぐできること

フェーズ1の後の時点で、モデルはすでに首尾よくイタリア語テキストを生成します——適切な文法、冠詞の正しい使い方、妥当なトピックの連続性です。これは2Bなので、GPT-4の推論を期待しないでください。ただしこの規模で、イタリア語をネイティブに学習しているモデルとしては、同程度のスケールで見てきた英語モデルのイタリア語ファインチューニングよりも、流暢さはすでに一段上です。

モデルのフル4Kコンテキストが揃ったら、フェーズ2後にサンプルを共有します。

次にやること

  1. フェーズ2の完了(推定 約1週間)
  2. HuggingFaceでのベースモデル公開——重み、トークナイザ、設定、完全なモデルカード
  3. 指示追従のSFTフェーズ(フェーズ3)
  4. コミュニティのベンチマーク——同規模でLlama/Gemma/Qwenのイタリア語ファインチューニングとも比較したいです

今投稿している理由

本当に役に立つものが何か、あなたたちがどんなものを見つけそうか知りたいです。コミュニティにいくつか質問します:

  • イタリア語NLPを扱っている人はいますか? どのベンチマークやタスクが特に重要なのか、ぜひ教えてください。
  • どんな評価セットを見たいですか? ホールドアウトしたイタリア語テキストでのパープレキシティと標準ベンチマークは計画していますが、特定のイタリア語評価セットを入れるべきなら教えてください。
  • トークナイザ単体に興味はありますか? イタリア語対応の64K BPEトークナイザは、モデルとは独立しても有用かもしれません——別個に公開した方がいいですか?
  • 学習ログ/ロス曲線は見たいですか? 興味があれば、全ての数値込みで学習の全ストーリーを共有します。

私について

私はローマ拠点の研究者兼起業家です。コンピュータ工学のPhDを持ち、LUISS大学でAIや新興テクノロジーを教えており、(LEAFという)イノベーション企業を運営して、そうした新しい技術をビジネスに届けています。Dante-2Bは、「まともなモデルをゼロから学習するのに巨大なクラスタは必須ではない——良いデータ、きれいなアーキテクチャ、そして忍耐が必要なんだ」と証明するための研究プロジェクトとして始まりました。

すべてオープンソースにします。コーパスのダウンロードからトークナイザ学習、事前学習スクリプトまで、全パイプラインをGitHubに載せます。

どんな質問にもお答えします。

ディスカッションはr/LocalLLaMA こちらでも行っています

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