Cihazda yapay zekâ · 8 dk okuma
Bir dil modeli telefona nasıl sığar
Yerel yapay zekâ uygulamaları şaşırtıcı miktarda depolama ister ve nedeni şişkinlik değildir. O gigabaytların nereye gittiğini anlamak, modelin neden yeni bir telefonda hızlı, eskisinde ağır olduğunu da açıklar — ve dosya adındaki
Q3_K_S aslında size ne söylüyor.
Bir model büyük bir sayı yığınıdır
Bir dil modeli, öğrenilmiş parametreler kümesidir — ağırlıklar. Her biri bir sayıdır ve milyarlarcadır. Bir model adındaki “2B”, kabaca iki milyar parametre demektir.
Tam duyarlıkla saklandığında her ağırlık 4 bayt tutar. İki milyar ağırlık, her biri 4 bayttan, yaklaşık 8 GB eder — ve bu daha küçük modellerden biri için. Sorun tek satırda budur: dosya büyüktür, çünkü sayılar çoktur ve her biri duyarlı biçimde saklanır.
Nicemleme: sayı başına daha az bit
Nicemleme her ağırlığı daha az bitle saklar. Ağırlık başına 32 bit yerine 8, 4 ya da 3 kullanırsınız — yaklaşım özgün değere yakın kalsın diye ağırlık bloğu başına ölçekleme çarpanlarıyla.
Boyut azalması kabaca doğrusaldır:
- 32 bit — 2B'lik bir model için ~8 GB. Tam duyarlık, telefona düşman.
- 8 bit — ~2 GB. Özgün kaliteye çok yakın.
- 4 bit — ~1,1 GB. Alışılmış en verimli nokta.
- 3 bit — ~800 MB. Gözle görülür biçimde daha kayıplı, yine de kullanışlı.
- 2 bit — yine daha küçük ve kalite sertçe düşer.
Bu, JPEG gibi kayıplı bir sıkıştırmadır. Yeterince ileri götürün, kalıntıları görürsünüz — bir dil modelinde bunlar bulanık yanıtlar, yineleme ya da sorudan uzaklaşma olarak belirir.
Nicemleme bir modeli tekdüze biçimde aptallaştırmaz. Onu daha az duyarlı kılar ve duyarsızlık ilk olarak en zor girdilerde ortaya çıkar.
Dosya adını okumak
Şuna benzer bir ad: Q4_K_M ya da Q3_K_S — bir sürüm numarası değil, bir tariftir:
- Q4 / Q3 — kabaca ağırlık başına kaç bit.
- _K — bit bütçesini eşitsiz harcayan, modelin en duyarlı olduğu yerde daha çok kesinlik tutan bir “k-quant” düzeni.
- _S, _M, _L — o düzen içinde küçük, orta ya da büyük. Büyüğü daha çok kaliteyi ve daha çok baytı korur.
Yani Q3_K_S küçük bir 3 bitlik k-quant'tır: sıkıca sıkıştırılmış, cihaza sığmanın kalitenin son birkaç yüzdesinden daha önemli olduğu durumlarda seçilir.
GGUF: kap
GGUF, nicemlenmiş ağırlıkları ve bir çalışma zamanının ihtiyaç duyduğu üstveriyi — belirteçleyici, mimari, istem şablonu — tutan dosya biçimidir. Tek dosya, yanında bir yapılandırma klasörü olmadan.
Telefonlar için önemlidir, çünkü GGUF şu amaçla tasarlanmıştır: belleğe eşlenmek. Çalışma zamanı 1,7 GB'ı RAM'e okumak yerine dosyayı adres uzayına eşler ve işletim sistemi gerçekten kullanılan bölümleri belleğe getirir. Bu yüzden telefonun boş RAM'inden büyük bir model yine de çalışabilir ve bu yüzden uygulama açıldıktan sonraki ilk yanıt sonrakilerden yavaştır — sayfalar hâlâ getirilmektedir.
Telefonu neden ısıtır
Bir kelime — bir belirteç — üretmek, girdiyi o milyarlarca parametreden geçirmek demektir. Sonra bir sonraki belirteç için yeniden. Yüz kelimelik bir yanıt yüz geçiştir.
Bu, işlemci ya da sinirsel hızlandırıcı üzerinde sürekli aritmetiktir ve telefonların ısıl olarak en kötü olduğu iş yükü tam da budur. Cihazlar ısındığında hız kısar, dolayısıyla uzun ve kesintisiz bir üretim ilerledikçe yavaşlar. İyi yapılmış yerel uygulamalar işlerini araya yayar — yonganın soğuyabilmesi için görevleri aralar — her şeyi arka arkaya sıraya dizmek yerine.
Eski telefonlar neden zorlanır
Üç kısıt ve hepsi çetin:
- Bellek bant genişliği. Her belirteç, ağırlıkların büyük bir bölümünün akıtılması demektir. Üretim hızı çoğu zaman ham hesap gücüyle değil, belleğin ne kadar hızlı okunabildiğiyle sınırlanır.
- RAM. Belleğe eşleme yardımcı olur, ama zaten sıkışık bir cihaz sürekli sayfalama yapar ve işletim sistemi uygulamayı doğrudan sonlandırabilir.
- Hızlandırıcılar. Yeni yongalarda bu aritmetiğe uygun donanım vardır. Eskiler genel amaçlı çekirdeklere düşer ve birkaç kat yavaş çalışır.
Yerel yapay zekâ uygulamalarının her şeyi desteklemeye çalışmak yerine asgari bir cihaz belirtmesinin nedeni budur. Belli bir noktanın altında deneyim bozulmaz, kullanılamaz hâle gelir.
Yaptığınız takas
Telefon boyutunda nicemlenmiş bir model, zor akıl yürütmede büyük bir bulut modeliyle boy ölçüşemez. Sınırlı bir görev için — bu kelime bu cümlede ne demek, şu ifadeyi çevir — tümüyle yeterlidir ve bir bulut modelinin sunamayacağı üç özellikle gelir: bağlantısız çalışır, kullanım başına hiçbir şeye mal olmaz ve metin cihazdan hiç çıkmaz.
Cihazda yapay zekânın tüm pazarlığı budur. Olabilecek en büyük modelden vazgeçersiniz; gizlilik, çevrimdışı yetenek ve sayaçsızlık kazanırsınız.
ClickBook bunu nasıl yapıyor
ClickBook nicemlenmiş bir GGUF modeliyle gelir ve onu cihazınızda llama.cpp üzerinden çalıştırır. iOS'ta uygulamanın içinde paketlenmiştir, dolayısıyla indirilecek bir şey yoktur. Yerel yapay zekâlı e-okuyucular hakkında daha fazlasını okuyunya da ClickBook'un nasıl çalıştığını görün.