pytorch/ao
PyTorch native quantization for training and inference
何を解決するか
TorchAO は、トレーニングからサービングに至るモデル最適化のためのネイティブ PyTorch ライブラリを提供します。モデルのサイズを削減し、推論速度を向上させる一方で、精度を大幅に損なわずに実現する課題に対処し、特に量子化とスパース性のためのツールを提供します。
仕組み
TorchAO は torch.compile() と FSDP2 に直接統合され、ほとんどの HuggingFace モデルで即座に動作します。PyTorch、CUDA、C++、または Triton のカーネルを使用して、さまざまな低精度データ型(dtypes)とメモリレイアウトを実装し、GPU および CPU 上でのパフォーマンスを高速化します。
対象ユーザー
大規模モデル(LLM やディフュージョンモデルなど)をサーバー GPU、ExecuTorch を通じたエッジデバイス、または ARM CPU 上でより効率的にデプロイしたい機械学習エンジニアおよび研究者向けに設計されています。
主な特徴
- 量子化対応トレーニング(QAT): トレーニング後の量子化によって引き起こされる精度低下を回復し、特に int4 モデルにおいて有効です。
- Float8 トレーニング: スケーリングされた float8 データ型を使用して、事前トレーニング(例:Llama-3.1-70B)を最大 1.5 倍高速化します。
- 推論最適化: int4 重みのみおよび float8 ダイナミック量子化をサポートし、大幅な高速化とメモリ削減を実現します。
- メモリ効率の良いオプティマイザー: 量子化されたオプティマイザー(AdamW 4ビット/8ビット/Fp8)と CPU オフロードを含み、VRAM の要件を削減します。
- Cレベル統合: vLLM、HuggingFace Transformers/Diffusers/PEFT、Unsloth、SGLang と統合されています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト