Uso do armazenamento de recursos online do Snowflake na produção¶
O Snowflake ML Feature Store ajuda a gerenciar seus recursos durante todo o processo de engenharia de recursos.
Para aplicativos online que exigem inferência de baixa latência, use o armazenamento de recursos online para fornecer seus recursos.
As seções a seguir abordam a colocação em produção do processo de recuperação de recursos no aplicativo Python. As seções apresentam exemplos de código para as seguintes ações:
Carregamento do conjunto de dados Iris no Snowflake
Definição da conexão com o Snowflake
Criação do armazenamento de recursos e das exibições de recursos
Recuperação dos recursos e dos valores de recursos
Geração de previsões com base em seu modelo
Os exemplos de código estão escritos em Python. Para passar por este fluxo de trabalho com aplicativos escritos em outras linguagens, use um driver do Snowflake específico para a linguagem. Para obter mais informações, consulte Drivers.
Pré-requisitos¶
Para executar a recuperação de recursos ML online no Snowflake, você precisa do seguinte:
Dados que você já carregou no Snowflake
Armazenamento de recursos do Snowflake
Exibições de recursos
Fornecimento de recursos online habilitado para cada exibição de recurso
Você pode usar os recursos do seu próprio armazenamento de recursos do Snowflake, mas é possível usar o código a seguir para carregar o conjunto de dados Iris no Snowflake, se ainda não tiver um armazenamento de recursos.
Depois que tiver os dados em seu ambiente, crie o armazenamento de recursos. O código a seguir cria um armazenamento de recursos e a entidade id_entity para as diferentes amostras do conjunto de dados Iris.
Nota
O Snowflake ML Feature Store tem o conceito de entidades. As entidades são chaves que organizam os recursos entre as exibições. Para obter mais informações sobre entidades, consulte Como trabalhar com entidades.
Depois de criar o armazenamento de recursos, defina as exibições. O código a seguir define as exibições dos recursos sepal e petal do conjunto de dados Iris.
Recuperação dos valores de recursos¶
Depois que você registrar as exibições de recursos e habilitar o fornecimento de recursos online para cada exibição, os valores de recursos de cada exibição serão fornecidos ao seu aplicativo.
Para recuperar os valores de recursos, faça o seguinte:
Configure uma conexão com o Snowflake
Crie a sessão e os objetos do Snowflake Feature Store que são inicializados quando o aplicativo é iniciado
Recupere os recursos das exibições
Crie um ponto de extremidade de previsão e faça as previsões desse ponto de extremidade
Importante
Você deve instalar o snowflake-ml-python>=1.18.0 no ambiente do seu aplicativo para usar a Feature Store API.
Para se conectar de seu aplicativo ao Snowflake, você deve configurar um token de acesso programático (Programmatic Access Token, PAT) ou uma autenticação de par de chaves como método de autenticação.
Configuração do cliente¶
Ao inicializar seu aplicativo, ele deve se conectar à Snowflake ML Feature Store API e criar os objetos Python do Feature Store necessários.
Siga as seções abaixo para configurar a conexão do seu cliente com a Snowflake ML Feature Store API.
Configuração do token de acesso programático (PAT)¶
Especifique os seguintes parâmetros de conexão no código abaixo para conectar o seu aplicativo ao Snowflake:
schema: nome do armazenamento de recursos do Snowflakedatabase: banco de dados que contém o esquema ou o armazenamento de recursosrole: função necessária para ler o armazenamento de recursos. Para obter mais informações, consulte Acesso para criar e fornecer recursos online.password: o PAT
Especifique os seguintes parâmetros de conexão no código abaixo para conectar o seu aplicativo ao Snowflake:
schema: nome do armazenamento de recursos do Snowflakedatabase: banco de dados que contém o esquema ou o armazenamento de recursosrole: função necessária para ler o armazenamento de recursos. Para obter mais informações, consulte Criação e fornecimento de recursos online.private_key_file: arquivo de chave privadaprivate_key_file_pwd: senha para o arquivo de chave privada
Criação da sessão e dos objetos do Feature Store
Depois de definir os parâmetros de conexão, crie a sessão e os objetos do Feature Store que seu aplicativo usará para se conectar ao Snowflake.
O seguinte código:
Cria a sessão do Snowflake, o cliente que seu aplicativo usa para se comunicar com o Snowflake.
Configura um executor de pool de threads para habilitar o paralelismo de recuperação de recursos.
Lista os recursos que estamos recuperando do armazenamento.
Inicializa o cliente do leitor de armazenamento de recursos. Esse objeto encerra a sessão do Snowflake. Trata-se da principal maneira que seu aplicativo interage com o armazenamento de recursos.
Inicializa as exibições de recursos que você definiu. Você pode substituí-las por seus próprios recursos.
Recuperação dos recursos online no caminho de fornecimento¶
Depois de definir como o aplicativo é inicializado, crie um ponto de extremidade de previsão.
Há diferentes maneiras de definir como seu aplicativo processa as solicitações. O seguinte código Python:
Define o ponto de extremidade de previsão em seu aplicativo
Obtém as chaves da solicitação JSON
Usa as chaves para recuperar os valores de recursos das exibições de recursos
Passa esses valores de recursos para o modelo
Faz as previsões com base no modelo
Retorna as previsões na resposta
O código anterior chama uma run_inference hipotética. Sua própria função de inferência pode fazer previsões com base em seu modelo, sem considerar se ele está hospedado remotamente ou na memória do aplicativo.
O ponto de extremidade de previsão no código anterior aceita uma chave e retorna a previsão para essa chave. Seus dados podem ter várias chaves que caracterizam uma única amostra. O código anterior deve ser um exemplo que você pode adaptar ao seu caso de uso.