sophgo/tpu-mlir
Machine learning compiler based on MLIR for Sophgo TPU.
解決する課題
TPU-MLIRは、さまざまな主流フレームワークの学習済みニューラルネットワークをTPUハードウェアにデプロイする問題を解決します。高レベルのモデル定義(PyTorchやONNXなど)と、TPUチップ上での効率的な実行に必要な特定のバイナリ形式(bmodel)との間のギャップを埋めます。
仕組み
このプロジェクトは、MLIR(Multi-Level Intermediate Representation)に基づいたコンパイルパイプラインを使用して、モデルを以下のいくつかの段階を経て変換します:
- フロントエンド・インポート: PyTorch、ONNX、TFLite、Caffe、またはHuggingFaceのモデルがインポートされ、統一されたMLIR表現に変換されます。
- ローリング(Lowering): コンパイラは、パターン書き換えとメモリプランニングを使用して、高レベルの表現をTPU固有のダイアレクト(TopおよびTpu)に変換します。
- 量子化: さまざまな量子化技術(F32、BF16、F16、INT8)とキャリブレーションを適用し、ハードウェア効率のためにモデルを最適化します。
- デプロイ: 最終的な出力は、ターゲットのTPUプロセッサ上で実行可能な
bmodelファイルです。
対象者
ディープラーニングモデル(大規模言語モデルおよびビジョンモデルを含む)をSophgo TPUハードウェアにデプロイする必要があるAIエンジニアおよび開発者向けに設計されています。
ハイライト
- 幅広いフレームワークサポート: PyTorch、ONNX、TFLite、Caffe、HuggingFaceに対応。
- LLM最適化: HuggingFace LLM向けの専用ワンショット変換。履歴KVキャッシュおよびチャンク推論をサポート。
- 包括的な量子化: 対称/非対称INT8、F16、BF16をサポートし、AWQ、GPTQ、AutoRoundのパススルーにも対応。
- プロダクション・ツール: 汎用推論ランナー(
model_runner)、bmodel検査ツール(model_tool)、および精度検証ユーティリティが含まれます。