Lewati ke konten utama

C10 · Modul 02

Reproduktibilitas

42 langkah singkat, dari mudah sampai tantangan.

  1. Level 1

    Kenal

  2. Level 2

    Paham

  3. Level 3

    Terapkan

  4. Level 4

    Tantangan

  5. Level 5

    Pendalaman

Intinya

  • Pilih tingkat reproduktibilitas secara sadar (bit-identik, toleransi, atau statistik) dan tulis tingkat itu di tes.
  • Identitas data, konfigurasi, dan lingkungan adalah hash: SHA-256 atas byte, JSON kanonik, dan sidik paket terurut.
  • Urutan baris, thread, dan reduksi di GPU mengubah digit terakhir karena penjumlahan pecahan tidak asosiatif; urutkan data secara kanonik dan patok thread.
  • Resep (hash data + hash konfigurasi + sidik lingkungan) adalah identitas pelatihan; model disimpan sebagai data, bukan pickle.
  • Lock file berhash dan image berdigest mengunci lingkungan; tes reproduktibilitas berjalan di proses terpisah.

Sebelum mulai

±6 jam (2 jam konsep, 3 jam latihan dan lab, 1 jam review).

Modul ini memakai materi di bawah. Belum yakin? Ulas dulu bagian yang disebut.

Hasil belajar:

  1. Membedakan tiga tingkat reproduktibilitas (bit-identik, numerik dalam toleransi, statistik antarbenih) dan memilih yang sepadan dengan biayanya.
  2. Menjelaskan dan mendemonstrasikan sumber ketidakdeterministikan: benih, urutan data, urutan reduksi bilangan pecahan (thread, reduksi atomik di GPU), keadaan bersama antarpanggilan, versi pustaka, dan lingkungan.
  3. Menulis hash_berkas, hash_objek, dan sidik_lingkungan sesuai kontrak, lalu menyusun resep pelatihan yang identitasnya ditentukan data, konfigurasi, dan lingkungan.
  4. Melatih ulang churn-v1 sehingga parameternya identik bit demi bit walau urutan baris masukan berbeda, dan menyimpan model sebagai data, bukan sebagai pickle.
  5. Mengunci lingkungan dengan lockfile berhash dan container (Lab), dengan kebiasaan rantai pasok yang defensif.

Hasil lab: platform_makmur.py bertambah hash_berkas, hash_objek, sidik_lingkungan; latih.py yang menulis artefak/model.json dan artefak/resep.json identik byte demi byte pada dua kali jalan; uv.lock atau requirements.txt berhash; Dockerfile dengan citra dasar yang dipatok.

Semua contoh diuji dengan Python 3.12 dan 3.13, numpy 2.4.6, pandas 3.0.2, dan scikit-learn 1.8.0 (_kerangka/requirements.txt). Pemeriksa menjalankan kode dengan satu thread BLAS/OpenMP (OMP_NUM_THREADS=1), seperti peramban.

Istilah di modul ini (21)

Ketuk istilah untuk melihat penjelasannya. Di materi, istilah bergaris titik membuka kartu yang sama. Semua istilah course

Bahan modul

Semua kode, latihan, dan data modul ini dalam satu zip, untuk dijalankan di laptop atau Google Colab.

  • 17 contoh kode
  • 7 berkas latihan + tes
  • 1 berkas data
  • requirements.txt
Lihat isi zip
  • BACA-DULU.txt
  • siap02.py
  • berantakan.py
  • contoh_c10_02_104.py
  • contoh_c10_02_170.py
  • contoh_c10_02_230.py
  • contoh_c10_02_339.py
  • contoh_c10_02_391.py
  • contoh_c10_02_417.py
  • contoh_c10_02_518.py
  • contoh_c10_02_701.py
  • contoh_c10_02_779.py
  • contoh_c10_02_805.py
  • contoh_c10_02_1045.py
  • contoh_c10_02_1101.py
  • contoh_c10_02_1176.py
  • contoh_c10_02_1334.py
  • contoh_c10_02_1600.py
  • contoh_c10_02_1663.py
  • contoh_c10_02_1719.py
  • test_c10_02_1.py
  • test_c10_02_2.py
  • test_c10_02_3.py
  • test_c10_02_4.py
  • test_c10_02_7.py
  • test_c10_02_6.py
  • test_c10_02_5.py
  • panel_churn.csv
  • requirements.txt