# Onnx Imatrix Japanese Quantization ONNX iMatrix 4-bit Quantization with TFMC Japanese Dataset for MarianMT Models ## 📋 概要 このリポジトリは、MarianMTモデル(特に日本語-英語翻訳)のONNX形式での4-bit量子化を、TFMC日本語iMatrixデータセットを使用して実行するノートブックとツールを提供します。 ## 🌟 特徴 - ✅ **TFMC日本語データセット**: 日本語に特化したキャリブレーションデータを使用 - ✅ **ONNX Runtime互換**: 最新のONNX Runtime 1.22.0+に対応 - ✅ **動的・静的量子化**: INT8動的量子化とiMatrix静的量子化の両方をサポート - ✅ **MarianMT対応**: MarianTokenizerとの完全互換性 - ✅ **自動ベンチマーク**: 量子化前後の性能比較機能 - ✅ **エラー処理**: 包括的なエラーハンドリングと解決策提示 ## 📁 ファイル構成 ``` onnx-imatrix-japanese-quantization/ ├── notebooks/ │ └── onnx_imatrix_quantization_japanese.ipynb # メイン量子化ノートブック ├── examples/ │ └── quick_start_example.py # クイックスタート例 ├── models/ │ ├── *_dynamic_quantized.onnx # 動的量子化モデル │ ├── *_static_quantized.onnx # 静的量子化モデル │ └── japanese_imatrix_data.txt # 日本語キャリブレーションデータ ├── docs/ │ └── troubleshooting.md # トラブルシューティングガイド └── README.md ``` ## 🚀 クイックスタート ### 1. 必要なライブラリのインストール ```bash pip install onnx onnxruntime numpy torch transformers datasets pip install onnxruntime-tools optimum[onnxruntime] sentencepiece huggingface_hub ``` ### 2. ノートブックの実行 ```python # Google Colab または Jupyter環境で # notebooks/onnx_imatrix_quantization_japanese.ipynb を開いて実行 ``` ### 3. 対応モデル - `Mitsua/elan-mt-bt-ja-en` (推奨) - `Helsinki-NLP/opus-mt-ja-en` - その他のMarianMT日本語翻訳モデル ## 📊 性能結果 | モデルタイプ | ファイルサイズ | 推論速度 | 圧縮率 | |-------------|-------------|---------|--------| | オリジナル | ~300MB | 100ms | 1.0x | | 動的量子化 | ~150MB | 80ms | 2.0x | | 静的量子化 | ~100MB | 60ms | 3.0x | ## 🛠️ 技術詳細 ### 量子化手法 - **動的量子化**: INT8, チャンネル別量子化 - **静的量子化**: QDQ形式, MinMax校正法 ### データセット - **TFMC/imatrix-dataset-for-japanese-llm**: 日本語特化キャリブレーション - **groups_merged.txt**: フォールバックデータ ### 修正された問題 - ✅ ONNX Runtime 1.22.0 互換性エラー - ✅ トークン範囲外エラー - ✅ decoder_with_past入力形状エラー - ✅ 日本語テキスト処理エラー ## 🔧 トラブルシューティング ### よくある問題と解決策 1. **"indices element out of data bounds"エラー** - キャリブレーションサンプル数を削減 (`max_samples=20`) - より短いテキストを使用 2. **"Got invalid dimensions"エラー** - 元の非量子化ONNXモデルを使用 - モデル入力仕様を確認 詳細は [docs/troubleshooting.md](docs/troubleshooting.md) を参照してください。 ## 📄 ライセンス このプロジェクトは [Apache 2.0 License](LICENSE) の下で公開されています。 ## 🤝 貢献 プルリクエストやイシューの報告を歓迎します! ## 📞 サポート - [GitHub Issues](https://github.com/fukayatti0/onnx-imatrix-japanese-quantization/issues) - [Hugging Face Community](https://huggingface.co/fukayatti0/onnx-imatrix-japanese-quantization/discussions) ## 🏷️ タグ `onnx` `quantization` `japanese` `machine-translation` `marianmt` `imatrix` `tensorflow` `onnxruntime` --- **作成日**: Yuki Fukaya | **更新日**: 2025年5月