Hugging Face @huggingface/kernels 출시

Hugging Face는 브라우저 내 로컬 AI 추론을 가속화하기 위해 설계된 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: 연산 계약(contract)의 진실의 원천(source of truth)으로, 입력, 출력, 속성, 타입 제약 조건 및 형태(shape) 유도 규칙을 정의합니다.
  • metadata.json: 커널 식별자, 다이제스트 및 출처를 기록합니다.
  • test.json: 구현 동작을 검증하기 위한 정확성 테스트 케이스를 포함합니다.
  • bench.json: 평가를 위한 벤치마크 및 튜닝 케이스를 포함합니다.
  • *.wgsl.jinja: 특정 장치 및 요청에 맞는 셰이더를 생성하는 데 사용되는 매개변수화된 WGSL 구현체입니다.

The @huggingface/kernels Loader

@huggingface/kernels npm 패키지는 Hub 저장소와 JavaScript 애플리케이션 간의 가교 역할을 합니다. 개발자는 Hub 저장소 ID와 계약 버전(contract version)을 사용하여 커널을 로드하고, 타입이 지정된 입력 데이터와 텐서 형태를 사용하여 이를 실행할 수 있습니다.

예를 들어, 로더는 manifest 계약으로부터 출력 형태와 논리적 데이터 타입을 자동으로 유도할 수 있습니다. 또한 애플리케이션 인터페이스를 변경하지 않고도 현재 호출 및 장치에 따라 가장 효율적인 구현이체가 선택되도록 여러 커널 변체(예: 벡터화 vs 스칼라 처리)를 지원합니다.

성능 벤치마크

Apple M4 GPU에서 ORT WebGPU (ONNX Runtime Web 1.30.0-dev.20260826-b1f76d586a 사용)와 직접 비교했을 때, Hugging Face 커널은 상당한 속도 향상을 보여주었습니다. 809개의 일치하는 테스트 케이스 전반에서, 커널은 기하 평균 기준 2.57배 더 빠르고 중앙값 기준 1.90배 더 빠릅니다.

특정 연산의 속도 향상은 다음과 같습니다:

Operation Compared cases Our WebGPU Kernel ORT WebGPU Speedup
Add 5 00.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

극한의 경우, 특화된 커널은 엄청난 이득을 제공했습니다: bilinear Einsum 케이스는 10,000배 이상 빠르게 실행되었으며 (0.136 ms vs 1,396 ms), row-wise CumSum은 301배 더 빨랐습니다 (0.016 ms vs 4.784 ms).

Fleet: 크라우드소싱된 하드웨어 증거

HebGPU 성능은 GPU, 브라우저, 드라이버에 따라 크게 달라지기 때문에, Hugging Face는 브라우저 내 벤치마킹 및 테스트 스위트인 Fleet를 출시했습니다. Fleet을 통해 커뮤니티는 자신의 하드웨어에서 정확성 및 성능 체크를를 수행하고 비공개로 증거를 데이터를 제공할 수 있습니다. 이러한 크라우드소싱된 데이터는 Hugging Face 팀이 장치별 오류를 식별하고, 커널 변체들을 비교하며, 실제 하드웨어에서의 선택 규칙을 최적화하는 데 도움이 됩니다.

통합 및 생태계

이 WebGPU 커널들은 CUDA, ROCm, Metal용 커널을 포함하는 더 넓은 Hub 생태계의 일부입니다. 커널을 독립적으로 게시함으로써, Hugging Face는 모든 셰이더를 런타임에 직접 임베딩할 필요 없이 계약(contract)을 검사하고 구현을 개선할 수 있는 공유 기반을 제공합니다. Hugging Face는 또한 이러한 개선 사항을을 ONNX Runtime Web 생태계로 업스트림(upstream)하기 위해 ONNX Runtime 팀과 협력하고 있습니다.

Sources