Usar os modelos de aprendizado de máquina do Snowflake em um Snowflake Native App

Este tópico descreve como usar um modelo do Snowflake ML em um Snowflake Native App. Ele também descreve como chamar as funções do Snowflake Cortex a partir de um aplicativo.

Visão geral do uso do Snowpark ML em um Snowflake Native App

O Snowflake ML é um conjunto integrado de recursos para aprendizado de máquina de ponta a ponta em uma única plataforma sobre seus dados governados. Você pode usar essa funcionalidade em um Snowflake Native App.

O Snowflake Native App Framework é compatível com os seguintes casos de uso:

  • Os provedores incluem um algoritmo de treinamento no aplicativo, mas o modelo treinado não está incluído. Os provedores incluem o código-fonte do modelo, por exemplo, regressão linear ou regressão logística, no aplicativo.

    Depois que o aplicativo é instalado, o treinamento ocorre nos dados da conta do consumidor, por exemplo, chamando o método fit() do modelo.

    Para obter mais informações, consulte Crie, treine e use um modelo do Snowflake ML em um aplicativo.

  • Os provedores compartilham dados com o consumidor e incluem um algoritmo de treinamento no aplicativo. Após a instalação, o aplicativo treina o modelo com base nos dados da conta do consumidor que foram compartilhados com o aplicativo

    Para obter mais informações, consulte Crie, treine e use um modelo do Snowflake ML em um aplicativo.

  • Os provedores treinam um modelo com base nos dados de suas contas e incluem esses modelos no aplicativo. Quando o aplicativo é instalado, os consumidores podem usar o modelo diretamente, por exemplo, chamando o método :predict() do modelo.

    Para obter mais informações, consulte Incluir um modelo treinado em um aplicativo.

Limitações ao usar o Snowflake ML em um aplicativo

As seguintes limitações se aplicam ao uso do Snowflake ML em um aplicativo:

  • No momento, só há suporte para modelos baseados em warehouses.

  • Os provedores devem usar o Snowflake Model Registry para compartilhar modelos com os consumidores. As funções do Snowpark ML como fit() armazenam resultados em um estágio temporário que não é compatível com Snowflake Native Apps.

  • Há limitações nos algoritmos de aprendizado de máquina que podem ser executados em uma sandbox do Snowpark em um warehouse. Estruturas de aprendizado de máquina mais complexas, como TensorFlow ou PyTorch, não podem ser executadas nessas sandboxes.

  • O treinamento realizado no conjunto de dados de um provedor pode não produzir um modelo suficientemente eficaz para os dados de um consumidor. O treinamento de um modelo com dados do consumidor pode fornecer melhores resultados.

Chamar funções do Snowflake Cortex a partir de um aplicativo

Para chamar uma função do Snowflake Cortex a partir de um aplicativo, os consumidores devem primeiro conceder a função de banco de dados CORTEX_USER ao aplicativo, conforme mostrado no exemplo a seguir:

GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO APPLICATION my_app;
Copy

Nota

Os provedores devem mencionar na listagem de um aplicativo que os consumidores devem conceder a função de banco de dados CORTEX_USER.

A função de banco de dados CORTEX_USER no banco de dados SNOWFLAKE inclui os privilégios que permitem aos usuários chamar funções de LLM do Snowflake Cortex. Consulte Snowflake Cortex AISQL (incluindo as funções LLM) para obter mais informações.

Depois que os consumidores atribuem essa função ao aplicativo, o aplicativo pode chamar as funções do Snowflake Cortex, conforme mostrado no exemplo a seguir:

SELECT SNOWFLAKE.CORTEX.TRANSLATE('La plateforme unique de Snowflake élimine les silos de données!','fr','en');
Copy