APIs Python para Snowflake ML

O pacote Python snowflake-ml-python fornece Python APIs que se conecta aos vários componentes do fluxo de trabalho do Snowflake ML e também inclui APIs para a criação e o treinamento de seus próprios modelos. É possível usar essas APIs em sua Python IDE favorita, em sua própria estação de trabalho, em planilhas Snowsight ou em cadernos Snowflake.

Dica

Consulte Introdução ao aprendizado de máquina com Snowpark ML para um exemplo de um fluxo de trabalho de ponta a ponta usando esta biblioteca.

Usando o Snowflake ML em Snowflake Notebooks

O Snowflake Notebooks fornece uma interface de notebook fácil de usar para seu trabalho de dados, combinando Python, SQL e Markdown. Para usar os recursos do Snowflake ML em notebooks, escolha o pacote Anaconda snowflake-ml-python usando o menu Packages na parte superior do notebook.

Os notebooks oferecem suporte a ambas as opções de tempo de execução de CPU e GPU. Muitos tipos de modelos exigem ou se beneficiam de ter uma GPU disponível.

Importante

O pacote snowflake-ml-python e suas dependências devem ser permitidos pela política de pacotes da sua organização.

Como usar o Snowflake ML em planilhas Snowsight

As planilhas Snowsight fornecem um método poderoso e versátil para executar código Python. Para usar os recursos do Snowflake ML em planilhas, escolha o pacote Anaconda snowflake-ml-python usando o menu Packages na parte superior da planilha.

Importante

O pacote snowflake-ml-python e suas dependências devem ser permitidos pela política de pacotes da sua organização.

Como usar o Snowflake ML localmente

É necessário instalar o pacote snowflake-ml-python para desenvolver em sua própria estação de trabalho ou em outro lugar fora do Snowflake. Todos os recursos do Snowpark ML estão disponíveis em um único pacote, snowflake-ml-python. É possível instalar o pacote do canal conda do Snowflake usando o comando conda ou a partir do Python Package Index (PyPI) usando pip. Conda é o preferido.

Instalação a partir do canal conda do Snowflake

Importante

A instalação de snowflake-ml-python a partir do conda em um Mac baseado em ARM (com chip M1 ou M2) requer a especificação da arquitetura do sistema ao criar o ambiente conda. Para fazer isso, inclua CONDA_SUBDIR=osx-arm64 no comando conda create: CONDA_SUBDIR=osx-arm64 conda create --name snowpark-ml.

  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 snowflake-ml-python a partir do canal conda do Snowflake:

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

Dica

Instale pacotes a partir do canal conda do Snowflake sempre que possível para garantir que você receba pacotes que foram validados com o Snowpark ML.

Instalação do PyPI

É possível instalar snowflake-ml-python a partir do Python Package Index (PyPI) usando o gerenciador de pacote 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 snowflake-ml-python:

    python -m pip install snowflake-ml-python
    
    Copy

Instalação de dependências de modelagem opcionais

Algumas APIs de modelagem exigem dependências que não são instaladas como dependências de snowflake-ml-python. Os pacotes scikit-learn e xgboost são instalados por padrão, mas lightgbm é uma dependência opcional. Se você planeja usar classes no namespace snowflake.ml.modeling.lightgbm, instale o lightgbm por conta própria.

Use os comandos a seguir para ativar seu ambiente conda e instalar o lightgbm do canal Snowflake conda.

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

Use os seguintes comandos para ativar seu ambiente virtual e instalar o lightgbm usando pip.

.venv/bin/activate
python -m pip install 'snowflake-ml-python[lightgbm]'
Copy

O Snowflake pode adicionar dependências opcionais adicionais de tempos em tempos. Para instalar todas as dependências opcionais usando pip:

.venv/bin/activate
python -m pip install 'snowflake-ml-python[all]'
Copy

Configuração do Snowpark Python

O Snowpark Python é uma dependência de snowflake-ml-python e é instalado automaticamente com ele. Se o Snowpark Python ainda não estiver definido em seu sistema, talvez seja necessário executar etapas de configuração adicionais. Consulte Configuração do seu ambiente de desenvolvimento para o Snowpark Python para obter instruções de configuração do Snowpark Python.

Conexão ao Snowflake

Antes de usar os recursos do Snowflake ML no Python, conecte-se ao Snowflake usando um objeto Session do Snowpark. Use a função SnowflakeLoginOptions no módulo snowflake.ml.utils.connection_params para obter as definições de configuração para criar a sessão. A função pode ler as configurações 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ê. Ela retorna um dicionário contendo esses parâmetros, que podem ser usados para criar uma conexã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 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 é possível passar a sessão para quem precisar.

Dica

Para criar uma sessão do Snowpark Python a partir de uma conexão do Snowflake Connector para Python, passe o objeto de conexão para o construtor de sessão. Aqui, connection é o conector Snowflake para conexão Python.

session = Session.builder.configs({"connection": connection}).create()
Copy

Especificação de um warehouse

Muitos recursos do Snowflake ML, por exemplo, treinamento de modelo ou inferência, executam código em um warehouse do Snowflake. Essas operações são executadas no warehouse especificado pela sessão usada para conexão. Por exemplo, se você criar uma sessão a partir de uma conexão nomeada em seu arquivo de configuração SnowSQL, poderá especificar um warehouse usando o parâmetro warehousename na configuração nomeada.

Você pode adicionar a configuração do warehouse ao criar o objeto Session, conforme mostrado aqui, se ele ainda não existir na configuração.

from snowflake.snowpark import Session
from snowflake.ml.utils import connection_params
# Get named connection from SnowQSL configuration file
params = connection_params.SnowflakeLoginOptions("myaccount")
# Add warehouse name for model method calls if it's not already present
if "warehouse" not in params:
    params["warehouse"] = "mlwarehouse"
sp_session = Session.builder.configs(params).create()
Copy

Se nenhum warehouse for especificado na sessão, ou se você quiser usar um warehouse diferente, chame o método use_warehouse da sessão para especificar um warehouse.

sp_session.use_warehouse("mlwarehouse")
Copy

Referência de API

A referência do Snowpark ML API inclui documentação sobre todas as funcionalidades lançadas publicamente. Também é possível obter documentação de API detalhada para qualquer API 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