Ana içeriğe geç

Uçta Küçük Modeller: Cihazdan Neyin Çıkacağına Karar Vermek

Cihaz üstü çıkarım, gecikme kararı olduğu kadar bir veri çıkışı kararıdır. Yerel/uzak sınırını model güvenine göre değil, veri sınıfına göre çizin.

Alacakaranlıkta Hamburg'un Terminal Burchardkai'sinde demirlemiş konteyner gemileri

Gerçek ödünleşim

Yerel çıkarım genellikle bir gecikme optimizasyonu olarak çerçevelenir. Sadece bu değildir. Bir model cihazda çalıştığında, girdi cihazdan hiç ayrılmaz. Bu, gizlilik, uyumluluk ve çevrimdışı davranış sonuçları olan bir veri çıkışı kararıdır ve aynı zamanda gidiş-dönüş süresini de azaltır.

Ödünleşim artımlı değil, yapısaldır.

Yerel çıkarımın kazandırdıkları:

  • cihaz sınırı içinde kalan veri;
  • saha araçları, araçlar, klinik ortamlar ve bodrumda kullanılan her şey için önemli olan ağsız çalışma;
  • donanım bedeli ödendikten sonra öngörülebilir istek başına maliyet;
  • uzak bir uç noktanın kullanılabilirliğine veya hız sınırlarına bağımlılık olmaması.

Yerel çıkarımın maliyetleri:

  • yetenek: daha küçük parametre sayıları, agresif niceleme ve sınırlı bağlam pencereleri akıl yürütme derinliğini, araç kullanım güvenilirliğini ve uzun belge işlemeyi azaltır;
  • bellek ve termal bütçe, hangi modellerin uygulamanın geri kalanıyla eşzamanlı çalışabileceğini kısıtlar;
  • değerlendirilmesi, sürümlenmesi ve dağıtılması gereken ikinci bir çıkarım yığını;
  • daha yavaş yineleme, çünkü bir cihazdaki modeli güncellemek bir dağıtım komutu değil, bir dağıtım problemidir.

Uzak çıkarım tüm bunları tersine çevirir. Yetenek satın alır — daha büyük modeller, daha uzun bağlam, daha güçlü araç orkestrasyonu — karşılığında veriyi ürünün kontrol etmediği bir sınırın ötesine taşır ve bağlantıya ve üçüncü bir tarafın çalışma süresine katı bir bağımlılık getirir.

Çoğu faydalı sistem her ikisine de ihtiyaç duyar. Dolayısıyla mühendislik sorusu "yerel mi uzak mı" değil, "sınır nerede duruyor ve belirli bir isteğin hangi tarafa düşeceğine ne karar veriyor" sorusudur.

Industrial robotic arm in a Ciudad de México lab, illustrating automation technology

Sınırı çizmek

Yaygın hata, model güvenine göre yönlendirme yapmaktır: yerel çalıştır, yerel model emin değilse yukarı taşı. Bu caziptir çünkü izlemesi kolaydır ve iki nedenden dolayı yanlıştır. Birincisi, küçük nicelemiş modellerden gelen güven puanları kötü kalibre edilmiştir, bu nedenle yükseltme tetikleyicisi öngörülemez şekilde ateşlenir. İkincisi ve daha önemlisi, yanlış değişkene göre yönlendirme yapar. Bir yükün cihazdan ayrılıp ayrılamayacağı, sorunun ne kadar zor olduğunun değil, verinin bir özelliğidir.

Bunun yerine veri sınıfına göre yönlendirin. Sınıfları açıkça tanımlayın ve her birine izin verilen bir yürütme konumu atayın:

sınıf            örnekler                          konum
---------------  --------------------------------  ------------------
regüle-kişisel   tanımlayıcılar, sağlık notları   yalnızca yerel
cihaza-özel      ham sensör kareleri, yerel dosyalar yalnızca yerel
kullanıcı-içeriği taslaklar, transkriptler, mesajlar varsayılan yerel,
                                                   rıza ile uzak
türetilmiş       embedding'ler, redakte özetler   uzak izinli
kamusal          belgeler, referans materyali     uzak tercih edilir

Sınıflandırma adımı çıkarımdan önce, girdi üzerinde çalışır ve mümkün olduğunda deterministiktir: şema kontrolleri, alan düzeyinde etiketler, kaynak kökeni. Sınıflandırmanın bir modele ihtiyaç duyduğu durumlarda, tek işi bir sınıf etiketi yaymak olan küçük bir yerel sınıflandırıcı kullanın — kullanıcıya yanıt vermek değil.

Kullanışlı bir desen, akıl yürütmeyi yerel tutmak ve yükün özel olduğu durumlarda araç çağrısını uzak tutmaktır. Yerel model ne yapacağına ve hangi argümanlarla yapacağına karar verir; uzak çağrı yalnızca minimum argüman kümesini taşır, asla tam bağlamı taşımaz. Bir takvim araması bir tarih aralığına ihtiyaç duyar, onu üreten konuşmaya değil. Bir retrieval çağrısı bir sorgu dizesine ve bir ad alanına ihtiyaç duyar, kullanıcının taslağına değil. Bu, uzak hizmetlerin yeteneğini onlardan faydalanan kısımlar için korur — taze veri, büyük dizinler, ağır hesaplama — özel malzeme cihazda kalırken.

Dürüst ödünleşim burada yaşar. Akıl yürütmeyi araç çağrısından ayırmak, uzak modelin tam bağlamı görme yeteneğini kaybetmenize neden olur, ki bu tam olarak uzak modelleri belirsiz, çok adımlı görevlerde iyi yapan şeydir. Daha küçük bir çıkış yüzeyi için bir miktar yanıt kalitesinden feragat ediyorsunuz. Bu feragat sınıf başına kasıtlı olarak yapılmalı ve kaydedilmelidir.

Bozulmuş çalışmayı bir hata yolu olarak değil, birinci sınıf bir durum olarak tasarlayın. Close-up of a CNC milling machine cutting metal, showing precision machiningent:

Circuit board macro

  • hangi isteklerin yerelde azaltılmış kaliteyle sunulduğunu;
  • hangilerinin kuyruğa alınıp bağlantı geri geldiğinde yeniden oynatıldığını ve yeniden oynatmanın idempotency ile nasıl etkileştiğini;
  • hangilerinin doğrudan reddedildiğini, nedenini söyleyen bir mesajla;
  • kullanıcının bozulmuş çıktıyı tam çıktıdan ayırt edebilmesi için arayüzün ne ilettiğini.

Çevrimdışıyken sessizce daha kötü yanıtlar üreten ve bunu bildirmeyen bir sistem, şu anda bir şeyi yapamayacağını söyleyen bir sistemden daha zor güvenilir.

Ayrımı ölçmek

Sınır oluştuktan sonra izleme gerektirir. Ağırlığın çoğunu üç ölçüm taşır.

Birincisi, yerel hizmet oranı: tamamen cihaz üstünde sunulan isteklerin payı, veri sınıfına göre ayrıştırılmış. Tek bir toplu sayı önemsediğiniz şeyi gizler, çünkü önemsiz isteklerden kaynaklanan yüksek bir yerel oran, hassas sınıfların gerçekten yerelde kalıp kalmadığı hakkında hiçbir şey söylemez. Sınıf başına izleyin ve model ve uygulama sürümleri boyunca izleyin, çünkü bir prompt değişikliği yönlendirmeyi kaydırabilir.

İkincisi, sınıf başına kalite farkı. Her sınıf için küçük bir değerlendirme seti tutun ve hem yerel hem de uzak yol üzerinde çalıştırın. Fark, sınırın yanıt kalitesinde neye mal olduğunu söyler. Bir sınıftaki fark ihmal edilebilirse, yerel yol genişletilebilir. Büyükse, mevcut ayrım için belgelenmiş bir nedeniniz vardır — ve toptan yükseltme yerine hedefli iyileştirme için bir aday.

Üçüncüsü, bağlamın serileştirilmesi dahil uçtan uca ölçülen gidiş-dönüş gecikmesi. Yerel-uzak karşılaştırmalarının en sık yanlış gittiği yer burasıdır. Uzak bir çağrı sadece ağ süresi değildir; prompt birleştirme, tokenizasyon, serileştirme, taşıma, uç noktada kuyruklama, prefill, decode ve deserializasyondur. Yerel bir çağrının kendi ek yükü vardır: model yükleme, bellek baskısı ve uygulamanın geri kalanıyla rekabet maliyeti. Her ikisini de aynı başlangıç noktasından ölçün — girdinin mevcut olduğu an — yoksa karşılaştırma anlamsızdır.

Sonra sessiz yükseltmeyi izleyin. Bu, bir yerel yedek yolun bazı koşullar altında tam prompt'u uzak bir uç noktaya ilettiği başarısızlık modudur. Genellikle birkaç mekanizmadan biriyle ortaya çıkar: orijinal yükü yeniden gönderen bir yeniden deneme sarmalayıcısı; ham girdileri bir gözlemlenebilirlik arka ucuna gönderen bir günlükleme veya izleme yolu; uzak API bir mesaj listesi beklediği için tüm konuşmayı bağlam olarak geçen bir araç çağrısı bağdaştırıcısı; veya çıkış politikasında ilgili bir değişiklik olmadan bir sınıfı yerelden uzağa çeviren bir özellik bayrağı.

Savunma, çıkışı açık ve denetlenebilir hale getirmektir. Her giden yük, veri sınıfını bilen ve yalnızca o sınıf için izin verilen alanları yayabilen tek bir bileşen tarafından oluşturulmalıdır. Testlerde bunu doğrulayın: regüle-kişisel bir girdi verildiğinde, giden yük yasaklı kümeden hiçbir alan içermemelidir. Çıkan sınıfı ve alan adlarını günlüğe kaydedin, değerleri değil. Politika her çağrı noktasında değil de tek bir darboğazda uygulanırsa, sessiz yükseltme bir üretim olayı yerine bir test hatası haline gelir.

Pratik özet: girdileri hassasiyete göre sınıflandırın, bu sınıflandırmaya göre yönlendirin, özel yükleri cihazda tutarken ihtiyaç duyan kısımlar için uzak yeteneği ödünç alın, çevrimdışı davranışı sınıf başına tanımlayın ve yerel oran, kalite farkı ve çıkış yüzeyinin tümü görünür olacak şekilde ayrımı izleyin. Gecikme, kullanıcıların fark ettiği faydadır. Veri çıkışı ise sistemin dağıtılabilir olup olmadığına karar veren şeydir.

Bunun yanıtladığı sorular

Why route on data class instead of model confidence?

Confidence scores from small quantised models are poorly calibrated, so escalation triggers fire unpredictably. More importantly, whether a payload may leave the device is a property of the data, not of how hard the question is. Classification is deterministic where possible and can be asserted in tests.

What is silent escalation and how is it detected?

Silent escalation is when a local fallback forwards the full prompt to a remote endpoint. It typically enters through retry wrappers, tracing backends, tool-call adapters that pass the whole conversation, or feature flags. Construct every outbound payload in one component that knows the data class, and assert in tests that prohibited fields never appear.

How should round-trip latency be compared between local and remote paths?

Measure both from the same starting point, the moment the input is available, and include context serialisation, tokenisation, transport, endpoint queueing, prefill and decode. Local calls carry their own overhead from model load and memory pressure, so a network-only comparison understates the remote cost.

What should happen when the device is offline?

Treat degraded operation as a defined state per data class: which requests are served locally with reduced quality, which are queued for replay, which are refused, and how the interface signals the difference. Silent quality reduction without signalling is harder to trust than an explicit refusal.