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