Skip to content
Latchkey

O que é versionamento de modelos? Rastreando versões de modelos explicado

Versionamento de modelos é a prática de dar a cada modelo treinado uma versão rastreada, vinculada aos dados, código e parâmetros exatos que o produziram.

O código-fonte tem o Git, onde cada mudança tem um commit. Os modelos precisam da mesma coisa. O versionamento de modelos registra cada modelo treinado como uma versão distinta e identificável, para que você sempre saiba o que o produziu e possa voltar a qualquer versão anterior.

O que é versionamento de modelos

Versionamento de modelos atribui uma identidade única e ordenada a cada modelo treinado e a vincula à sua linhagem: a versão do dataset, o commit do código de treinamento, os hiperparâmetros e as métricas resultantes. É o equivalente, para modelos, do versionamento semântico para releases de software.

Por que um hash de modelo não é suficiente

Você poderia fazer o hash do arquivo do modelo, mas isso não diz por que dois modelos diferem. Um versionamento de modelos útil captura as entradas, para que você possa responder "quais dados e código produziram a versão 7?" e reproduzi-la. É por isso que o versionamento costuma ser combinado com o versionamento de dados e o rastreamento de experimentos.

Onde as versões ficam

As versões de modelo geralmente são mantidas em um model registry, que atribui números de versão sequenciais e rastreia estágios. O artifact em si fica no object storage; o registry mantém os metadados e a linhagem que tornam uma versão significativa.

Versionamento em CI

Um pipeline de treinamento deve registrar uma nova versão a cada execução bem-sucedida, marcando-a com o SHA do commit e a versão do dataset, para que a linhagem seja automática em vez de manual.

Tagging a model version in CI
git_sha=${GITHUB_SHA}
data_ver=$(dvc status --json | jq -r .rev)
python register.py --model model.pkl \
  --tag "git=${git_sha}" --tag "data=${data_ver}"

Nota Latchkey

Como cada versão fixa um dataset específico, os jobs de CI rebaixam esses dados exatos para reproduzir um resultado. Na Latchkey, fazer cache de datasets versionados indexados pelo seu hash de conteúdo significa que reproduzir uma versão antiga puxa do cache em vez de rebaixar, e o auto-retry cobre qualquer falha transitória de busca.

Principais conclusões

  • Versionamento de modelos dá a cada modelo treinado uma identidade rastreada, vinculada aos seus dados, código e parâmetros.
  • Capturar a linhagem - não apenas um hash de arquivo - é o que torna uma versão reproduzível.
  • Um pipeline de treinamento em CI deve registrar uma nova versão por execução, marcada com o commit e a versão do dataset.

Guias relacionados