GPU untuk proyek Anda · pembayaran kripto tanpa KYC Cara menyewa
Bahasa Indonesia
Buka konsol
Panduan praktis / KERNODECK

Buat ulang lingkungan Anda sebelum membandingkan komputasi.

Lingkungan yang dapat direproduksi harus dapat dibangun ulang dari berkas dan prosedur, lalu lulus kontrol yang telah ditetapkan. Simpan kode, dependensi, data, parameter, dan rantai sistem secara terpisah. Verifikasi dulu instalasinya, lalu komputasinya, terakhir keluaran aplikasi Anda: tak satu pun dari langkah-langkah ini menggantikan yang lain.

6 menit baca · Panduan untuk developer

1. Tetapkan referensi dan hasil yang diharapkan

Mulailah dari apa yang ingin Anda ulangi: menghasilkan kategori yang sama, memperoleh nilai yang mendekati, atau melanjutkan lintasan pelatihan. Simpan kumpulan masukan kecil yang melewati langkah-langkah penting dan satu contoh keluaran yang valid. Instalasi yang selesai tanpa kesalahan belum menjawab pertanyaan ini.

Mari kita ambil contoh yang mendidik: aplikasi Anda menghasilkan embedding untuk sampel yang teridentifikasi. Pada lingkungan referensi, Anda harus mencatat bentuk keluaran, tipenya, tidak adanya nilai tak berhingga, dan kriteria bisnis yang berguna. Jika Anda membandingkan nilai, pilih toleransi yang dibenarkan oleh kebutuhan Anda. Tidak ada ambang numerik universal yang disediakan di sini.

Tetapkan revisi pada kode, data, dan bobot. Nama seperti « dernier-modele » dapat berubah tanpa ditunjukkan oleh program. Kaitkan juga parameter dan praproses dengan referensi. Berkas ini memungkinkan Anda mengetahui apakah suatu perbedaan berasal dari perangkat lunak, masukan, atau kondisi eksekusi.

Geser tabel untuk membaca semua kolom.
Elemen yang perlu direkonstruksi dan yang perlu dibandingkan
ElemenYang harus dipertahankanPemeriksaan setelah rekonstruksi
Kode dan parameterRevisi, kemungkinan perubahan, konfigurasiTitik masuk dan opsi yang sama.
Data dan bobotVersi atau sidik jari, asal usul, dan hak aksesSampel dan konten yang diharapkan sama.
Python dan paketVersi, prosedur, dan sumber instalasiInterpreter yang benar dan dependensi yang konsisten.
Sistem dan backendOS, arsitektur, driver, CUDA atau ROCmPerangkat yang terlihat dan komputasi minimal berhasil.
HasilFormat dan kriteria penerimaanStruktur lalu kualitas atau toleransi yang direncanakan.

2. Pisahkan rantai sistem dari paket Python

Periksa secara bersamaan kartu, sistem, driver, Python, dan pustaka. Lingkungan virtual mengatur paket Python; ia tidak menggantikan driver sistem. Demikian pula, referensi sebuah image tidak cukup untuk menggambarkan akses GPU yang sebenarnya dari host-nya. Untuk ekstensi yang dikompilasi, catat alat dan pustaka kompilasi yang diperlukan.

Pilih distribusi PyTorch berdasarkan platform komputasi proyek Anda. Pada ROCm, PyTorch menggunakan kembali panggilan torch.cuda dan perangkat bernama cuda: nama antarmuka tidak memungkinkan identifikasi NVIDIA. Catat secara terpisah torch.version.cuda dan torch.version.hip. Ekstensi yang ditulis untuk rantai tertentu layak mendapat pemeriksaannya sendiri.

Simpan prosedur yang benar-benar memungkinkan instalasi, beserta asal paketnya. Hindari mencampur perintah terbaru yang ditemukan online dengan berkas dependensi lama tanpa memeriksa kompatibilitasnya. Dokumentasi yang dibaca dapat berubah; catat versi yang digunakan dalam berkas Anda sendiri.

3. Tulis rekonstruksi alih-alih menyalin folder yang terinstal

Buat lingkungan baru dengan Python yang dipilih. Lalu gunakan secara eksplisit interpreter-nya untuk menginstal dan menjalankan proyek. Di Linux, misalnya .venv-rebuild/bin/python; di Windows, .venv-rebuild\Scripts\python.exe. Anda tidak perlu bergantung pada aktivasi sebelumnya. Dokumentasi Python menyatakan bahwa lingkungan virtual harus dibuat ulang ketika berpindah lokasi.

pip freeze memberikan inventaris paket yang terinstal, bukan berkas lock yang terhitung. Simpan sebagai observasi. Berkas rekonstruksi juga harus menjelaskan indeks atau berkas yang diperlukan untuk varian PyTorch Anda dan versi yang kompatibel. Periksa kembali path atau URL yang mungkin terdapat dalam inventaris sebelum membagikannya.

Perintah di bawah ini menggambarkan rekonstruksi Linux yang perlu disesuaikan; perintah tersebut bukan uji coba yang dijalankan pada proyek Anda. Berkas requirements-rebuild.txt harus sudah menjelaskan lingkungan Anda, termasuk pilihan PyTorch yang benar. Jangan menggantinya dengan daftar versi yang dianggap universal.

Rekonstruksi yang diusulkan dalam folder lingkungan baru
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. Periksa kontrak dependensi sebelum komputasi

python -m pip check, dijalankan dengan interpreter yang benar, mencari dependensi terinstal yang hilang atau tidak kompatibel menurut metadatanya. Hasil tanpa konflik bukanlah validasi driver, ekstensi native, atau kualitas aplikasi. Karena itu, jaga langkah ini tetap singkat dan lanjutkan ke pemeriksaan komputasi.

Untuk membuat rekonstruksi lebih ketat, Anda dapat menetapkan versi dan menyimpan sidik jari dari distribusi yang diizinkan. Keputusan ini menuntut Anda memelihara daftar lengkap yang sesuai dengan platform Anda. Arsip wheel yang telah dikompilasi dapat bergantung pada OS dan arsitektur; arsip tersebut bukan jaminan portabilitas antara dua mesin yang berbeda.

Dalam contoh embeddings kami, bandingkan inventaris yang direkonstruksi dengan referensi sebelum mengubah model atau parameternya. Jika ada perbedaan yang disengaja, catat dan perlakukan eksekusi baru sebagai varian. Jika tidak, perbaiki rekonstruksi; mengubah beberapa lapisan sekaligus akan membuat diagnosis kurang tepat.

5. Beralih dari kontrol minimal ke aplikasi

Di dalam interpreter proyek, catat Python, PyTorch, dan backend, lalu periksa perangkat dan lakukan perhitungan kecil. Hentikan langkah ini jika GPU yang diharapkan tidak dapat diakses; eksekusi CPU cadangan akan mengaburkan perbandingan. Diagnosis Kernodeck menyediakan laporan yang dapat diinterpretasikan dan membedakan langkah-langkah yang benar-benar dilalui.

Setelah kontrol ini berhasil, gunakan sampel aplikasi kecil Anda. Untuk embeddings, periksa jumlah output, dimensinya, kesesuaiannya dengan pengidentifikasi, dan kriteria yang dipilih. Muat ulang file dari folder output. Perhitungan matriks yang berhasil tidak membuktikan bahwa prapemrosesan atau ekstensi proyek berfungsi.

Jika uji coba gagal saat membaca data, saat transfer, atau selama operasi tertentu, simpan langkah dan kesalahan pertamanya. Rekonstruksi umumnya mungkin sudah benar; hambatan bisa jadi berasal dari pemuat data atau operator tertentu. Arahkan diagnosis ke lapisan tersebut.

6. Membedakan rekonstruksi dan identitas numerik

Menemukan kembali dependensi yang sama tidak menjamin hasil yang identik antara perangkat keras, platform, atau versi PyTorch. Menetapkan seed tidak mencakup semua sumber variasi. Dokumentasikan generator yang digunakan, transformasi data, serta pengaturan presisi atau determinisme yang relevan.

Tentukan kriteria perbandingan sebelum melihat perbedaannya: struktur persis, toleransi numerik, atau kestabilan suatu metrik. Beberapa pengaturan deterministik dapat menolak operasi atau mengubah biaya komputasi. Hasil yang dicari adalah kesimpulan yang dapat dipahami dalam kondisi yang diumumkan, bukan janji identitas di semua mesin.

Untuk melanjutkan pelatihan, versi saja tidak cukup: Anda juga harus memulihkan status komputasi dan progresnya. Folder kelanjutan memeriksa hal ini secara terpisah. Latihan CPU dan toleransinya tidak otomatis menjadi kondisi model Anda.

7. Menyelesaikan dengan folder yang dapat digunakan peluncuran lain

Folder akhir menggabungkan prosedur, inventaris yang diamati, konfigurasi, referensi data, dan hasil kontrol. Tambahkan urutan persisnya: rekonstruksi, diagnosis, jalankan sampel, baca ulang output. Simpan kredensial akses secara terpisah dan jelaskan hanya cara menyediakannya.

Ulangi urutan ini di folder bersih sebelum menganggap lingkungan dapat diwariskan. Kontrol harus berhasil tanpa mengambil variabel dari notebook lama atau mencari file yang terlupakan. Jika ada perubahan yang diperlukan, perbaiki prosedur dan berikan identitas baru pada referensi. Anda mendapatkan dasar yang dapat digunakan untuk periode komputasi berikutnya.

Pertanyaan Anda

Bisakah saya hanya menyalin folder .venv saya?

Itu bukan metode transfer yang umum. Folder tersebut dapat berisi referensi ke interpreter dan lokasinya. Simpan prosedur dan dependensi yang diperlukan untuk merekonstruksinya di tujuan.

Apakah file freeze cukup sebagai bukti rekonstruksi?

Ini menjelaskan paket yang teramati. Tambahkan Python, sistem, backend, asal pemasangan, parameter, dan kendali aplikasi. Inventaris saja tidak membuktikan kemungkinan pemasangan ulang maupun hasil komputasi.

Mengapa pip check berhasil sementara ekstensi GPU gagal?

Pemeriksaan ini menyasar dependensi yang dideklarasikan oleh paket. Ini tidak menguji setiap operasi native maupun rantai kompilasi. Simpan error impor atau komputasi dan periksa persyaratan khusus ekstensi tersebut.

Apakah harus menuntut kesamaan persis setelah pergantian kartu?

Hanya jika protokol dan kondisi Anda memungkinkan. Tentukan hasil yang dapat diterima dan toleransi yang sesuai, lalu dokumentasikan perangkat keras dan versinya. Reprodusibilitas bukan jaminan universal antar platform.