Snowflake機械学習モデルを Snowflake Native App で使用¶
このトピックでは、 Snowflake ML モデルを Snowflake Native App で使用する方法について説明します。また、アプリから Snowflake Cortex 関数を呼び出す方法についても説明します。
Snowflake Native App でのSnowpark ML 使用の概要¶
Snowflake MLは、お客様の管理データの上に、単一のプラットフォームでエンドツーエンドの機械学習を行うための統合機能セットです。この関数は、 Snowflake Native App でこの機能性を使用できます。
Snowflake Native App Framework は以下のユースケースをサポートしています。
プロバイダーはアプリにトレーニングアルゴリズムを含みますが、トレーニングされたモデルは含まれません。プロバイダーは、線形回帰やロジスティック回帰などのモデルのソースコードをアプリに含めます。
アプリがインストールされた後、モデルの
fit()
メソッドを呼び出すなどして、コンシューマーアカウントのデータでトレーニングが行われます。詳細については、 Snowflake ML モデルの作成、学習、アプリでの使用 をご参照ください。
プロバイダーはコンシューマーとデータを共有し、アプリにトレーニングアルゴリズムを含めます。インストール後、アプリはアプリと共有されたコンシューマーアカウントのデータに基づいてモデルをトレーニングします。
詳細については、 Snowflake ML モデルの作成、学習、アプリでの使用 をご参照ください。
プロバイダーはアカウント内のデータに基づいてモデルをトレーニングし、これらのモデルをアプリに含めます。アプリがインストールされると、コンシューマーはモデルの:predict() メソッドを呼び出すなどして、モデルを直接使用することができます。
詳細については、 トレーニング済みモデルをアプリに組み込みます をご参照ください。
アプリでSnowflake ML を使用する場合の制限事項¶
アプリでSnowflake ML を使用する場合、以下の制限が適用されます。
現在、ウェアハウスに基づくモデルのみがサポートされています。
プロバイダーは、コンシューマーとモデルを共有するためにSnowflake Model Registryを使用する必要があります。
fit()
のようなSnowpark ML 関数は、 Snowflake Native Apps ではサポートされていない仮ステージに結果を保存します。ウェアハウス内のSnowparkサンドボックスで実行可能な機械学習アルゴリズムには制限があります。TensorFlow や PyTorch のような複雑な機械学習フレームワークは、これらのサンドボックスでは実行できません。
プロバイダーのデータセットでトレーニングを行っても、コンシューマーのデータに対して十分に有効なモデルが得られない場合があります。コンシューマーデータでモデルをトレーニングすることで、より良い結果が得られるかもしれません。
アプリからのSnowflake Cortex関数の呼び出し¶
アプリから Snowflake Cortex 関数 を呼び出すには、 コンシューマー は、次の例に示すように、まずアプリに CORTEX_USER データベースロールを 付与する必要があります。
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO APPLICATION my_app;
注釈
プロバイダーは、コンシューマーが CORTEX_USER データベースのロールを付与する必要があることを、アプリのリストに記載する必要があります。
SNOWFLAKE データベースの CORTEX_USER データベースロールには、ユーザーがSnowflake Cortex LLM 関数を呼び出すことを許可する権限が含まれています。詳細については、 Snowflake Cortex AISQL (LLM 関数を含む) をご参照ください。
このロールをアプリにコンシューマーした後、アプリは次の例に示すように Snowflake Cortex 関数を呼び出すことができます。
SELECT SNOWFLAKE.CORTEX.TRANSLATE('La plateforme unique de Snowflake élimine les silos de données!','fr','en');