ホームへ戻る

電腦視覺/邊緣推論

Ultralytics 8.4.143/8.4.144、YOLO26 INT8 QATを学習・チェックポイント・TensorRTエクスポートのパイプラインに統合

YOLO26では、`quantize=8`による量子化認識学習が利用可能になった。量子化範囲をチェックポイントに保存し、Q/DQノードを含むONNXまたはTensorRTエンジンを直接出力できる。続いて公開された8.4.144では、量子化効果に関する説明と数値安定性の修正が追加される一方、このデプロイ経路には依然として明確な制約があることも浮き彫りになった。

Alf van Beem · CC0 · Image source
zh-Hant

Ultralyticsは8.4.143で、YOLO26にネイティブのINT8量子化認識学習(QAT)を追加した。開発者は既存の学習エントリーポイントをそのまま使用し、`quantize=8`を設定するだけでよい。システムはNVIDIA ModelOptを通じてFake Quantization演算を挿入し、学習完了後にキャリブレーションデータを使ってPTQを行うのではなく、ファインチューニング中に重みをINT8のクリッピング誤差とスケーリング誤差へ適応させる。

今回の変更点は、学習パラメーターだけではない。量子化器の状態とキャリブレーション範囲は通常のモデルレイヤーとともにチェックポイントへ保存され、学習再開時に再構築される。エクスポーターはQATモデルを識別し、追加のPTQおよびキャリブレーション処理をスキップして、Quantize/Dequantizeノードを含むONNXを直接生成するか、TensorRTに渡してINT8エンジンをビルドする。出力headは当面、浮動小数点のまま維持される。また、QATモデルでは`torch.compile`を使用できず、チェックポイントの読み込みには引き続き`nvidia-modelopt`が必要となる。正式にサポートされるエクスポート形式も、ONNXとTensorRT engineに限定されている。

翌日に公開された8.4.144では、空ラベルのバッチにおけるマスク型、FP16/BF16の数値境界、Tritonの入力精度、カスタムYAMLの読み込み優先順位がさらに修正され、QATとキャリブレーションベースのPTQとの比較説明も追加された。公式の結論によると、小型のYOLO26では追加のメリットが限定的であり、より大規模なモデル、またはPTQによる精度低下が顕著な場合にのみ、再ファインチューニングのコストを相殺できる可能性が高い。

エンジニアリングチームは、実際に使用するTensorRTのバージョン、GPU、データ分布に基づき、mAP、レイテンシー、消費電力を改めて測定すべきだ。現時点の量子化結果は、主にプロジェクト独自のCOCOテストに基づいている。今回のコミットでは、マージ前に分類入力の重複正規化、分散キャリブレーションの同期、中断後の学習再開時における量子化器のデバイス配置ミスといった問題も明らかになっていた。メンテナーは、これらを修正し、実機上のパスでも検証済みだとしているが、本番環境ではマルチGPUでの学習再開と、エクスポート後のモデルに対する回帰テストを特に重点的に実施する必要がある。

出典

  1. Release v8.4.144 — Fix model loading, numerical edge cases, and CI setup
  2. Ultralytics v8.4.143: INT8 QAT for YOLO26
  3. Add INT8 quantization-aware training via quantize=8 in train mode