Başlarken
Temel kavramlar
Scellis'i az sayıda taşıyıcı fikir ayakta tutar: bloklar ve onları birleştiren iş akışları; kendi düzenleyicisine sahip modeller; bir indirgeme merdiveni; devraldığınız değil beyan ettiğiniz garantiler; hash ile kimlik; ve çalışma zamanı gibi davranan bir veritabanı. Bu sayfa haritadır — her fikrin biçimi ve birbirine nasıl oturdukları. Hızlı başlangıcı zaten yaptıysanız hepsine dokundunuz; burada adlarını alıyorlar, kılavuzun geri kalanı da her birine derinlemesine iniyor.
Bloklar ve iş akışları#
Blok, hesaplamanın kanonik, sürümlü birimidir. Bir kod parçası değil, bir sözleşmedir — beyan edilmiş girdiler ve çıktılar, semantik (determinizm, tolerans, türevlenebilirlik), bir akış sözleşmesi ve yürüttüğü etkiler. Bir bloğa block_id@version biçiminde başvurursunuz ve bu eşleşme değişmezdir: yayımlanmış sürümler bir arada yaşar, anlamsal bir değişiklik eskisinin üzerinde bir düzenleme değil yeni bir sürümdür — paylaşılan iş altınızda asla kaymaz. Kimlikler de yapı taşır: block_id küresel kimlik için eğik çizgi kullanır (training/optimizer/adam), noktalı bir taksonomi ise gezinme için sınıflandırır — ve ikisi asla karışmaz.
Bir iş akışı, bloklardan oluşan tipli bir çizgedir. Kontrol akışı çizgede birinci sınıftır — döngüler, koşullar ve taramalar çizgenin yapı taşlarıdır, kaçış kapıları değil — ve iş akışları çemberi kapatır: bir iş akışı blok olarak paketlenip bir başkasının içine yerleştirilebilir. Kompozisyon işin ta kendisidir. Büyük iş, birleştirilmiş küçük iştir; ve derleyici belirsiz bir çizgeyi tahmin etmek yerine erkenden, kesin bir tanıyla reddeder.
Not
Yazdığınız her şey yerleşiklerle aynı yoldan geçer: aynı yazar denetimi onu doğrular ve çalışma zamanında ikisi yapısal olarak ayırt edilemez — motor, dispatch anında bir yerleşiği bir kullanıcı varlığından ayıramaz. Yerleşikler değişmezdir; birini “düzenlemek”, kendi birinci sınıf kopyanızı fork etmek demektir. Bu iddia — ve yazmanın neler gerektirdiği — uzantı oluşturmadır.
Modeller ve Model View#
Bir model kendi başına bir varlıktır; kendi düzenleyicisi vardır. Onu Model View'da açar ve katman katman düzenlersiniz — üç eşzamanlı görünümde: üzerine çizdiğiniz bir çizge, doldurduğunuz bir form ve yazdığınız kod — hepsi altta yatan tek bir modelin izdüşümü. Birinde değiştirirsiniz, diğerleri izler; doğrulama canlı çalışır, öyle ki tutarsız bir mimari çalışma zamanında değil, siz kurarken yakalanır.
En önemlisi: eğitim hattı modelin üzerinde yapılandırılır ve modelle birlikte yolculuk eder. Optimizer, zamanlayıcı, kayıp, karma hassasiyet ve hatta federasyon düzeni tek bir yerde yaşar. Modeli paylaştığınızda eğitim düzeni de onunla gelir — birinin göndermeyi unuttuğu ayrı bir yapıt olarak değil.
IR merdiveni#
Çizilmiş bir çizge, çizildiği gibi çalışmaz. İncelenebilir, sürümlü basamaklardan oluşan bir merdivenden iner — iş akışı çizgesinden, otomatik türev ve bellek planlaması taşıyan tensör düzeyinde bir temsile, oradan GPU dispatch'lerine ve iş dağıtıldığında eşler arası bir plana. Her basamak incelenebilir: gerçekte neyin yürütüleceğini bilmek istediğinizde bakabilirsiniz — hem de her düzeyde. Bir çalıştırmayı bir güven sıçraması olmaktan çıkarıp yeniden üretilebilir, bütçelenebilir ve hata ayıklanabilir kılan tam da budur — mekanik, WebGPU ve IRdır.
Bir sonuç kendi cümlesini hak eder: arayüz durumu asla programın kendisi değildir. Program kanoniktir ve içerik adreslidir; tuval yalnızca onun bir görünümüdür. Çalışan şey programdır — resim değil. Bir bağlantının ekran görüntüsü değil de bir sonuç taşıyabilmesinin nedeni tam olarak budur.
Beyan edilir, asla varsayılmaz#
Her bloğun içinden iki garanti geçer; ikisi de varsayılmaz. Önce etkiler: bloklar varsayılan olarak saftır. Kendi hesaplamasının dışına uzanan bir blok — ağ, dosya sistemi, gizli anahtarlar, bir eş — bu etkiyi beyan etmek zorundadır. Bilinmeyen etkiler varsayılan olarak reddedilir; beyan edilenler onaya bağlıdır ve köken kaydına işlenir, üstelik etkiler bir çağrı kapanışı boyunca geçişlidir — yani “saf” bir fonksiyon, ağ etkisi taşıyan bir başkasını sessizce çağıramaz. Neyin kısıtlandığına tam olarak dikkat edin: ifade gücü asla — yalnızca etkiler.
Sonra determinizm — beyan edilir, asla varsayılan atanmaz. Her hesaplama üç kademeden birini adlandırır:
debug— aynı tohumla, aynı cihazda bit düzeyinde özdeş sonuçlar.prod— beyan edilmiş bir tolerans sınıfı içinde uyuşma.fast— güvenli olduğu beyan edilen yerde tam olarak nondeterminizm.
Kademe uçtan uca taşınır ve köken kaydına işlenir. Eksik bir kademe sessiz bir varsayılan almaz; derleme yüksek sesle başarısız olur. Hangi garantiyi aldığınızı her zaman bilirsiniz — ve hiçbirini kazara kaybetmezsiniz.
Kimlik bir hash'tir; veritabanı çalışma zamanıdır#
İçerik SHA-256 ile adreslenir: commit'lenmiş sürümler değişmezdir ve önbellekler okurken döndürdüklerini doğrular. Canlı bir ortak çalışma oturumu asla hash'lenmez — atıf yapılabilir olan yalnızca commit'lenmiş bir sürümdür. “URL ile yeniden üretilebilir” bu yüzden tam olarak söylediği şeydir: bağlantı, birebir aynı commit'lenmiş yapıtlara, onları yürüten motor sürümüne ve altında koştukları determinizm kademesine yeniden çözümlenir. Bu, platformun tamamındaki yeniden üretilebilirliğin belkemiğidir.
Ve veritabanı çalışma zamanıdır. Statik katalog dosyası yoktur: her blok, model ve görüntüleyici veritabanından gelir, yerelde önbelleğe alınır, bellek içi registry'ler ise ondan yeniden kurulan önbelleklerdir — gezindiğiniz Catalog, tam olarak yayımlanmış olan şeydir; tek yol, bayat kopya yok. Büyük ölçekte içerik talep üzerine getirilir ve kullanımla sabitlenir — bir köşesini kullanmak için koca bir evreni indirmezsiniz. Yerel önceliğin öteki yüzü, çemberi kapatan sözdür: bir iş akışının bağımlılık kapanışı siz kaydetmeden önce sabitlenir, böylece kaydettiğiniz şey her zaman çevrimdışı çalışır — ve çevrimdışı bir eksik, sessizce ikame etmek yerine adıyla, yüksek sesle başarısız olur.
İşi gruplamanın beş yolu#
İş paylaşılır paylaşılmaz beş gruplama kavramı belirir — ve her biri tam olarak tek bir soruyu yanıtlar. Bilinçli olarak birbirinin yerine geçmezler ve platform hiçbirinin bir komşusunun işine kaymasına izin vermez.
| Kavram | Eksen | Nedir |
|---|---|---|
| Pack | dağıtır | kapalı bağımlılık graflı, imzalı, sürümlü bir paket |
| Listing | satar | bir yayını fiyatlandıran ticaret kaydı (yapıt ticarete kör kalır) |
| Workspace | yönetir | bir ekibin rolleri, politikaları ve denetim kapsamı |
| Repository | seçip düzenler | adlandırılmış, sürümü sabitlenmiş bir varlık rafı |
| Pool | hesaplar | tek bir Job'ı çalıştıran eşler kohortu |
Kavram başına tek eksen — hiçbiri komşusunun sorusunu devralmaz. Hangi soruyu sorduğunuzu bildiğinizde — dağıtmak, satmak, yönetmek, seçip düzenlemek ya da hesaplamak — hangi kavrama ihtiyacınız olduğunu da bilirsiniz. İkisi, Workspace ve Repository, tekil çalışmanın paylaşılan çalışmaya dönüştüğü yerdir; bu geçiş workspace'ler ve repository'lerdir. Haritanın tamamı bu; kılavuzun geri kalanı bu haritayı adımlar.