bert-addresses-brazil / config.yaml
luis-otte's picture
Upload config.yaml with huggingface_hub
38fd5a9 verified
# Ottema BERT Addresses Brazil - Configuração
# Configurações para fine-tuning do modelo de NER de endereços brasileiros
# =============================================================================
# MODELO
# =============================================================================
model:
# Modelo base (Portuguese BERT da NeuralMind)
base_model: "neuralmind/bert-base-portuguese-cased"
# Caminho para salvar o modelo fine-tuned
output_dir: "model"
# Número de labels (entidades BIO)
num_labels: 17
# Labels
labels:
- "O"
- "B-RUA"
- "I-RUA"
- "B-NUMERO"
- "I-NUMERO"
- "B-BAIRRO"
- "I-BAIRRO"
- "B-CIDADE"
- "I-CIDADE"
- "B-ESTADO"
- "I-ESTADO"
- "B-CEP"
- "I-CEP"
- "B-COMPLEMENTO"
- "I-COMPLEMENTO"
- "B-REFERENCIA"
- "I-REFERENCIA"
# =============================================================================
# DADOS
# =============================================================================
data:
# Diretórios de dados brutos
raw_data_dir: "data/raw"
viacep_dir: "data/raw/viacep"
osm_dir: "data/raw/osm"
# Diretório de dados processados
processed_dir: "data/processed"
# Arquivos de dataset
train_file: "data/processed/train.jsonl"
validation_file: "data/processed/validation.jsonl"
test_file: "data/processed/test.jsonl"
# Proporções do split
splits:
train: 0.8
validation: 0.1
test: 0.1
# Data augmentation
augmentation:
# Quantidade de samples sintéticos para gerar
synthetic_samples: 10000
# Probabilidade de adicionar complemento
complement_probability: 0.7
# Probabilidade de adicionar referência
reference_probability: 0.3
# Tokenização
tokenizer:
max_length: 128
padding: "max_length"
truncation: true
# =============================================================================
# TREINAMENTO
# =============================================================================
training:
# Batch size
batch_size:
train: 16
eval: 32
# Learning rate
learning_rate: 2.0e-5
# Número de epochs
num_epochs: 3.0
# Weight decay
weight_decay: 0.01
# Warmup
warmup_ratio: 0.1
# Optimizer
optimizer: "adamw_torch"
# Scheduler
scheduler: "linear"
# Gradient
gradient_accumulation_steps: 1
max_grad_norm: 1.0
# Dropout
dropout: 0.1
# Seed para reprodutibilidade
seed: 42
# =============================================================================
# AVALIAÇÃO
# =============================================================================
evaluation:
# Estratégia de avaliação
strategy: "epoch" # "epoch", "steps", "no"
# Steps entre avaliações (se strategy="steps")
steps: 500
# Métrica para melhor modelo
metric_for_best_model: "f1"
# Melhor é maior
greater_is_better: true
# Carregar melhor modelo no final
load_best_model_at_end: true
# =============================================================================
# CHECKPOINT & LOGGING
# =============================================================================
checkpoint:
# Estratégia de save
strategy: "epoch" # "epoch", "steps", "no"
# Steps entre saves (se strategy="steps")
steps: 1000
# Limite de checkpoints salvos
total_limit: 3
# Sobrescrever output dir
overwrite_output_dir: false
logging:
# Steps entre logs
steps: 50
# Nível de log
level: "INFO"
# =============================================================================
# EARLY STOPPING
# =============================================================================
early_stopping:
# Habilitar early stopping
enabled: true
# Paciência (epochs sem melhoria)
patience: 5
# Delta mínimo para melhoria
min_delta: 0.001
# =============================================================================
# HARDWARE
# =============================================================================
hardware:
# Device
device: "cuda" # "cuda", "cpu", "mps"
# Número de GPUs
num_gpus: 1
# Mixed precision (fp16)
fp16: true
# Batch size por GPU
per_gpu_batch_size: 16
# =============================================================================
# HUGGING FACE
# =============================================================================
huggingface:
# Organização no HF
organization: "ottema"
# Nome do dataset
dataset_name: "brazilian-addresses-ner"
# Nome do modelo
model_name: "bert-addresses-brazil"
# Push to hub (após treino)
push_to_hub: false
# Private repository
private: false
# License
license: "apache-2.0"
# =============================================================================
# COLETA DE DADOS
# =============================================================================
collection:
# ViaCEP
viacep:
# CEPs máximos por estado
max_ceps_per_state: 2000
# Delay entre requisições (segundos)
delay: 0.3
# Timeout da requisição (segundos)
timeout: 5
# OpenStreetMap
osm:
# Tipo de query
query_type: "all" # "streets", "buildings", "amenities", "all"
# Timeout da requisição (segundos)
timeout: 120
# Delay entre cidades (segundos)
delay_between_cities: 5
# =============================================================================
# METAS
# =============================================================================
targets:
# F1-score mínimo aceitável
min_f1_score: 0.85
# F1-score alvo
target_f1_score: 0.90
# F1-score mínimo por classe
min_per_class_f1:
RUA: 0.85
NUMERO: 0.90
BAIRRO: 0.85
CIDADE: 0.90
ESTADO: 0.95
CEP: 0.95
COMPLEMENTO: 0.85
REFERENCIA: 0.75
# Tamanho máximo do dataset (samples)
max_dataset_size: 100000
# Tamanho mínimo do dataset
min_dataset_size: 50000