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 harus dipertahankan | Pemeriksaan setelah rekonstruksi |
|---|---|---|
| Kode dan parameter | Revisi, kemungkinan perubahan, konfigurasi | Titik masuk dan opsi yang sama. |
| Data dan bobot | Versi atau sidik jari, asal usul, dan hak akses | Sampel dan konten yang diharapkan sama. |
| Python dan paket | Versi, prosedur, dan sumber instalasi | Interpreter yang benar dan dependensi yang konsisten. |
| Sistem dan backend | OS, arsitektur, driver, CUDA atau ROCm | Perangkat yang terlihat dan komputasi minimal berhasil. |
| Hasil | Format dan kriteria penerimaan | Struktur 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.
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.txt4. 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.