Yüksek Lisans’ı Tarayıcıda Çalıştırmak: Gizlilik Öncelikli Özgeçmiş Düzenleme için WebGPU ve WebLLM’yi Nasıl Kullanıyoruz
Bugün piyasada bulunan tüm yapay zeka destekli özgeçmiş araçları, verilerinizi bir sunucuya gönderiyor. Size “güvenli” olduğunu söyleyecekler. SOC 2 uyumluluk rozetlerini işaret edeceklerdir. Ancak mühendislik gerçeği şu: Eğer özgeçmişiniz cihazınızdan çıkarsa, artık yalnızca size ait değildir. Bir veritabanında, bir günlük dosyasında, bir eğitim hattında veya gerçekleşmeyi bekleyen bir veri ihlali içinde bulunur.
Biz bu ödünleşimi kabul etmeyi reddettik. Bu yüzden farklı bir şey geliştirdik: WebGPU ve Transformers.js’yi kullanarak 500 milyon parametreli bir dil modelini doğrudan tarayıcınızda çalıştıran tamamen istemci tarafı AI özgeçmiş yeniden yazıcısı. API anahtarı yok. Bulut çıkarımı yok. Sunucu yok.
Bu ayrıntılı teknik incelemede şunları öğreneceksiniz:
- Neden sunucusuz yapay zeka, hassas belgeler için gerçekten özel olan tek mimaridir?
- WebGPU, tarayıcıda GPU hızlandırmalı çıkarımın kilidini nasıl açar?
- Kullandığımız tam yığın (Astro, Transformers.js, Xenova/Qwen1.5-0.5B-Chat)
- 300 MB’lık bir modeli tarayıcı sekmesine göndermenin mühendislik zorlukları
- Performans kıyaslamaları ve gerçek dünyadaki gecikme sayıları
Modern Yapay Zeka Araçlarının Gizlilik Paradoksu
Yapay zeka özgeçmiş yeniden yazarlarının popülaritesi patladı. Teal, Resume.io ve Jobscan gibi araçlar, siz ayrıntılı metni okuyana kadar sihirli görünen “Yapay Zeka destekli madde işareti yeniden yazma” özelliği sunar. Neredeyse hepsi istemci-sunucu mimarisi üzerinde çalışıyor:
- Özgeçmişinizi bir web formuna yapıştırıyorsunuz
- Verileriniz aktarım sırasında şifrelenir (TLS)
- Bir bulut sunucusunda şifresi çözülür
- Bir Yüksek Lisans API’si (OpenAI, Anthropic veya kendi kendine barındırılan bir model) bunu işler
- Yeniden yazılan metin geri gönderilir
Bu, görünüşte güvenli görünür. Ancak saldırı yüzeyi çok büyük:
- Sunucu günlükleri hata ayıklama amacıyla özgeçmişinizin tamamını tutabilir
- Üçüncü taraf LLM API’leri, kurumsal katmanlar için ödeme yapmadığınız sürece verileriniz üzerinde eğitim yapabilir
- Veri ihlalleri ev adreslerini, telefon numaralarını, çalışma geçmişini ve maaş verilerini içeren özgeçmişleri açığa çıkarır
- Uygunluk boşlukları — çoğu araç AB kullanıcıları için GDPR ile uyumlu değildir çünkü silinmeyi garanti edemezler
Sonuç: Özgeçmişiniz bir sunucuya dokunuyorsa, en hassas profesyonel belgenizi okumaması, kaydetmemesi, sızdırmaması veya paraya çevirmemesi için üçüncü bir tarafa güveniyorsunuz demektir. Bu, kullanıcılarımızdan yapmasını isteyeceğimiz bir bahis değil.
İstemci Tarafı Yapay Zeka Neden Her Şeyi Değiştiriyor
İstemci Tarafı Yapay Zeka, mimariyi tamamen tersine çevirir. Verilerinizi modele göndermek yerine modeli verilerinize gönderiyoruz. LLM doğrudan tarayıcınızın belleğine indirilir, yerel GPU’nuzda veya CPU’nuzda çalışır ve özgeçmiş metninizi hiçbir zaman cihazınızdan aktarmaz.
Gizlilik açısından sonuçları kesindir:
- Özgeçmiş verilerinizi içeren sıfır ağ araması
- Kişisel bilgilerinizi içeren sıfır sunucu günlükleri
- Opak veri politikalarıyla sıfır üçüncü taraf LLM API’si
- **Altyapımızdan kaynaklanan veri ihlali riski sıfır — çünkü verilerinize dokunacak bir altyapımız yok
Ancak istemci tarafı yapay zeka yalnızca bir gizlilik oyunu değildir. Ayrıca somut performans avantajları da sağlar:
- Uzak bir veri merkezine gidiş-dönüş yolculuklarda gecikme yok
- Oran sınırı yok veya API kotası yok
- Yapay zeka özellikleri için abonelik kapısı yok
- Çevrimdışı yetenek model önbelleğe alındıktan sonra
WebGPU: Bir Hesaplama Motoru Olarak Tarayıcı
Yakın zamana kadar, LLM’leri tarayıcıda çalıştırmak hesaplama açısından olanaksızdı. WebGL mevcut tek GPU API’siydi ve genel amaçlı bilgi işlem için değil grafikler için tasarlanmıştı. Sonra WebGPU geldi.
WebGPU Nedir?
WebGPU, modern GPU yeteneklerini (Vulkan, Metal, DirectX 12) doğrudan JavaScript’e sunan yeni nesil bir web standardıdır. WebGL’den farklı olarak genel amaçlı GPU hesaplama gölgelendiricilerini destekler, bu da onu sinir ağı çıkarımı gibi matris ağırlıklı işlemler için ideal kılar.
Tarayıcı Yüksek Lisans Programlarını mümkün kılan temel özellikler:
- Hesaplama ardışık düzenleri — Büyük ölçüde paralel matris çarpım çekirdeklerini çalıştırın
- Birleşik bellek modeli — Pahalı CPU-GPU kopyaları olmadan doğrudan GPU arabellek erişimi
- Gölgelendirici dilleri — Özel çıkarım çekirdekleri için WGSL (WebGPU Gölgeleme Dili) yazın
- Platformlar arası — Yerel performansla Chrome, Edge, Firefox ve Safari’de çalışır
LLM Çıkarımı için WebGPU ve WebGL
| Özellik | WebGL | Web GPU’su |
|---|---|---|
| Gölgelendiricileri Hesapla | ❌ Hayır | ✅ Evet |
| Matris İşlemleri | Yavaş (simüle edilmiş) | Yerel, paralel |
| Bellek Verimliliği | Yüksek CPU-GPU yükü | Birleşik, düşük yük |
| LLM Çıkarım Hızı | ~10-20 token/sn | ~50-100 token/sn |
| Tarayıcı Desteği | Evrensel | Modern tarayıcılar (%94+) |
Kullanım örneğimiz için - özgeçmiş madde işaretlerini 500M parametreli bir modelle yeniden yazmak - WebGPU, yalnızca CPU geri dönüşünden 4-5 kat daha hızlı çıkarım ve WebGL tabanlı yaklaşımdan 2-3 kat daha hızlı sağlar.
Yığınımız: Astro + Transformers.js + Xenova/Qwen1.5
İstemci tarafında bir yapay zeka yeniden yazıcısı oluşturmak, dikkatli teknoloji seçimleri gerektiriyordu. Hızlı, minimal ve tarayıcı tarafındaki yoğun hesaplamalarla uyumlu bir çerçeveye ihtiyacımız vardı. İşte tam olarak geldiğimiz mimari.
Çerçeve: Astro
Varsayılan olarak sıfır JS felsefesi nedeniyle Astro’ı seçtik. Çoğu özgeçmiş aracı şişirilmiştir Kullanıcı özgeçmişini yapıştırmadan önce 500 KB’tan fazla JavaScript gönderen React uygulamalarıdır. Astro, açılış sayfası ve blog için statik HTML sunmamıza ve ardından gerektiğinde yalnızca etkileşimli bileşenleri (düzenleyici, AI paneli) nemlendirmemize olanak tanır.
Astro istemci tarafı yapay zeka için neden önemlidir:
- İlk sayfa yükü 50 KB JavaScript’in altında
- Ağır yapay zeka modeli, kullanıcı “Yapay zeka ile yeniden yaz”ı tıklattığında talep üzerine yüklenir
- Blogumuz veya pazarlama sayfalarımız gibi statik içerik için hidrasyon yükü yok
AI Çalışma Zamanı: Transformers.js
Hugging Face’s Transformers.js bunu mümkün kılan köprüdür. Python Transformers kütüphanesinin ONNX Runtime Web’e bağlantı noktasıdır ve önceden eğitilmiş modellerin WebGPU veya WebGL geri dönüşleri aracılığıyla tarayıcıda çalıştırılmasına olanak tanır.
Önemli teknik ayrıntılar:
- Boyut ve bellek alanını azaltmak için modeller INT8’e nicemlenmiştir
- ONNX Runtime Web arka ucunu bir WebGPU yürütme sağlayıcısıyla kullanıyoruz
- İşlem hattı, tarayıcıda uçtan uca tokenizasyon, çıkarım ve kod çözmeyi yönetir
Model Seçimi: Xenova/Qwen1.5-0.5B-Chat
Xenova ONNX bağlantı noktaları aracılığıyla Qwen1.5-0.5B-Chat üzerinde karar kılmadan önce birden fazla modeli değerlendirdik:
Seçim kriterleri:
- Kullanıcı deneyimini bozmadan indirilebilecek kadar küçük (~300MB sayısallaştırılmış)
- **“Daha etkili olması için bu maddeyi yeniden yazma” istemlerine yönelik güçlü talimat takibi
- Ticari kullanım için izin verilen lisans
- Tüketici GPU’larında hızlı çıkarım (kısa madde yeniden yazmaları için 3 saniyenin altında nesil)
Llama-2-7B, Mistral-7B ve Phi-2’yi test ettik. Hepsi çok büyüktü (1,5 GB+) veya gerçek zamanlı tarayıcı çıkarımı için çok yavaştı. Qwen1.5-0.5B en önemli noktayı vuruyor: pratik olacak kadar küçük, kullanışlı olacak kadar yetenekli.
Kimsenin Bahsetmediği Mühendislik Zorlukları
300 MB’lık bir modeli tarayıcı sekmesine göndermek teoride basit geliyor. Pratikte bu, aylarca süren bir mühendislik çalışmasıydı. İşte çözdüğümüz en zor üç problem.
1. Zorluk: Aşamalı Model İndirmeleri
4G bağlantısında 300 MB’lık bir indirme 2-3 dakika sürer ve muhtemelen tarayıcı zaman aşımına neden olur. aşamalı parçalı indirme sistemi uyguladık:
- Model 10 MB’lık parçalara bölünmüştür
- Her parça, yeniden deneme mantığı ve üstel geri çekilmeyle indirilir
- Sağ üst köşede indirilen gerçek zamanlı MB’yi gösteren özel bir ilerleme çubuğu kullanıcı arayüzü görüntülenir
- Model, ilk indirmeden sonra IndexedDB’de önbelleğe alınır, böylece sonraki ziyaretler anında yüklenir
Sonuç: İlk kez kullanan kullanıcılar ortalama geniş bantta ~45 saniyelik bir indirme görür. Geri dönen kullanıcılar, önbellekten 2 saniyenin altında model yükleme işlemine sahip olur.
Zorluk 2: WebGPU Bağlamı Yaşam Döngüsü Yönetimi
WebGPU aygıt bağlamları titizdir. Kullanıcı sekme değiştirirse, tarayıcıyı simge durumuna küçültürse veya dizüstü bilgisayarını uyku moduna geçirirse GPU bağlamı kaybolabilir. Sağlam bir bağlam kurtarma sistemi oluşturmamız gerekiyordu:
- “gpu.lost” olaylarını tespit edin ve çıkarım hattını zarif bir şekilde yeniden başlatın
- WebGPU kullanılamaz hale gelirse CPU (WASM) çıkarımına geri dönün
- Anlaşılır kullanıcı arayüzü mesajları sağlayın: “CPU moduna geçiş — yeniden yazma biraz daha uzun sürebilir.”
Sonuç: Yapay zeka yeniden yazıcısı, agresif güç yönetimine sahip sistemlerde bile Chrome, Edge ve Firefox’ta güvenilir bir şekilde çalışır.
Zorluk 3: 8GB RAM’li Makinelerde Bellek Baskısı
INT8’deki 500M parametreli bir model hala ~600MB GPU/CPU belleği tüketiyor. PDF ayrıştırma, Quill zengin metin düzenleyicisi ve Kanban panomuzla birlikte bütçeye uygun dizüstü bilgisayarların sınırlarını zorluyorduk.
Optimizasyonlarımız:
- Geç yükleme — Model yalnızca kullanıcı açıkça “Yeniden Yaz”ı tıkladığında indirilir
- Model çıkarma — Kullanıcı AI panelini 10 dakika içinde kullanmadıysa modeli bellekten çıkarırız (hızlı yeniden yükleme için IndexedDB’de kalır)
- Ana iş parçacığı dışı çıkarım — Kullanıcı arayüzünün donmasını önlemek için tüm LLM işlemleri bir Web Worker’da çalıştırılır
Sonuç: Tarayıcı, orta sınıf Chromebook’lar da dahil olmak üzere 8 GB RAM’e sahip makinelerde sorunsuz çalışır.
Performans Karşılaştırmaları: Gerçek Sayılar
İstemci tarafındaki yapay zeka yeniden yazıcımızı aynı koşullar altında bulut tabanlı alternatiflerle karşılaştırdık. İşte bulduklarımız:
| Metrik | Müşteri Tarafı Yapay Zekamız | Bulut API’si (GPT-4o-mini) | Bulut API’si (Claude Haiku) |
|---|---|---|---|
| İlk çıkarım gecikmesi | 45s (indirme) + 2,3s | 1.2s | 1.8s |
| Sonraki çıkarım gecikmesi | 2.3s | 1.2s | 1.8s |
| Gizlilik | Mutlak (sıfır ağ) | Sunucu günlükleri + API saklama | Sunucu günlükleri + API saklama |
| Çevrimdışı özellikli | Evet | Hayır | Hayır |
| Oran sınırları | Yok | Evet (RPM/TPM sınırları) | Evet (RPM/TPM sınırları) |
| Kullanıcıya maliyeti | Ücretsiz | 5-20$/ay abonelik | 5-20$/ay abonelik |
| Veri sahipliği | %100 kullanıcı | Platforma bağlı | Platforma bağlı |
Bunun karşılığı açıktır: İlk kez kullananlar, modeli indirmek için ~45 saniyeden fedakarlık ederler. Bundan sonra her yeniden yazma işlemi ücretsiz, özel, sınırsız ve çevrimdışı yapılabilir. Hassas kariyer verilerini işleyen bir araç için bunun doğru bir tercih olduğuna inanıyoruz.
Bu Mimari Web Yapay Zekasının Geleceği İçin Neden Önemli
Biz sadece bir özgeçmiş tarayıcısı yapmıyoruz. Yapay zekanın geleceğinin verilerinizi teslim etmeyi gerektirmediğini kanıtlıyoruz.
Her büyük yapay zeka şirketi, karlı olduğu için bulut çıkarımını öne çıkarıyor. Ancak güçlü, özel, istemci tarafı yapay zekaya yönelik teknik yetenek zaten burada. WebGPU olgunlaşmıştır. Transformers.js üretime hazırdır. Nicelenmiş modeller şaşırtıcı derecede yeteneklidir.
Bunun kullanıcılar için anlamı:
- İstihdam geçmişiniz konusunda üçüncü bir tarafa güvenmeden yapay zeka destekli özgeçmiş yardımı alabilirsiniz
- AI araçlarını uçak Wi-Fi’sinde, kurumsal güvenlik duvarlarında veya kısıtlayıcı ağlarda kullanabilirsiniz
- Verileriniz, model ağırlıklarınız ve çıkarım çıktılarınız size aittir
Bunun geliştiriciler için anlamı:
- Tarayıcı meşru bir AI dağıtım hedefidir
- API faturaları olmadan gelişmiş NLP özellikleri oluşturabilirsiniz
- Gizliliğe öncelik veren mimari, rekabet açısından bir sınırlama değil, farklılaştırıcıdır
İstemci Tarafı Yapay Zeka Yeniden Yazıcımızı Nasıl Deneyebiliriz
Özel ATS tarayıcımız, yerleşik bir özellik olarak AI yeniden yazıcıyı içerir. İşte nasıl çalışıyor:
- Özgeçmişinizi yükleyin (PDF veya DOCX) — tamamen tarayıcıda ayrıştırılır, hiçbir zaman yüklenmez
- Zengin metin düzenleyicisinde herhangi bir madde işaretini seçin
- “Yapay Zeka ile Yeniden Yaz”ı tıklayın — model indirilir (yalnızca ilk seferde) ve daha güçlü, anahtar kelimeye göre optimize edilmiş bir sürüm oluşturur
- Öneriyi karşılaştırın, düzenleyin ve kabul edin — bunların hepsini verilerinizi taşıyan tek bir ağ çağrısı olmadan
→ İstemci tarafı tarayıcımızda özel AI özgeçmiş yeniden yazıcısını deneyin
Temel Çıkarımlar
- WebGPU ve Transformers.js kullanan İstemci tarafı AI, özgeçmişin yeniden yazılması ve NLP görevleri için üretime hazırdır
- WebGPU, yalnızca CPU yaklaşımlarına kıyasla 4-5 kat daha hızlı çıkarım sağlar ve modern tarayıcıların %94’ünden fazlası tarafından desteklenir
- 500M parametreli bir model (Qwen1.5-0.5B-Chat), 300 MB’ın altında kalarak yüksek kaliteli madde işareti yeniden yazımı için yeterlidir
- Aşamalı indirmeler, IndexedDB önbelleğe alma ve Web Çalışanları, büyük modellerin tüketici cihazlarına gönderilmesi için gereklidir
- Gizlilik avantajları mutlaktır — sıfır sunucu günlüğü, sıfır API saklama, sıfır veri ihlali riski
Web tarayıcısı artık yalnızca bir belge görüntüleyici değildir. Güvenli, özel bir yapay zeka bilgi işlem ortamıdır. Ve daha yeni başlıyoruz.