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 learningUm 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.csvLendo 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.txtAmbientes 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.txtVerificaçã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 erandom_state - Configurações: todos os hiperparâmetros em
config.yaml, carregados com PyYAML - Ambientes:
requirements.txtcom 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
- Estrutura profissional de diretórios para projetos de IA
- Git para projetos de IA
- Reprodutibilidade: sementes, configurações e ambientes
- Boas práticas para Jupyter Notebooks