24 puan yazan GN⁺ 2025-05-14 | 2 yorum | WhatsApp'ta paylaş
  • 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

  1. Konuşma tanıma (Whisper) → metne dönüştürme
  2. LLM (LLaMA 3.1) → komutu yorumlama
  3. 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

 
asheswook 2025-05-15

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...

 
GN⁺ 2025-05-14
Hacker News görüşleri
  • Bu fikir hoşuma gitti, ben de kendim yapmayı isterdim; ama Whisper'ın küçük modellerini yerelde kullanma deneyimim beklentinin altında kaldı. Bu kullanım senaryosu için yeterince iyi sonuç alan biri oldu mu merak ediyorum. Belki de mikrofonum iyi değildi.
    • Mikrofon durumunu mutlaka tekrar kontrol etmek gerekir. Biz şirkette Whisper kullanarak tüm toplantıları gerçek zamanlı deşifre edip çeviriyoruz ve son derece etkileyici performans gösteriyor.
    • Hangi modeli kullandığınızı merak ediyorum. Ben genelde GPU üzerinde large modelini 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ı large veriyor ama gerçekten kullanılabilir hız için GPU donanımı şart. faster-whisper ya da insanely-fast-whisper ile kullansanız da durum aynı.
  • Keşke doğrudan kurup kullanabileceğim bir ürün ya da uygulama olsaydı. UI üzerinden kolayca ayarlayıp eğitmek isterdim. Yine de bu rehber sayesinde istediğim şeyi yapabilecekmişim gibi görünüyor, o yüzden gerçekten minnettarım.
  • Gerçekten harika bir kaynak, teşekkür etmek istedim. Henüz baştan sona denemedim ama bu modelin iPhone'da pratikte gerçekten iyi çalışıp çalışmadığını merak ediyorum. Bizim evde 9 yaşındaki çocuk ollama ile Qwen 0.6B modelini iyi çalıştırdı ama diğer modeller çok yavaştı; kullanılabilir bir kullanıcı deneyimi sunmuyordu.
    • Aa, 9 yaşındaki telefondan bahsediyormuşsun. Ben ilkokul çağındaki bir çocuğun modeli bizzat deploy ettiğini sanıp çok şaşırdım. Ben o yaştayken daha çarpım tablosunu öğreniyordum.
    • MLC materyallerine göre 8B ölçeğine kadar modeller iOS'ta çalıştırılabiliyor. Ama 1-3B civarı daha gerçekçi görünüyor. Referans burada: https://llm.mlc.ai/docs/deploy/ios.html#bring-your-own-model
  • Neden LLM tarafından yazılmış bir yazı olmak zorunda? Diye düşünüyorum.
    • Bu özet tarzı, yani yoğun biçimlendirme ve (!) bütün paragrafların madde işaretli olması, beni ciddi biçimde rahatsız ediyor. Özellikle uzun yazılarda ekranı dağınık ve tekdüze gösteriyor, bu da okunabilirliği düşürüyor gibi geliyor.
  • Kısa süre önce (belki duyuruyu kaçırmış olabilirim) Siri'nin en azından bazı komutlarda yerelde çalıştığını fark ettim. Örneğin Apple Watch'u uçak moduna alıp zamanlayıcı ya da hatırlatıcı isteyebilirsiniz.
    • Siri, en azından iOS 15'ten beri sınırlı çevrimdışı işlevlere sahipti. Ama çoğu kullanıcı bunu pek fark etmedi, çünkü Siri komutlarının büyük bölümü ağ bağlantısı gerektiriyor.
  • Apple neden verileri analiz edip en yaygın yaklaşık 1000 kullanım senaryosu için sabit kodlanmış işleyiciler hazırlamadı diye merak ediyorum.
    • Aslında bunu zaten yapıyorlar ama aşırı yavaş ilerliyor. Parlaklık ve güçle ilgili işlevler ekliyorlar ama çevrimdışı nelerin kullanılabildiğini düzgün biçimde göstermiyorlar. Kullanıcının uçak moduna geçip tek tek denemesi gerekiyor; kullanıcı deneyimi çok kötü.
  • Harika bir proje ve iyi bir derleme.
  • Apple'ın Siri'yi başka bir asistanla değiştirmeye izin verip vermediğini merak ediyorum. Android'de Google dışındaki asistanlar uzun süre arka planda dinleme, donanım tuşları, jestler ve kısayolları kullanma konusunda kısıtlandı. Google Assistant'ın hâlâ ayrıcalıklı olup olmadığından emin değilim ama öyle olsa da pek şaşırtıcı olmaz.
    • Sorunun bir kısmı, “hey siri” uyandırma sözcüğünü işleyen ayrı bir yardımcı işlemcide (AOP) yatıyor. Model de bellenime derlenmiş durumda. Teknik olarak imkânsız değil ama yalnızca Google uygulamasının arka planda çalışmasına izin vererek çözülecek bir şey değil; çünkü AP uyurken jest meydana geliyor. Yandaki Action Button gibi şeylerle bir asistan uygulaması başlatabilirsiniz ama tatmin edici bir deneyim olmayacaktır (örneğin uygulama açık olmayabilir). Ayrıntılar için şu bağlantıya bakın: https://machinelearning.apple.com/research/hey-siri
    • Yeni eklenen Action Button ile özel bir kısayol kullanarak alternatif bir asistan uygulamasını açmak oldukça kolay.
    • Perplexity de bu şekilde çalışıyor.
  • 1,5 yıldır iPhone'da ChatGPT'yi sadakatle kullanıyorum. Siri'nin ne kadar sinir bozucu olduğu yüzünden ondan gittikçe daha çok nefret ediyorum. OpenAI'ın Microsoft'un yardımıyla iPhone'a rakip bir GPT telefonu ne zaman çıkaracağını merak ediyorum. Sıkıcı iPhone'dan bıktım. Kilit ekranından doğrudan GPT'nin her şeyi hallettiği bir GPT telefona ihtiyacım var. Bir an önce çıksın diye sabırsızlıkla bekliyorum; muhtemelen gizlice geliştiriliyordur diye umuyorum.