Geliştirme
Yeniden üretilebilirlik
Yeniden kuramadığınız bir sonuç, bir anekdottur. Scellis yeniden üretilebilirliği kişisel bir alışkanlık olarak değil, mimarinin bir özelliği olarak ele alır: kimlik bir hash'tir, bir çalıştırma bir köken kaydıdır, determinizm beyan ettiğiniz bir kademedir ve geçmiş asla yok edilmez. Aynı kararlılıkla platform, her garantinin ne anlama geldiği konusunda da nettir — daha güçlüsünü ima etmek yerine elinizdekinin adını koyar. Bu sayfa mekanizmayı aşağıdan yukarıya dolaşır: içerik adreslemeden “URL ile yeniden üretilebilir” sözünün tam karşılığına — ve bir sonucu alıntılanabilir kılmak için adım adım ne yaptığınıza.
Kimlik bir hash'tir#
İş akışları, modeller, veri kümeleri ve çalıştırmalar içerik adreslidir: commit'lenmiş bir sürümün kimliği, baytlarının SHA-256 hash'idir ve o baytlar asla değişemez — bir kural gereği değil, aritmetik gereği; çünkü farklı baytlar farklı bir hash demektir. Önbellekler de aynı kurala uyar: bir yapıt yerel depodan okunduğunda, baytları taşıdığını iddia ettiği hash'e karşı doğrulanır. Başarısız bir doğrulama sapma diye geçiştirilmez; bozulmadır ve yapıt yeniden indirilir. Bir hash'in adlandırdığı şey, tam olarak elinize geçen şeydir.
Veri, bir kat daha derinde#
Aynı disiplin veriyi de kapsar — çoğu aracın durduğu yerin bir kat altında. Veri kümesi sürümleri içerik adreslidir: aynı veri aynı hash'i üretir. Eğitim/doğrulama/test bölmeleri de kendi başlarına sürümlü, içerik adresli yapıtlardır: bir sonucun arkasındaki kesin bölümleme hash'iyle kayıtlıdır ve yeniden çözümlenebilir — yarım yamalak hatırlanan bir alışkanlık değil, alıntıladığınız bir yapıt. Bir model “test kümesinde” değerlendirildiyse, kayıt o kümenin tam olarak hangi baytlar olduğunu söyler.
Bir çalıştırma kendi kökenini yazar#
Her çalıştırma, olan bitenin tam kimliğini kaydeder — çalışan programı, motorun onu indirgediği planları, okuduğu veriyi, yüklediği ve ürettiği kontrol noktalarını, yazdığı yapıtları, yürüten motoru ve altında çalıştığı determinizm kademesini. Açık yazıldığında kayıt şöyle görünür:
run 812 — committed
program sha256:9f2c41ac… the exact graph that ran
block_ir sha256:52aa07c1… the lowered program
exec_plan sha256:cc90e4b2… dispatches + memory plan
dataset sha256:d41c66f8… a version, never a path
split sha256:5a01d9e3… train/val/test partition
checkpoint sha256:8be29a44… weights · optimizer · RNG state
artifacts sha256:77aa1b0d… metrics table, figures
engine 1.4.2 the engine that produced it
tier prod determinism, declared
seed 42 counter-based RNGHer girdi bir hash olduğu için kayıt, soruları iki yönde de yanıtlar. “Bu yapıtı ne üretti?” bir çıktıdan geriye, arkasındaki kesin programa, veriye ve motora yürür. “Bu modeli hangi veri eğitti?” veri kümesi sürümlerinden ileriye, kontrol noktalarına yürür. Deney takibi kendiliğinden ortaya çıkar: bir deney yalnızca kökendir — çalıştırmalar artı değişmez programlar artı veri kümesi sürümleri artı kontrol noktaları — ve karşılaştırmalar, oturumlar arasında kalıcı bu kayıtlar üzerinden türetilmiş görünümlerdir. Kontrol noktalarının kendisinin nasıl üretildiği tarayıcıda eğitim sayfasında.
Determinizm beyan edilir, asla varsayılana düşmez#
Bit düzeyinde determinizm verime mal olur; bu yüzden Scellis onu sizin yerinize asla sessizce seçmez — ve sessizce elinizden de almaz. Her hesaplama determinizm kademesini beyan eder; eksik bir kademe, sessiz bir varsayılana düşmek yerine derlemeyi yüksek sesle durdurur.
| Kademe | Garanti |
|---|---|
| debug | Aynı tohumla, aynı cihazda, çalıştırmalar arasında bit düzeyinde özdeş. Deterministik çekirdekler — gerçek bir verim maliyeti, bilinçli seçilir. |
| prod | Beyan edilen bir tolerans sınıfı içinde deterministik. |
| fast | Yalnızca güvenli olduğu beyan edilen yerlerde determinizmden sapmaya izin verilir. |
Rastgelelik de yeniden oynatma için tasarlanmıştır: çekilişler sayaç tabanlı bir RNG'den gelir; bir tohum kendi dizisini birebir yeniden üretir — dropout, karıştırma ve veri artırma için adlandırılmış alt akışlarla. RNG durumu her kontrol noktasının içinde yolculuk eder; bir kontrol noktasından devam ettirilen eğitim, hiç durmamış olsaydı üreteceği rastgele diziyi tam olarak sürdürür.
“URL ile yeniden üretilebilir” tam olarak ne vaat eder#
Bu ifadenin kesin bir anlamı vardır — ve asıl mesele bu kesinliktir. Commit'lenmiş bir Scellis bağlantısı, birebir aynı commit'lenmiş yapıtları yeniden çözer — aynı baytlar, aynı program, aynı girdiler — yanında kayıtlı motor sürümü ve determinizm kademesiyle. Bu kısım koşulsuzdur: her cihazda geçerlidir ve dakikalar içinde baştan sona kendiniz deneyebilirsiniz.
Yeniden yürütme daha güçlü bir iddiadır ve koşulludur — platform bu yüzden onu iki kademeyle adlandırır. Bir çalıştırma, bit düzeyinde birebir yeniden yürütülebiliyorsa replayable sayılır: aynı cihazda debug kademesi ya da her yerde CPU referans yolu. Yeniden yürütme, beyan edilen tolerans sınıfı içinde uyuşuyorsa convergent sayılır — farklı GPU'lar arasındaki olağan durum; çünkü kayan nokta donanımı gerçekten farklıdır. Rastgele GPU'lar arasında bit eşitliği vaat eden bir platform, doğrulayamayacağı bir şeyi vaat ediyor olurdu; Scellis bunun yerine sınıfın adını koyar.
Not
Scellis, daha güçlüsünü ima etmek yerine hangi garantiyi aldığınızın adını koyar: “aynı baytlar, aynı program, aynı girdiler, kayıtlı motor ve kademe” commit'lenmiş her bağlantı için her zaman doğrudur; “çıktıda aynı bitler” ise tam olarak beyan edilen kademenin söylediği yerde doğrudur.
Taslaklar değişir; commit'ler belgeler#
Canlı bir ortak çalışma oturumu asla hash'lenmez — orası şeylerin değiştiği bir yerdir ve hareketli bir hedefin hash'i sahte bir sertifika basmak olurdu. Alıntılanabilir yapıtı basan eylem commit'tir: o andan itibaren sürüm değişmezdir, adreslenebilirdir ve bağlantılanabilirdir. Canlı birlikte çalışın; commit'i alıntılayın. Bu ayrım bilinçlidir ve platformun tamamı boyunca işler.
Paylaşım yalnızca tarifleri değil, sonuçları da kapsar. Tamamlanmış bir çalıştırmanın çıktıları — metrikler, şekiller — kalıcı, giriş gerektirmeyen, alıntılanabilir bir anlık görüntü URL'i olarak paylaşılabilir: bağlantıyı açan herkes, birebir aynı commit'lenmiş yapıtları — köken kaydı da yanında — yeniden çözer. Aynı commit'lenmiş anlık görüntü, sertleştirilmiş bir gömülü görünümde salt-okunur olarak da açılır; bir makale eki ya da README, ekran görüntüsü yerine yaşayan sonucu taşır.
Literatür gibi alıntılayın#
Alıntı iki yönde de birinci sınıftır: varlıklar içe alıntı taşır ve commit'lenmiş her varlık ya da çalıştırma dışa kanonik bir alıntı kaydı yansıtır — yazar adı, isim, sürüm, içerik hash'i, motor sürümü, anlık görüntü URL'i — “Cite this” bağlantısından BibTeX, CFF ya da CSL olarak:
@misc{ada_2026_robust_scaler,
author = {ada},
title = {robust-scaler (version 3)},
year = {2026},
note = {content hash sha256:9f2c41ac… · engine 1.4.2 · tier prod},
howpublished = {Scellis snapshot URL — resolves the committed bytes}
}Kayıt, commit'lenmiş baytları alıntılar; alıntı, alıntıladığı şeyden uzaklaşamaz.
Geçmiş de motor da döngüyü kapatır#
Her doküman, içinde gezinebileceğiniz bir commit geçmişi taşır ve herhangi iki commit arasında fark alınabilir — model mimarileri dahil; çünkü model grafları içerik adreslidir ve diğer her şey gibi diff'lenir. Geri yükleme geçmişi asla yeniden yazmaz: önceki bir sürüme dönmek, geçmişin üstüne yeni bir commit olarak işlenir. Hiçbir şey asla yok edilmez.
Motor döngüyü kapatır. Çalıştırmalar kendilerini üreten engine_version değerini sabitler; içerik ihtiyaç duyduğu motor özelliklerini bildirir; ve bir içeriği karşılayamayan motor yüksek sesle reddeder — “daha yeni bir Scellis gerekir” tanısıyla, asla sessiz bir yaklaştırmayla değil. Her motor değişikliğinde, eski işlerden oluşan dondurulmuş bir derlem yeniden çalıştırılır; böylece bir güncelleme eski sayıları sessizce değiştiremez — işinizin bizim sürümlerimizden uzun yaşamasını sağlayan disiplinin ta kendisi. Dünün sonucu, dünün sonucu olarak kalır.