AI Programlama ve Teknoloji
Python’da AI modelleri nasıl entegre edilir?
Python’da AI Modelleri Entegrasyonu: Bir Veri Bilimcinin Not Defterinden
Kahvemi yudumlarken, bir veri setine baktığım o anı hatırlıyorum: “Bu karmaşık veriden anlamlı sonuçlar çıkarmak haftalar alacak” diye düşünmüştüm. Sonra Python ve AI kütüphaneleri imdadıma yetişti. İşte sahadan gerçek deneyimlerle, adım adım AI entegrasyon rehberi:
1. “Hazır Modellerle Hızlı Başlangıç”
Senaryo: Müşteri yorumlarından duygu analizi yapmanız gerekiyor.
from transformers import pipeline
# Hazır modeli 1 satırda yükle
duygu_analiz = pipeline("sentiment-analysis", model="savasy/bert-base-turkish-sentiment-cased")
# Test edelim
sonuc = duygu_analiz("Ürün hızlı geldi ama kutu hasarlıydı")
print(sonuc) # [{'label': 'NEGATIVE', 'score': 0.89}]
Pro Tip: transformers
kütüphanesindeki pipeline
fonksiyonu, sizi model mimarisiyle uğraştırmadan direk sonuca götürür.
2. “Kendi Verinizle Özel Model Eğitmek”
Gerçek Hikaye: Bir e-ticaret sitesi için ürün kategorizasyon modeli yazmıştım.
from sklearn.ensemble import RandomForestClassifier
import pandas as pd
# Veriyi yükle
data = pd.read_csv("urun_verileri.csv")
X = data[["agirlik", "fiyat", "renk_kodu"]]
y = data["kategori"]
# Modeli kur ve eğit
model = RandomForestClassifier()
model.fit(X, y)
# Tahmin yap
yeni_urun = [[1.2, 299, 45]]
print(model.predict(yeni_urun)) # ['elektronik']
Düştüğüm Hata: Başta veriyi normalize etmeyi unutmuştum, modelin doğruluğu %40’ta kalmıştı! StandardScaler
ekleyince %92’ye fırladı.
3. “Bilgisayar Görüsü için OpenCV + TensorFlow”
Komik Anı: Stajyer, ofis kedisinin fotoğraflarını “tehlikeli hayvan” diye sınıflandıran bir model eğitmişti 😅
import cv2
import tensorflow as tf
# Önceden eğitilmiş model
model = tf.keras.applications.MobileNetV2()
# Görüntüyü işle
img = cv2.imread("kedi.jpg")
img = cv2.resize(img, (224, 224)) # Modelin beklediği boyut
img = tf.keras.applications.mobilenet_v2.preprocess_input(img)
# Tahmin
tahmin = model.predict(img[np.newaxis, ...])
print(tf.keras.applications.mobilenet_v2.decode_predictions(tahmin))
Çıktı: [('n02124075', 'Egyptian_cat', 0.871)]
→ “Kedi”yi doğru tanıdı!
4. “PyTorch ile Derin Öğrenme”
Unutamadığım Bug: GPU kullanırken to(device)
yazmayı unutup 6 saat beklediğim gün…
import torch
import torch.nn as nn
# Basit sinir ağı
class Net(nn.Module):
def __init__(self):
super().__init__()
self.fc = nn.Linear(10, 2) # 10 giriş, 2 çıkış
def forward(self, x):
return self.fc(x)
# Model + GPU
model = Net()
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device) # BU SATIR HAYATİ!
# Test verisi
x = torch.randn(3, 10).to(device) # Veriyi de GPU'ya taşı
print(model(x))
5. “API Olarak Dağıtmak (Flask)”
Başıma Gelen: Sunucuya requirements.txt
yüklemeyi unutunca 3 saat debug yapmıştım!
from flask import Flask, request, jsonify
import joblib
app = Flask(__name__)
model = joblib.load("model.pkl") # Kayıtlı model
@app.route("/tahmin", methods=["POST"])
def tahmin():
veri = request.json["veri"]
sonuc = model.predict([veri])
return jsonify({"tahmin": str(sonuc[0])})
if __name__ == "__main__":
app.run(host="0.0.0.0", port=5000)
Test:
curl -X POST http://localhost:5000/tahmin -H "Content-Type: application/json" -d '{"veri": [1, 2, 3]}'
Şimdi Size Altın Kuralları Veriyorum:
- Veri Ön İşleme: Modeliniz ne kadar iyi olursa olsun, çöp veri girdiyseniz çöp sonuç alırsınız.
- GPU Kullanımı:
torch.cuda.is_available()
ile kontrol etmeden eğitime başlamayın. - Model Kaydetme:
joblib
veyatorch.save
kullanarak eğittiğiniz modelleri saklayın. - Versiyon Kontrolü:
pip freeze > requirements.txt
yapmayı unutmayın yoksa başka makinede çalışmaz!
Bonus:
- Hata Ayıklama: Modeliniz kötü performans gösteriyorsa, küçük bir veri parçasıyla (
batch_size=1
) overfit yapmayı deneyin. Eğer yapamıyorsa, model mimarinizde sorun var demektir!
aisor
18 Ağustos 2025 at 02:26
Süper bir rehber olmuş 👏 Hem pratik hem de gerçek hayattan örneklerle desteklemişsin, okurken sıkılmadan ilerledim. Özellikle “GPU’ya veriyi taşımayı unutma” ve “requirements.txt olmadan sunucuya çıkma” kısımları çok tanıdık geldi 😅
Ben de birkaç küçük ekleme yapmak isterim:
Virtual Environment: Farklı projeler için bağımlılıkların karışmaması adına
venv
veyaconda
ortamı kullanmak büyük kolaylık sağlıyor.Model Versiyonlama: MLflow veya DVC gibi araçlarla hem veriyi hem de modeli versiyonlamak uzun vadede hayat kurtarıyor.
API Dağıtımı: Flask başlangıç için süper ama ölçeklendirme gerektiğinde FastAPI veya Docker ile containerize etmek daha stabil bir çözüm oluyor.
Monitoring: Üretimdeki modeller zamanla “drift” yaşayabiliyor, yani gelen veriler değiştikçe doğruluk düşüyor. Bu yüzden tahminleri ve hata oranlarını izlemek önemli.
Senin yazın zaten sağlam bir temel atıyor. Bunlar da uzun vadede projeyi “hobi seviyesinden” üretim ortamına taşıyan püf noktalar 👍