Desenvolvimento do modelo Snowflake ML¶
O Snowflake ML é uma plataforma altamente flexível que permite que você use seu código aberto (OSS) para treinar modelos de aprendizado de máquina diretamente nos seus dados. Essa abordagem elimina a necessidade de movimentação complexa de dados e, ao mesmo tempo, permite que você use suas bibliotecas, ferramentas e processos de desenvolvimento de ML preferidos.
O Snowflake ML integra-se a fontes de dados compatíveis com o Snowflake para acelerar os fluxos de trabalho de ML usando pipelines de ingestão de dados otimizados. APIs avançadas distribuídas permitem o dimensionamento eficiente do treinamento e do ajuste do modelo. Você pode acessar todos os recursos do Snowflake ML a partir de um ambiente de notebook com uma imagem de tempo de execução de ML, eliminando a necessidade de gerenciar pacotes e infraestrutura.
Treinar e ajustar seus modelos¶
Criar com Notebooks no Container Runtime¶
Container Runtime para ML fornece um ambiente de ML pré-construído com pacotes populares incluídos. Você pode adicionar com segurança bibliotecas de repositórios PyPI públicos ou privados para personalizar seu ambiente. As APIs distribuídas permitem que você transforme dados e execute fluxos de trabalho de AI/ML em escala.
Além de usar APIs distribuídas do Snowflake para dimensionar seus fluxos de trabalho, você também pode usar o Ray. Ray é uma estrutura de código aberto que oferece uma maneira simples e flexível de dimensionar aplicativos Python. Ele permite que você execute seu código em paralelo para vários nós. Para obter mais informações sobre o uso do Ray com o Snowflake ML, consulte o Guia de introdução do Ray.

Container Runtime Notebooks são Snowflake Notebooks integrados ao Container Runtime. Eles oferecem recursos como uma imagem de tempo de execução de ML pré-construída, processamento distribuído, pools de computação de CPU e pools de computação de GPU. Se você for um cientista de dados ou engenheiro de ML, os Container Runtime Notebooks podem ser particularmente úteis para suas tarefas de desenvolvimento de ML.
Execução remota a partir de qualquer IDE externo¶
Você também pode usar seu IDE externo preferido, como o Visual Studio Code ou um Jupyter Notebook baseado na nuvem, e executar remotamente fluxos de trabalho de ML no Container Runtime. Para executar seus fluxos de trabalho remotamente, anote seu código Python, funções ou arquivos e execute-os em uma instância do Container Runtime. Para obter mais informações, consulte Executar uma função Python como um Snowflake ML Job.
Desenvolver seu código¶
Ingerir dados diretamente em objetos de código aberto¶
Use o Data Connector para otimizar o carregamento de dados de suas tabelas e estágios do Snowflake em objetos de código aberto, como dataframes pandas, conjuntos de dados PyTorch e conjuntos de dados TensorFlow. O Data Connector usa o processamento distribuído do Container Runtime para acelerar a ingestão. Após o carregamento, você pode usar os dados com qualquer biblioteca de código aberto.
Usando o Data Connector, você pode carregar dados estruturados e não estruturados de várias fontes. Além de sua versatilidade, ele oferece melhor desempenho em relação ao to_pandas
para carregar grandes conjuntos de dados.
Treinar com frameworks OSS¶
Recomendamos usar seu código aberto existente ou modelos de treinamento diretamente no Snowflake com bibliotecas de código aberto.
Você pode usar os seguintes recursos nos fluxos de trabalho do Snowflake ML:
Importar recursos criados e gerenciados no Snowflake Feature Store.
Usar o Snowpark para dimensionar seu pré-processamento e transformação de dados.
Trazer seus dados para a memória com Data Connector APIs.
Aproveitar o que há de mais moderno em frameworks OSS para projetar recursos, treinar modelos e avaliá-los.
Dimensionar as cargas de trabalho usando APIs distribuídas¶
O treinamento de modelos de ML em grandes conjuntos de dados pode exceder os recursos de um único nó. Com as APIs distribuídas do Snowflake, você pode dimensionar os fluxos de trabalho de engenharia e treinamento de recursos em vários nós para melhorar o desempenho. Com APIs distribuídas, você pode fazer o seguinte:
Aproveitar as funções de pré-processamento distribuídas em snowflake.ml.modeling.preprocessing.
Dimensionar o treinamento do seu modelo em um ou mais nós usando APIs de treinamento otimizado no Container Runtime para ML.
Ajustar os hiperparâmetros com HPO¶
Acelere o ajuste de hiperparâmetros com a HPO distribuída do Snowflake ML, otimizada para dados armazenados no Snowflake. Você também pode usar bibliotecas de código aberto, como hyperopt ou optuna.
Operacionalizar os fluxos de trabalho de treinamento¶
Snowflake ML Jobs permitem que você execute remotamente as cargas de trabalho de ML baseadas em Python, facilitando a operacionalização do trabalho desenvolvido interativamente em ambientes como o Snowflake Notebooks. Isso garante treinamento e pontuação seguros e reproduzíveis de ML, integrando-se perfeitamente aos pipelines de CI/CD.
Agendar trabalhos e pipelines de ML para serem executados periodicamente¶
Use o Introdução às tarefas para criar DAGs complexos para representar os pipelines de treinamento de ML, em que cada tarefa corresponde a uma fase do seu fluxo de trabalho. Esses pipelines podem ser executados em um cronograma ou acionados por eventos. Você pode alocar recursos para cada etapa conforme necessário, otimizando seu pipeline. O Snowsight oferece ferramentas integradas para visualizar, gerenciar e modificar esses pipelines.
Com a integração git integrada do Snowflake, você também pode configurar ganchos git para construir e acionar os pipelines de ML mais adequados à sua configuração de CI/CD.