Büyük Dil Modelleri'ni (LLM) deneysel not defterlerinden üretim seviyesindeki kurumsal uygulamalara taşımak artık özel bir konu değil; standart bir operasyonel gerekliliktir. Veri egemenliği ve düşük gecikmeli çıkarım (inference) taahhüdünde olan ekipler için Ollama, açık kaynaklı modelleri yerel olarak çalıştırmak için öne çıkan bir çözüm haline gelmiştir. Ancak, yüksek trafikli ortamlar için tek bir düğümde ollama serve komutunu çalıştırmak genellikle yetersiz kalır. Bu yazı, çoklu model iş akışlarını yönetmek ve Ollama API'lerini verimli bir şekilde ölçeklendirmek için gereken mimari desenleri incelemektedir.
Monolitik Çıkarımın Zorluğu
Erken aşama dağıtımlarında, Ollama'nın tek bir örneği genellikle tüm istekleri işler. Testler için etkili olsa da, bu yaklaşım bir darboğaz yaratır. GPU belleği sınırlıdır ve Llama 3 veya Mistral gibi modellerin bağlam pencereleri (context windows) VRAM'i hızla tüketebilir. Ayrıca, tüm trafiği tek bir uç noktadan yönlendirmek yatay ölçeklendirmeyi engeller. Kurumsal düzeyde güvenilirliğe ulaşmak için çıkarım motorunu uygulama mantığından ayırmalı ve orkestrasyon katmanları tanıtmalıyız.
Docker ile Konteynerleştirme ve Ölçeklendirme
Üretim için en sağlam başlangıç noktası konteynerleştirmedir. Docker, Ollama çalışma zamanını, model kütüphanelerini ve ortam değişkenlerini sürüm kontrolünde tutabileceğiniz tekrarlanabilir ortamlar tanımlamanıza olanak tanır. Docker Compose kullanarak ekipler, her biri farklı model boyutları veya donanım kısıtlamaları için optimize edilmiş olabilecek çoklu Ollama konteynerlerini ayağa kaldırabilir.
Aşağıda, Ollama API'sini açığa çıkaran ve yönlendirme görevleri için hafif bir modeli önceden yükleyen temel bir Docker Compose yapılandırması bulunmaktadır:
version: '3.8'
services:
ollama:
image: ollama/ollama
ports:
- "11434:11434"
volumes:
- ollama-data:/root/.ollama
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
environment:
- OLLAMA_HOST=0.0.0.0
- OLLAMA_KEEP_ALIVE=24h
volumes:
ollama-data:
Bu yapılandırma, modellerin yeniden başlatmalar arasında kalıcı olmasını ve hizmetin tüm ağ arayüzlerinde dinlemesini sağlayarak, diğer mikro hizmetlerin güvenli bir şekilde iç ağınıza bağlanmasına olanak tanır.
Çoklu Model İş Akışlarının Yönetilmesi
Kurumsal uygulamalar nadiren tek bir modele dayanır. Tipik bir iş akışı; niyet sınıflandırması için Phi-3 gibi küçük bir model, özetleme için Mistral gibi orta boyutlu bir model ve karmaşık akıl yürütme için Llama 3-70B gibi büyük bir model kullanabilir. LangChain veya LlamaIndex gibi orkestrasyon çerçeveleri burada hayati önem taşır, ancak model geçişlerini sorunsuz bir şekilde yönetecek şekilde yapılandırılmaları gerekir.
Model adlarını kod içinde sabitlemek yerine, üretim sistemleri bir yönlendirici stratejisi uygulamalıdır. Örneğin, gelen istek yükünü inceleyen bir vekil (proxy) hizmeti oluşturabilirsiniz. Kullanıcı sorgusu teknik anahtar kelimeler içeriyorsa, yönlendirici isteği kod uzmanlığına sahip bir modele yönlendirir. Aksi takdirde, genel amaçlı bir modele yönlendirir. Bu strateji, basit görevler için ağır hesaplamalardan kaçınarak maliyetleri ve gecikmeyi optimize eder.
API Ölçeklendirme ve Yük Dengeleme
Kullanıcı yükü arttıkça, tek bir Ollama örneği zorlanacaktır. Çözüm, Nginx veya Traefik gibi bir ters vekil (reverse proxy) arkasında yatay ölçeklendirmektir. Bu, gelen çıkarım isteklerini birden fazla Ollama düğümü arasında dağıtmanıza olanak tanır.
Yük dengeleme uygularken GPU uyumluluğunu (affinity) dikkate almak kritiktir. Tek bir büyük modeli farklı düğümlerdeki iki ayrı GPU arasında bölemezsiniz; her düğümün tam modeli yüklemesi gerekir. Bu nedenle, yük dengeleme, aynı modeli çalıştıran birden fazla özdeş düğümünüz olduğunda veya farklı model ailelerini farklı düğüm havuzlarına yönlendirdiğinizde en iyi şekilde çalışır.
Sonuç
Ollama'yı üretim ortamında dağıtmak, basit yürütmeden mimari disiplinlere geçişi gerektirir. Hizmetlerinizi konteynerleştirerek, çoklu model yönlendirme stratejileri uygulayarak ve yük dengeleme için ters vekiller kullanarak kurumsal ekipler, performans veya güvenilirlikten ödün vermeden yerel LLM'lerin gücünden yararlanabilir. Yerel yapay zeka ekosistemi olgunlaştıkça, bu desenler güvenli, ölçeklenebilir ve maliyet etkin AI uygulamaları oluşturmak için standart haline gelecektir.