Modeli uç cihaza indirmek: nicemleme ve gecikme bütçesi
Uç cihaza indirme model seçmekle değil bütçe yazmakla başlar: ilk token süresi, token üretim hızı, tepe bellek, sürekli yük altında sıcaklık ve ikili dosya boyutu sayılarla sabitlenir. Ardından tam duyarlıklı model üzerinde bir kalite ölçütü dondurulur; bit genişliği kademeli indirilerek her durakta bellek, hız ve kalite birlikte ölçülür. Nicemleme, parametre başına taşınan bayt sayısını azaltır — float32'de 4, float16'da 2, int8'de 1 bayt — ve karşılığında kalite riski üretir. Kabul kararı, bu iki eğrinin yazılı bütçeyle kesiştiği ilk noktada verilir.
ÖNKOŞULLAR
- Tam duyarlıklı model ağırlıklarına erişim ve bunları cihazda dağıtma hakkı veren bir lisans
- Hedef cihaz sınıflarından en az iki fiziksel cihaz — öykünücü termal davranışı göstermez
- Görevi temsil eden, donmuş bir değerlendirme seti ve makine tarafından hesaplanabilir bir kalite ölçütü
- Cihaz üstünden ölçüm ve telemetri alabileceğiniz bir kayıt yolu
GEREKEN ARAÇLAR
- Cihaz üstü çıkarım çalışma zamanı (işlemci, grafik birimi ve sinir işlemcisi arka uçlarını destekleyen)
- Nicemleme araç zinciri — kalibrasyon ve karma duyarlık desteği olan
- Cihaz üstü profil çıkarma ve güç ölçüm aracı
- Her bit genişliğinde aynı seti tekrarlayan değerlendirme koşucusu
- Kademeli yayın ve sürüm dağıtım altyapısı
- Fiziksel test cihazı havuzu (en düşük hedef sınıfı da içeren)
- 01
Gecikme ve bellek bütçesini önce yaz
İlk token süresi, saniyedeki token sayısı, tepe bellek, ikili dosya boyutu ve sürekli yük sıcaklığı için hedef değerleri kullanıcı deneyiminden türetip yazılı hale getirin.
Bütçe bir mühendislik çıktısı değil ürün girdisidir ve aday model elinize geçmeden yazılmalıdır. Aksi hâlde ilk çalışan model bütçenin kendisi olur: ne kadar yavaşsa o kadar kabul edilir. Sayılar etkileşimin biçiminden türetilir — kullanıcı yazarken öneri üreten bir yüzeyin ilk token bütçesi ile arka planda belge özetleyen bir işin bütçesi aynı olamaz.
Bütçe kalemi Kullanıcıya nasıl görünür Nereden ölçülür İlk token süresi Sistem donmuş gibi hissedilir İstek anından ilk karaktere Token üretim hızı Metin akışı takip edilemez Sürekli üretim boyunca ortalama Tepe bellek Uygulama işletim sistemi tarafından kapatılır En uzun girdi ve çıktıyla İkili dosya boyutu Kurulum ve güncelleme terk edilir Dağıtılan artefakt toplamı Sürekli yük sıcaklığı Cihaz ısınır, hız düşer Arka arkaya tekrarlanan koşu İş başına enerji Pil gözle görülür azalır Ekran ve ağ ayrıştırılmış ölçüm Altı kalemin altısı da sayıyla yazılır; "hızlı olsun" bir bütçe değildir. - 02
Hedef cihaz sınıflarını ve hızlandırıcıyı sabitle
Destekleyeceğiniz cihaz sınıflarını ve her sınıfta hangi hızlandırıcının kullanılacağını belirleyin; operatör desteği eksikse model sessizce işlemciye düşer ve bütçe bozulur.
Uç cihaz tek bir hedef değil, bir dağılımdır. Aynı nicemleme biçimi bir sinir işlemcisinde donanım hızlandırmalı çalışırken başka bir cihazda desteklenmediği için çalışma zamanı tarafından çözülüp işlemcide yürütülür. Bu düşüş hata vermez; yalnızca gecikme ve güç tüketimi değişir. Sahada en sık karşılaşılan sürpriz budur ve ancak fiziksel cihazda görülür.
- Cihaz sınıfı başına: uygulamaya düşen bellek payı ve işletim sistemi sürüm aralığı.
- Kullanılacak hızlandırıcı ve o hızlandırıcının desteklediği nicemleme biçimleri.
- Çalışma zamanı sürümü ve desteklenmeyen operatörlerin listesi.
- İşlemciye düşme durumunda uygulanacak davranış: küçültülmüş model, sunucuya devretme veya özelliği kapatma.
- Her sınıf için ayrı bütçe satırı — tek bir ortalama bütçe yazılmaz.
Doğrulama adımı: ölçümü en düşük hedef sınıfta alın. Üst sınıfta alınan sayıyı tüm kullanıcı tabanına genellemek, kullanıcıların bir kısmı için ürünü baştan kullanılamaz kılar ve bu genellikle yayından sonra fark edilir.
- 03
Kalite ölçütünü nicemlemeden önce dondur
Tam duyarlıklı model üzerinde değerlendirme setini ve kalite ölçütünü koşturup temel çizgiyi kaydedin; nicemleme sonrası her karşılaştırma bu dondurulmuş çizgiye göre yapılır.
Temel çizgi yoksa kalite kaybı tartışması anekdota döner: birisi çıktıyı beğenmez, birisi beğenir ve karar en yüksek sesle konuşana kalır. Set nicemlemeden önce dondurulmalı, çünkü sonradan eklenen her vaka farkında olmadan mevcut sonucu haklı çıkaracak biçimde seçilir.
- En uzun ve en kısa gerçek girdiler — kayıp uçlarda yoğunlaşır.
- Alan terimleri, kısaltmalar ve özel adlar; Türkçe karakterlerin korunduğu örnekler.
- Biçim gerektiren çıktılar: yapılandırılmış alan, liste, sayısal cevap.
- Üretimde hata verdiği bilinen gerçek vakalar.
- Setin en az bir bölümü yalnızca sürüm kararında açılmak üzere ayrılır.
- 04
Nicemleme yöntemini ve kalibrasyon setini seç
Eğitim sonrası nicemleme ile nicemleme farkındalıklı eğitim arasındaki seçimi bütçeye ve elinizdeki veriye göre yapın; kalibrasyon verisi saha dağılımını temsil etmelidir.
Karar ölçütü basit: eğitim sonrası nicemleme hedeflediğiniz bit genişliğinde dondurulmuş kalite çıtasını karşılıyorsa, nicemleme farkındalıklı eğitim gereksiz bir maliyettir. Karşılamıyorsa sırayla önce daha ince ölçekleme (kanal veya grup bazlı), sonra karma duyarlık, en son eğitim döngüsü denenir. Sıralamayı tersine çevirmek, en pahalı çözümü en ucuz sorun için harcamaktır. Yöntemi ve kalibrasyon setini bir sonraki adımdaki inişten önce sabitleyin; aksi hâlde her durakta ölçtüğünüz kalite başka bir kuruluma ait olur ve duraklar birbiriyle karşılaştırılamaz.
Yöntem Gerektirdiği Ne zaman seçilir Eğitim sonrası nicemleme Küçük bir kalibrasyon kümesi Hedef bit genişliğinde çıta korunuyorsa Kanal veya grup bazlı ölçekleme Araç zinciri ve çalışma zamanı desteği Aykırı değerler tek ölçekle bastırılamıyorsa Karma duyarlık Katman düzeyinde duyarlılık ölçümü Kaybın birkaç katmandan geldiği tespit edildiyse Nicemleme farkındalıklı eğitim Eğitim döngüsü, veri ve hesap bütçesi Düşük bit genişliğinde kayıp çıtanın altına düşürüyorsa Yukarıdan aşağı denenir; her satır bir öncekinin yetmediği kanıtlandıktan sonra gelir. - 05
Bit genişliğini kademeli indir
Bit genişliğini tek adımda en düşük seviyeye çekmeyin; seçtiğiniz yöntemle her durakta bellek, hız ve kaliteyi birlikte ölçün ve bütçeyi karşılayan ilk noktada durun.
Ağırlık belleği tanım gereği öngörülebilir: parametre sayısı ile parametre başına bayt çarpımıdır. Kalite ise öngörülebilir değildir; yalnızca ölçülebilir. Bu asimetri kademeli inmeyi zorunlu kılar — her durakta bellek kazancı hesapla bilinir, kalite kaybı ise sizin setinizle ölçülür ve ikisi aynı tabloya yazılır.
Ağırlık biçimi Parametre başına bayt Ne değişir float32 4 bayt Temel çizgi; uç cihazda nadiren pratik float16 / bfloat16 2 bayt Ağırlık belleği yarılanır; çoğu görevde kayıp küçüktür int8 1 bayt Kalibrasyon gerekir; aykırı kanallar tek ölçekle bastırılamaz 4 bit 0,5 bayt Grup bazlı ölçekleme şart; kayıp göreve göre belirginleşir Bayt sütunu tanım gereği sabittir. Üçüncü sütunun niteliksel ifadeleri yön gösterir; sayısal karşılığı yalnızca kendi donmuş setinizle doldurulabilir. Üretim aşamasında metin üretimi genellikle bellek bant genişliğine bağlıdır: her token için ağırlıkların bellekten okunması gerekir, dolayısıyla parametre başına bayt azaldığında saniyedeki token sayısı da artma eğilimindedir. Girdiyi işleyen ilk aşama ise daha çok hesaplamaya bağlıdır ve aynı kazancı göstermez. Bu yüzden ilk token süresi ile üretim hızı ayrı ölçülür.
- 06
Bağlam ve anahtar-değer önbellek bütçesini ayrı hesapla
Tepe bellek yalnızca ağırlıklardan gelmez; anahtar-değer önbelleği dizi uzunluğuyla birlikte büyür, bu yüzden ölçümü en uzun desteklenen girdi ve çıktıyla alın.
Ağırlıklar sabit bir maliyettir ve kurulum anında bilinir. Anahtar-değer önbelleği ise çalışma zamanında, üretilen her token ile birlikte büyür. Kısa istemlerle rahatça sığan bir model, uzun bir belge verildiğinde bellek hatasıyla kapanır. Desteklenen en uzun bağlam bu yüzden bir ürün kararıdır ve kodda zorlanır; çökmeyle keşfedilen bir sınır olmamalıdır.
- Model ağırlıkları — nicemleme biçimine göre sabit.
- Anahtar-değer önbelleği — dizi uzunluğu ve katman sayısıyla büyür.
- Ara aktivasyonlar ve çalışma zamanının kendi tamponları.
- Uygulamanın model dışındaki bellek kullanımı (arayüz, görsel, veri).
- İşletim sisteminin uygulamaya bıraktığı payın alt sınırı.
Doğrulama adımı: en uzun desteklenen girdi ile en uzun desteklenen çıktıyı aynı koşuda birlikte çalıştırıp tepe belleği kaydedin. Ortalama girdiyle alınan ölçüm, sahada gerçekten çöken durumu hiçbir zaman göstermez. Bütçeyi aşıyorsanız önce bağlam sınırını daraltın, bit genişliğini indirmek ikinci seçenektir.
- 07
Sürekli yük altında pil ve termal ölç
Soğuk cihazda alınan tek koşu ölçümü sahayı temsil etmez; aynı işi arka arkaya tekrarlayıp hız düşüşünü, sıcaklığı ve iş başına enerji tüketimini kaydedin.
Sürekli çıkarım yükü yonga sıcaklığını yükseltir ve sistem belirli bir eşikten sonra saat hızını düşürür. Sonuç: ilk koşu en hızlı koşudur ve raporlanan sayı odur. Kullanıcının yaşadığı sayı ise onuncu koşununkidir. Bütçeye yazılacak değer, düşüşün oturduğu kararlı hızdır; en iyi koşu değil.
- 1Cihazı bilinen bir durumdan başlat
Ölçüm öncesi cihazı oda sıcaklığına bırakın, ekran parlaklığını ve ağ durumunu sabitleyin; aksi hâlde iki koşu karşılaştırılamaz.
- 2Aynı işi arka arkaya tekrarla
Tek koşu değil, gerçek kullanım temposunu taklit eden bir dizi koşu yapın; her koşunun süresini ve cihaz sıcaklığını ayrı ayrı kaydedin.
- 3Düşüşün oturduğu noktayı bul
Koşu süreleri belirli bir seviyede yatay seyretmeye başladığında kararlı hıza ulaşılmıştır; bütçe karşılaştırması bu değerle yapılır.
- 4Enerjiyi iş başına normalize et
Toplam pil düşüşü yerine tamamlanan iş başına enerjiyi raporlayın; yalnızca bu değer farklı bit genişlikleri arasında karşılaştırılabilir.
- 08
Saha güncellemesini ve geri dönüşü planla
Model dosyasını uygulama sürümünden ayrı güncellenebilir hale getirin, yayını kademeli yapın ve bir önceki sürüme dönüş yolunu güncellemeden önce test edin.
Sunucudaki bir modeli tek hamlede geri alabilirsiniz; cihazdaki modeli alamazsınız. Bu asimetri, uç cihaz dağıtımının en pahalı tarafıdır ve mimariyle karşılanır: model artefaktı uygulama ikilisinden ayrılır, kendi sürüm numarasını ve bütünlük imzasını taşır, bir önceki artefakt yeni sürüm saha ölçümüyle doğrulanana kadar cihazda kalır.
- Artefakt sürümleme ve bütünlük doğrulaması (indirilen dosya beklenen artefakt mı).
- Kademeli yayın: küçük bir dilimle başlayıp cihaz sınıfı başına telemetriye bakarak genişletme.
- Geri dönüş yolu: önceki artefakt saklanır ve dönüş güncelleme öncesinde test edilir.
- İndirme davranışı: ölçülü bağlantıda ve düşük pilde ertelenir, yarım kalan indirme devam ettirilir.
- Fark (delta) güncellemesi mümkünse tam artefakt yerine yamanın dağıtılması.
SIK DÜŞÜLEN TUZAKLAR
Nicemlemeyi bedava kazanç saymak
Nicemleme parametre başına taşınan bayt sayısını düşürür; bellek ve bant genişliği kazanılır, üretim hızı genellikle artar. Feragat edilen şey hız değil kalitedir ve bu bedel görevlere eşit dağılmaz. Kaybın hangi alt görevde oluştuğu ölçülmeden yapılan bit indirimi, sahada tek bir işlevin sessizce bozulmasıyla ortaya çıkar.
Öykünücüde ölçüp cihazda yayımlamak
Öykünücü termal kısıtlamayı, bellek baskısını ve hızlandırıcı operatör desteğini taklit etmez. Masaüstünde bütçeyi karşılayan bir kurulum, telefonda ikinci koşudan itibaren karşılamayabilir.
Tepe belleği ortalama girdiyle ölçmek
Anahtar-değer önbelleği dizi uzunluğuyla büyüdüğü için kısa istemlerde rahatça sığan model, uzun bir belgede bellek hatasıyla kapanır. Ölçüm en uzun desteklenen girdi ve çıktıyla alınır.
Kalibrasyon setini kolay örneklerden kurmak
Kalibrasyon verisi sahadaki dağılımı temsil etmiyorsa ölçekler yanlış aralığa ayarlanır. Kayıp, kolay örneklerde görünmez; en çok ihtiyaç duyulan zor vakalarda yoğunlaşır.
Model dosyasını uygulama ikilisine gömmek
Gömülü model, her küçük düzeltmenin bir uygulama sürümü ve mağaza onayı beklemesi demektir. Ayrı ve sürümlü bir artefakt, kademeli yayını ve hızlı geri dönüşü mümkün kılan tek yapıdır.
KONTROL LİSTESİ
- Gecikme, tepe bellek, ikili boyut ve termal bütçesi sayılarla yazılı ve ürün tarafıyla mutabık
- Tam duyarlıklı temel çizgi, nicemlemeden önce donmuş bir setle kaydedildi
- Her bit genişliği durağında bellek, hız ve kalite aynı tabloya birlikte yazıldı
- Kalibrasyon verisi saha dağılımından örneklendi, geliştirici örneklerinden değil
- Tepe bellek, en uzun desteklenen girdi ve çıktı birlikte koşturularak ölçüldü
- Sürekli yük altında kararlı hız ve iş başına enerji kaydedildi
- En düşük hedef cihaz sınıfında ölçüm alındı; hızlandırıcıya düşmeyen operatörler biliniyor
- Model artefaktı ayrı sürümleniyor ve geri dönüş yolu güncellemeden önce test edildi
Maddelerin tamamı işaretlenmeden kurulum üretime alınmamalı.
Sık sorulan sorular
Kaç bitlik nicemleme yeterli olur?
Evrensel bir sayı yok; yeterliliği belirleyen sizin dondurduğunuz kalite çıtanız ve bellek bütçenizdir. Yöntem şu: float16'dan başlayıp kademeli inin, her durakta aynı seti koşturun ve bütçeyi karşılayan ilk noktada durun. Düşük bit genişliklerinde kaybın hangi katmandan geldiğini ayrı ölçün: gömme tablosu ile çıkış izdüşümünü daha yüksek duyarlıkta bırakmak çoğu zaman yardımcı olur, ama küçük modellerde bu iki tablo bellek bütçesinin ciddi bir bölümünü tuttuğu için kazanç ve maliyet birlikte tartılır.
Nicemleme modeli yavaşlatır mı?
Genellikle tersi olur: metin üretimi ağırlıkların bellekten okunmasına bağlı olduğu için parametre başına bayt azaldığında üretim hızı artma eğilimindedir. Ancak çalışma zamanı o biçim için donanım çekirdeği sunmuyorsa ağırlıklar çalışma anında çözülür ve kazanç kaybolur; bu yüzden biçim seçimi çalışma zamanı desteğiyle birlikte yapılır.
Uç cihazda çalıştırmak sunucudan ucuz mu?
Çağrı başına çıkarım ücreti ortadan kalkar, ama maliyet yok olmaz: cihaz parçalanmışlığı, sürüm dağıtımı, saha hata ayıklama ve destek yükü olarak geri gelir. Uç cihazın asıl kazancı fiyat değil, çevrimdışı çalışabilme ve kullanıcı verisini cihazda tutabilmedir; karar bu iki eksende verilirse doğru olur.
Küçük bir modeli mi kullanmalıyım, büyük modeli mi nicemlemeliyim?
Karşılaştırmayı eşit bellek bütçesinde yapın: hedef bellek payına sığan küçük modelin tam duyarlıklı hâli ile büyük modelin nicemlenmiş hâlini aynı donmuş sette koşturun. Soru teorik değil ampiriktir ve cevabı göreve göre değişir; ölçmeden verilen karar, mimarinin geri kalanını yanlış varsayım üzerine kurar.
Kaynaklar
- 01Cihaz üstü çıkarım çalışma zamanı ve nicemleme biçimi dokümantasyonları — Çalışma zamanı sağlayıcıları · Dokümantasyon
- 02Mobil ve gömülü platform güç, termal ve bellek profil çıkarma kılavuzları — Cihaz platformu sağlayıcıları · Dokümantasyon
- 03Sinaptik Research — uç cihaz gecikme, termal ve nicemleme kaybı ölçüm notları — Sinaptik Lab · Teknik rapor
BUILD
Bu rehberi kurumunuzda uygulayalım mı?
Aynı mimariyi kendi verinizle kurmak için discovery oturumundan üretime kadar birlikte ilerliyoruz.
