Reproduktibilitas: Seed, Konfigurasi, dan Lingkungan
random.seed(), np.random.seed(), berkas konfigurasi YAML, dan penguncian lingkungan dengan pip freeze.
Reproduktibilitas: Seed, Konfigurasi, dan Lingkungan adalah pelajaran Learn AI with Python gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Learn AI with Python, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn AI with Python mencakup 4 pelajaran total.
Mengapa Reproduksibilitas Penting
Eksperimen yang tidak dapat Anda reproduksi bukanlah sains. Jika menjalankan kode yang sama dua kali menghasilkan keluaran yang berbeda, Anda tidak dapat mempercayai perbandingan atau menelusuri regresi.
Tiga pilar membuat pekerjaan AI dapat direproduksi: seed random yang tetap, konfigurasi yang dipisahkan dari kode, dan lingkungan yang versinya ditetapkan.
Sumber Keacakan
Keacakan dapat muncul dari banyak tempat: pengacakan data, pemisahan data pelatihan dan pengujian, inisialisasi bobot, pengurangan neuron secara acak, dan augmentasi. Masing-masing mungkin menggunakan pembangkit random yang berbeda.
Untuk mereproduksi suatu proses, Anda harus menetapkan seed pada setiap pembangkit yang digunakan oleh kode Anda.
Menetapkan seed pada Python dan NumPy
Tetapkan seed pada pembangkit pustaka standar dan NumPy menggunakan satu seed pilihan (42 adalah konvensi umum).
import random
import numpy as np
random.seed(42)
np.random.seed(42)Menetapkan Nilai Awal Kerangka Kerja
Kerangka kerja pembelajaran mesin memiliki pembangkitnya sendiri. Tetapkan nilai awalnya juga, dan teruskan nilai awal tersebut ke fungsi yang menerima random_state.
import numpy as np
from sklearn.model_selection import train_test_split
X_train, X_test = train_test_split(X, test_size=0.2, random_state=42)
# torch.manual_seed(42) / tf.random.set_seed(42) for deep learningPembantu set_seed
Bungkus semua penetapan nilai awal dalam satu fungsi dan panggil fungsi itu di bagian atas setiap skrip—agar Anda tidak pernah melupakan satu pun pembangkit.
import random, os
import numpy as np
def set_seed(seed=42):
random.seed(seed)
np.random.seed(seed)
os.environ["PYTHONHASHSEED"] = str(seed)
set_seed(42)Hiperparameter yang Dikodekan Langsung adalah Jebakan
Menyebarkan 0.01, 200, dan 0.2 di seluruh kode membuat proses berjalan sulit dilacak dan diubah. Apakah laju pembelajarannya 0.01 atau 0.001 pada proses yang memperoleh skor terbaik?
Solusinya: letakkan semua hiperparameter dalam file konfigurasi, bukan dalam kode.
File Konfigurasi YAML
YAML adalah format yang dapat dibaca manusia dan ideal untuk konfigurasi. Satu file dapat memuat setiap pengaturan untuk satu proses.
# config.yaml
seed: 42
model:
name: random_forest
n_estimators: 200
max_depth: 8
training:
test_size: 0.2
data:
path: data/processed/train.csvMembaca YAML dengan PyYAML
Muat konfigurasi di awal skrip dengan PyYAML. Kini kode Anda membaca nilai dari cfg, bukan menetapkannya langsung di dalam kode.
import yaml
with open("config.yaml") as f:
cfg = yaml.safe_load(f)
print(cfg["model"]["n_estimators"]) # 200
set_seed(cfg["seed"])Meneruskan Konfigurasi ke Kode
Fungsi menerima konfigurasi (atau nilainya) sebagai argumen. Untuk menjalankan eksperimen baru, Anda cukup mengubah YAML, bukan Python.
from sklearn.ensemble import RandomForestClassifier
m = cfg["model"]
model = RandomForestClassifier(
n_estimators=m["n_estimators"],
max_depth=m["max_depth"],
random_state=cfg["seed"],
)Menetapkan Versi Lingkungan
Versi pustaka yang berbeda menghasilkan hasil yang berbeda. Tetapkan versi yang persis agar orang lain (dan Anda di masa depan) memasang tumpukan perangkat lunak yang sama.
# requirements.txt with pinned versions
pandas==2.2.0
scikit-learn==1.4.0
numpy==1.26.4
# generate it with:
# pip freeze > requirements.txtLingkungan Virtual
Pisahkan setiap proyek agar versi yang telah ditetapkan tidak berbenturan dengan proyek lain. Buat dan aktifkan lingkungan virtual, lalu pasang dependensi dari file yang versinya telah ditetapkan.
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txtUji Cepat: Hiperparameter
Anda ingin mencoba sepuluh kombinasi hiperparameter yang berbeda dan menjaga agar setiap proses tetap dapat direproduksi serta dilacak.
Ringkasan: Reprodusibilitas
Anda telah mempelajari tiga pilar AI yang dapat direproduksi:
- Nilai awal:
random.seed(42),np.random.seed(42), nilai awal kerangka kerja, danrandom_state - Konfigurasi: semua hiperparameter dalam
config.yaml, dimuat dengan PyYAML - Lingkungan:
requirements.txtdengan versi tetap di dalam lingkungan virtual
Ubah konfigurasi, bukan kode. Berikutnya: praktik terbaik buku catatan Jupyter.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Reproduktibilitas: Seed, Konfigurasi, dan Lingkungan” gratis?
Ya — teks lengkap “Reproduktibilitas: Seed, Konfigurasi, dan Lingkungan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn AI with Python, upgrade ke CoddyKit PRO. Kursus Learn AI with Python mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Reproduktibilitas: Seed, Konfigurasi, dan Lingkungan”?
random.seed(), np.random.seed(), berkas konfigurasi YAML, dan penguncian lingkungan dengan pip freeze. Kamu berlatih Learn AI with Python dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Learn AI with Python?
Tidak diperlukan pengalaman sebelumnya. Learn AI with Python di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Reproduktibilitas: Seed, Konfigurasi, dan Lingkungan” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Learn AI with Python ini?
Ya. Setiap pelajaran Learn AI with Python menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Struktur Direktori Proyek Kecerdasan Buatan Profesional
- Git untuk Proyek Kecerdasan Buatan
- Reproduktibilitas: Seed, Konfigurasi, dan Lingkungan
- Praktik Terbaik Jupyter Notebooks