Transformers.js

HuggingFace'in JavaScript kütüphanesi; transformer modellerini ONNX Runtime Web ile tarayıcıda veya Node.js'de sunucusuz çalıştırır.

Transformers.js, Hugging Face'in Python ekosistemindeki transformers kütüphanesinin tarayıcı ve Node.js ortamlarına taşınmış resmi JavaScript portudur. Kütüphanenin temeli ONNX Runtime Web'e dayanır: Hugging Face Hub'da yayımlanan transformer modelleri ONNX formatına dönüştürülüp WebAssembly veya WebGPU üzerinde çalıştırılır; bu sayede bir arka uç servisi veya API çağrısı olmaksızın makine öğrenimi çıkarımı (inferans) gerçekleştirilebilir. Geleneksel mimaride bir web uygulaması makine öğrenimi tahmini için Python tabanlı bir sunucuya istek atmak zorundadır. Transformers.js bu paradigmayı tersine çevirir: model tarayıcıya bir kez indirilir, sonraki tahminler tamamen istemci tarafında yapılır. Ağ gecikmesi ortadan kalkar, kullanıcı verisi hiçbir zaman sunucuya ulaşmaz ve uygulama çevrimdışı da çalışabilir. Kütüphane pipeline() arayüzüyle Python versiyonuna yakın bir sözdizimi sunar: pipeline('sentiment-analysis'), pipeline('text-generation'), pipeline('automatic-speech-recognition') gibi çağrılar tarayıcıda da aynı şekilde çalışır. Desteklenen görev kategorileri şunlardır: doğal dil işleme (duygu analizi, metin sınıflandırma, adlandırılmış varlık tanıma, özetleme, çeviri, metin üretimi, soru yanıtlama), ses (Whisper ile konuşma tanıma, ses sınıflandırma) ve görüntü (nesne tespiti, görüntü sınıflandırma, OCR, derinlik tahmini, segmentasyon). CLIP tabanlı çok modlu modeller de desteklenir. WebGPU desteği, kütüphanenin 2023'ten itibaren geçirdiği önemli bir dönüşümü temsil eder. Chrome 113+ ile kullanılan WebGPU, CPU'ya kıyasla 5–10 kat hız kazanımı sağlar; kuantize Phi-3 Mini (3,8 milyar parametre) gibi görece büyük modeller bile tarayıcıda çalıştırılabilir hale gelmiştir. Pratik sınırlar şunlardır: tarayıcıda önerilen model boyutu üst sınırı yaklaşık 500 MB'dir; DistilBERT (67 MB) ve DistilWhisper (100 MB) optimize seçeneklerdir. ONNX dönüşümü gerektirdiği için Hub'daki her model doğrudan kullanılamaz; ancak popüler modellerin büyük çoğunluğu onnx alt klasörüyle zaten yayımlanmaktadır. Türkçe desteği de mevcuttur: XLM-R ve çok dilli Whisper modelleriyle Türkçe NLP ve konuşma tanıma tarayıcıda sorunsuz çalıştırılabilmektedir.

javascript Transformers.js'in Önemi

Geleneksel olarak ML modelleri Python'da çalışır; bu nedenle web uygulamalarının backend bir ML servisi çağırması gerekir. Transformers.js bu paradigmayı değiştirir: model doğrudan tarayıcıda WebAssembly veya WebGPU üzerinde çalışır. Kullanıcı verisi sunucuya hiç gönderilmez; gecikme, ağ bağlantı kalitesinden bağımsızlaşır. Duygu analizi, metin gömme, nesne tespiti ve OCR başlıca kullanım alanlarıdır.

Desteklenen Görev Türleri

text_fields NLP Görevleri

Metin sınıflandırma, NER, soru yanıtlama, özetleme, çeviri.

image Görüntü Görevleri

Nesne tespiti, görüntü sınıflandırma, derinlik tahmini, OCR.

mic Ses Görevleri

Konuşma tanıma (Whisper) ve sesi metne dönüştürme.

hub Çok Modlu

CLIP tabanlı görüntü-metin eşleştirme ve görüntüden metin üretimi.

Transformers.js Özellikleri

  • check_circle Tarayıcıda Çalışan Modeller: ONNX Runtime Web üzerinde çalışır; sunucu gerekmez. Desteklenen görevler: metin sınıflandırma, duygu analizi, soru cevaplama, NER, metin üretimi, özetleme. Ses: Whisper (konuşma tanıma), konuşmacı tanıma, ses sınıflandırma. Görüntü: nesne tespiti, görüntü sınıflandırma, derinlik tahmini, segmentasyon.
  • check_circle Node.js Desteği: Tarayıcı dışında Node.js ortamında da çalışır. Sunucu taraflı inference: API endpoint'i olmadan yerel model çıkarımı. Electron uygulamaları: masaüstü AI uygulama geliştirme. npm install @huggingface/transformers ile kurulum.
  • check_circle WebGPU Hızlandırması: WebGPU desteğiyle tarayıcı GPU'su kullanılır. CPU'ya kıyasla 5-10× hız artışı. Chrome 113+ WebGPU'yu destekler; Safari ve Firefox kısmi destek. Büyük modeller için WebGPU şart; CPU ile yalnızca küçük modeller pratik.

Transformers.js Kullanım Senaryoları ve Sınırları

Transformers.js, gizlilik öncelikli AI uygulamalarının ana geliştirme aracı haline geldi. Kullanım senaryoları: offline çalışan web uygulamaları, hassas veriyi sunucuya göndermeden işleme, düşük gecikme gerektiren gerçek zamanlı duygu/dil analizi. Hugging Face Hub ile entegrasyon: ONNX export edilmiş modeller doğrudan Hub'dan yüklenir. Sınırlar: büyük modeller (7B+) tarayıcıda pratik değil; ilk yükleme süresi uzun olabilir (model indirimi); belirli operatörler WebAssembly/WebGPU'da desteklenmeyebilir. Önerilen model boyutu: tarayıcı için <500MB (örn. distilbert, DistilWhisper).

quiz Sık Sorulan Sorular

  • check_circle Transformers.js tarayıcıda yavaş değil mi?: Model boyutuna bağlıdır. Küçük modeller (50-100 MB) modern tarayıcıda kabul edilebilir hızda çalışır. WebGPU desteğiyle hız önemli ölçüde artar.
  • check_circle Tüm HuggingFace modelleri desteklenir mi?: Hayır. Modellerin ONNX formatına dönüştürülmesi gerekir; HuggingFace Hub'da hazır ONNX sürümleri olan modeller doğrudan kullanılabilir.
  • check_circle Transformers.js nedir?: Hugging Face'in Transformers Python kütüphanesinin JavaScript portu. ONNX Runtime Web ile tarayıcıda veya Node.js'de transformer modelleri çalıştırmayı sağlar. Sunucu gerekmeden client-side AI uygulamaları geliştirilmesine imkân tanır.
  • check_circle Transformers.js ile ne kadar büyük modeller çalışır?: Tarayıcıda pratik üst sınır ~500MB. DistilBERT (~67MB), DistilWhisper (~100MB) rahatça çalışır. WebGPU ile Phi-3 Mini (3.8B, kuantize ~2GB) mümkün ama yavaş. Node.js'de bellek sınırı yok; sunucu donanımı belirleyici.
  • check_circle Transformers.js Python'daki Transformers ile aynı mı?: API tasarımı benzer: pipeline('sentiment-analysis') gibi. Farklılık: Python doğrudan PyTorch çalıştırır; JS versiyonu önce ONNX'e dönüştürülmüş model ister. Hub'daki modellerin büyük çoğunluğu ONNX versiyonu içerir.
  • check_circle Transformers.js ile Türkçe NLP mümkün mü?: Evet. Hugging Face Hub'da Türkçe BERT, XLM-R gibi çok dilli ONNX modeller mevcut. pipeline('text-classification', {model: 'savasy/bert-turkish-text-cat'}) örneğiyle Türkçe duygu analizi tarayıcıda çalıştırılabilir. Whisper tiny/base ile Türkçe konuşma tanıma da destekleniyor.