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:

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:

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:

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.