Projeleriniz için GPU · KYC'siz kripto ödeme Nasıl kiralanır
Türkçe
Konsolu aç
Uygulamalı rehber / KERNODECK

Hesaplamalarınızı karşılaştırmadan önce ortamınızı yeniden oluşturun.

Yeniden üretilebilir bir ortam, dosyalardan ve bir prosedürden yeniden oluşturulabilmeli ve ardından tanımlanmış bir kontrolü geçmelidir. Kodu, bağımlılıkları, verileri, parametreleri ve sistem zincirini ayrı ayrı koruyun. Önce kurulumu, sonra hesaplamayı, en sonunda uygulamanızın çıktısını doğrulayın: bu adımlardan hiçbiri diğerinin yerini almaz.

6 dk okuma · Geliştiriciler için rehber

1. Referansı ve beklenen sonucu tanımlama

Yeniden yapmak istediğiniz şeyle başlayın: aynı kategorileri üretmek, yakın değerler elde etmek veya bir eğitim yörüngesini sürdürmek. Önemli adımlardan geçen küçük bir giriş kümesi ve geçerli bir çıktı örneği saklayın. Hatasız tamamlanan bir kurulum bu soruyu henüz yanıtlamaz.

Eğitici bir örnek ele alalım: uygulamanız tanımlanmış bir örnek için embedding üretiyor. Referans ortamda çıktıların biçimini, türünü, sonlu olmayan değerlerin bulunmadığını ve işe yarayan iş kriterini belirlemeniz gerekir. Değerleri karşılaştırıyorsanız, kullanımınıza göre gerekçelendirilmiş bir tolerans seçin. Burada evrensel bir sayısal eşik verilmemektedir.

Koda, verilere ve ağırlıklara bir revizyon atayın. « son-model » gibi bir ad, program göstermeden değişebilir. Parametreleri ve ön işlemeyi de referansa bağlayın. Bu dosya, bir farkın yazılımdan mı, girdilerden mi yoksa çalıştırma koşullarından mı kaynaklandığını bilmenizi sağlar.

Tüm sütunları görmek için tabloyu kaydırın.
Yeniden oluşturulacak ve karşılaştırılacak öğeler
ÖğeKorunacaklarYeniden oluşturma sonrası kontrol
Kod ve parametrelerRevizyon, olası değişiklikler, yapılandırmaAynı giriş noktası ve aynı seçenekler.
Veriler ve ağırlıklarSürüm veya parmak izi, kaynak ve erişim haklarıAynı örnek ve aynı beklenen içerik.
Python ve paketlerSürümler, yordam ve kurulum kaynaklarıDoğru yorumlayıcı ve tutarlı bağımlılıklar.
Sistem ve arka uçİşletim sistemi, mimari, sürücü, CUDA veya ROCmGörünür aygıt ve başarılı asgari hesaplama.
SonuçBiçim ve kabul kriterleriÖnce yapı, ardından kalite veya öngörülen tolerans.

2. Sistem zincirini Python paketlerinden ayırma

Kartı, sistemi, sürücüyü, Python'u ve kütüphaneleri birlikte doğrulayın. Sanal bir ortam Python paketlerini düzenler; sistem sürücüsünün yerini almaz. Aynı şekilde, bir imajın referansı, GPU'ya ana makinesinden gerçek erişimi tanımlamaya yetmez. Derlenmiş bir uzantı için gerekli derleme araçlarını ve kütüphanelerini kaydedin.

PyTorch dağıtımını projenizin hesaplama platformuna göre seçin. ROCm üzerinde PyTorch torch.cuda çağrılarını ve cuda adlı aygıtları yeniden kullanır: arayüz adı NVIDIA'yı tanımlamaya izin vermez. torch.version.cuda ve torch.version.hip değerlerini ayrı ayrı kaydedin. Belirli bir zincir için yazılmış bir uzantı kendi kontrolünü hak eder.

Kurulumu gerçekten mümkün kılan yordamı, paketlerin kaynağıyla birlikte saklayın. İnternette bulunan güncel bir komutu, uyumluluğunu incelemeden eski bir bağımlılık dosyasıyla karıştırmaktan kaçının. Başvurulan belgeler değişebilir; kullanılan sürümleri kendi dosyanıza yazın.

3. Kurulu dosyayı kopyalamak yerine yeniden oluşturma yazma

Seçilen Python ile yeni bir ortam oluşturun. Ardından projeyi kurmak ve çalıştırmak için açıkça onun yorumlayıcısını kullanın. Linux'ta bu örneğin .venv-rebuild/bin/python olur; Windows'ta .venv-rebuild\Scripts\python.exe. Önceden yapılmış bir etkinleştirmeye bağlı kalmanız gerekmez. Python belgeleri, bir sanal ortamın konumu değiştiğinde yeniden oluşturulması gerektiğini belirtir.

pip freeze kurulu paketlerin bir dökümünü verir, hesaplanmış bir kilitleme dosyası değil. Bunu bir gözlem olarak saklayın. Yeniden oluşturma dosyası ayrıca PyTorch varyantınız için gerekli dizinleri veya dosyaları ve uyumlu sürümleri açıkça belirtmelidir. Bir dökümün içerebileceği yolları veya URL'leri paylaşmadan önce gözden geçirin.

Aşağıdaki komutlar uyarlanacak bir Linux yeniden oluşturmasını örnekler; projenizin çalıştırılmış bir denemesi değildir. requirements-rebuild.txt dosyası, PyTorch'un doğru seçimi dahil olmak üzere ortamınızı zaten tanımlıyor olmalıdır. Onu evrensel olduğu varsayılan sürümler listesiyle değiştirmeyin.

Yeni bir ortam klasöründe önerilen yeniden oluşturma
python -m venv .venv-rebuild
.venv-rebuild/bin/python -m pip --version
.venv-rebuild/bin/python -m pip install -r requirements-rebuild.txt
.venv-rebuild/bin/python -m pip check
.venv-rebuild/bin/python -m pip freeze --all > installed-after.txt

4. Hesaplamadan önce bağımlılık sözleşmesini doğrulama

Doğru yorumlayıcıyla çalıştırılan python -m pip check, üst verilerine göre eksik veya uyumsuz kurulu bağımlılıkları arar. Çakışma olmaması, sürücünün, yerel uzantıların veya uygulamanın kalitesinin doğrulanması anlamına gelmez. Bu nedenle bu adımı kısa tutun ve bir hesaplama kontrolüne geçin.

Yeniden oluşturmayı daha katı hale getirmek için sürümleri sabitleyebilir ve izin verilen dağıtımların parmak izlerini saklayabilirsiniz. Bu karar, platformunuzla eşleşen tam listeyi sürdürmeyi gerektirir. Derlenmiş tekerlek arşivi işletim sistemine ve mimariye bağlı olabilir; iki farklı makine arasında taşınabilirlik garantisi değildir.

Embedding örneğimizde, modeli veya parametrelerini değiştirmeden önce yeniden oluşturulan envanteri referansla karşılaştırın. Bir fark kasıtlıysa bunu not edin ve yeni çalıştırmayı bir varyant olarak ele alın. Aksi halde yeniden oluşturmayı düzeltin; birden fazla katmanı aynı anda değiştirmek tanılamayı daha az kesin hale getirir.

5. Asgari kontrolden uygulamaya geçmek

Projenin yorumlayıcısında Python, PyTorch ve arka ucu belirleyin, ardından aygıtı ve küçük bir hesaplamayı doğrulayın. Beklenen GPU erişilebilir değilse bu adımı durdurun; yedek bir CPU çalıştırması karşılaştırmayı bulandırır. Kernodeck tanılaması yorumlanabilir bir rapor sunar ve gerçekten geçilen adımları ayırt eder.

Bu kontrol başarılı olduğunda küçük uygulama örneğinizi kullanın. Embedding'ler için çıktı sayısını, boyutlarını, kimliklerle eşleşmelerini ve seçilen kriteri doğrulayın. Dosyaları çıktı klasöründen yeniden yükleyin. Başarılı bir matris hesaplaması, ön işlemenin veya bir proje eklentisinin çalıştığını kanıtlamaz.

Deneme veri okuma, aktarım veya belirli bir işlem sırasında çökerse adımı ve ilk hatayı saklayın. Genel yeniden oluşturma doğru olabilir; tıkanma veri yükleyiciye veya belirli bir operatöre ait olabilir. Bu durumda tanılamayı o katmana yönlendirin.

6. Yeniden oluşturma ile sayısal kimliği ayırt etmek

Aynı bağımlılıkları bulmak, donanımlar, platformlar veya PyTorch sürümleri arasında aynı sonuçları garanti etmez. Bir tohum sabitlemek tüm varyasyon kaynaklarını kapsamaz. Kullanılan üreteçleri, veri dönüşümlerini ve ilgili hassasiyet veya determinizm ayarlarını belgeleyin.

Karşılaştırma kriterini farkı görmeden önce tanımlayın: tam yapı, sayısal tolerans veya bir metriğin kararlılığı. Bazı deterministik ayarlar işlemleri reddedebilir veya hesaplama maliyetini değiştirebilir. Aranan sonuç, ilan edilen koşullarda anlaşılır bir sonuçtur, her makinede kimlik vaadi değil.

Bir eğitimi sürdürmek için sürümler yeterli değildir: hesaplama durumunu ve ilerlemeyi de geri yüklemek gerekir. Sürdürme dosyası bu soruyu ayrıca kontrol eder. CPU alıştırması ve toleransı otomatik olarak sizin modelinizin koşulları haline gelmez.

7. Başka bir başlatmanın kullanabileceği bir dosyayla bitirmek

Nihai dosya prosedürü, gözlemlenen envanteri, yapılandırmayı, veri referanslarını ve kontrol sonuçlarını bir araya getirir. Tam sırayı ekleyin: yeniden oluştur, tanıla, örneği çalıştır, çıktıyı yeniden oku. Erişim bilgilerini ayrı tutun ve yalnızca nasıl sağlanacağını belirtin.

Ortamı aktarılabilir olarak değerlendirmeden önce bu sırayı temiz bir dosyada yeniden uygulayın. Kontrol, eski bir notebook'tan bir değişkeni almadan veya unutulmuş bir dosyayı aramadan başarılı olmalıdır. Bir değişiklik gerekliyse prosedürü düzeltin ve referansa yeni bir kimlik verin. Bir sonraki hesaplama döneminiz için kullanılabilir bir temel elde edersiniz.

Sorularınız

Sadece .venv klasörümü kopyalayabilir miyim?

Bu genel bir aktarım yöntemi değildir. İçinde yorumlayıcısına ve konumuna yapılan referanslar bulunabilir. Hedefte yeniden oluşturmak için prosedürü ve gerekli bağımlılıkları saklayın.

Yeniden oluşturmanın kanıtı olarak bir freeze dosyası yeterli mi?

Gözlemlenen paketleri açıklar. Python, sistem, arka uç, kurulum kaynağı, parametreler ve uygulama denetimi ekleyin. Tek başına bir envanter ne yeniden kurulum olasılığını ne de hesaplama sonucunu kanıtlar.

GPU uzantısı başarısız olurken pip check neden başarılı oluyor?

Bu denetim, paketlerin bildirilen bağımlılıklarını kapsar. Her yerel işlemi veya derleme zincirini test etmez. İçe aktarma ya da hesaplama hatasını saklayın ve uzantıya özgü gereksinimleri doğrulayın.

Kart değişikliğinden sonra tam eşitlik istenmeli mi?

Yalnızca protokolünüz ve koşullarınız izin veriyorsa. Kabul edilebilir sonucu ve uygun toleransı tanımlayın, ardından donanımı ve sürümleri belgeleyin. Yeniden üretilebilirlik platformlar arasında evrensel bir garanti değildir.