Repository navigation
feature(ai): A03 & A04 — Zaman/Varlık Bazlı Veri Ayrımı, Sayısal Model Eğitimi ve Kalıcı İş Kuyruğu - #47
Merged
Conversation
… kalici is kuyrugunu eklendi
Firatasi
commented
Oct 24, 2026
Firatasi
left a comment
Owner
Author
There was a problem hiding this comment.
🔍 Code Review Değerlendirmesi: ONAYLANDI (LGTM)
Zaman/varlık ayrımı (A03), sayısal model eğitimi ve kalıcı iş kuyruğu (A04) incelendi:
- Veri Sızıntısı (Leakage) Önlemleri:
forward_labeliçinde eksik gözlemlerde forward-fill yapılmaması,split_paneliçindelabel_endtaşmalarınınpurgedolarak ayrılması veunseen_familiesizolasyonu finansal ML standartlarına tam uyumlu. - Güvenli Model Serileştirme ve Depolama:
picklekullanılmadanridge-json-v1formatında scaler (mean,scale) ve model katsayılarının birlikte saklanması,ArtifactStoreiçindeki atomik yazım (fsync+os.replace) ve SHA-256 doğrulaması güvenliği garanti altına almış. - Dağıtık İş Kuyruğu:
FOR UPDATE SKIP LOCKED,worker_tokenfencing vecancel_requestedkontrolleri yarış durumlarını kapatmış.
Testler ve kabul kriterleri eksiksiz sağlandığı için develop branch'ine birleştirilmeye uygundur.
🛡️ Otomatik Kod ve Güvenlik İncelemesi
|
🛡️ Otomatik Kod ve Güvenlik İncelemesi
|
🛡️ Otomatik Kod ve Güvenlik İncelemesi
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📌 Özet
Bu PR, AI katmanında gelecekten veri sızıntısını (data leakage) önleyen zaman ve varlık ailesi tabanlı panel bölme yapısını (
A03) ve güvenli JSON model serileştirmesi (ridge-json-v1), içerik adresliArtifactStoreile PostgreSQLSKIP LOCKED/ lease tabanlı eğitim iş kuyruğunu (A04) devreye alır.🛠️ Yapılan Değişiklikler
app/datasets/splits.py,build_numeric.py- A03):t + horizongözlemi olmadığında ileri doldurma (forward-fill) yapmadan örneği dışlayanforward_label(log(P(t+h)/P(t))) yazıldı.validation_start < test_start < test_end) çalışansplit_paneleklendi; hedef aralığı (label_end) sonraki kesime taşan satırlarpurgedkümesine ayrıldı.unseen_families) eğitim ve doğrulama aşamalarından tamamen izole edilerek yalnızcaunseen_testkümesine yönlendirildi.app/training/numeric.py,run_numeric.py- A04):StandardScalerveRidgepipeline'ı yalnızcatrainkümesi üzerinde fit edildi;validationkümesi sadece değerlendirme (validationMAEvszeroReturnBaselineMAE) için kullanıldı.pickleyerinemean,scale,coef,intercept,volatilityEstimate,domainMin/domainMaxvefeatureSchemaHashtaşıyan deterministikridge-json-v1formatı oluşturuldu.app/infrastructure/artifacts.py):sha256özet doğrulamalı,tempfile+os.fsync+os.replaceile atomik yazan, symlink/path traversal engelli ve 32 MiB okuma sınırlıArtifactStoreeklendi.migrations/001_model_db.sql,app/infrastructure/jobs.py):model_dbüzerindetraining_runs,idempotency_records,outbox,inbox,dataset_manifests,dataset_splits,model_versions,model_bundles,model_aliases,evaluation_results,promotion_auditveinference_logstabloları oluşturuldu.pg_advisory_xact_lockdestekli idempotentenqueue,FOR UPDATE SKIP LOCKED+worker_tokenfencing ile çalışanclaim,heartbeat(LEASE_LOSTkorumalı) vecancel_requestedduyarlıfinishakışı yazıldı.🧪 Test ve Doğrulama Kanıtları
.\.venv\Scripts\python.exe -m pytest tests -q-> Tüm split, purge, unseen family, scaler leakage, JSON model reload ve job yaşam döngüsü testleri başarıyla geçti.validation_start/test_start) hemen önceki uzun ufuklu örneklerinpurgedlistesine düştüğü veunseen_familiesörneklerinintrainscaler parametrelerini etkilemediği doğrulandı.trainüzerinde fit edilenmeanvescaledeğerlerinin sabit kaldığı kanıtlandı.ridge-json-v1modelinin yeniden yüklendiğindesklearnpipeline ile aynı tahmini ürettiği, bozuk hash veya yanlış özellik sırasında reddedildiği teyit edildi.Bu PR çevrimdışı veri bölme, sayısal baseline eğitimi, artifact saklama ve iş kuyruğu altyapısını kapsar. Canlı model yükleme (serving registry loader), tahmin önbelleği, şablon/prompt açıklamaları ve Strategy servisiyle uçtan uca entegrasyon bir sonraki görevde (
A05) ele alınacaktır.