
- 207個のWebGPUカーネルをHugging Face Hub上で公開。ライセンスはApache-2.0
- JavaScriptローダー「@huggingface/kernels」でバージョン管理されたカーネルを実行
- Fleetがブラウザ上で実機のGPU性能テストを収集、ORT WebGPU比2.57倍の結果も
WebGPUカーネル207種を公開
Hugging Faceは、WebGPUを利用してブラウザ上でAIモデルの推論処理を高速化するためのカーネル群を公開しました。ここで言うカーネルとは、ニューラルネットワークに現れる行列積や畳み込みなどの基本演算をGPU上で実行するためのプログラムです。公開されたのは207個のカーネルで、Hugging Face Hubの「webgpu-kernels」グループで個別のリポジトリとして管理されます。ライセンスはApache-2.0です。
あわせて、カーネルを読み込むためのJavaScriptライブラリ「@huggingface/kernels」と、ブラウザ上でカーネルの正しさや性能をテストするスイート「Fleet」も発表されました。これらは、ブラウザベースのAIエコシステムを支える低レイヤーの土台を目指しています。
単なるシェーダーではない設計
今回の特徴は、各カーネルが単体のシェーダーコードではなく、契約情報を含む完成されたソフトウェア成果物として公開されている点です。各リポジトリには、入力・出力・属性などを定義する「manifest.json」、カーネル識別子と由来を記録する「metadata.json」、正しさを検証する「test.json」、ベンチマーク用の「bench.json」、パラメータ付きのWGSLシェーダーテンプレートが含まれます。これにより、WGSLを直接読まなくてもインターフェースを把握でき、正しさの検証と性能測定を実装と一緒に共有できます。
実行方法もシンプルです。npmから「@huggingface/kernels」をインストールし、getKernel関数にリポジトリIDとバージョンを渡せば、配列とテンソル形状を渡してカーネルを呼び出せます。たとえば「ai.onnx.Add」は、加算とブロードキャストの出力形状を自動で計算し、結果のバッファを割り当てます。バージョンはアプリケーションが依存できる安定した契約として管理される設計です。
ORT WebGPUとの性能比較
同社はApple M4 GPU上のONNX Runtime Web(ORT WebGPU)と比較した結果を公表しています。1,756件のテストケースのうち、両方の実装で出力が一致し、時間が計測できた809件では、Hugging Faceカーネルは幾何平均で2.57倍、中央値で1.90倍高速でした。勝敗は629勝176敗4引き分けです。
個別のケースでは、極端な差も見られます。特定条件のEinsum(テンソルの縮約演算)では、Hugging Faceカーネルが0.136ミリ秒だったのに対し、ORT WebGPUは1,396ミリ秒と、1万倍以上の差が出ました。CumSum(累積和)でも約301倍の差がつきました。これは汎用実装が低速な経路に入った場合の改善例であり、あらゆる場面でこの速度差が期待できるわけではありません。
なお、計測はGPU上での処理時間のみで、シェーダーのコンパイルやデータ転送は含まれません。また単一の演算レベルの比較であり、モデル全体の推論時間を保証するものではない点に注意が必要です。性能はGPUやブラウザによって異なるため、Fleetによる実機データの収集が重要だとしています。
Fleetと今後の展開
WebGPUの性能は、GPU、ブラウザ、ドライバの組み合わせで大きく変わります。Fleetはブラウザ上でカーネルのテストとベンチマークを実行し、ユーザー自身のハードウェアでの結果を確認できるようにするツールです。ユーザーが同意すれば、実行結果は送信され、デバイス固有の障害や低速ケースの発見、カーネルの改良に使われます。同社はこれを、従来のテストラボではカバーできない幅広い実機を利用する仕組みと位置づけています。
今回のリリースは出発点であり、今後はカバレッジを増やしつつ、上位のモデルツールとの連携も予定されています。また、ONNX Runtimeチームとも協力し、改善をONNX Runtime Webエコシステムに還元する方針も示されました。
| ケース | Hugging Faceカーネル | ORT WebGPU | 倍率 |
|---|---|---|---|
| bilinear Einsum(size 4096) | 0.136 ms | 1,396 ms | 1万倍超 |
| row-wise CumSum [256, 4096] | 0.016 ms | 4.784 ms | 約301倍 |
Portability, however, does not automatically mean performance. Two shaders can implement the same operation and produce the same output while behaving completely differently across different accelerators.
しかし、移植性は自動的に性能を意味するわけではありません。同じ演算を実装する2つのシェーダーが同じ出力を生み出したとしても、異なるGPU(アクセラレータ)ではまったく異なる性能を示すことがあります。
今後の見通し
今回のカーネル群はあくまで土台であり、今後は上位のモデル実行ツールとの統合が進むとみられます。Fleetに実機データが蓄積されれば、デバイスごとの性能差に基づくカーネルの改良が進む可能性があります。ONNX Runtime Webへの改善の還元も予定されているため、既存のWeb推論環境の高速化として間接的な恩恵が得られるかもしれません。日本でブラウザAIを活用する際は、WebGPU対応ブラウザの普及状況と、Transformers.jsなどの高水準ライブラリがこのカーネル群を利用するかどうかが判断材料になるでしょう。標準的なベンチマーク結果だけで自社のハードウェアでの性能を予測するのは難しいため、実機での評価が重要です。
日本の開発者・IT企業にとっての意味
ブラウザ上でAIモデルを動かす利点は、サーバーへのデータ送信を減らせ、プライバシー保護や通信コスト削減につながることです。今回のカーネル公開は、ブラウザAIの推論速度を左右する低レイヤーを個別に検証できる点で、日本企業の開発者にも意味があります。特に、自社でカスタムのWebGPU実装を行う際、Hugging Face Hub上のリファレンス実装やテストケースを参照できます。Fleetに参加すれば、対象となるGPU環境に近い条件での性能を手軽に確認できるようになるでしょう。ただし、カーネル単体の提供であり、モデル全体を動かすランタイムやモデル変換の仕組みは整備途上です。実際の利用を検討する際は、Transformers.jsなどの上位ライブラリが今後どう統合するかを観察し、自社の利用シーンに照らして評価することが重要です。
気になる点
- WebGPU対応ブラウザがないと使えない?
- はい、WebGPUに対応したブラウザが必要です。対応状況はブラウザ、OS、GPU、ドライバによって異なります。手元で確認するには、JavaScriptで「"gpu" in navigator」を評価してください。trueを返せばWebGPUが利用できる環境です。対応ブラウザの一覧は記事内では詳しく公表されていません。
- カーネルの利用には料金がかかる?
- カーネルコレクションはApache-2.0ライセンスで公開されており、npmの「@huggingface/kernels」はプレビュー版としてインストールできます。料金についての明記はありませんが、オープンソースライセンスとして公開されています。商用利用の条件は各リポジトリのライセンス文を確認してください。
- 既存のONNX Runtime Webを置き換えられる?
- 現時点では、個別カーネルの性能比較であり、ONNX Runtime Web全体の置き換えを意図するものではありません。Hugging FaceはONNX Runtimeチームと協力し、高速化の改善をONNX Runtime Web側に統合する作業を進めるとしています。まずは既存ランタイムの高速化という形で恩恵を受ける可能性が高いでしょう。
用語解説
- WebGPU
- ブラウザからGPUを利用するための標準API。GPUの種類による違いを吸収しつつ、高速な計算を可能にする。
- WGSL
- WebGPUでシェーダーを記述するための言語。GPU上で実行されるプログラムを記述する。
- カーネル
- ここでは、ニューラルネットワークの基本演算をGPU上で実行するためのプログラム。OSの中核機能を指すものではない。
- ONNX Runtime Web
- ONNXモデルをブラウザなどで実行するためのランタイム。WebGPUバックエンドを使う場合、ORT WebGPUと呼ばれる。
- Fleet
- Hugging Faceが提供するブラウザ上のベンチマークおよびテストスイート。実機でのカーネルの正しさと性能のデータを集める。
出典
Introducing @huggingface/kernels: 200+ WebGPU Kernels for Local AI
AI導入も顧問も、お任せください
何から手をつけるか、どこまでAIに任せるか。自社の業務に合わせて整理し、導入から運用まで伴走します。相談だけでも構いません。
AI導入について相談する