Web & Frontend·3 dk okuma·

@huggingface/kernels ile Tanışın: Yerel Yapay Zeka İçin 200+ WebGPU Çekirdeği

Paylaş
Web & FrontendEdumints Blog

Hugging Face WebAI ekibinin temel hedeflerinden biri, tarayıcı içi yapay zeka çıkarımını (browser inference) olabildiğince hızlı ve kullanıcı dostu hale getirmektir. Bu hedefe ulaşmak çok katmanlı bir mühendislik yaklaşımı gerektirir: Modellerin tarayıcı dostu temsillere sahip olması, çalışma zamanlarının (runtime) verimli yürütme planları hazırlaması ve yığının en altındaki bağımsız GPU işlemlerinin farklı cihaz ve tarayıcılardan en yüksek performansı alması gerekir.

Optimize Edilmiş WebGPU Çekirdekleri ve Fleet

Bu vizyonun ilk katmanı olarak, optimize edilmiş WebGPU çekirdeklerini Hugging Face Hub üzerinden yükleyip çalıştıran minimal JavaScript kütüphanesi @huggingface/kernels ve 207 çekirdekten oluşan ilk koleksiyon duyuruldu. Koleksiyon; çeşitli makine öğrenimi mimarilerinde kullanılan matris çarpımları, dikkat mekanizmaları ve kuantizasyon gibi kritik operasyonları içerir. Her çekirdek; arayüz tanımı, WGSL gölgelendirici şablonları, doğruluk testleri ve kıyaslama senaryolarıyla sürümlenmiş bağımsız bir paket olarak sunulmaktadır.

Bununla birlikte, çekirdekleri doğrudan donanımınız üzerinde çalıştırıp puanlayan tarayıcı tabanlı test paketi Fleet tanıtıldı. Fleet, geleneksel test laboratuvarlarında kapsanamayacak binlerce farklı cihazdan topluluk katkısıyla performans ve doğruluk verisi toplayarak hataların giderilmesini ve donanıma özel optimizasyon kararlarının alınmasını sağlar.

TL;DR (Özetle)

  • 207 WebGPU Çekirdeği: webgpu-kernels organizasyonu altında bağımsız depolar olarak yayımlanan, Apache-2.0 lisanslı çekirdek koleksiyonu.
  • JavaScript Yükleyicisi (@huggingface/kernels): Çekirdekleri doğrudan Hub üzerinden indiren, derleyen ve çalıştıran hafif kütüphane.
  • Açık Sözleşmeler ve Yeniden Üretilebilir Kanıtlar: Her çekirdek için manifestolar, doğruluk testleri, kıyaslama senaryoları ve WGSL gölgelendirici şablonları.
  • Fleet Test Aracı: Gerçek GPU'lar genelinde doğruluk ve performans verilerini kitlesel kaynakla toplayarak çekirdeklerin iyileştirilmesini sağlayan tarayıcı tabanlı kıyaslama aracı.

Neden Çekirdeklerle Başlıyoruz?

Tarayıcıda yürütülen bir model nihayetinde bir dizi GPU operasyonuna dönüşür: matris çarpımları, normalizasyonlar, konvolüsyonlar, dikkat primitifleri, kuantizasyon ve veri düzeni dönüşümleri. WebGPU bu operasyonları taşınabilir bir API ile modern tarayıcılara taşırken, WGSL (WebGPU Shading Language) bu gölgelendiricileri çalıştırmak için ortak bir dil sunar.

Ancak taşınabilirlik doğrudan yüksek performans anlamına gelmez. İki gölgelendirici aynı işlemi gerçekleştirip aynı çıktıyı üretse bile, çalışma grubu boyutları (workgroup sizes), bellek erişim desenleri, vektörizasyon, veri tipleri ve füzyon stratejileri nedeniyle farklı donanım hızlandırıcılarda tamamen farklı davranışlar sergileyebilir. En uygun seçim; girdi boyutuna, cihaza, tarayıcıya ve mevcut WebGPU yeteneklerine göre değişir. Üst düzey çalışma zamanları ancak sevk ettikleri temel işlemler kadar verimli çalışabilir. Bu operasyonların ayrı ayrı keşfedilebilir, test edilebilir, kıyaslanabilir ve sürümlenebilir olması, altyapının bağımsız olarak optimize edilmesini sağlar.

Geliştiriciler İçin Pratik Çıkarımlar

  • Uç Cihazda (Edge) Yerel Çıkarım: Modelleri WebGPU ile doğrudan tarayıcıda çalıştırmak sunucu maliyetlerini ortadan kaldırır ve kullanıcı verilerinin gizliliğini garanti eder.
  • Donanıma Özel Optimizasyon: Soyutlama katmanlarının altındaki gölgelendirici mantığını anlamak, üretim ortamındaki gecikme darboğazlarını çözmek açısından geliştiricilere kritik bir avantaj sağlar.

[Orijinal kaynağa buradan ulaşabilirsiniz.](https://huggingface.co/blog/webgpu-kernels)


Bu konuyu derinlemesine öğrenmek isterseniz: Edge Runtime ve Production Optimizasyonu modülüne göz atın.

Paylaş

Bu konuyu daha derinlemesine öğrenmek ister misin?

Edumints'teki ücretsiz kursları incele ve bugün başla.

Kurslara Göz At →