ML araştırması için GPU · KYC'siz kripto ödeme
IteraGPU
Yöntem · Deney izlenebilirliği

Her sonucun arkasındaki kanıtı bulmak.

Bir ML deneyi, bir sonucu onu gerekçelendiren çalıştırmalara, verilere ve dosyalara bağlayabildiğinizde izlenebilirdir. Her denemeye bir tanımlayıcı verin, geçerli bir manifesto saklayın ve metrikleri değerlendirilen tahminlerle eşleştirin. Amaç günlük biriktirmek değildir: dosyanın başka bir okuması, ne yapıldığını, neyin başarısız olduğunu ve bir varyantın neden seçildiğini bulmayı sağlamalıdır.

01 /

Kampanyayı, yapılandırmayı ve çalıştırmayı ayırt edin

Bir kampanya bir soruyu taşır, örneğin bir referansı bir uyarlamayla karşılaştırmak. Bir yapılandırma teknik seçimleri tanımlar. Bir run, bu yapılandırmanın yürütülmesine yönelik bir deneme olup bir tohum (seed), bir başlangıç, bir bitiş ve bir duruma sahiptir. Dolayısıyla iki özdeş deneme iki tanımlayıcı tutar; ikincisi kesintiye uğramış bir denemenin yerini alsa bile.

Aynı artefakt birden çok veri kümesinde veya yeni bir metrikle değerlendirildiğinde bir değerlendirme tanımlayıcısı ekleyin. Bu, yeni bir modeli mevcut modelin yeni bir okumasıyla karıştırmayı önler. Devam denemesini kendisinden öncekine ve yüklenen checkpoint'e bağlayın.

MLflow da takibi run'lar, parametreler, metrikler ve artefaktlar etrafında düzenler. Bu ayrım basit bir dosya klasöründe bile yararlıdır. Bunu alıştığınız araçla uygulayabilirsiniz; başlamak için belirli bir takip platformu gerekmez.

Teknik kaynaklar: MLflow — run'lar, parametreler, metrikler ve artefaktlar

02 /

Gerçekte yürütülen manifestoyu yazın

Varsayılan değerler ve başlatma argümanları uygulandıktan sonra çözümlenmiş parametreleri saklayın. Özgün yapılandırma dosyası varsayılan bir batch'i veya çalıştırma sırasında değiştirilen bir seçeneği atlayabilir. Gerçekte kullanılanı, kodun bir kopyası veya değişmez bir revizyonla ve kaydedilmemiş değişikliklerin durumuyla birlikte kaydedin.

Manifesto ayrıca model ve tokenizer sürümlerini, yazılım ortamını, gerçekte kullanılan GPU'yu, hassasiyeti, verileri, seed'leri ve metrik tanımını ilişkilendirir. Denemeyi betimler, bir kurulum öğreticisine dönüşmez. Birimleri yazın: ölçüme göre saniye, bayt, token, puan veya 0'dan 1'e oran.

Başlangıçta durum devam ediyor'dur; sonunda gözlemlediğinize göre tamamlandı, başarısız veya kesildi olur. Unutulmuş bir sürümü sonradan hâlihazırda kurulu olanla tamamlamayın. Bilinmeyen bilgiyi işaretleyin ve ona bağlı sonucu sınırlayın.

Kullanılabilir bir denemenin asgari manifestosu
BlokSaklanacak öğelerYanıtlanan soru
Kimlikcampaign_id, config_id, run_id, olası parent_run_idBu sonucu hangi deneme üretiyor?
Kod ve modelTam revizyonlar, yerel değişiklikler, temel model ve tokenizerGerçekte hangi hesaplama başlatıldı?
VerilerSürüm, split, ön işleme, tanımlayıcılar ve ilgili sıraHangi girdiler üzerinde?
ParametrelerEtkin değerler, seed'ler ve birimlerHangi ayarlarla?
DeğerlendirmeDeğerlendirilen artefakt, metrik/sürüm, eşik ve popülasyonPuan ne anlama geliyor?
KapanışDurum, hata, üretilen dosyalar ve kararDeneme kullanılabilir mi?
03 /

Verileri bir klasör adının ötesinde tanımlayın

donnees/final gibi bir yol istikrarlı bir sürümü belirtmez. Dosyaların veya örneklerin envanterini, split'leri ve dönüştürme prosedürünü saklayın. Etiketleri düzeltir veya satırları filtrelerken yeni bir sürüm oluşturun ve öncekiyle ilişkisini koruyun. Eski puan, eski verilerine işaret etmeye devam etmelidir.

Hugging Face Datasets, önbelleği yönetmek için bir veri kümesinin durumuna ve dönüşümlerine parmak izleri (fingerprint) atar. Bu mekanizma yararlıdır, ancak verilerin kökenini ve ön işlemeyi de saklamak gerekir. Özellikle hash'lenemeyen bir dönüşüm rastgele bir parmak izine yol açabilir: önbellek tanımlayıcısı tek başına köken klasörünüzün yerini almaz.

Sabitlenmiş artefaktlar için boyut ve dosya parmak izi ekleyin. Bir kopyalamadan önce ve sonra hesaplanan bir SHA-256 özeti, baytların saklanan referansa karşılık geldiğini doğrulamayı sağlar. Etiketlerin kalitesini, kullanım haklarını veya split'ler arasında sızıntı olmadığını kanıtlamaz.

Teknik kaynaklar: Hugging Face Datasets — parmak izleri ve dönüşümler · Python 3.14 — hashlib ile dosya parmak izleri

04 /

Metrikleri, tahminleri ve artefaktları ilişkilendirin

Bir metrik satırı; run'ı, değerlendirilen artefaktı, değerlendirme kümesini, metriğin sürümünü ve kapsamını tanımlamalıdır. Değerin bir ara checkpoint'e mi, nihai modele mi yoksa bir alt gruba mı ait olduğunu belirtin. Hangi dosyanın seçilen noktaya karşılık geldiği artık bilinmiyorsa tek bir eğri yeterli olmaz.

Tahminleri giriş kimlikleri, durumları ve değerlendirme için gerekli bilgilerle birlikte saklayın. Beklenen referanslar sürümlenmiş ayrı bir dosyada kalabilir. Yapılandırılmış bir çıktı için ham sonuç, ayrıştırılmış sonuç ve karar arasında ayrım yapın: ayrıştırmayı düzeltmek ilk çıktının üzerine yazmamalıdır.

MLflow, metrikleri modellere ve verilere bağlamayı sağlar. Dosyalarla çalışırken aynı ilkeyi açık kimliklerle uygulayın. Artefaktların okunabilir bir envanterini tutun: ağırlık veya adaptör, üretim parametreleri, çıktılar, değerlendirme raporu ve karar notu. Bir ekran görüntüsünün bu dosyaların yerini tuttuğunu varsaymayın.

Teknik kaynaklar: MLflow — metrikleri, modelleri ve veri kümelerini birbirine bağlama

05 /

Örnek: altı run ve bir eksiği gizleyen bir yinelenen kayıt

İki konfigürasyon ve üç tohum içeren bir sınıflandırma örneği ele alalım. Bu, planlanan altı run üretir. Her biri aynı 300 değerlendirme kimliğini tahmin etmelidir: eksiksiz klasörde dolayısıyla 6 × 300 = 1.800 benzersiz (run_id, input_id) çifti beklenir. Bu hesaplama, gerçekten yürütülmüş bir deneyi değil, beklenen bir envanteri tanımlar.

Bir dosyanın 300 satır içerdiğini, ancak doc-042 kimliğinin iki kez geçtiğini ve doc-117'nin eksik olduğunu varsayalım. Toplam satır sayısı doğru görünür; oysa yalnızca 299 benzersiz kimlik vardır. Bu run, anormallik açıklanıp düzeltilene kadar kapsam kontrolünden geçemez.

Her run daha sonra hem tam korpus hem de uzun metinlerden oluşan alt grubu üzerinde değerlendirilirse, belirli bir metrik için on iki metrik satırı elde edersiniz. Bu yine altı run'dır, on iki bağımsız eğitim değil. Değerlendirme anahtarı bu ayrımı korumak için kapsamı içermelidir.

Envanter kontrolüne dair açıklayıcı örnek — hesaplanan sayılar, gözlemlenmemiş
KontrolBeklenenAçıklayıcı anormallik
Run'lar2 konfigürasyon × 3 tohum = 6Yeniden başlatılan bir çalışma yeni bir kimlik alır
Run başına tahminler300 benzersiz kimlik beklenir300 satır ama yalnızca 299 benzersiz kimlik
Run/giriş çiftleri6 × 300 = 1 800Tek başına genel sayım tüm yinelenenleri tespit etmez
Değerlendirmeler6 run × 2 kapsam = 12On iki skor, on iki run yaratmaz
06 /

Dosyayı okunabilir bir kararla kapatmak

Bir run'ı tamamlandı ilan etmeden önce dosyaların varlığını ve açılabilirliğini, kimliklerin eşleşmesini, metriklerin yeniden hesaplanabilirliğini ve her hatanın durumunu kontrol edin. Teknik olarak tamamlanmış bir deneme, yetersiz kalite nedeniyle yine de reddedilmiş kalabilir. Bu iki durumu birbirinden ayrı tutun.

Karar notu; soruyu, karşılaştırılan varyantları, önceden belirtilen ölçütü, seçilen sonuçları ve dışlama gerekçelerini bir araya getirir. « Son model » yerine run_id'leri ve artefakt yollarını belirtin. Sınırlamaları ekleyin: az sayıda tekrar, yetersiz alt grup, bulunamayan sürüm veya imkânsız hale gelen karşılaştırma.

Sonraki bir düzeltme iz bırakmalıdır: yeni değerlendirme, yeni rapor ve değişikliğin gerekçesi. Eski sonucu tanımlanmış bir tarihsel sürüm olarak saklayın, güncel karar olarak görünmesine izin vermeyin. Son olarak, dışa aktarılan kopyanın hedef klasöründen açıldığını doğrulayın.

07 /

Gereksiz veri toplamaktan ve yeniden üretilebilirlik vaatlerinden kaçınmak

Tüm ortam değişkenlerini veya terminal geçmişini değil, kanıt için gerekli alanları toplayın. Bir konfigürasyon veya URL bir jeton içerebilir; sırlar içermeyen paylaşılabilir bir sürüm hazırlayın ve özel kalması gereken verileri izin verilen konumlarında tutun. Teknik deneme kimliklerinin bir kişi adı içermesine gerek yoktur.

Eksiksiz bir klasör, bir deneyi yeniden yapma ve anlama olasılığını artırır. Platformlar veya sürümler arasında sayısal eşitliği garanti etmez: PyTorch bu yeniden üretilebilirlik sınırlarını belgeler. Protokolü yeniden bulmayı, artefaktı yeniden yüklemeyi ve sayıları tam olarak yeniden üretmeyi birbirinden ayırın.

IteraGPU defteri; hedeflerinizi, parametrelerinizi ve kararlarınızı faydalı referanslarla birlikte saklayabilir. Run'ları başlatmaz, dosyaları veya telemetriyi otomatik olarak toplamaz. Bunu muhakemenizin dizini olarak kullanın ve artefakt klasörünü kendi yedeklerinizde saklayın.

Teknik kaynaklar: PyTorch 2.14 — ortamlar arası yeniden üretilebilirlik sınırları

Pratik sorular

Bir deneyi bulmak için tek bir Git commit yeterli mi?

Bir commit kodun bir sürümünü tanımlar, ancak verileri, ağırlıkları, etkin parametreleri veya kaydedilmemiş değişiklikleri mutlaka tanımlamaz. Onu bir manifest ve üretilen yapıtlarla ilişkilendirin. Bu bağlantılar olmadan, aynı commit'in iki çalıştırması farklı deneylere karşılık gelebilir.

Tüm tahminler saklanmalı mı?

Sonuçları doğrulamak ve değerlendirmeyi yeniden hesaplamak için gereken çıktıları, haklarınız ve saklama kısıtlarınız ölçüsünde saklayın. Sınırlı bir karşılaştırma derlemi için tanımlayıcılar ve tam tahminler hataları denetlenebilir kılar. Tek başına toplu bir skor genellikle eksik örnekleri bulmayı sağlamaz.

Bir devam çalıştırması aynı run_id'yi kullanmalı mı?

Önerilen şema her denemeye yeni bir tanımlayıcı verir ve devam çalıştırmasını önceki run'a ve yüklenen checkpoint'e bağlar. Bu denemeleri tek bir mantıksal deney altında gruplayabilirsiniz. Bu ayrım, kesintiyi, maliyetleri ve her adımda gerçekten üretilen dosyaları görünür kılar.