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 Snowflake 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

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

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

    conda activate snowflake-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 Snowflake 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. Crie e ative seu ambiente virtual Python:

    python3 -m virtualenv venv
    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 opcionais

Algumas APIs exigem dependências que não estão instaladas como dependências do snowflake-ml-python. Por padrão, o scikit-learn está instalado. Outros pacotes, como lightgbm, xgboost, keras, pytorch e outros, são dependências opcionais.

Se você planeja usar o módulo snowflake.ml.modeling.lightgbm, instale o lightgbm. Use os comandos a seguir para ativar seu ambiente conda e instalar o lightgbm do canal Snowflake conda.

conda activate snowflake-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.

source venv/bin/activate
python -m pip install 'snowflake-ml-python[lightgbm]'
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 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 ou inferência de modelos, executam um 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 SnowSQL configuration file
params = connection_params.SnowflakeLoginOptions(connection_name="my_connection")

# 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 da Snowflake 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