Download project-docs/experiments.md from enzoferracini/patchinsight-bertimbau-ptbr: direct link, hf CLI and curl.
- Browser
- Download file 4.51 kB
-
https://huggingface.co/enzoferracini/patchinsight-bertimbau-ptbr/resolve/main/project-docs/experiments.md
- Command line
-
hf download hf://enzoferracini/patchinsight-bertimbau-ptbr/project-docs/experiments.md
-
curl -L -o experiments.md https://huggingface.co/enzoferracini/patchinsight-bertimbau-ptbr/resolve/main/project-docs/experiments.md
Protocolo histórico da v0.1. A avaliação exploratória posterior, sem retreino, tem protocolo próprio em data/v02/README.md e resultados em v02.md. A métrica primária e a seleção originais não foram alteradas.
Protocolo experimental 0.1
Pergunta: fine-tuning completo de BERTimbau melhora a classificação de cinco componentes em relação a regras e embeddings fixos, contra referências sintéticas revisadas por IA?
Dados e isolamento
Congelamento em data/freeze.json; 280/60/60 registros e 70/15/15 cenários.
Cada cenário é uma origem com quatro variantes correlacionadas. Separação por
origem impede derivados literais em splits diferentes, mas não elimina moldes
compartilhados. Ver reports/data-audit.json e docs/data-review.md.
Só treino e validação orientam configuração e complementação. O módulo
experiment não abre o teste; a verificação dos hashes lê bytes de integridade,
sem usar textos ou rótulos do teste no treinamento. evaluate --final é o
único fluxo de métricas de teste. Após o primeiro benchmark, os erros não
podem orientar a v0.1; uma nova pesquisa exige outro teste e outra versão.
Métodos fixados
| Método | Representação | Aprendizado | Decisão |
|---|---|---|---|
| Heurístico | Regex e léxico curado | Nenhum | Regras binárias |
| Congelado + regressão | Média dos estados do encoder com máscara | StandardScaler e uma LogisticRegression por rótulo | 0,5 |
| Fine-tuned | BERTimbau Base + cabeça multilabel | Todos os pesos, BCE com logits | 0,5 |
O scaler e a regressão são ajustados apenas em treino. C=1 e max_iter=2000;
não há busca de hiperparâmetros. Encoder congelado tem requires_grad=False
e modo eval. Pooling usa média mascarada, incluindo tokens especiais, fixado
para todas as execuções da baseline. Regressão serializada em JSON com pesos,
interceptos, média e escala; não é necessário carregar pickle.
Fine-tuning: seed 42 antes de inicializar a cabeça; até cinco épocas, AdamW lr 2e-5 e weight decay 0,01; batch 8; acumulação 2; clipping 1; max_length 192. O melhor macro-F1 de validação determina o checkpoint; empate mantém a época mais antiga. Não há tuning de limiar nesta versão. Menor batch por falta de memória deve ser registrado em uma nova configuração antes da avaliação final.
Reprodutibilidade não garante identidade bit a bit entre GPUs e versões de drivers. Seeds, determinismo solicitado, ambiente, revisão e hashes devem acompanhar os resultados; avisos de operações não determinísticas permanecem visíveis. Preservar artefatos fora da sessão Kaggle/Colab ao concluir o treino.
Avaliação
Métrica primária: macro-F1. Secundárias: micro-F1 e exact match multilabel.
Por rótulo: precision, recall, F1, suporte positivo, TP, FP, FN e TN.
Divisão por zero resulta em zero. Os três métodos compartilham a implementação
metrics.py e o mesmo teste. Guardar previsões por ID para auditar erros.
O JSON final registra hashes dos bundles e dos dados, ambiente e limiares. Publicar os três métodos mesmo quando fine-tuning perde. Não atribuir melhora a pessoas reais ou a recrutamento; o alvo é consistência com anotações sintéticas dependentes do gerador e do guia.
Evidência disponível
reports/development/heuristic-validation.json contém a execução real do
baseline na validação: macro-F1 0,852965, micro-F1 0,862319, exact match
0,533333, n=60. Essa execução não exigiu bibliotecas de ML. Nenhuma alteração
de regra foi feita com base em erros do teste; o teste não foi pontuado.
A baseline congelada e o fine-tuning foram executados na GPU local NVIDIA RTX
A1000 6 GB, com Python 3.11.14. Seleção: época 5, macro-F1 de validação 0,996923.
O teste final está em reports/final/benchmark.json; modelos ajustado e congelado
obtiveram macro-F1 0,991101 e 0,988825. O bootstrap pareado por origem inclui zero
no intervalo de ganho; ver reports/final/uncertainty.json.
O retreino de reprodução usa a mesma configuração, sem decisões adicionais
baseadas no teste; é uma verificação do pipeline, não um novo candidato. Logs
de treinamento, ambiente e aviso de atenção não determinística estão em
reports/training. A identidade bit a bit dos pesos entre retreinos não é
prometida. Testes com BERT minúsculo validam somente o fluxo técnico e não
entram no benchmark. O teste de checkpoint real passou após o ajuste completo.