Skip to content

fukayatti/Matformer-Translation-Model

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Matformer-MoE Translation Model

高精度で計算弾力性を持つ多言語翻訳モデル:T4 GPU 上での Matformer-MoE の実装

概要

本プロジェクトは、Mixture of Experts (MoE) と Matformer (Nested Transformer) を組み合わせた革新的な多言語翻訳モデルの実装です。Google Colaboratory の T4 GPU という制約された環境下で、スパース性と計算弾力性を両立させた次世代の翻訳システムを構築します。

特徴

  • スパース性: MoE アーキテクチャによる効率的な計算経路選択
  • 弾力性: Matformer による推論時の動的計算量調整
  • 多言語対応: 101 言語をサポートする事前訓練済みモデルをベースに構築
  • メモリ効率: T4 GPU の 15GB VRAM 制約下での最適化
  • プロダクション対応: Hugging Face Accelerate による分散訓練サポート

アーキテクチャ

コアコンポーネント

  1. MatFFN (Matryoshka Feed-Forward Network)

    • 入れ子構造による計算粒度の動的制御
    • 単一モデルから複数の性能レベルを抽出
  2. MatformerMoE Layer

    • トップ k ゲーティングによるスパース専門家選択
    • 負荷分散損失による安定した訓練
  3. Custom T5 Block

    • 標準 T5 ブロックの FFN 層を MatformerMoE に置換
    • 事前訓練済み重みの活用

性能目標

  • 総パラメータ数: ~1B (10 億パラメータ未満)
  • アクティブパラメータ数: ~300-400M
  • 訓練環境: 単一 T4 GPU (15GB VRAM)
  • 推論速度: 3 段階の計算粒度による動的制御

プロジェクト構造

Matformer-Translation-Model/
├── src/
│   ├── models/           # モデルアーキテクチャ
│   ├── training/         # 訓練ロジック
│   ├── data/            # データ処理
│   ├── evaluation/      # 評価・分析
│   └── utils/           # ユーティリティ
├── configs/             # 設定ファイル
├── notebooks/           # Jupyter ノートブック
├── experiments/         # 実験結果
├── checkpoints/         # モデルチェックポイント
└── logs/               # ログファイル

クイックスタート

1. 環境構築

pip install -r requirements.txt

2. Google Colab での実行

完全な実行可能なノートブックを notebooks/matformer_moe_complete.ipynb に提供しています。

3. ローカル訓練

python src/training/train.py --config configs/base_config.yaml

4. 推論・評価

python src/evaluation/evaluate.py --model_path checkpoints/best_model --test_file data/test.json

設定オプション

モデル設定

  • num_experts: MoE エキスパート数 (デフォルト: 8)
  • top_k: アクティブエキスパート数 (デフォルト: 2)
  • d_ff_list: FFN 粒度リスト (デフォルト: [2048, 1024, 512])
  • load_balance_loss_coef: 負荷分散損失係数 (デフォルト: 0.01)

訓練設定

  • batch_size: 物理バッチサイズ (デフォルト: 8)
  • gradient_accumulation_steps: 勾配累積ステップ (デフォルト: 4)
  • learning_rate: 学習率 (デフォルト: 5e-5)
  • mixed_precision: 混合精度 (デフォルト: fp16)

実験結果

弾力性の検証

粒度 相対 FFN サイズ レイテンシ (ms/token) BLEU スコア
Full 100% 25.4 28.5
Medium 50% 18.1 27.9
Small 25% 12.3 26.8

エキスパート専門化

言語ごとのエキスパート使用パターンの可視化により、効果的な言語専門化を確認。

技術的詳細

メモリ最適化

  • 混合精度訓練: FP16 による VRAM 使用量半減
  • 勾配累積: 大きな実効バッチサイズのシミュレーション
  • 動的パディング: シーケンス長の最適化

訓練戦略

  • 複合損失関数: 翻訳 + Matformer + MoE 負荷分散
  • カリキュラム学習: 粒度レベルの段階的導入
  • エキスパート初期化: 事前訓練重みからの安定した開始

拡張性

スケールアップ

  • より大きなベースモデル (mT5-Base, mT5-Large) への適用
  • 階層的 MoE の実装
  • 量子化による更なる効率化

ドメイン適応

  • 専門分野特化エキスパートの追加
  • ドメイン特有のファインチューニング

貢献

このプロジェクトは研究・教育目的で作成されています。改善提案やバグ報告をお待ちしています。

ライセンス

MIT License

引用

@article{matformer_moe_2024,
  title={Matformer-MoE: Elastic Multilingual Translation with Sparse Mixture of Experts},
  author={Your Name},
  journal={arXiv preprint arXiv:2024.xxxxx},
  year={2024}
}

参考文献

  1. Switch Transformer: Scaling to Trillion Parameter Models
  2. Matryoshka Representation Learning
  3. GLaM: Efficient Scaling of Language Models
  4. Exploring the Limits of Transfer Learning with T5

本実装は、制約されたハードウェア環境での最先端 NLP 技術の民主化を目指しています。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published