0Pricing
Learn AI with Python · Pelajaran

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 learning

Pembantu 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.csv

Membaca 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.txt

Lingkungan 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.txt

Uji 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, dan random_state
  • Konfigurasi: semua hiperparameter dalam config.yaml, dimuat dengan PyYAML
  • Lingkungan: requirements.txt dengan 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

  1. Struktur Direktori Proyek Kecerdasan Buatan Profesional
  2. Git untuk Proyek Kecerdasan Buatan
  3. Reproduktibilitas: Seed, Konfigurasi, dan Lingkungan
  4. Praktik Terbaik Jupyter Notebooks
← Kembali ke Learn AI with Python