Snowpark ML: Machine Learning Toolkit para Snowflake

O Snowpark ML é um conjunto de ferramentas, incluindo SDKs e infraestrutura subjacente, para criar e implantar modelos de aprendizado de máquina. Com Snowpark ML, você pode pré-processar dados e treinar, gerenciar e implantar modelos de ML, tudo isso dentro do Snowflake. Você se beneficia do desempenho, escalabilidade, estabilidade e governança comprovados do Snowflake em todas as etapas do fluxo de trabalho de aprendizado de máquina.

O Snowpark ML funciona com o Snowpark Python, assim você pode usar o Snowpark DataFrames para armazenar seus dados de treinamento ou teste e receber seus resultados de previsão.

Você pode usar o Snowpark ML ao escrever aplicativos cliente Snowpark Python em qualquer IDE compatível.

Principais componentes do Snowpark ML

O Snowpark ML fornece APIs para dar suporte a cada estágio de um processo completo de desenvolvimento e implantação de machine learning e inclui dois componentes principais: Snowpark ML Development e Snowpark ML Ops.

Snowpark ML Development

Snowpark ML Development inclui uma coleção de APIs Python que você pode usar para desenvolver modelos de forma eficiente dentro do Snowflake.

  • O pacote de modelagem (snowflake.ml.modeling) fornece APIs para pré-processamento de dados, engenharia de recursos e treinamento de modelo. O pacote também inclui um módulo de pré-processamento com APIs que usam recursos de computação fornecidos por um Warehouses otimizados para Snowpark para fornecer transformações de dados escalonáveis. Essas APIs são baseadas em bibliotecas de ML conhecidas, incluindo scikit-learn, xgboost e lightgbm.

  • Um próximo conjunto de conectores de framework fornecem provisionamento de dados otimizado, seguro e de alto desempenho para os frameworks de Pytorch e Tensorflow em seus formatos nativos de carregador de dados. Para acesso antecipado à documentação, entre em contato com o representante da Snowflake.

Snowpark ML Ops

Snowpark ML Ops complementa a API do Snowpark ML Development fornecendo recursos de gerenciamento de modelo e implantação integrada no Snowflake.

  • A API FileSet fornece uma API compatível com fsspec do Python para materializar dados em um estágio interno do Snowflake a partir de uma consulta ou DataFrame do Snowpark e vários métodos convenientes para trabalhar com os dados e alimentá-los para PyTorch ou TensorFlow.

  • O registro do modelo é uma API de Python para gerenciar modelos no Snowflake e implantá-los nos warehouses do Snowflake como funções vetorizadas definidas pelo usuário (UDFs). Para acesso antecipado à documentação de registro do modelo, entre em contato com seu representante da Snowflake.

Instalação do Snowpark ML

Todos os recursos do Snowpark ML estão disponíveis em um único pacote, snowflake-ml-python.

Você pode instalar o Snowpark ML a partir do canal conda do Snowflake usando o comando conda ou do índice de pacotes Python (PyPI) usando pip. Conda é o preferido.

Instalação do Snowpark ML do canal Snowflake conda

  1. Crie o ambiente conda onde você instalará o Snowpark ML. Se preferir usar um ambiente existente, pule esta etapa.

    conda create --name snowpark-ml
    
    Copy
  2. Ative o ambiente conda:

    conda activate snowpark-ml
    
    Copy
  3. Instale o Snowpark ML do canal Snowflake conda:

    conda install --override-channels --channel https://repo.anaconda.com/pkgs/snowflake/ snowflake-ml-python
    
    Copy

Dica

Ao trabalhar no Snowpark ML, instale pacotes do repositório Snowflake sempre que possível. Isso garante que você receba pacotes que foram validados com o Snowpark ML.

Instalação do Snowpark ML de PyPI

Você pode instalar o pacote Snowpark ML a partir do Python Package Index (PyPI) usando o gerenciador de pacotes Python padrão, pip.

Aviso

Não use este procedimento de instalação se estiver usando um ambiente Conda. Use as instruções conda.

  1. Mude para o diretório do seu projeto e ative seu ambiente virtual Python:

    cd ~/projects/ml
    source .venv/bin/activate
    
    Copy
  2. Instale o pacote Snowpark ML:

    python -m pip install snowflake-ml-python
    
    Copy

Configuração do Snowpark Python

Snowpark Python é uma dependência do Snowpark ML e é instalado automaticamente quando você instala o Snowpark ML. Se o Snowpark Python não estiver configurado em seu sistema, talvez seja necessário executar etapas adicionais de configuração. Consulte Configuração do seu ambiente de desenvolvimento para o Snowpark Python para obter instruções de configuração do Snowpark Python.

Autenticação no Snowflake

Algumas partes do Snowpark ML exigem que você se autentique no Snowflake. Você pode fazer isso com um objeto do conector Snowflake para Python Connection ou um Snowpark Python Session. Ambas as formas são equivalentes; use o que funcionar melhor em seu aplicativo.

Use a função SnowflakeLoginOptions no módulo snowflake.ml.utils.connection_params para obter as definições de configuração para criar a conexão ou sessão. A função pode ler os parâmetros da conexão a partir de uma conexão nomeada no arquivo de configuração SnowSQL ou de variáveis de ambiente definidas por você. Ele retorna um dicionário contendo esses parâmetros, que podem ser usados para criar uma conexão ou uma sessão. Os exemplos a seguir leem os parâmetros de conexão da conexão nomeada myaccount no arquivo de configuração SnowSQL.

Para criar uma conexão do conector Snowflake para Python, passe as informações de configuração retornadas por connection_params para snowflake.connector.connect:

from snowflake import connector
from snowflake.ml.utils import connection_params

params = connection_params.SnowflakeLoginOptions("myaccount")
sf_connection = connector.connect(**params)
Copy

Para criar uma sessão Snowpark Python, crie um construtor para a classe Session e passe as informações de conexão para o método configs do construtor:

from snowflake.snowpark import Session
from snowflake.ml.utils import connection_params

params = connection_params.SnowflakeLoginOptions("myaccount")
sp_session = Session.builder.configs(params).create()
Copy

Agora você pode passar a conexão ou a sessão para qualquer função do Snowpark ML que precise dela.

Considerações sobre custo

Ao treinar e usar modelos no Snowflake, você executa o código em um warehouse virtual, o que gera custos de computação. Esses custos variam de acordo com o tipo de modelo e a quantidade de dados usados no treinamento e na previsão.

Consulte Explicação dos custos de computação para obter informações gerais sobre os custos de computação do Snowflake.

Leitura adicional

Consulte os recursos a seguir para obter informações sobre Snowpark ML Modeling e Snowpark ML Ops.

Modeling

Ops

Entre em contato com seu representante Snowflake para obter acesso antecipado à documentação sobre os próximos recursos.

Referência de API

A referência do Snowpark ML API inclui documentação sobre todas as funcionalidades lançadas publicamente. Você também pode obter a documentação da API detalhada para qualquer classe usando a função help do Python em uma sessão interativa do Python. Por exemplo:

from snowflake.ml.modeling.preprocessing import OneHotEncoder

help(OneHotEncoder)
Copy