0Pricing
Learn AI with Python · Aula

Reprodutibilidade: sementes, configurações e ambientes

random.seed(), np.random.seed(), arquivos de configuração YAML e fixação do ambiente com pip freeze.

Reprodutibilidade: sementes, configurações e ambientes é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.

Por que a reprodutibilidade?

Um experimento que você não consegue reproduzir não é ciência. Se executar o mesmo código duas vezes produzir resultados diferentes, você não poderá confiar nas comparações nem depurar regressões.

Três pilares tornam o trabalho de IA reproduzível: seeds aleatórios fixos, configurações externalizadas e ambientes com versões fixadas.

Fontes de aleatoriedade

A aleatoriedade pode surgir de vários lugares: embaralhamento dos dados, divisões de treino/teste, inicialização de pesos, dropout e aumento de dados. Cada um pode usar um gerador aleatório diferente.

Para reproduzir uma execução, você precisa definir o seed de cada gerador que seu código utilizar.

Definindo o seed do Python e do NumPy

Fixe os geradores da biblioteca padrão e do NumPy com um único seed escolhido (42 é uma convenção comum).

import random
import numpy as np

random.seed(42)
np.random.seed(42)

Inicialização de estruturas

As estruturas de aprendizado de máquina têm seus próprios geradores. Inicialize-os também e passe a semente às funções que aceitam 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

Um auxiliar set_seed

Reúna toda a inicialização em uma única função e chame-a no início de cada script — assim, você nunca se esquecerá de um gerador.

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)

Hiperparâmetros codificados diretamente são uma armadilha

Espalhar 0.01, 200 e 0.2 pelo código dificulta acompanhar e alterar as execuções. A taxa de aprendizado naquela execução com a melhor pontuação era 0.01 ou 0.001?

A solução: coloque todos os hiperparâmetros em um arquivo de configuração, não no código.

Arquivos de configuração YAML

YAML é um formato legível para pessoas, ideal para configurações. Um único arquivo registra todos os ajustes de uma execução.

# 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

Lendo YAML com PyYAML

Carregue a configuração no início do seu script com PyYAML. Agora seu código lê os valores de cfg em vez de defini-los diretamente.

import yaml

with open("config.yaml") as f:
    cfg = yaml.safe_load(f)

print(cfg["model"]["n_estimators"])   # 200
set_seed(cfg["seed"])

Passando a configuração para o código

As funções recebem a configuração (ou seus valores) como argumentos. Para executar um novo experimento, você altera o YAML, não o 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"],
)

Fixando o ambiente

Versões diferentes das bibliotecas produzem resultados diferentes. Fixe as versões exatas para que outras pessoas — e você no futuro — instalem o mesmo conjunto de bibliotecas.

# 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

Ambientes virtuais

Isole cada projeto para que suas versões fixadas não entrem em conflito com outros projetos. Crie e ative um ambiente virtual e depois instale as dependências a partir do arquivo com versões fixadas.

python -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -r requirements.txt

Verificação rápida: hiperparâmetros

Você quer experimentar dez combinações diferentes de hiperparâmetros e manter cada execução reproduzível e rastreável.

Recapitulação: reprodutibilidade

Você aprendeu os três pilares da IA reproduzível:

  • Sementes: random.seed(42), np.random.seed(42), sementes da estrutura e random_state
  • Configurações: todos os hiperparâmetros em config.yaml, carregados com PyYAML
  • Ambientes: requirements.txt com versões fixadas em um ambiente virtual

Altere a configuração, não o código. A seguir: boas práticas para notebooks do Jupyter.

Perguntas Frequentes

A aula “Reprodutibilidade: sementes, configurações e ambientes” é grátis?

Sim — o texto completo de “Reprodutibilidade: sementes, configurações e ambientes” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.

O que vou aprender em “Reprodutibilidade: sementes, configurações e ambientes”?

random.seed(), np.random.seed(), arquivos de configuração YAML e fixação do ambiente com pip freeze. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Learn AI with Python?

Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Reprodutibilidade: sementes, configurações e ambientes”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Learn AI with Python?

Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Estrutura profissional de diretórios para projetos de IA
  2. Git para projetos de IA
  3. Reprodutibilidade: sementes, configurações e ambientes
  4. Boas práticas para Jupyter Notebooks
← Voltar para Learn AI with Python