Uzmanlık
Model serving: eğitilmiş modeli bir API arkasında sunmak — 2024'ten beri
Bir model eğitildiğinde iş bitmiyor: onu bir API arkasında sunmak, GPU'da çalıştırmak ve ölçeklemek ayrı bir mühendislik işi.
- yıl
- 2
Model Serving ekosisteminde ben
Model serving benim için eğitimden sonra başlayan iş: model hazır, ama bir API arkasında çalışmadıkça kimse onu çağıramaz. Bu sayfa tek bir aracı değil kategoriyi anlatıyor; sistemin geri kalanı yapay zekâ sistemleri sayfasında.
Modeli sunmanın birden çok yolu var ve hangisini seçtiğim işe bağlı. NVIDIA Dynamo-Triton, eğitilmiş modelleri bir API arkasında sunmak için kullandığım sunucu. Ollama açık ağırlıklı modelleri yerel makinede çalıştırıyor. FastAPI ise sunum mantığını Python ile kendim yazmak istediğimde devreye giriyor. Inference optimizasyonunda özel GPU kernel’ları için OpenAI Triton’a başvuruyorum; adı benzese de bu NVIDIA’nın sunucusundan ayrı bir proje.
Sunum katmanını Docker ile paketliyor, Kubernetes üzerinde dağıtıp ölçekliyorum. GPU üzerindeki işlerde CUDA tarafı da buraya giriyor.
Model Serving: Modeli API Arkasında Sunmak nedir?
Model serving, eğitilmiş bir modeli uygulamaların çağırabileceği bir API arkasında çalışır tutmaktır. Bu sayfa tek bir aracı değil kategoriyi anlatır: NVIDIA Dynamo-Triton, Ollama ve FastAPI aynı işe farklı yerlerden yaklaşır.
Model Serving: Modeli API Arkasında Sunmak ne iş yapar?
Modeli nerede ve nasıl sunacağıma karar veriyorum: GPU üzerinde çalışan bir model serving sunucusu mu, yerel makinede Ollama mı, Python ile yazılmış bir FastAPI servisi mi. Sonra bunu container olarak paketleyip Kubernetes üzerinde dağıtıyor ve ölçekliyorum.
Birlikte kullandığım teknolojiler
-
NVIDIA Dynamo-Triton
Eğitilmiş modelleri bir API arkasında sunmak için kullandığım, eski adıyla NVIDIA Triton Inference Server olan model serving sunucusu.
-
OpenAI Triton
Inference optimizasyonunda özel GPU kernel'ları yazmak için kullandığım dil ve derleyici.
-
Ollama
Açık ağırlıklı modelleri yerel makinede çalıştıran ve bir API arkasında sunan araç.
-
FastAPI
Bir modeli Python ile HTTP API arkasına koyan web framework'ü.
-
Kubernetes
Model serving ve inference iş yüklerini container olarak dağıtıp ölçeklediğim orkestrasyon platformu.
-
CUDA
Eğitim ve inference iş yüklerini GPU üzerinde çalıştırdığım NVIDIA platformu.
-
Docker
Geliştirme ortamı ve dağıtım paketi.
-
PyTorch
Model eğitimi, fine-tuning ve LoRA/PEFT ile uyarlama işlerinde kullandığım derin öğrenme framework'ü.
-
TensorFlow
Model eğitimi işlerimde kullandığım derin öğrenme framework'ü.
Sık sorulanlar
8 soru
-
Model serving ile kaç yıldır çalışıyorsun?
2024'ten bu yana, 2 yıldır.
-
Model serving nedir?
Eğitilmiş bir modeli, uygulamaların istek gönderebileceği bir API arkasında çalışır tutmaktır. Model dosyasını yüklemek, isteği modele iletmek ve cevabı döndürmek bu katmanın işi.
-
Model serving mühendisi ne iş yapar?
Modelin hangi sunucuda, hangi donanımda ve hangi API ile sunulacağına karar verir; sunucuyu paketler, dağıtır ve ölçekler. Bende bu; NVIDIA Dynamo-Triton, Ollama ve FastAPI arasında işe uyanı seçmek ve Kubernetes üzerinde işletmek demek.
-
NVIDIA Dynamo-Triton nedir?
Eğitilmiş modelleri bir API arkasında sunan model serving sunucusu; eski adı NVIDIA Triton Inference Server. NVIDIA'nın ürün sayfası bugün ürünü bu yeni adla veriyor.
-
NVIDIA Triton ile OpenAI Triton aynı şey mi?
Hayır, adları benzer ama iki ayrı proje. NVIDIA Dynamo-Triton modelleri sunan bir sunucu; OpenAI Triton ise özel GPU kernel'ları yazmak için kullanılan bir dil ve derleyici. İlkini modeli sunmak için, ikincisini inference optimizasyonu için kullanıyorum.
-
Ollama ile FastAPI ne zaman işe yarar?
Ollama açık ağırlıklı modelleri yerel makinede çalıştırıp bir API arkasında sunar; geliştirme ve deneme için pratik. FastAPI ise Python ile yazılmış bir HTTP API'nin arkasına modeli koymak için kullanılan web framework'ü; sunum mantığını kendim yazmak istediğimde işe yarar.
-
Model serving için Kubernetes şart mı?
Hayır. Tek makinede çalışan bir model için gereksiz olabilir. Model serving ve inference iş yüklerini container olarak birden çok makineye dağıtıp ölçeklemem gerektiğinde Kubernetes kullanıyorum.
-
Model serving için GPU gerekiyor mu?
Modele bağlı. GPU üzerinde çalışması gereken modellerde CUDA ile çalışıyorum; her model bunu gerektirmez.
Birlikte çalışalım
Bu ekosistemde bir işiniz varsa, ne yaptığınızı anlatın; nasıl kurulacağını konuşalım.