Persistência e evidências

Modelos

from autohybts import load_model, read_manifest, save_model

path = save_model(final, "artifacts/champion")
read_manifest(path)                  # versões, hashes, corte de treino, spec
model = load_model(path, trusted=True)

O artefato é um diretório com o modelo serializado e um manifesto com checksum. load_model exige trusted=True porque desserializar pickle executa código: carregue só arquivos de origem confiável.

O checksum do manifesto detecta corrupção, não adulteração (os dois arquivos podem ser trocados juntos). Para isso, assine o artefato com uma chave guardada fora dele ou fixe o SHA-256 recebido por um canal confiável:

path = save_model(final, "artifacts/champion", signing_key=key)   # key: 32 bytes secretos
model = load_model(path, trusted=True, signing_key=key)
model = load_model(path, trusted=True, sha256="<sha-256 publicado>")

Evidências do experimento

exp.export_evidence("artifacts/evidence")

Grava a configuração, as divisões, o ledger da busca, as decisões e a auditoria da seleção — sem valores brutos da série nem do teste selado.

Ver também

Tutoriais: 03. Finalizar, salvar e carregar.

Evidências para o artigo

export_evidence grava decisões e unidades pareadas, custos da busca no ledger, splits datados e o snapshot resolvido. Passe resultados já calculados para incluir métricas externas e dobras, custos e snapshots aninhados. Exportar não avalia nem reajusta modelos; cabe a quem chama associar os resultados fornecidos à execução.

external = exp.evaluate_external(exp.finalize_model(result.best))
nested = exp.nested_cross_validate(outer_folds=2)
exp.export_evidence(
    "artifacts/evidence-nova", external=(external,), nested=nested,
    plots=("selection_trace",), figure_formats=("png", "pdf", "svg"),
)

Use uma pasta vazia. O manifesto autohybts-evidence/2 registra SHA-256 por arquivo, versões de dependências opcionais, hash dos fontes incluindo alterações sem commit e IDs distintos de execução, exportação e protocolo. O ID de execução se mantém nas exportações após o mesmo fit. Pacotes de versão 1 continuam legíveis como arquivos, sem os novos campos de integridade. Valores brutos ficam fora por padrão; include_predictions=True inclui explicitamente previsões e observações externas, assinaladas no manifesto. Figuras podem revelar valores; use selection_trace para compartilhar apenas indicadores de seleção.