| # 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 | |