İçeriğe atla
SinaptikLabAI KNOWLEDGE PLATFORM
RehberİleriUç Cihazda Yapay Zekâ

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)
  1. 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 kalemiKullanıcıya nasıl görünürNereden ölçülür
    İlk token süresiSistem donmuş gibi hissedilirİstek anından ilk karaktere
    Token üretim hızıMetin akışı takip edilemezSürekli üretim boyunca ortalama
    Tepe bellekUygulama işletim sistemi tarafından kapatılırEn uzun girdi ve çıktıyla
    İkili dosya boyutuKurulum ve güncelleme terk edilirDağıtılan artefakt toplamı
    Sürekli yük sıcaklığıCihaz ısınır, hız düşerArka arkaya tekrarlanan koşu
    İş başına enerjiPil gözle görülür azalırEkran 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.
  2. 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.

  3. 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.
  4. 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öntemGerektirdiğiNe zaman seçilir
    Eğitim sonrası nicemlemeKüçük bir kalibrasyon kümesiHedef bit genişliğinde çıta korunuyorsa
    Kanal veya grup bazlı ölçeklemeAraç zinciri ve çalışma zamanı desteğiAykırı değerler tek ölçekle bastırılamıyorsa
    Karma duyarlıkKatman düzeyinde duyarlılık ölçümüKaybın birkaç katmandan geldiği tespit edildiyse
    Nicemleme farkındalıklı eğitimEğitim döngüsü, veri ve hesap bütçesiDüşü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.
  5. 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çimiParametre başına baytNe değişir
    float324 baytTemel çizgi; uç cihazda nadiren pratik
    float16 / bfloat162 baytAğırlık belleği yarılanır; çoğu görevde kayıp küçüktür
    int81 baytKalibrasyon gerekir; aykırı kanallar tek ölçekle bastırılamaz
    4 bit0,5 baytGrup 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.

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

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

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

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

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

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

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

  1. 01Cihaz üstü çıkarım çalışma zamanı ve nicemleme biçimi dokümantasyonları — Çalışma zamanı sağlayıcıları · Dokümantasyon
  2. 02Mobil ve gömülü platform güç, termal ve bellek profil çıkarma kılavuzları — Cihaz platformu sağlayıcıları · Dokümantasyon
  3. 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.