• Yapay zeka soru ve sorunlarınızı uygun olan kategorilere açıp yanıt alabilirsiniz...

Scikit-learn modeli saklanırken hangi uyum bilgileri kaydedilmelidir?

Garfield

YZF Admin
Yaş
40
Konum
YurtDışı
Katılım
27 Eki 2026
Konular
664
Mesajlar
689
AI Seviyesi
Yeni
Bir scikit-learn modelini yalnızca model dosyası olarak saklamak yeterli değildir. Modeli yeniden yükleyip aynı sonucu güvenilir biçimde üretebilmek için model dosyasına ek olarak Python ve paket sürümleri, işletim sistemi bilgisi, kullanılan özelliklerin sırası ve veri şeması, ön işleme adımları, eğitim verisinin tanımı, kaynak kod sürümü ve doğrulama sonuçları kaydedilmelidir. Böylece aylar sonra oluşan bir tahmin farkının modelden mi, veriden mi, bağımlılık sürümünden mi kaynaklandığını ayırabilirsiniz.

Kaydedilmesi gereken uyum bilgileri​


Model dosyasının yanına, tercihen aynı sürüm kayıtlarının bulunduğu bir üstveri dosyası koyun. JSON, YAML veya benzeri okunabilir bir biçim kullanılabilir. Aşağıdaki bilgiler temel listedir:
BilgiNeden gereklidir?Örnek
Python sürümüSerileştirilmiş nesnenin hangi çalışma ortamında üretildiğini gösterir.3.11.9
scikit-learn sürümüEstimator davranışı, varsayılan parametreleri veya serileştirme uyumu sürüme bağlı olabilir.1.x.y
Bağımlılık sürümleriNumPy, SciPy, pandas ve kullanılan diğer paketlerin veri tipleri veya hesaplamaları etkileyebilecek değişikliklerini izlemeyi sağlar.numpy, scipy, pandas sürümleri
İşletim sistemi ve mimariYerel derlenmiş bileşen veya platforma bağlı davranışları araştırmayı kolaylaştırır.Linux x86_64
Özellik şemasıTahmin sırasında sütunların doğru ad, sıra, veri tipi ve birimle verilmesini sağlar.age: float, income: float
Ön işleme zinciriÖlçekleme, eksik değer doldurma, kategorik kodlama ve özellik seçiminin modelle birlikte uygulanmasını sağlar.Pipeline adımları
Eğitim verisi tanımıModelin hangi veri aralığı, filtreler ve etiket tanımıyla üretildiğini açıklar.Veri kümesi sürümü veya değişmez kimliği
Kod ve yapılandırma sürümüModelin hangi kaynak kodu, parametreler ve deney ayarlarıyla üretildiğini gösterir.Git commit kimliği
Değerlendirme sonuçlarıYüklenen dosyanın beklenen model olup olmadığını kontrol etmeye yardım eder.F1, ROC-AUC, MAE ve test kümesi kimliği
Tablodaki bilgilerin bir bölümü doğrudan model nesnesinin içinde bulunabilir; ancak buna güvenmeyin. Örneğin bir Pipeline ön işleme adımlarını taşıyabilir, fakat eğitim verisinin hangi tarihte veya hangi sorguyla oluşturulduğunu, kaynak kodun hangi commit'inden geldiğini ya da üretimde hangi özellik sözleşmesinin kullanılacağını tek başına açıklamayabilir.

Modeli ve üstveriyi birlikte saklama​


Ön koşul olarak eğitim sırasında kullanılacak tüm dönüşümleri tek bir Pipeline içine alın. Ölçekleyici, eksik değer doldurucu veya kategorik kodlayıcı ayrı dosyalara bölünürse yükleme sırasında yanlış sırada uygulanmaları kolaylaşır.
  1. Ön işleme ve modeli tek bir Pipeline içinde oluşturun. Eğitimde uygulanan dönüşümlerin tahmin sırasında da aynı sırayla çalışması için örneğin StandardScaler ve sınıflandırıcıyı aynı nesnede tutun.
  2. Modeli serileştirin. Örneğin joblib veya Python serileştirme tabanlı bir yöntem kullanıyorsanız dosya adında model adı ve sürümünü belirtin; model_v2026_11_08.joblib gibi bir ad yalnızca örnektir.
  3. Uyum bilgilerini ayrı bir üstveri dosyasına yazın. Python, scikit-learn, NumPy, pandas ve SciPy sürümlerini; platformu; özellik adlarını ve sırasını; veri kümesi kimliğini; eğitim parametrelerini; kod commit kimliğini ve değerlendirme ölçütlerini ekleyin.
  4. Özellik sözleşmesini model yüklemeden önce doğrulayın. Gelen verinin sütun adları, sırası, veri tipleri, eksik değer kuralları ve kategorik değerleri kayıtlı şemayla eşleşmiyorsa tahmin çalıştırmayın; veriyi dönüştürün veya modelin yeni veriyle yeniden eğitilmesini değerlendirin.
  5. Temiz bir ortamda yükleme testi yapın. Kaydedilmiş dosyayı, üstveride belirtilen bağımlılık sürümleriyle kurulmuş izole ortamda açın; küçük ve bilinen bir doğrulama girdisi için beklenen çıktı biçimini ve kabul edilebilir sayısal sonucu kontrol edin.
Varsayımsal bir üstveri kaydı şu yapıda olabilir:

JSON:
{
  "python": "3.11.9",
  "packages": {
    "scikit-learn": "1.x.y",
    "numpy": "2.x.y",
    "pandas": "2.x.y",
    "scipy": "1.x.y"
  },
  "platform": "Linux x86_64",
  "feature_order": ["age", "income", "tenure_months"],
  "feature_dtypes": {
    "age": "float64",
    "income": "float64",
    "tenure_months": "int64"
  },
  "dataset_id": "customer_train_2026_10",
  "target_definition": "churn in the next 30 days",
  "random_state": 42,
  "code_commit": "abc1234",
  "metrics": {
    "roc_auc": 0.87,
    "f1": 0.76
  }
}

Bu kayıt, modelin gerçekten doğru model olduğunu kanıtlamaz; yalnızca modelin nasıl üretildiğini ve hangi koşullarda çalışmasının beklendiğini açıklamaya yardım eder. random_state değerini kaydetmek de her zaman tamamen aynı sonucu garanti etmez. Donanım, çok iş parçacıklı hesaplama, kitaplık uygulaması ve sayısal işlemler farklılık oluşturabilir. Bu nedenle yalnızca rastgelelik değerini değil, sabit bir doğrulama girdisiyle beklenen çıktı aralığını da saklayın.

Yükleme güvenliği ve uyumluluk kontrolü​


Serileştirilmiş model dosyalarını güvenilmeyen kaynaklardan yüklemeyin. Python tabanlı serileştirme biçimleri dosya açılırken kod çalıştırma riski taşıyabilir; dosyanın kaynağı ve bütünlüğü doğrulanmadan üretim ortamında yükleme yapılmamalıdır. Dosyanın özetini, örneğin SHA-256 değerini, üstveriye eklemek dosyanın sonradan değiştirilip değiştirilmediğini kontrol etmeye yardımcı olur; ancak bu özet dosyanın güvenilir bir kaynaktan geldiğini tek başına kanıtlamaz.

Uyumsuzlukla karşılaşırsanız önce hata iletisindeki paket adını ve sürüm aralığını, ardından kayıtlı Python ve platform bilgilerini karşılaştırın. Sorun yalnızca sürüm farkından kaynaklanıyorsa aynı bağımlılık sürümleriyle izole ortam oluşturun. Veri sütunları veya ön işleme değişmişse eski modeli zorla çalıştırmak yerine özellik sözleşmesini düzeltin ya da modeli yeni şemayla yeniden eğitin. Model dosyası açılıyor fakat metrikler veya tahminler belirgin biçimde değişiyorsa bu, uyumluluğun kanıtı değildir; aynı doğrulama girdileri, aynı veri dönüşümleri ve kayıtlı değerlendirme kümesiyle karşılaştırma yapılmalıdır.
 

Sen de şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic
Geri
Üst