2 puan yazan flamehaven01 2025-12-22 | Henüz yorum yok. | WhatsApp'ta paylaş

Merhaba.
Bu hafta Flamehaven Tensor-Canon (v0.1.4) paylaşmak istiyorum.


PyTorch ile geliştirirken tensor shape konusu her zaman dikkat gerektirir.
Örneğin görüntü girdisi için genelde NCHW
(batch N, channel C, height H, width W) biçimi kullanılır.

Ama gerçek üretim (production) ortamında aşağıdaki sorunlar daha korkutucudur.

  • shape doğru görünür, ama veri dağılımı sessizce değişir
  • model çalışmaya devam eder, ama performans/metrikler yavaş yavaş çöker

Bu yüzden ben
yalnızca “shape kontrolü” değil, girdi dağılımının değişip değişmediğini de
hafif ve hızlı biçimde kontrol etmek için Tensor-Canon'u geliştirdim.


Mevcut araçlar zaten güçlü, ama rolleri farklı

  • Einops
    string tabanlı olarak shape'i sezgisel biçimde dönüştürme/manipüle etme
    → doğrulamadan çok işlem/dönüştürme için optimize

  • Jaxtyping
    type hint tabanlı doğrulama (IDE dostu)
    → ancak Python generic sözdizimi kolayca uzayabiliyor

  • Torchtyping
    hafif shape doğrulama
    → kapsamı çoğunlukla shape merkezli

  • Pydantic
    genel veri doğrulamanın standardı
    → tensor gibi çok boyutlu dizilerin doğrulanmasında biraz ağır ve zahmetli kalıyor


Ancak Flamehaven Tensor-Canon'da “input guardrail” yaklaşımı farklı

Tensor-Canon bir framework değil,
model input sınırında kullanılan hafif bir guardrail'dir.

  • Shape doğrulama (temel)
  • Resonance (drift tespiti)
    • MMD tabanlı dağılım değişimi tespiti
    • ağır MLOps araçları olmadan kullanım
  • Covenant DSL (string sözleşme)
    • Typing[Float, ...] gibi karmaşık type generic'ler yerine
    • "batch channels 224 224" gibi doğrudan okunabilen bir spesifikasyon
  • Dual Backend
    • ön işleme NumPy, inference ise PyTorch olarak ayrılan
      gerçek iş akışlarını tek bir sözdizimiyle korur
    • data loader'dan model input'una kadar tutarlı sözleşme uygulaması

🔹 Tensor-Canon'u sadece 3 dakikada deneyin (PyTorch)

1️⃣ Kurulum (30 saniye)

pip install flamehaven-tensor-canon  

2️⃣ Shape doğrulama (1 dakika)

import torch  
from tensor_canon import validate  
  
# Beklenen input spesifikasyonu (NCHW)  
spec = "batch channels 224 224"  
  
x = torch.randn(32, 3, 224, 224)  
  
# shape uyuşmazsa ValueError fırlatılır  
validate(x, spec, key="image_input")  
  
print("OK: shape sözleşmesi sağlandı")  

3️⃣ Dağılım (Drift) tespiti (1 dakika 30 saniye)

import torch  
from tensor_canon import TensorCanonPrime  
  
engine = TensorCanonPrime(drift_threshold=0.05)  
  
# Eğitim verisi referansını kaydet  
train = torch.randn(100, 512)  
engine.register_golden("embedding", train)  
  
# Üretim verisini kontrol et  
prod = torch.randn(10, 512) + 0.5  # ince dağılım kayması  
score = engine.check_resonance("embedding", prod)  
  
print("drift score:", score)  
  
if score > 0.05:  
    print("⚠️ drift tespit edildi")  

Hangi durumlarda faydalı

  • NumPy ön işleme → PyTorch model input pipeline'ı
  • DataLoader girdisi için sanity check
  • “shape doğru ama metrikler düşüyor” durumları
  • ağır MLOps araçlarını devreye almadan önce minimum guardrail

🔹 Dağıtım / sürüm politikası (bilgi amaçlı)

  • Doğrudan PyPI paketi olarak kurulabilir
  • GitHub release'leri tag-based olarak yönetilir
  • Yalnızca doğrulanmış tag'ler için CI içinde wheel / sdist build edilip
    GitHub Release'e eklenir
  • kararlılık ve yeniden üretilebilirlik sağlamak için
    otomatik ve sık dağıtım yerine yalnızca doğrulanmış build'leri dağıtma yaklaşımını sürdürüyoruz

Geri bildirim / issue / PR'lar memnuniyetle karşılanır

Özellikle “shape doğruydu ama üretimde yine de çöktü” gibi bir durum yaşadıysanız,
o örnek üzerinden sözleşme (DSL) kalıplarını birlikte geliştirmek isterim.

Ayrıca ⭐ yıldız vermeniz gerçekten büyük destek oluyor.
Bu proje her hafta gelen yıldızlardan güç alarak geliştiriliyor.
Deneyip beğenirseniz, destek olmak için bir yıldız bırakmanız beni çok mutlu eder!

Henüz yorum yok.

Henüz yorum yok.