Kısa cevap: Bir yapay zeka modelini dağıtmak, bir sunum modeli (gerçek zamanlı, toplu işlem, akış veya uç nokta) seçmek ve ardından tüm yolu tekrarlanabilir, gözlemlenebilir, güvenli ve geri alınabilir hale getirmek anlamına gelir. Her şeyi sürümlendirdiğinizde ve üretim benzeri yüklerde p95/p99 gecikmesini kıyasladığınızda, çoğu "benim dizüstü bilgisayarımda çalışıyor" hatasından kaçınmış olursunuz.
Önemli noktalar:
Dağıtım modelleri: Araçlara karar vermeden önce gerçek zamanlı, toplu işlem, akış veya uç nokta yöntemlerinden birini seçin.
Tekrarlanabilirlik: Sapmayı önlemek için modelin, özelliklerin, kodun ve ortamın sürümlerini güncelleyin.
Gözlemlenebilirlik: Gecikme kuyruklarını, hataları, doygunluğu ve veri veya çıktı dağılımlarını sürekli olarak izleyin.
Güvenli dağıtım: Otomatik geri alma eşikleriyle kanarya, mavi-yeşil veya gölge testlerini kullanın.
Güvenlik ve gizlilik: Kimlik doğrulama, hız sınırlamaları ve gizli bilgi yönetimi uygulayın ve kayıtlardaki kişisel tanımlayıcı bilgileri en aza indirin.

Bu makaleden sonra okumak isteyebileceğiniz diğer makaleler:
🔗 Yapay zeka performansı nasıl ölçülür?
Güvenilir yapay zeka sonuçları için ölçütleri, kıyaslama noktalarını ve gerçek dünya kontrollerini öğrenin.
🔗 Yapay zekâ ile görevler nasıl otomatikleştirilir?
Tekrarlayan işleri, komut istemleri, araçlar ve entegrasyonlar kullanarak iş akışlarına dönüştürün.
🔗 Yapay zeka modelleri nasıl test edilir?
Modelleri objektif olarak karşılaştırmak için tasarım değerlendirmeleri, veri kümeleri ve puanlama yöntemleri.
🔗 Yapay zeka ile nasıl konuşulur
Daha iyi sorular sorun, bağlamı oluşturun ve daha hızlı bir şekilde daha net cevaplar alın.
1) "Dağıtım"ın gerçekte ne anlama geldiği (ve neden sadece bir API olmadığı) 🧩
İnsanlar "modeli devreye almak" derken şunlardan herhangi birini kastediyor olabilirler:
-
Bir uygulamanın gerçek zamanlı çıkarım yapabilmesi için bir uç noktayı kullanıma sunun ( Vertex AI: Bir modeli bir uç noktaya dağıtma , Amazon SageMaker: Gerçek zamanlı çıkarım ).
-
Veritabanındaki tahminleri güncellemek için her gece toplu puanlama işlemini çalıştırın ( Amazon SageMaker Toplu Dönüştürme ).
-
Akış çıkarımı (olaylar sürekli gelir, tahminler sürekli gider) (Cloud Dataflow: tam olarak bir kez vs en az bir kez, Cloud Dataflow akış modları)
-
Uç nokta dağıtımı (telefon, tarayıcı, gömülü cihaz veya "fabrikadaki o küçük kutu") (LiteRT cihaz içi çıkarım, LiteRT genel bakış)
-
Dahili araç dağıtımı (analist arayüzü, not defterleri veya zamanlanmış komut dosyaları)
Dolayısıyla dağıtım, "modeli erişilebilir hale getirmek"ten ziyade şuna benziyor:
-
Paketleme + Sunma + Ölçeklendirme + İzleme + Yönetişim + Geri Alma (Mavi-Yeşil Dağıtım)
Bu biraz restoran açmaya benziyor. Harika bir yemek pişirmek elbette önemli. Ama yine de binaya, personele, soğutmaya, menülere, tedarik zincirine ve akşam yemeği yoğunluğunu soğuk hava deposunda ağlamadan atlatmanın bir yoluna ihtiyacınız var. Mükemmel bir benzetme değil belki... ama anladınız sanırım. 🍝
2) İyi bir “Yapay Zeka Modelleri Nasıl Dağıtılır” kılavuzunun içeriğini ne oluşturur? ✅
"İyi bir konuşlandırma", en iyi anlamda sıkıcıdır. Baskı altında tahmin edilebilir şekilde davranır ve davranmadığında da hızlıca teşhis edebilirsiniz.
İşte "iyi" olanın genellikle nasıl göründüğü:
-
Tekrarlanabilir derlemeler.
Aynı kod + aynı bağımlılıklar = aynı davranış. "Dizüstü bilgisayarımda çalışıyor" gibi ürkütücü durumlar yok 👻 (Docker: Konteyner nedir?) -
Açık arayüz sözleşmesi.
Girişler, çıkışlar, şemalar ve uç durumlar tanımlanmıştır. Gece 2'de sürpriz türler yok. (OpenAPI: OpenAPI nedir?,JSON Şeması) -
Gerçekliğe uygun performans.
Üretim ortamına benzer donanım ve gerçekçi veri yükleri üzerinde ölçülen gecikme süresi ve veri aktarım hızı. -
Etkili izleme:
Eylemi tetikleyen metrikler, kayıtlar, izleme kayıtları ve sapma kontrolleri (sadece kimsenin açmadığı gösterge panoları değil). (SRE Kitabı: Dağıtılmış Sistemlerin İzlenmesi) -
Güvenli dağıtım stratejisi
(Kanarya veya mavi-yeşil), kolay geri alma, dua gerektirmeyen sürümleme. (Kanarya Sürümü, Mavi-Yeşil Dağıtım) -
Maliyet bilinci
"Hızlı" harika bir şeydir, ta ki fatura telefon numarasına benzeyene kadar 📞💸 -
Güvenlik ve gizlilik , gizli bilgilerin yönetimi, erişim kontrolü, kişisel verilerin işlenmesi ve denetlenebilirlik özelliklerine entegre edilmiştir . ( Kubernetes Gizli Bilgileri , NIST SP 800-122 )
Eğer bunları istikrarlı bir şekilde yapabiliyorsanız, zaten çoğu takımdan öndesiniz demektir. Dürüst olalım.
3) Doğru dağıtım modelini seçin (araçları seçmeden önce) 🧠
Gerçek zamanlı API çıkarımı ⚡
En iyi sonuç için:
-
Kullanıcılar anında sonuçlara ihtiyaç duyuyor (öneriler, dolandırıcılık kontrolleri, sohbet, kişiselleştirme)
-
Kararlar bir talep sırasında alınmalıdır
Dikkat edilmesi gerekenler:
-
p99 gecikme süresi ortalamadan daha önemlidir (The Tail at Scale, SRE Kitabı: Dağıtılmış Sistemlerin İzlenmesi)
-
Otomatik ölçeklendirme dikkatli ayarlama gerektirir (Kubernetes Yatay Pod Otomatik Ölçeklendirme).
-
Soğuk başlatmalar sinsi olabilir… tıpkı bir kedinin masadan bardağı itmesi gibi (AWS Lambda yürütme ortamı yaşam döngüsü).
Toplu puanlama 📦
En iyi sonuç için:
-
Tahminler geciktirilebilir (gece boyunca risk puanlaması, müşteri kaybı tahmini, ETL zenginleştirme) (Amazon SageMaker Toplu Dönüştürme)
-
Maliyet verimliliği ve daha basit işlemler istiyorsunuz
Dikkat edilmesi gerekenler:
-
veri güncelliği ve yedeklemeler
-
Özellik mantığını eğitimle tutarlı tutmak
Akış çıkarımı 🌊
En iyi sonuç için:
-
Olayları sürekli olarak işliyorsunuz (Nesnelerin İnterneti, tıklama akışları, izleme sistemleri)
-
Kesin istek-yanıt ilişkisi olmadan, neredeyse gerçek zamanlı kararlar almak istiyorsunuz
Dikkat edilmesi gerekenler:
-
Tam olarak bir kez ve en az bir kez anlambilimi (Cloud Dataflow: tam olarak bir kez ve en az bir kez)
-
durum yönetimi, yeniden denemeler, garip kopyalar
Uç nokta dağıtımı 📱
En iyi sonuç için:
-
Ağ bağımlılığı olmadan düşük gecikme süresi (LiteRT cihaz içi çıkarım)
-
gizlilik kısıtlamaları
-
çevrimdışı ortamlar
Dikkat edilmesi gerekenler:
-
model boyutu, pil, niceleme, donanım parçalanması (Eğitim sonrası niceleme (TensorFlow Model Optimizasyonu))
-
Güncellemeler daha zor (piyasada 30 farklı sürümün olmasını istemezsiniz...)
Önce deseni, sonra yığını seçin. Yoksa kare bir modeli yuvarlak bir çalışma ortamına zorla yerleştirmiş olursunuz. Ya da buna benzer bir şey. 😬
4) Modelin üretimle temas ettiğinde hasar görmemesi için paketlenmesi 📦🧯
"Kolay konuşlandırmalar"ın çoğu burada sessizce sona erer.
Her şeyi (evet, her şeyi) sürümlendirin
-
Model bileşenleri (ağırlıklar, grafik, belirteçleyici, etiket haritaları)
-
Özellik mantığı (dönüşümler, normalleştirme, kodlayıcılar)
-
Çıkarım kodu (ön/son işlem)
-
Ortam (Python, CUDA, sistem kütüphaneleri)
İşe yarayan basit bir yaklaşım:
-
Modeli bir sürüm yapıtı gibi ele alın
-
Sürüm etiketiyle saklayın
-
Model raporlaması için model kartları, şema, ölçümler, eğitim verisi anlık görüntü notları ve bilinen sınırlamalar gibi bir model kartı benzeri meta veri dosyası gerektirir .
Kaplar yardımcı olur, ama onlara tapmayın 🐳
Kaplar harika çünkü:
-
Bağımlılıkları dondur (Docker: Konteyner nedir?)
-
derlemeleri standartlaştır
-
dağıtım hedeflerini basitleştirin
Ama yine de yönetmeniz gerekiyor:
-
temel görüntü güncellemeleri
-
GPU sürücülerinin uyumluluğu
-
güvenlik taraması
-
Resim boyutu (kimse 9 GB'lık "hello world" örneğini sevmez) (Docker derleme en iyi uygulamaları)
Arayüzü standartlaştırın
Giriş/çıkış formatınızı önceden belirleyin:
-
Basitlik için JSON (daha yavaş ama kullanıcı dostu) (JSON Şeması)
-
Performans için Protobuf (Protokol Tamponlarına genel bakış)
-
Görüntüler/ses dosyaları (ve meta veriler) için dosya tabanlı veri paketleri
Lütfen girdileri doğrulayın. Geçersiz girdiler, "neden anlamsız sonuçlar döndürüyor?" biletlerinin en büyük nedenidir. (OpenAPI: OpenAPI nedir?,JSON Şeması)
5) Sunum seçenekleri - “basit API”den tam model sunuculara kadar 🧰
İki yaygın rota vardır:
Seçenek A: Uygulama sunucusu + çıkarım kodu (FastAPI tarzı yaklaşım) 🧪
Modeli yükleyen ve tahminleri döndüren bir API yazıyorsunuz. (FastAPI)
Artıları:
-
özelleştirmesi kolay
-
Daha basit modeller veya erken aşama ürünler için harika
-
Basit kimlik doğrulama, yönlendirme ve entegrasyon
Dezavantajları:
-
Performans ayarlarını (toplu işleme, çoklu iş parçacığı kullanımı, GPU kullanımı) siz kontrol ediyorsunuz
-
Bazı şeyleri yeniden icat edeceksiniz, belki ilk başta kötü bir şekilde
Seçenek B: Model sunucusu (TorchServe / Triton tarzı yaklaşım) 🏎️
Aşağıdaki işlemleri gerçekleştiren özel sunucular:
-
Toplu işlem (Triton: Dinamik Toplu İşlem ve Eşzamanlı Model Yürütme)
-
eşzamanlılık (Triton: Eşzamanlı Model Yürütme)
-
birden fazla model
-
GPU verimliliği
-
Standartlaştırılmış uç noktalar (TorchServe belgeleri, Triton Çıkarım Sunucusu belgeleri)
Artıları:
-
kutudan çıktığı haliyle daha iyi performans modelleri
-
Sunucu ve iş mantığı arasında daha net bir ayrım
Dezavantajları:
-
ek operasyonel karmaşıklık
-
Ayarlar bazen... duş sıcaklığını ayarlamak gibi zahmetli gelebilir
Hibrit desen son derece yaygındır:
-
Çıkarım için model sunucusu (Triton: Dinamik gruplama)
-
Kimlik doğrulama, istek şekillendirme, iş kuralları ve hız sınırlama (API Ağ Geçidi kısıtlaması)
6) Karşılaştırma Tablosu - (dürüst bir yaklaşımla) yaygın olarak kullanılan yöntemler 📊😌
Aşağıda, insanların yapay zeka modellerini nasıl devreye alacaklarını belirlerken gerçekte kullandıkları seçeneklerin pratik bir özeti yer almaktadır .
| Araç / Yaklaşım | Kitle | Fiyat | Neden işe yarıyor? |
|---|---|---|---|
| Docker + FastAPI (veya benzeri) | Küçük ekipler, girişimler | Ücretsiz sayılır | Basit, esnek, hızlı teslimat - ancak her ölçeklendirme sorununu "hissedeceksiniz" (Docker, FastAPI). |
| Kubernetes (Kendin Yap) | Platform ekipleri | İç bağımlı | Kontrol + ölçeklenebilirlik… ayrıca, bir sürü ayar düğmesi, bazıları lanetli (Kubernetes HPA). |
| Yönetilen makine öğrenimi platformu (bulut tabanlı makine öğrenimi hizmeti) | Daha az operasyon isteyen takımlar | Kullandıkça öde | Dahili dağıtım iş akışları, izleme kancaları - sürekli açık uç noktalar için bazen pahalı olabilir (Vertex AI dağıtımı, SageMaker gerçek zamanlı çıkarım). |
| Sunucusuz fonksiyonlar (basit çıkarım için) | Olay odaklı uygulamalar | Kullanım başına ödeme | Yoğun trafik için harika - ancak soğuk başlatmalar ve model boyutu gününüzü mahvedebilir 😬 (AWS Lambda soğuk başlatmaları) |
| NVIDIA Triton Çıkarım Sunucusu | Performans odaklı takımlar | Ücretsiz yazılım, altyapı maliyeti | Mükemmel GPU kullanımı, gruplama, çoklu model - yapılandırma sabır gerektirir (Triton: Dinamik gruplama) |
| Meşale Servisi | PyTorch ağırlıklı ekipler | Ücretsiz yazılım | Varsayılan sunum kalıpları fena değil - yüksek ölçeklendirme için ince ayar gerekebilir (TorchServe belgeleri). |
| BentoML (paketleme + servis) | ML mühendisleri | Ücretsiz temel hizmet, ekstralar değişiklik gösterebilir | Sorunsuz paketleme, güzel geliştirici deneyimi - yine de altyapı seçeneklerine ihtiyacınız var (dağıtım için BentoML paketleme). |
| Ray Serve | Dağıtılmış sistemler uzmanları | İç bağımlı | Yatay olarak ölçeklenebilir, işlem hatları için iyidir - küçük projeler için "büyük" hissettirir (Ray Serve belgeleri). |
Not: "Ücretsiz sayılır" gerçek hayatta kullanılan bir terimdir. Çünkü hiçbir şey ücretsiz değildir. Her zaman bir bedeli vardır, uykunuz bile olsa. 😴
7) Performans ve ölçeklendirme - gecikme süresi, verimlilik ve gerçek 🏁
Performans optimizasyonu, dağıtımın bir zanaat haline geldiği noktadır. Amaç "hızlı" olmak değil, sürekli olarak yeterince hızlı.
Önemli olan temel ölçütler
-
p50 gecikmesi: tipik kullanıcı deneyimi
-
p95 / p99 gecikmesi: öfke uyandıran kuyruk (Büyük Ölçekte Kuyruk, SRE Kitabı: Dağıtılmış Sistemlerin İzlenmesi)
-
İşlem hacmi: saniyedeki istek sayısı (veya üretken modeller için saniyedeki token sayısı)
-
Hata oranı: Açıkça belli, ancak bazen yine de göz ardı ediliyor.
-
Kaynak kullanımı: CPU, GPU, bellek, VRAM (SRE Kitabı: Dağıtılmış Sistemlerin İzlenmesi)
Sık kullanılan çekme kolları
-
toplu işlem yapma
. Verimlilik için harika, ancak aşırıya kaçarsanız gecikmeyi artırabilir. (Triton: Dinamik toplu işlem) -
Nicelleştirme:
Daha düşük hassasiyet (INT8 gibi) çıkarım hızını artırabilir ve bellek kullanımını azaltabilir. Doğruluğu biraz düşürebilir. Bazen de şaşırtıcı bir şekilde düşürmez. (Eğitim sonrası nicelleştirme) -
Derleme/optimizasyon:
ONNX dışa aktarımı, grafik optimizasyon algoritmaları, TensorRT benzeri akışlar. Güçlü, ancak hata ayıklama biraz zorlayıcı olabilir 🌶️ (ONNX, ONNX Çalışma Zamanı model optimizasyonları) -
Önbellekleme:
Girişler tekrarlanırsa (veya gömülü vektörleri önbelleğe alırsanız), çok zaman kazanabilirsiniz. -
Otomatik
ölçeklendirme, CPU/GPU kullanımına, kuyruk derinliğine veya istek oranına göre ölçeklendirme yapar. Kuyruk derinliği hafife alınmaktadır. (Kubernetes HPA)
Tuhaf ama gerçek bir ipucu: Üretim ortamına benzer veri yükü boyutlarıyla ölçüm yapın. Küçük test veri yükleri sizi yanıltır. Önce kibarca gülümserler, sonra da size ihanet ederler.
8) İzleme ve gözlemlenebilirlik - körü körüne uçmayın 👀📈
Model izleme sadece çalışma süresi izlemesi değildir. Şunları bilmek istersiniz:
-
Hizmet sağlıklıdır
-
model şu şekilde davranıyor
-
Veriler kayıyor
-
Tahminler giderek daha az güvenilir hale geliyor (Vertex AI Model İzleme genel bakışı, Amazon SageMaker Model İzleme).
Neleri izlemeli (minimum uygulanabilir küme)
Sağlık hizmetleri
-
İstek sayısı, hata oranı, gecikme dağılımları (SRE Kitabı: Dağıtılmış Sistemlerin İzlenmesi)
-
doygunluk (CPU/GPU/bellek)
-
kuyruk uzunluğu ve kuyrukta geçirilen süre
Model davranışı
-
girdi özellik dağılımları (temel istatistikler)
-
gömme normları (gömme modelleri için)
-
çıktı dağılımları (güven, sınıf karışımı, puan aralıkları)
-
Girişlerde anormallik tespiti (yanlış veri girerseniz, yanlış sonuç alırsınız)
Veri kayması ve kavram kayması
-
Kayma uyarıları eyleme dönüştürülebilir olmalıdır (Vertex AI: Özellik çarpıklığını ve kaymasını izleme, Amazon SageMaker Model İzleme).
-
Uyarı mesajlarından kaçının - bu, insanlara her şeyi görmezden gelmeyi öğretir
Kayıt tutma, ama "her şeyi sonsuza dek kaydetme" yaklaşımı değil 🪵
Kayıt:
-
istek kimlikleri
-
model versiyonu
-
Şema doğrulama sonuçları (OpenAPI: OpenAPI nedir?)
-
Minimum yapılandırılmış yük meta verileri (ham kişisel tanımlayıcı bilgiler değil) (NIST SP 800-122)
Gizliliğe dikkat edin. Kayıtlarınızın veri sızıntısına dönüşmesini istemezsiniz. (NIST SP 800-122)
9) CI/CD ve dağıtım stratejileri - modelleri gerçek sürümler gibi ele alın 🧱🚦
Güvenilir dağıtımlar istiyorsanız, bir işlem hattı oluşturun. Basit bir işlem hattı bile olsa fark etmez.
Katı bir akış
-
Ön işleme ve son işleme için birim testleri
-
Bilinen bir giriş-çıkış "altın kümesi" ile entegrasyon testi
-
Yük testi temel değeri (hafif bir yük testi bile olsa)
-
Yapı dosyasını (konteyner + model) oluşturun (Docker derleme en iyi uygulamaları)
-
Test ortamına dağıtın
-
Trafik akışının küçük bir bölümüne uyarı sinyali gönderme (Canary Release)
-
kademeli olarak artırın
-
Önemli eşiklerde otomatik geri alma (Mavi-Yeşil Dağıtım)
Akıl sağlığınızı koruyan dağıtım modelleri
-
Kanarya Sürümü: Önce trafiğin %1-5'ine yayınla (Kanarya Sürümü)
-
Mavi-yeşil: Yeni sürümü eski sürümle birlikte çalıştırın, hazır olduğunda diğer tarafa geçin (Mavi-Yeşil Dağıtım)
-
Gölge testi: Yeni modele gerçek trafik gönderin ancak sonuçları kullanmayın (değerlendirme için harika) (Microsoft: Gölge testi)
Uç noktalarınızı veya rotalarınızı model sürümüne göre sürümlendirin. Gelecekteki siz size teşekkür edecek. Şimdiki siz de teşekkür edecek, ama sessizce.
10) Güvenlik, gizlilik ve "lütfen bilgi sızdırmayın" 🔐🙃
Güvenlik görevlileri genellikle davetsiz misafir gibi geç gelirler. Bu yüzden onları önceden davet etmek daha iyidir.
Pratik kontrol listesi
-
Kimlik doğrulama ve yetkilendirme (modeli kim çağırabilir?)
-
Hız sınırlama (kötüye kullanıma ve kazara oluşan aşırı yüklenmelere karşı koruma) (API Ağ Geçidi kısıtlaması)
-
Gizlilik yönetimi (kodda anahtar yok, yapılandırma dosyalarında da anahtar yok…) (AWS Secrets Manager, Kubernetes Secrets)
-
Ağ kontrolleri (özel alt ağlar, hizmetler arası politikalar)
-
Denetim kayıtları (özellikle hassas tahminler için)
-
Veri minimizasyonu (yalnızca gerekli olanı saklayın) (NIST SP 800-122)
Model kişisel verileri içeriyorsa:
-
tanımlayıcıları gizle veya karma kodla
-
Ham veri yüklerinin kaydedilmesinden kaçının (NIST SP 800-122)
-
saklama kurallarını tanımlayın
-
belge veri akışı (sıkıcı ama koruyucu)
Ayrıca, üretken modeller için prompt enjeksiyonu ve çıktı suistimali de önemli olabilir. Ekleyin: (OWASP LLM Uygulamaları için En İyi 10, OWASP: Prompt Enjeksiyonu)
-
girdi temizleme kuralları
-
Gerektiğinde çıkış filtreleme
-
araç çağırma veya veritabanı işlemleri için güvenlik önlemleri
Hiçbir sistem mükemmel değildir, ancak onu daha az kırılgan hale getirebilirsiniz.
11) Yaygın tuzaklar (diğer adıyla bilindik engeller) 🪤
İşte klasik eserler:
-
ön
işlemede farklılıklar ortaya çıkıyor. Aniden doğruluk oranı düşüyor ve kimse nedenini bilmiyor. (TensorFlow Veri Doğrulama: Eğitim-üretim dengesizliğini tespit etme) -
Şema doğrulaması yok.
Yukarı akışta yapılan tek bir değişiklik her şeyi bozuyor. Hem de her zaman gürültülü bir şekilde değil… (JSON Şeması, OpenAPI: OpenAPI Nedir?) -
Kuyruk gecikmesini göz ardı edersek,
kullanıcılar kızgın olduklarında p99'da yaşıyorlar. (Büyük Ölçekte Kuyruk) -
maliyetini göz ardı etmek,
evinizdeki tüm ışıkları açık bırakmaya benzer, ancak ampuller paradan yapılmıştır. -
Geri çekilme planı yok.
“Sadece yeniden konuşlandıracağız” bir plan değil. Bu, siper paltosu giymiş bir umut. (Mavi-Yeşil Konuşlandırma) -
Sadece çalışma süresini izlemek:
Model yanlış olsa bile servis çalışıyor olabilir. Bu muhtemelen daha da kötü. (Vertex AI: Özellik sapmasını ve kaymasını izleme, Amazon SageMaker Model İzleme)
Eğer bunu okuyup "evet, biz de bunlardan iki tane yapıyoruz" diye düşünüyorsanız, kulübe hoş geldiniz. Kulüpte atıştırmalıklar ve hafif bir stres var. 🍪
12) Özet - Yapay Zeka Modellerini Aklınızı Kaybetmeden Nasıl Dağıtabilirsiniz 😄✅
Yapay zekânın gerçek bir ürüne dönüştüğü yer, devreye alınmasıdır. Göz alıcı bir süreç olmayabilir, ancak güvenin kazanıldığı yer burasıdır.
Kısa özet
-
Öncelikle dağıtım modelinizi belirleyin (gerçek zamanlı, toplu işleme, akışlı işleme, uç nokta) 🧭 (Amazon SageMaker Toplu Dönüştürme, Cloud Dataflow akış modları, LiteRT cihaz içi çıkarım)
-
Tekrarlanabilirliği sağlamak için paket (her şeyi sürümlendirin, sorumlu bir şekilde konteynerleştirin) 📦 (Docker konteynerleri)
-
Performans ihtiyaçlarına göre sunum stratejisi seçin (basit API mi yoksa model sunucusu mu) 🧰 (FastAPI, Triton: Dinamik toplu işleme)
-
Sadece ortalamaları değil, p95/p99 gecikmesini de ölçün 🏁 (Büyük Ölçekte Kuyruk Etkisi)
-
Servis sağlığı ve model davranışı için izleme ekleyin 👀 (SRE Kitabı: Dağıtılmış Sistemlerin İzlenmesi, Vertex AI Model İzleme)
-
Kanarya veya mavi-yeşil sinyallerle güvenli bir şekilde devreye alın ve geri dönüşü kolaylaştırın 🚦 (Kanarya Sinyali Sökümü, Mavi-Yeşil Sinyal Dağıtımı)
-
Güvenliği ve gizliliği ilk günden itibaren entegre edin 🔐 (AWS Secrets Manager, NIST SP 800-122)
-
Sıkıcı, tahmin edilebilir ve belgelenmiş olsun - sıkıcılık güzeldir 😌
Evet, yapay zeka modellerini nasıl devreye alacağınız ilk başta alevli bowling toplarını havada çevirmek gibi gelebilir. Ancak işlem hattınız istikrara kavuştuğunda, garip bir şekilde tatmin edici oluyor. Tıpkı sonunda dağınık bir çekmeceyi düzenlemek gibi... sadece çekmece üretim trafiğiyle dolu.
Gerçek dünya örneği: Destek talebi önceliklendirme modelinin devreye alınması
Senaryo
Hayali ama gerçekçi bir SaaS şirketini düşünün; şirkette 12 destek temsilcisi ve haftada yaklaşık 900 müşteri talebi var. Ekip, bir insan temsilci yanıt vermeden önce gelen talepleri kategoriye, aciliyetine ve önerilen yönlendirmeye göre sınıflandıracak bir yapay zeka modeli istiyor.
Bu, tamamen otomatikleştirilmiş bir destek botu değildir. Model, müşterilere yanıt göndermez. Sadece biletlerin daha hızlı yönlendirilmesine, riskli durumların işaretlenmesine ve temsilcilere daha temiz bir başlangıç noktası sağlanmasına yardımcı olur.
Burada en iyi uygulama modeli genellikle gerçek zamanlı API çıkarımıdır. Her yeni bilet yardım masasına girer, yapay zeka servisi birkaç yüz milisaniye içinde puanlandırır ve yardım masası tahmin edilen kategori, öncelik, güven puanı ve model sürümünü saklar.
Asistanın ihtiyaç duyduğu şeyler
Faydalı girdiler:
bilet konusu
bilet gövdesi
müşteri planı türü
hesap bölgesi
ürün alanı, eğer zaten biliniyorsa
son 30 gündeki önceki bilet sayısı
Faydalı kurallar:
Kişisel veriler içeriyorsa, müşteri mesajlarının ham halini asla kaydetmeyin
Fatura anlaşmazlıklarını, yasal tehditleri, hesap silme taleplerini ve güvenlik sorunlarını insan incelemesine gönderin
Yalnızca güven düzeyi tanımlanmış bir eşik değerinin (örneğin 0,85) üzerinde olduğunda otomatik rota oluşturulsun
Model sürümünü her tahminle birlikte saklayın
Model hizmeti yavaşsa veya kullanılamıyorsa manuel önceliklendirmeye geri dönülür
Örnek talimat
Siz bir destek talebi önceliklendirme asistanısınız. Her talebi şu kategorilerden birine sınıflandırın: Faturalama, Giriş, Hata Bildirimi, Özellik Talebi, Hesap İptali, Güvenlik veya Diğer.
Kategori, aciliyet düzeyi, güven puanı, kısa açıklama ve önerilen destek sırasını döndürün.
Eksik bilgileri uydurmayın. Talepte yasal, güvenlik, ödeme hatası, hesap silme veya kızgın müşteri dili gibi konular yer alıyorsa, insan incelemesi için işaretleyin.
Güvenirlik düzeyi 0,85'in altındaysa, önerilen işlem olarak "Manuel İnceleme"yi döndürün.
Örnek çıktı
Zayıf çıktı:
Kategori: Hata
Öncelik: Yüksek
Destek ekibine gönder.
Daha iyi sonuç:
Kategori: Giriş
Aciliyet: Orta
Güvenirlik: 0,91
Önerilen sıra: Hesap Erişimi
Sebep: Müşteri, şifresini sıfırladıktan sonra hesabına erişemiyor. Herhangi bir güvenlik tehdidi veya ödeme sorunu belirtilmemiştir.
İnsan incelemesi gerekli: Hayır
Model sürümü: ticket-triage-v1.3
Daha iyi sonuçlar, güven skoru, yönlendirme kararı, gerekçe ve model sürümü gibi bilgileri içerdiği için denetlenmesi daha kolaydır.
Nasıl test edilir?
Modele canlı trafik göndermeden önce, gerçek ancak anonimleştirilmiş biletlerden oluşan küçük bir "altın küme" oluşturun.
Basit bir test seti şunları içerebilir:
50 fatura fişi
50 giriş bileti
50 hata raporu
30 iptal talebi
20 güvenlik açısından hassas bilet
20 kafa karıştırıcı veya karışık kategorili bilet
Ardından şunları kontrol edin:
Model, insan değerlendiriciyle aynı kategoriyi mi seçiyor?
Güvenlik, hukuki ve iptal taleplerini doğru şekilde üst mercilere iletiyor mu?
Güven düzeyi düşük olduğunda "Manuel İnceleme" yanıtını mı veriyor?
P95 gecikme süresi ekibin hedefinin altında kalıyor mu?
Model kullanılamadığında servis güvenli bir şekilde kesintiye uğrar mı?
Dağıtım için öncelikle gölge testini kullanın. Yeni modele gerçek biletler gönderin, ancak tahminlerini henüz kullanmayın. Çıktısını birkaç gün boyunca normal insan değerlendirmesiyle karşılaştırın. Sonuçlar istikrarlıysa, %5'lik bir kademeli sürüme, ardından %25'e ve son olarak %100'e geçin.
Sonuç
İş akışını kullanmadan önce ve sonra 100 örnek biletin zamanlamasına dayalı açıklayıcı sonuç:
Manuel triyaj süresi, bilet başına 6 dakikadan 1 dakika 40 saniyeye düştü
Ekip, 100 bilet üzerinden yaklaşık 7,2 saat tasarruf sağladı
220 biletlik altın set genelinde, insan değerlendirici ile kategori mutabakat oranı %87 idi
Güvenlik açısından hassas olan 20 test talebinin tamamı insan incelemesine gönderildi
Üretim benzeri yüklerde p95 gecikmesi 480 ms idi
p99 gecikmesi 910 ms idi
Geri alma süresi 2 dakikadan azdı çünkü eski model uç nokta, canary sürümü sırasında aktif kalmaya devam etti
Bu rakamlar evrensel ölçütler değildir. Bunlar, bir ekibin önceliklendirme görevlerinin süresini ölçerek, tahminleri etiketlenmiş bir test kümesiyle karşılaştırarak ve uç noktayı gerçekçi bilet yükleriyle test ederek yeniden üretebileceği örnek ölçümlerdir.
Neler ters gidebilir?
En büyük risk, modele çok fazla güvenmektir. "Düşük aciliyetli" olarak işaretlenmiş bir talep bile, özellikle müşteri açık ve net olmayan bir şekilde yazarsa, ciddi bir güvenlik sorunu içerebilir.
Diğer yaygın hatalar:
Gerçek müşteri talepleriyle uyuşmayan, cilalanmış test talepleri kullanılıyor
Müşteri mesajlarının tamamını kişisel verilerle birlikte kayıt altına almak
Her tahminle birlikte model sürümünü saklamamak
Güven seviyesi düşük olsa bile her biletin otomatik olarak yönlendirilmesi
manuel yedekleme kuyruğunu unutmak
Ortalama gecikmeyi ölçmek ancak p95 ve p99'u göz ardı etmek
Destek ekibi kuyruklarını değiştirdikten sonra eski kategorilerin modelde kalmasına izin vermek
Pratik çıkarımlar
İyi bir yapay zeka uygulamasının devasa bir şekilde başlaması gerekmez. Tek bir dar iş akışı, tek bir net arayüz, tek bir altın test seti ve tek bir güvenli geri alma yoluyla başlayın. Model, riski gizlemeden zaman kazandırıyorsa, ölçeklendirmeye değer bir uygulamaya sahipsiniz demektir.
SSS
Bir yapay zeka modelini üretim ortamına dağıtmanın anlamı nedir?
Bir yapay zeka modelinin dağıtımı genellikle bir tahmin API'si sunmaktan çok daha fazlasını içerir. Uygulamada, modelin ve bağımlılıklarının paketlenmesi, bir sunum modelinin seçilmesi (gerçek zamanlı, toplu, akışlı veya uç nokta), güvenilirlikle ölçeklendirme, sağlık ve sapmaların izlenmesi ve güvenli dağıtım ve geri alma yollarının oluşturulması gibi süreçleri kapsar. Sağlam bir dağıtım, yük altında öngörülebilir bir şekilde istikrarlı kalır ve bir sorun olduğunda teşhis edilebilir durumda olur.
Gerçek zamanlı, toplu işleme, akışlı veya uç nokta dağıtımı arasında nasıl seçim yapılır?
Tahminlerin ne zaman gerekli olduğuna ve çalıştığınız kısıtlamalara bağlı olarak dağıtım modelini seçin. Gerçek zamanlı API'ler, gecikmenin önemli olduğu etkileşimli deneyimler için uygundur. Toplu puanlama, gecikmelerin kabul edilebilir olduğu ve maliyet verimliliğinin ön planda olduğu durumlarda en iyi sonucu verir. Akış, özellikle teslimat semantiği karmaşıklaştığında, sürekli olay işleme için uygundur. Uç nokta dağıtımı, çevrimdışı çalışma, gizlilik veya ultra düşük gecikme gereksinimleri için idealdir, ancak güncellemeler ve donanım çeşitliliği yönetimi daha zor hale gelir.
"Dizüstü bilgisayarımda çalışıyor" dağıtım hatalarını önlemek için hangi sürümü kullanmalısınız?
Sadece model ağırlıklarını değil, daha fazlasını sürümleyin. Genellikle, sürümlü bir model yapıtı (tokenleştiriciler veya etiket eşlemeleri dahil), ön işleme ve özellik mantığı, çıkarım kodu ve tam çalışma ortamı (Python/CUDA/sistem kütüphaneleri) isteyeceksiniz. Modeli, etiketlenmiş sürümler ve şema beklentilerini, değerlendirme notlarını ve bilinen sınırlamaları açıklayan hafif meta veriler içeren bir sürüm yapıtı olarak ele alın.
İster basit bir FastAPI tarzı servis ile, ister özel bir model sunucusuyla dağıtım yapılmalı?
Basit bir uygulama sunucusu (FastAPI tarzı bir yaklaşım), yönlendirme, kimlik doğrulama ve entegrasyon üzerinde kontrol sahibi olduğunuz için erken aşama ürünler veya basit modeller için iyi sonuç verir. Bir model sunucusu (TorchServe veya NVIDIA Triton tarzı), kutudan çıktığı gibi daha güçlü toplu işleme, eşzamanlılık ve GPU verimliliği sağlayabilir. Birçok ekip hibrit bir yaklaşıma yönelir: çıkarım için bir model sunucusu ve kimlik doğrulama, istek şekillendirme ve hız sınırlamaları için ince bir API katmanı.
Doğruluktan ödün vermeden gecikmeyi ve veri aktarım hızını nasıl iyileştirebilirsiniz?
Öncelikle, küçük ölçekli testler yanıltıcı olabileceğinden, gerçekçi veri yükleriyle üretim ortamına benzer donanımlarda p95/p99 gecikmesini ölçerek başlayın. Yaygın kullanılan yöntemler arasında gruplama (daha yüksek verim, potansiyel olarak daha kötü gecikme), niceleme (daha küçük ve daha hızlı, bazen mütevazı doğruluk ödünleriyle), derleme ve optimizasyon akışları (ONNX/TensorRT benzeri) ve tekrarlanan girdilerin veya gömülü verilerin önbelleğe alınması yer alır. Kuyruk derinliğine dayalı otomatik ölçeklendirme de kuyruk gecikmesinin yukarı doğru tırmanmasını engelleyebilir.
"Uç nokta çalışır durumda" ifadesinin ötesinde hangi izleme işlemlerine ihtiyaç duyulmaktadır?
Çalışma süresi tek başına yeterli değildir, çünkü bir hizmet sağlıklı görünürken tahmin kalitesi düşebilir. En azından istek hacmini, hata oranını ve gecikme dağılımlarını, ayrıca CPU/GPU/bellek ve kuyruk süresi gibi doygunluk sinyallerini izleyin. Model davranışı için, temel anormallik sinyalleriyle birlikte giriş ve çıkış dağılımlarını takip edin. Gürültülü uyarılar yerine eylemi tetikleyen sapma kontrolleri ekleyin ve istek kimliklerini, model sürümlerini ve şema doğrulama sonuçlarını kaydedin.
Yeni model sürümlerini güvenli bir şekilde nasıl piyasaya sürebilir ve hızlı bir şekilde nasıl toparlanabilirsiniz?
Modelleri, ön işleme ve son işlemeyi test eden, "altın set"e karşı entegrasyon kontrolleri yapan ve yük tabanını belirleyen bir CI/CD hattıyla tam sürümler gibi ele alın. Dağıtımlar için, kademeli olarak trafiği artıran canary sürümleri kullanılırken, blue-green modeli ise acil geri dönüş için eski bir sürümü canlı tutar. Gölge testleri, kullanıcıları etkilemeden yeni bir modeli gerçek trafik üzerinde değerlendirmeye yardımcı olur. Geri alma, sonradan düşünülen bir şey değil, birinci sınıf bir mekanizma olmalıdır.
Yapay zeka modellerini kullanmayı öğrenirken karşılaşılan en yaygın tuzaklar
Eğitim ve üretim ortamları arasındaki ön işleme farklı olduğundan, performans sessizce düşer. Sık karşılaşılan bir diğer sorun ise şema doğrulamasının eksikliğidir; burada yukarı akışta yapılan bir değişiklik girdileri ince şekillerde bozar. Ekipler ayrıca kuyruk gecikmesini hafife alır ve ortalamalara aşırı odaklanır, maliyeti göz ardı eder (boşta kalan GPU'lar hızla artar) ve geri alma planlamasını atlar. Sadece çalışma süresini izlemek özellikle risklidir, çünkü "çalışıyor ama yanlış" durumu "çalışmıyor" durumundan daha kötü olabilir.
Referanslar
-
Amazon Web Services (AWS) - Amazon SageMaker: Gerçek Zamanlı Çıkarım - docs.aws.amazon.com
-
Amazon Web Services (AWS) - Amazon SageMaker Toplu Dönüştürme - docs.aws.amazon.com
-
Amazon Web Services (AWS) - Amazon SageMaker Model İzleme Aracı - docs.aws.amazon.com
-
Amazon Web Services (AWS) - API Gateway istek kısıtlaması - docs.aws.amazon.com
-
Amazon Web Services (AWS) - AWS Secrets Manager: Giriş - docs.aws.amazon.com
-
Amazon Web Services (AWS) - AWS Lambda yürütme ortamı yaşam döngüsü - docs.aws.amazon.com
-
Google Cloud - Vertex AI: Bir modeli bir uç noktaya dağıtma - docs.cloud.google.com
-
Google Cloud - Vertex Yapay Zeka Model İzleme genel bakışı - docs.cloud.google.com
-
Google Cloud - Vertex AI: Özellik çarpıklığını ve kaymasını izleme - docs.cloud.google.com
-
Google Cloud Blog - Dataflow: Tam olarak bir kez ve en az bir kez akış modları - cloud.google.com
-
Google Cloud - Cloud Dataflow akış modları - docs.cloud.google.com
-
Google SRE Kitabı - Dağıtılmış Sistemlerin İzlenmesi - sre.google
-
Google Araştırması - Büyük Ölçekte Kuyruk - research.google
-
LiteRT (Google AI) - LiteRT'ye genel bakış - ai.google.dev
-
LiteRT (Google AI) - LiteRT cihaz içi çıkarım - ai.google.dev
-
Docker - Konteyner nedir? - docs.docker.com
-
Docker - Docker derleme en iyi uygulamaları - docs.docker.com
-
Kubernetes - Kubernetes Sırları - kubernetes.io
-
Kubernetes - Yatay Pod Otomatik Ölçeklendirme - kubernetes.io
-
Martin Fowler - Canary Release - martinfowler.com
-
Martin Fowler - Mavi-Yeşil Dağıtım - martinfowler.com
-
OpenAPI Girişimi - OpenAPI Nedir? - openapis.org
-
JSON Şeması - (referans verilen site) - json-schema.org
-
Protokol Tamponları - Protokol Tamponlarına genel bakış - protobuf.dev
-
FastAPI - (referans verilen site) - fastapi.tiangolo.com
-
NVIDIA - Triton: Dinamik Toplu İşleme ve Eşzamanlı Model Yürütme - docs.nvidia.com
-
NVIDIA - Triton: Eşzamanlı Model Yürütme - docs.nvidia.com
-
NVIDIA - Triton Çıkarım Sunucusu belgeleri - docs.nvidia.com
-
PyTorch - TorchServe belgeleri - docs.pytorch.org
-
BentoML - Dağıtım için Paketleme - docs.bentoml.com
-
Ray - Ray Serve dokümanları - docs.ray.io
-
TensorFlow - Eğitim Sonrası Nicelleştirme (TensorFlow Model Optimizasyonu) - tensorflow.org
-
TensorFlow - TensorFlow Veri Doğrulama: Eğitim-sunma dengesizliğini tespit etme - tensorflow.org
-
ONNX - (referans verilen site) - onnx.ai
-
ONNX Çalışma Zamanı - Model optimizasyonları - onnxruntime.ai
-
NIST (Ulusal Standartlar ve Teknoloji Enstitüsü) - NIST SP 800-122 - csrc.nist.gov
-
arXiv - Model Raporlama için Model Kartları - arxiv.org
-
Microsoft - Gölge Testi - microsoft.github.io
-
OWASP - Yüksek Lisans Başvuruları için OWASP En İyi 10 - owasp.org
-
OWASP GenAI Güvenlik Projesi - OWASP: Anında Enjeksiyon - genai.owasp.org