Skip to content
Trackio: Biblioteca leve, open-source para rastreamento de experimentos da Hugging Face
Source: huggingface.co

Trackio: Biblioteca leve, open-source para rastreamento de experimentos da Hugging Face

Sources: https://huggingface.co/blog/trackio, Hugging Face Blog

Visão geral

Trackio é uma biblioteca Python de código aberto que permite rastrear qualquer métrica e visualizar usando um painel Gradio local. Você também pode sincronizar esse painel com o Hugging Face Spaces, o que permite compartilhar o painel com outros usuários apenas fornecendo um URL. Como o Spaces pode ser privado ou público, você pode compartilhar publicamente ou apenas entre membros de sua organização Hugging Face — tudo gratuitamente. Trackio é apresentado como um substituto leve para ferramentas de rastreamento de experimentos como o wandb, com uma API compatível com wandb.init, wandb.log e wandb.finish, para que você possa importar trackio como wandb no seu código. No Hugging Face, o Trackio é apresentado como uma solução aberta, leve e com foco na velocidade de experimentação, compartilhamento e transparência. O objetivo é ajudar pesquisadores a registrar métricas, parâmetros e hiperparâmetros durante o treinamento e visualizá-los depois para entender o progresso. O projeto enfatiza acessibilidade, portabilidade de dados e integração simples com ferramentas HF comuns.

Principais recursos

  • Painel Gradio local para visualização de métricas e hiperparâmetros.
  • Sincronização do painel local com Hugging Face Spaces para compartilhamento fácil via URL.
  • Aberto e gratuito.
  • Substituto leve para wandb; API compatível com wandb.init, wandb.log e wandb.finish (importe como wandb).
  • Compartilhamento fácil de plots em blogs e documentações via iframes; compartilhamento sem exigir contas.
  • Manipulação transparente de dados: registre e compartilhe métricas como uso de energia da GPU via nvidia-smi para acompanhar impactos ambientais.
  • Acessibilidade de dados: faça extração e análise dos dados gravados sem bloqueio proprietários.
  • Design leve para experimentar novas funcionalidades de rastreamento com rapidez.
  • Banco de dados SQLite efêmero no Spaces; Trackio converte para Parquet e faz backup em um Hugging Face Dataset a cada 5 minutos.
  • Nomeação de dataset opcional: passe dataset_id no trackio.init() para nomear o conjunto de dados.
  • Integração nativa com bibliotecas da Hugging Face como transformers e accelerate; registre métricas com configuração mínima. Com transformers.Trainer ou accelerate, não é necessário configuração extra.
  • Estado: beta e leve; algumas funcionalidades comuns em outras ferramentas (gerenciamento de artefatos, visualizações avançadas) ainda não estão disponíveis.
  • Chamada à comunidade: comentários e issues são bem-vindos para sugestões e feedback.

Casos de uso comuns

  • Acompanhar métricas, hiperparâmetros e estados intermediários durante o treinamento do modelo.
  • Visualizar o progresso localmente e compartilhar o progresso com Spaces via URL ou incorporação em documentos.
  • Comparar várias execuções lado a lado e tornar as métricas acessíveis a colegas através de links.
  • Quantificar consumo de energia, por exemplo, energia da GPU, para discussões de impacto ambiental em modelos.
  • Experimentar recursos de rastreamento com pouca sobrecarga e de forma rápida.
  • Integrar facilmente com fluxos de trabalho da Hugging Face (Transformers, Accelerate) com configuração mínima.

Instalação & configuração

Instale o Trackio com pip:

pip install trackio

Usando Trackio como substituto do wandb no Python:

import trackio as wandb
wandb.init(project="meu-projeto")
wandb.log({"epoch": 1, "loss": 0.25})
wandb.finish()

Para sincronizar seu painel com o Hugging Face Spaces, passe space_id no init:

import trackio as wandb
wandb.init(space_id="SPACE_ID", project="meu-projeto")
wandb.log({"accuracy": 0.92})

Iniciar o painel pode ser feito a partir do terminal ou de Python. O artigo destaca comandos diretos para iniciar o painel localmente e vinculá-lo ao Spaces, permitindo compartilhamento público ou privado dependendo da configuração do Spaces. Com Spaces, os dados gravados vão para um banco de dados SQLite efêmero no Spaces, que o Trackio converte para Parquet e faz backup para um Hugging Face Dataset a cada 5 minutos.

Quick start (exemplo mínimo executável)

Um exemplo mínimo que registra alguns métricas durante uma execução curta:

import trackio as wandb
wandb.init(project="quick-start")
for epoch in range(3):
loss = 0.3 * (epoch + 1)
wandb.log({"epoch": epoch + 1, "loss": loss})
wandb.finish()

Se você quiser publicar o painel no Spaces:

import trackio as wandb
wandb.init(space_id="SPACE_ID", project="quick-start")
wandb.log({"accuracy": 0.88})

Observação: o artigo enfatiza uma experiência de substituição simples para usuários já familiarizados com wandb, de modo que você pode escrever o código de forma similar, ganhando visualização local e compartilhamento pelo Spaces.

Prós e contras

Prós:

  • Painel gráfico local com caminho direto para compartilhar pelo Spaces.
  • Gratuito, de código aberto e de fácil adoção; sem barreira de entrada para compartilhamento de resultados.
  • Design leve adequado para experimentação rápida e iteração de recursos.
  • Métricas de energia da GPU (via nvidia-smi) para apoiar relatórios de impacto ambiental.
  • Integração nativa com ferramentas da Hugging Face (Transformers, Accelerate) com configuração mínima.
  • Portabilidade de dados: é possível extrair dados para análises personalizadas.
  • Backups no Spaces para conjuntos de dados Parquet para acessibilidade a longo prazo. Contras:
  • Atualmente em beta; gerenciamento de artefatos e algumas visualizações avançadas ainda não estão disponíveis.
  • Certas funcionalidades dependem da disponibilidade/configuração do Space (Spaces públicos/privados afetam o compartilhamento).
  • Por ser uma ferramenta relativamente nova, o ecossistema ao redor do Trackio (plugins, integrações de terceiros) ainda está se desenvolvendo.

Alternativas (comparações rápidas)

FerramentaObservações
TrackioAberto, gratuito; painel Gradio local; sincronização com Spaces; substituto leve do wandb; beta; métricas de energia/transferência de dados; sem gerenciamento de artefatos ainda.
Outras ferramentas (em geral)Não cobertas em detalhes neste artigo; o Trackio se posiciona como uma alternativa leve, transparente, com foco em visualização local e compartilhamento via Spaces.

Preços ou Licença

Trackio é descrito como aberto e gratuito no post do blog da Hugging Face, posicionando-se como uma opção sem custo para rastreamento de experimentos. O artigo convida a participação da comunidade e abertura de issues para feedback e solicitações de recursos, alinhado a projetos de código aberto.

Referências

More resources