Olá!
Considere um cenário - um Cientista de Dados solitário trabalha em seu sistema tentando percorrer uma enorme quantidade de dados; limpeza, classificação, processamento e, em seguida, construção de um modelo para executar a previsão nos dados recém-processados. A cientista tem várias ferramentas à sua disposição - Jupyter Notebooks, Airflow, Anaconda, Pandas, armazenamento de dados e uma máquina virtual em nuvem.
Ela treina por horas e horas, apenas para ficar aquém da perfeição - o modelo não funciona tão bem quanto deveria. Ela olha pela janela - já é noite. Ela ainda precisa testar seu modelo com um conjunto diferente de parâmetros e rastrear um conjunto de métricas diferentes de seus experimentos.
Ela desliga o sistema, encerra o dia e tenta no dia seguinte com outro modelo, uma abordagem diferente com um monte de novos dados e parâmetros. Este é um longo processo que pode se estender por dias... semanas... e meses.
É difícil voltar a um ponto em que ela tentou uma combinação específica de parâmetros para o experimento, às vezes o conhecimento é perdido, pois todos os experimentos e todos os artefatos relacionados ao modelo podem não ser salvos. O rastreamento é crucial para a melhoria do modelo de ML.
Acho que esse cenário de cavaleiro solitário pode ser evitado se tivermos um ambiente de estilo IDE abrangente onde possamos executar vários experimentos, fazer gerenciamento de dados e rastrear nosso código, métricas de experimentos, plotagens, modelo e artefatos de dados também. Quão legal isso seria?
Parece bom demais para ser verdade, mas é isso que o DVC VSCode Extension está tentando fazer.
O DVC é uma excelente ferramenta para rastrear seus experimentos, modelos e artefatos relacionados, mas é uma CLI - com a qual muitos na comunidade de ciência de dados podem não se sentir confortáveis ou familiarizados.
Longe vão os dias em que você tinha que aprender um monte de comandos irritantes da CLI como este:
Usar o DVC ficou muito mais fácil e divertido.
O Iterative Team traz para você uma extensão do VS Code que combina o poder dos comandos DVC CLI para gerenciamento de dados, controle de versão e experimentação com a experiência de codificação elegante e elegante do Visual Studio Code IDE.
A extensão em sua forma atual fornece os seguintes recursos:
Integrado ao menu da paleta de comandos do VS Code. Pressione F1 para abrir a paleta e digite DVC para visualizar vários comandos relacionados a DVC à sua disposição.
Oferece uma visão detalhada dos experimentos executados no espaço de trabalho. O equivalente ao comando dvc exp show
no modo CLI.
Você pode visualizar os gráficos gerados pelo experimento executado no espaço de trabalho. Pode comparar os gráficos de diferentes experimentos. Visualize ainda as parcelas atualizadas em tempo real.
Você pode verificar o status do espaço de trabalho usando esse recurso. Você pode dvc checkout
, dvc commit
, dvc add
, dvc push
& dvc pull
a partir desta visualização.
Uma pequena janela para rastrear seus recursos no espaço de trabalho. A partir daqui, você pode executar ações de arquivo, push
e pull
recursos específicos e gerenciar os dados em conjuntos de dados rastreados.
O View Container pode ser ativado clicando no ícone DVC na barra de ícones do VS Code. Ele fornece informações gerais sobre os experimentos e recursos no espaço de trabalho.
Aqui estão algumas vantagens em comparação com o CLI sozinho quando você usa a extensão:
O uso da extensão DVC pode ser resumido em 4 etapas
Certifique-se de ter o DVC instalado em seu sistema. Você pode executar o seguinte comando em seu terminal:
$ pip3 install dvc
Ou você pode seguir o guia fornecido aqui para instalação específica do sistema operacional .
Vá para VS Code e no menu de extensão, procure por DVC. Clique em Instalar.
https://www.youtube.com/watch?v=INjOkuanRpc
Agora você tem a extensão DVC pronta para uso. Para se familiarizar com o uso da extensão, faremos o download de um projeto de ML de amostra
Você pode baixar o projeto de amostra do repositório . Abra a pasta no VS Code. A extensão DVC deve detectar o binário DVC e o ambiente python.
Se você tiver um ambiente específico, pode pressionar F1 e selecionar DVC: Setup The Workspace
de trabalho
Forneça o caminho do compilador e o caminho binário do ambiente Python.
Você pode visualizar os experimentos DVC no espaço de trabalho atual na guia DVC view container.
Para começar nossa experimentação, precisamos extrair os dados. Pressione F1 para abrir a paleta de comandos do VS Code e selecione DVC: Pull
Você pode visualizar a saída selecionando DVC: Show DVC Output
Observação: a equipe ainda está trabalhando na opção de armazenamento remoto DVC no plug-in do VS Code, você terá que definir seu armazenamento remoto via linha de comando ou arquivo de configuração
Você pode alterar os parâmetros no arquivo params.yaml
e selecionar DVC: Modify Experiment Param(s),Rest and Run
na paleta de comandos do VS Code.
https://www.youtube.com/watch?v=buuoKsGZvvo
Você pode verificar seus experimentos e visualizar os gráficos plotados usando a extensão também.
E a cereja no topo é que a extensão permite que você escolha seus experimentos. Trocadilho pretendido!
https://www.youtube.com/watch?v=N0VdjyQCo3Q
Isso não é tudo, você pode executar experimentos individuais e alterar parâmetros específicos.
Se você deseja visualizar seus gráficos ao vivo, para experimentos que levam muito tempo - digamos, um modelo DL talvez com muitas épocas.
Você também pode visualizá-los em tempo real. Basta executar seu experimento e clicar no botão de gráficos na bandeja do DVC.
https://www.youtube.com/watch?v=ov5ScDPV6Rw
Quando tudo estiver bem feito, você também pode confirmar e enviar suas alterações.
A equipe iterativa adicionará mais recursos interessantes à extensão em breve. Fique ligado.
Não nos deixe mantê-lo, vá em frente e comece a experimentar. Feliz tempo de DVC!
Como praticante de ML Ops, enfrento vários desafios ao trabalhar com diferentes equipes de ciência de dados. Existem várias ferramentas disponíveis no mercado - pagas e de código aberto. Costumo me inclinar para ferramentas de código aberto, pois há um parentesco com uma comunidade que está ajudando ativamente estranhos em todo o mundo a resolver problemas semelhantes.
Essa abordagem é de grande importância para a comunidade de ML, pois ainda estamos na fase de adoção, onde uma boa ferramenta pode ajudá-lo a resolver seus problemas com mais rapidez e confiança. Uma ferramenta centralizada integrada com vários estágios do pipeline de ML ajuda muito as equipes de ciência de dados a resolver problemas; eles podem se concentrar mais na melhoria do modelo do que na infraestrutura e nas configurações - foi isso que me atraiu para a ferramenta DVC.
Um agradecimento à equipe da Iterative por criar esta extensão maravilhosa, esperando ver mais mágica no futuro.