MF Blogs 便利ツール
濃紺の背景に浮かぶガラス板の上に描かれた白いヨットのアイコン

記事

Hugging Face、200種類超のWebGPUカーネルを公開——ブラウザ上のAI推論を高速化

Hugging Faceは、ブラウザ内でAIモデルを高速に動かすためのライブラリ「@huggingface/kernels」と207種類のWebGPUカーネル、ベンチマークツール「Fleet」を公式ブログで発表しました。

0:00 0:00

Hugging Faceは、ブラウザ上でAIモデルを高速に実行するための新ライブラリ「@huggingface/kernels」を公式ブログで発表しました。207種類の最適化済みWebGPUカーネルと、実機での性能を計測できるベンチマークツール「Fleet」を同時に公開しています。ローカル環境でのAI推論をより身近にする取り組みの一環です。

200種類超のカーネルとFleetを同時公開

今回公開されたのは、Hugging Face Hubから最適化済みのWebGPUカーネルを読み込んで実行するための軽量ライブラリ@huggingface/kernelsと、初期コレクションとなる207種類のカーネルです。対応する演算は、行列積や正規化、畳み込み、アテンション処理、量子化など、さまざまなAIアーキテクチャで使われる処理を幅広くカバーしています。各カーネルはインターフェースやシェーダーテンプレート、正確性を検証するテストケース、ベンチマークケース、使い方までを一式にまとめたパッケージとしてHub上で公開されており、単なるシェーダーコードの寄せ集めではなく、再利用可能なソフトウェア資産として扱える設計になっています。

濃紺の背景に浮かぶガラス板の上に描かれた白いヨットのアイコンと「200+ OPEN-SOURCE WEBGPU KERNELS」の文字

画像引用元: Hugging Face Blog

なぜ「カーネル」から着手したのか

ブラウザ上でモデルを動かす処理は、最終的には行列積や正規化といった一連のGPU演算に分解されます。WebGPUは、こうした演算を主要ブラウザ間で共通のAPIとして扱える技術ですが、同じ演算でも実装次第で速度は大きく変わります。ワークグループサイズやメモリアクセスパターン、ベクトル化、データ型、融合戦略といった要素が性能を左右し、最適な選択肢は入力の形状やデバイス、ブラウザによっても変化します。Hugging Faceはこの点を踏まえ、ブラウザ推論の土台となるカーネル層を独立して改善できる形にすることで、上位のランタイム全体の効率を底上げできると説明しています。

カーネルごとに専用リポジトリを用意

コレクションに含まれる各カーネルは、それぞれ専用のリポジトリと「カーネルカード」を持ちます。カードには演算の仕様、入出力、対応するデータ型、ソースファイルに加えて、@huggingface/kernelsからすぐに呼び出せるサンプルコードまで記載されています。この構造により、WGSLのコードを直接読まなくてもインターフェースを把握でき、正確性やパフォーマンスの検証データが実装とともに管理され、URLに依存しないバージョン管理されたパッケージとして読み込めるようになりました。カスタムのWebGPUカーネルを自作する開発者にとっても、参照実装として活用できます。

ORT WebGPUとの比較でみえた性能差

Hugging Faceは公開したカーネル群を、ONNX Runtime Webが提供する「ORT WebGPU」と、Apple M4搭載機のGPU上で比較しました。ケースによってはサイズ4096の行列積が自社カーネルで0.136ミリ秒、ORT WebGPUでは1,396ミリ秒かかったといい、特定の条件下では大きな差が出たとしています。同社はこれらの数値について、あらゆる場面で期待できる速度差ではなく、一般的な実装が不得意とする処理でカーネルの最適化がどれだけ効くかを示す一例だと位置づけています。計測はGPU上での処理時間のみを対象とし、カーネルの読み込みやセッション作成、シェーダーのコンパイルといったセットアップ時間は含んでいません。

  • ブラウザ内でAIモデルを動かす際の演算を担う、207種類のWebGPUカーネルを新規公開
  • 各カーネルは専用リポジトリで管理され、仕様・テスト・ベンチマークが一体化
  • ブラウザ上で実機の正確性と性能を検証できるツール「Fleet」も同時提供
  • Apple M4での比較でORT WebGPUを大きく上回るケースを確認

ブラウザ推論の基盤づくりへ

Hugging Faceは、GPUやブラウザ、ドライバーの組み合わせによってWebGPUの性能は大きく変わるとした上で、Fleetを使えば誰でも自分の端末でカーネルの正確性と性能を検証できるとしています。ユーザーの同意を得た上で収集したデータは、デバイスごとの不具合の発見やカーネルの改善に役立てる方針です。今回の207種類はあくまで出発点であり、CUDAやROCm、MetalといったHub上の他プラットフォーム向けカーネル群と並ぶ形で、今後も拡張が続く見込みです。ブラウザだけで完結するローカルAIアプリケーションを開発したいエンジニアにとって、性能検証済みの部品を組み合わせられる今回の公開は、実装の選択肢を広げる材料になりそうです。