問題
イタリア語テキストとローカルモデルを扱っていると、つらさがわかります。世の中のあらゆるオープンソース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'intelligenzaをl、'、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後にサンプルを共有します。
次にやること
- フェーズ2の完了(推定 約1週間)
- HuggingFaceでのベースモデル公開——重み、トークナイザ、設定、完全なモデルカード
- 指示追従のSFTフェーズ(フェーズ3)
- コミュニティのベンチマーク——同規模でLlama/Gemma/Qwenのイタリア語ファインチューニングとも比較したいです
今投稿している理由
本当に役に立つものが何か、あなたたちがどんなものを見つけそうか知りたいです。コミュニティにいくつか質問します:
- イタリア語NLPを扱っている人はいますか? どのベンチマークやタスクが特に重要なのか、ぜひ教えてください。
- どんな評価セットを見たいですか? ホールドアウトしたイタリア語テキストでのパープレキシティと標準ベンチマークは計画していますが、特定のイタリア語評価セットを入れるべきなら教えてください。
- トークナイザ単体に興味はありますか? イタリア語対応の64K BPEトークナイザは、モデルとは独立しても有用かもしれません——別個に公開した方がいいですか?
- 学習ログ/ロス曲線は見たいですか? 興味があれば、全ての数値込みで学習の全ストーリーを共有します。
私について
私はローマ拠点の研究者兼起業家です。コンピュータ工学のPhDを持ち、LUISS大学でAIや新興テクノロジーを教えており、(LEAFという)イノベーション企業を運営して、そうした新しい技術をビジネスに届けています。Dante-2Bは、「まともなモデルをゼロから学習するのに巨大なクラスタは必須ではない——良いデータ、きれいなアーキテクチャ、そして忍耐が必要なんだ」と証明するための研究プロジェクトとして始まりました。
すべてオープンソースにします。コーパスのダウンロードからトークナイザ学習、事前学習スクリプトまで、全パイプラインをGitHubに載せます。
どんな質問にもお答えします。
ディスカッションはr/LocalLLaMA こちらでも行っています
[link] [comments]




