Kendi Siri’nizi bulut olmadan yerel ve cihaz üzerinde kurmak
(thehyperplane.substack.com)- LLM API’lerine ve buluta bağımlı olmadan, cihaz üzerinde çalışan kişisel bir sesli asistanı doğrudan nasıl yapabileceğiniz anlatılıyor
- Bu asistan doğal dili anlar, kişisel function calling işlemleri gerçekleştirir ve yalnızca yerelde çalıştığı için tam gizlilik güvencesi sağlayabilir
- Bunun için LLaMA 3.1 modeli LoRA yöntemiyle fine-tune ediliyor, Whisper ile ses metne dönüştürülüyor, ardından bu metin komut olarak yorumlanıp doğrudan cihazda çalıştırılıyor
- Proje veri kümesi oluşturma → fine-tuning → ses arayüzünü bağlama → test ve dağıtım adımlarından oluşuyor ve bunların her biri 5 bölümlük ücretsiz mini ders serisinde ele alınıyor
- “Cihaz üzerinde çalıştırma = basitlik” yanılgısına karşı uyarıyor ve yerelde de MLOps bakış açısı ile sıkı kalite yönetiminin şart olduğunu vurguluyor
Neden şimdi yerel bir sesli asistan yapmalısınız?
- ChatGPT ile konuşmak faydalı, ama en basit komutları bile buluta göndermek zorunda mısınız?
- Model doğrudan cihazınıza kuruluysa hız, gizlilik ve kontrol bir arada sağlanabilir
- Özellikle sağlık, hukuk, şirket içi araçlar gibi hassas ortamlarda kullanışlıdır
Genel mimariye bakış
Proje bileşenleri
- Konuşma tanıma (Whisper) → metne dönüştürme
- LLM (LLaMA 3.1) → komutu yorumlama
- Fonksiyon yürütücüsü →
lock_screen()gibi gerçek işlevleri çalıştırma
Part 1: Mimari ve MLOps düşünce biçimi
Yerelde de neden MLOps gerekir?
- Model drift, prompt değişimi, veri kümesi güvenilirliği, yetersiz hata ayıklama logları gibi sorunlar vardır
- “Sadece yerel olması yeterli” düşüncesi risklidir; sistematik bir yaklaşım gerekir
Çevrimiçi geliştirme vs çevrimdışı çalıştırma
- Geliştirme (fine-tuning, veri üretimi) bulutta yapılır, çalıştırma ise yerelde gerçekleşir
- Bu süreci net biçimde ayırmak ve sistematik olarak yönetmek MLOps’un özüdür
Veri kümesi oluşturma (Dataset Generation Flow)
- Sadece prompt toplamak değil, yapılandırılmış function calling kalıpları ve konuşma tabanlı istek yapıları tasarlamak gerekir
- Farklı ifade biçimlerini, niyetleri ve başarısızlık senaryolarını kapsayan yüksek kaliteli bir veri kümesi oluşturulur
Temel noktalar
lock_screen()→ “ekranı kilitle” gibi çeşitli doğal dil ifadelerini içerir- Otomatik doğrulama motoru ile çıktının hedeflenen biçimde olup olmadığı kontrol edilir
Fine-tuning (Function Calling için Instruction Tuning)
- Doğru komut eşlemesi için küçük bir model SFT yöntemiyle fine-tune edilir
- Unsloth, W&B, GGUF formatında dışa aktarma gibi pratik araçlar kullanılır
Hedef
- LLaMA 3.1 8B’yi yerelde çalışabilecek 4bit bir modele dönüştürmek
- Raspberry Pi’yi bile hedefleyebilecek kadar hafif bir yapı amaçlamak
Modeli bağlama ve gerçek çalıştırma
- Whisper ile ses girdisi metne dönüştürülür
- Fine-tune edilmiş LLM komutu yorumlar
- Yerel API fonksiyon yürütücüsüne (
lock_screen(),get_battery_status()vb.) bağlanır
Sonuç
- Gerçek zamanlı sesli asistan mümkün hale gelir
- Ağa ihtiyaç yoktur, kişisel veri sızıntısı olmaz, tam kullanıcı kontrolü sağlanır
Çevrimdışı aşamada risk yönetimi
- Farklı cihaz ve işletim sistemlerinde test gereklidir
- Loglama sistemi kurmak şarttır (opt-in biçiminde manuel gönderim)
- Resmî dağıtımdan önce stres testleri ve kullanıcı geri bildirimi ile sorunlar erken yakalanmalıdır
Gelecek planı
- Bir sonraki derste function calling için veri kümesi oluşturma uygulaması yapılacak
- Doğal dil komutu → API çağrısı eşlemesini öğreten özel bir veri kümesi yapısal olarak kurulacak
- Scraping yok, yalnızca prompt tabanlı simülasyon ve otomatik doğrulanan veriler kullanılacak
Sonuç
- Yerel yapay zeka sistemleri basit görünse de kararlılık ve kalite için daha yüksek düzeyde yönetim gerektirir
- Bulut loglarına ve hotfix’lere dayanmadığı için daha yüksek güvenilirlik ve sorumluluk gerekir
- Bu nedenle MLOps odaklı düşünce biçimi ve yapısal tasarım en baştan uygulanmalıdır
> “Gizlilik odaklı, yerel öncelikli gerçek yapay zeka asistanlarının zamanı geldi”
> Bir sonraki bölümde gerçek komut-fonksiyon eşlemesi için veri kümesi oluşturma uygulaması başlayacak.
2 yorum
3.1, İngilizce dışındaki kullanıcılar için kullanması zor; 3.3 ya da 4 olursa Korece de mümkün olabilir gibi görünüyor, ama on-device çalıştırılacaksa İngilizce dışı diller için en az 32b ve üzeri modellere çıkmak gerektiğini düşününce, bunun henüz zor olduğu anlaşılıyor...
Hacker News görüşleri
largemodelini kullanıyorum; hem hızlı hem de gerçekten çok iyi çalışıyor. Ama aynı anda yalnızca tek bir dili tanıyabildiğini akılda tutmak lazım; belirtmezseniz otomatik algılamayla ilerliyor. Küçük modellerin performansı buna göre daha zayıf ve çoğu zaman esas olarak sadece İngilizceyi destekliyorlar. Benim için en iyi performansılargeveriyor ama gerçekten kullanılabilir hız için GPU donanımı şart.faster-whisperya dainsanely-fast-whisperile kullansanız da durum aynı.