Hugging Face @huggingface/kernels リリース

Hugging Faceは、JavaScriptライブラリであり207の最適化されたWebGPUカーネルのコレクションである@huggingface/kernelsをリリースしました。このリリースは、Hugging Face Hubから直接発見、バージョン管理、テストが可能な高性能なGPU操作の基盤レイヤーを提供することにより、ローカルAI推論の高速化を目的としています。

最適化されたWebGPUカーネルコレクション

Hugging Faceは、Hub上のwebgpu-kernels組織の下に、207のカーネルを個別のリポジトリとして公開しました。これらのカーネルは、幅広い機械学習アーキテクチャとワークロードをカバーし、最新のブラウザ間で移植性の高い高性能な実行のためにWebGPU APIとWGSL (WebGPU Shading Language)を利用しています。

各カーネルは、単なるシェーダーではなく、バージョン管理されたソフトウェアアーティファクトとして扱われます。各リポジトリには以下のものが含まれます:

  • manifest.json: 入力、出力、属性、型制約、および形状導出ルールを定義する、操作コントラクトの信頼できる情報源。
  • metadata.json: カーネル識別子、ダイジェスト、および出所を記録します。
  • test.json: 実装の動作を検証するための正確性ケースを含みます。
  • bench.json: 評価のためのベンチマークおよびチューニングケースを含みます。
  • *.wgsl.jinja: 特定のデバイスとリクエストに合わせてシェーダーを生成するために使用される、パラメータ化されたWGSL実装。

@huggingface/kernels ローダー

@huggingface/kernels npmパッケージは、HubリポジトリとJavaScriptアプリケーション間の橋渡しを提供します。開発者は、HubリポジトリIDとコントラクトバージョンによってカーネルをロードし、型指定された入力データとテンソル形状でそれを実行できます。

例えば、ローダーはマニフェストコントラクトから出力形状と論理データ型を自動的に導出できます。また、アプリケーション向けのAPIを変更することなく、現在の呼び出しとデバイスに基づいて最も効率的な実装が選択されるように、複数のカーネルバリアント(例:ベクトル化とスカラー処理)をサポートします。

パフォーマンスベンチマーク

Apple M4 GPU上でORT WebGPU(ONNX Runtime Web 1.30.0-dev.20260826-b1f76d586aを使用)との直接比較において、Hugging Faceカーネルは大幅な高速化を示しました。809の一致するテストケース全体で、カーネルは幾何平均で2.57倍高速であり、中央値で1.90倍高速でした。

特定の操作の高速化には以下が含まれます:

操作 比較ケース数 当社のWebGPUカーネル ORT WebGPU 高速化
Add 5 0.064 ms 0.227 ms 3.52x
MatMul 29 0.115 ms 0.131 ms 1.14x
Softmax 12 0.114 ms 0.240 ms 2.11x
LayerNormalization 6 0.061 ms 0.135 ms 2.22x

極端なケースでは、特殊なカーネルが大きな利益をもたらしました。双線形Einsumのケースは10,000倍以上高速(0.136 ms vs 1,396 ms)で実行され、行単位のCumSumは301倍高速(0.016 ms vs 4.784 ms)でした。

Fleet:クラウドソーシングによるハードウェアエビデンス

WebGPUのパフォーマンスはGPU、ブラウザ、ドライバによって大きく異なるため、Hugging Faceはブラウザ内のベンチマークおよびテストスイートであるFleetを立ち上げました。Fleetを使用すると、コミュニティは自身のハードウェアで正確性とパフォーマンスのチェックを実行し、エビデンスを非公開で提供できます。このクラウドソーシングされたデータは、Hugging Faceチームがデバイス固有の障害を特定し、カーネルバリアントを比較し、実際のハードウェア向けの選択ルールを最適化するのに役立ちます。

統合とエコシステム

これらのWebGPUカーネルは、CUDA、ROCm、およびMetal用のカーネルを含む、より広範なHubエコシステムの一部です。カーネルを個別に公開することで、Hugging Faceは、すべてのシェーダーをランタイムに直接組み込むことなく、コントラクトを検査し実装を改善できる共有基盤を提供します。Hugging Faceはまた、これらの改善をより広範なONNX Runtime Webエコシステムにアップストリームするために、ONNX Runtimeチームと協力しています。

Sources