Transformers documentation
カーネル
はじめに
ベースクラス
モデル
プリプロセッサ
推論
Pipeline API
Generate API
最適化
概要アテンションのバックエンドExperts バックエンド連続バッチ処理連続バッチ処理アーキテクチャページド・アテンション 推論のためのtorch.compileエクスポートエクスポートの量子化エクスポート機能の拡張推論のためのテンソル並列エキスパート並列キャッシュの仕組みキャッシュ戦略支援デコーディングLLM の最大限の活用
推論用カーネル
モデルとチャットする
サービング
トレーニング
ハードウェア
量子化
エコシステム統合
リソース
API
You are viewing main version, which requires installation from source. If you'd like
regular pip install, checkout the latest stable version (v5.22.1).
カーネル
PyTorch のオペレーションは汎用的です。ハードウェアベンダーやコミュニティは、特定のプラットフォーム上でより高速に実行されるよう、専用の実装を作成しています。これらの最適化されたカーネルをインストールするには、コンパイラバージョン、CUDA ツールキット、プラットフォーム固有のビルドを一致させる必要があるため、課題となります。
| プラットフォーム | 対応デバイス |
|---|---|
| NVIDIA GPU (CUDA) | 計算能力 7.0 以上の最新アーキテクチャ(Volta、Turing、Ampere、Hopper、Blackwell) |
| AMD GPU(ROCm) | ROCm対応デバイスと互換性あり |
| Apple Silicon (Metal) | Mシリーズチップ(M1、M2、M3、M4およびそれ以降) |
| Intel GPU(XPU) | Intel Data Center GPU Max Series および互換デバイス |
Kernels は、Hub 経由で事前コンパイル済みバイナリを配布することで、この問題を解決します。実行時にプラットフォームを検出し、適切なバイナリを自動的に読み込みます。
use_kernels=True の場合、Transformers は最適化されたカーネル実装が利用可能なレイヤーを特定します。起動時間を短縮するため、必要に応じて Hub からカーネルをダウンロードし、キャッシュします。カーネルは、アテンション、正規化、融合演算などの計算集約型操作を高速化します。
すべての操作にカーネル実装があるわけではありません。カーネルが利用できない場合、ライブラリは標準のPyTorchにフォールバックします。
決定論
一部のカーネルは、演算の順序変更や累積戦略により、PyTorch とわずかに異なる結果を生成します。これらの違いは機能的には同等ですが、再現性に影響を与えます。
決定論的な動作を得るには、以下の方法をお試しください。
- カーネルのリポジトリのドキュメントで、決定論的な保証を確認してください。例えば、gpt-oss-metal-kernelsのSDPAカーネルは、PyTorchの実装と97%の頻度で一致します。
- ユースケースに影響を与える特定のカーネルを無効にします。
- ランダムシードとPyTorchの決定論的フラグを設定します。
リソース
- Loading kernelsガイドで始めましょう
- Kernels GitHub リポジトリ
- Hugging Face Kernel Hubで5分以内にモデルを強化するブログ記事