AI Modelini Docker’a Alma

Yapay zeka modellerini Docker container'larına taşımak, geliştiriciler ve veri bilimciler için vazgeçilmez bir yaklaşımdır.

Reklam Alanı

Yapay zeka modellerini Docker container’larına taşımak, geliştiriciler ve veri bilimciler için vazgeçilmez bir yaklaşımdır. Bu işlem, modelin farklı ortamlarda tutarlı bir şekilde çalışmasını sağlar, bağımlılık çatışmalarını önler ve dağıtımı hızlandırır. Özellikle bulut tabanlı hizmetlerde veya üretim ortamlarında, AI modellerinin taşınabilirliği kritik öneme sahiptir. Bu makalede, bir AI modelini Docker’a alma sürecini adım adım ele alacağız. Pratik örneklerle, Dockerfile oluşturma, build etme ve çalıştırma işlemlerini detaylandırarak size net bir rehber sunacağız. Bu sayede, kendi projelerinizde hemen uygulayabileceğiniz bir yöntem edineceksiniz.

Docker Ortamını Hazırlama

Docker’ı kullanmaya başlamadan önce, sisteminizi doğru şekilde hazırlamak esastır. Öncelikle Docker Desktop’ı veya Docker Engine’i resmi siteden indirip kurun. Linux tabanlı sistemlerde apt-get install docker.io komutuyla hızlıca yükleyebilirsiniz. Kurulum sonrası docker --version ile doğrulayın. AI modeli için Python tabanlı bir ortam gerektiğinden, model dosyalarınızı (örneğin, pickle ile kaydedilmiş bir scikit-learn modeli veya TensorFlow SavedModel) bir dizine toplayın. Bu dizinde requirements.txt dosyası oluşturun; örneğin, scikit-learn==1.2.0, numpy==1.24.0 gibi bağımlılıkları listeleyin. Ayrıca, model servisi için Flask veya FastAPI gibi bir web framework ekleyin. Bu hazırlık aşaması, container içindeki tutarlılığı garanti eder ve sonraki adımları hızlandırır.

Hazırlık sırasında dikkat edilmesi gereken bir nokta, base image seçimidir. Hafiflik için Python 3.9 slim image’ini tercih edin. Model boyutuna göre multi-stage build düşünebilirsiniz; örneğin, ilk stage’de bağımlılıkları derleyin, ikincisinde runtime’ı optimize edin. Bu yaklaşım, final image boyutunu %50’ye varan oranda küçültür ve güvenlik artırır. Proje dizininizi şu yapıda organize edin: Dockerfile, requirements.txt, model.pkl, app.py (modeli yükleyen ve API endpoint’i sunan script). Bu yapı, standart bir CI/CD pipeline’ına entegre olmaya hazır hale getirir.

Dockerfile Oluşturma ve Model Entegrasyonu

Temel Dockerfile Yapısı

Dockerfile’ı proje kök dizininde oluşturun. İlk satır FROM python:3.9-slim olsun. Ardından çalışma dizinini ayarlayın: WORKDIR /app. Bağımlılıkları kopyalayın: COPY requirements.txt . ve RUN pip install --no-cache-dir -r requirements.txt. Model ve uygulama dosyalarını kopyalayın: COPY model.pkl app.py .. Port açın: EXPOSE 5000. Son olarak, CMD ["python", "app.py"] ile container’ı başlatın. Bu temel yapı, 10 satırda işlevsel bir container sağlar. app.py örneğinde, Flask ile @app.route('/predict') endpoint’i tanımlayın; POST isteğinde model.predict() çağırarak JSON yanıtı dönün. Bu, RESTful bir servis oluşturur ve modelin inference’ını container içinde izole eder.

Güvenlik ve Optimizasyon İyileştirmeleri

Daha gelişmiş bir Dockerfile için, kullanıcıyı non-root olarak çalıştırın: RUN useradd -m appuser ve USER appuser. Bağımlılıkları layer’ları optimize etmek için pip install --user kullanın. Modeli sıkıştırılmış halde saklayın veya volume mount ile harici depolamadan yükleyin. Örnek: ENV MODEL_PATH=/models/model.pkl ve runtime’da os.path ile erişin. Bu optimizasyonlar, image boyutunu 200MB altına indirir ve saldırı yüzeyini minimize eder. Test için yerel build yapın: docker build -t ai-model .. Logları inceleyerek hataları erken yakalayın, örneğin pip cache sorunlarını çözmek için –no-cache-dir flag’ini kullanın.

Container’ı Build Etme, Çalıştırma ve Test Etme

Build işlemi basit: docker build -t my-ai-model:latest . komutunu çalıştırın. Bu, Dockerfile’ı tarar, layer’ları oluşturur ve image’i registry’ye hazır hale getirir. Çalıştırma için docker run -p 5000:5000 my-ai-model kullanın. Tarayıcıda localhost:5000/predict ile test edin; curl ile curl -X POST -H "Content-Type: application/json" -d '{"features":[1,2,3]}' http://localhost:5000/predict gönderin. Yanıt olarak tahmin sonucunu alın. Hata ayıklama için docker logs container_id ve docker exec -it container_id /bin/bash ile iç shell’e girin. Bu adımlar, modeli production-ready kılar.

İleri seviye için Docker Compose kullanın. docker-compose.yml’de service tanımlayın, volume’lar ekleyin: volumes: - ./models:/app/models. Bu, modeli güncellemeyi kolaylaştırır. Ölçekleme için Kubernetes’e geçiş öncesi, docker run --replicas 3 ile swarm modunu test edin. Performans metrikleri için Prometheus entegrasyonu düşünün, ancak temel olarak CPU/memory limitleri ayarlayın: --cpus=1 --memory=512m. Bu pratikler, kaynak kullanımını optimize eder ve maliyetleri düşürür.

Sonuç olarak, AI modelinizi Docker’a almak, geliştirme döngüsünü kısaltır ve ekip işbirliğini artırır. Bu rehberdeki adımları takip ederek, kendi modellerinizi güvenle containerize edebilirsiniz. Süreci otomatize etmek için GitHub Actions gibi CI tool’ları entegre edin ve düzenli image taramaları yapın. Bu yaklaşımla, AI projelerinizde tutarlılık ve verimlilik sağlayacaksınız.

Kategori: Genel
Yazar: Meka
İçerik: 593 kelime
Okuma Süresi: 4 dakika
Zaman: Bugün
Yayım: 10-03-2026
Güncelleme: 10-03-2026