Snowpark Container Services:Snowflake で洗練された生成 AI とフルスタック アプリを安全に展開して実行する
注:本記事は(2023年6月27日)に公開された(Snowpark Container Services: Securely Deploy and run Sophisticated Generative AI and full-stack apps in Snowflake)を翻訳して公開したものです。この記事の翻訳には機械翻訳を使用しています。
Containerは、特に高度な AI/ML モデルやフルスタックのデータ集約型アプリの場合、環境間での移植性と一貫性を確保するために、任意の言語でコードをパッケージ化するための最新のアプローチとして登場しました。この種の最新のデータ製品は、大量の独自データを頻繁に処理します。これらのワークロードを大規模に作成、開発、実行することは一般的に複雑であり、開発者やデータ サイエンティストは、ビジネス上の問題に集中するよりも、これらのアプリケーションのコンピューティングとクラスターの管理に多くの時間を費やすことになります。さらに、フルスタック アプリと LLM はデータが管理される場所では直接実行できないため、これらのシナリオで使用されるデータのセキュリティ管理が非常に困難になり、場合によっては不可能に近くなります。
フルスタック アプリ、LLM、その他の高度なデータ製品を安全にデータに取り込みやすくするために、Snowpark Container Services が現在プライベート プレビュー段階にあります。この追加の Snowpark ランタイム オプションにより、開発者は、GPU などの構成可能なハードウェア オプションを備えた安全な Snowflake 管理のインフラストラクチャを使用して、コンテナ化されたワークロード (ジョブ、サービス、サービス機能) を簡単にデプロイ、管理、スケーリングできるようになります。
この新しいランタイムにより、ユーザーはContainerのコンピューティングとクラスターを管理および維持する複雑な操作に取り組む必要がなくなります。Snowflake でContainerを実行すると、社内で開発されたかサードパーティプロバイダーによって開発されたかに関係なく、最も洗練された AI/ML モデルやアプリの一部として使用するために、管理されたデータを Snowflake の外に移動する (これにより追加のセキュリティ リスクにさらされる) 必要がありません。Snowflakeマーケットプレイスからインストール可能な Snowflake Native Apps として利用できます。
Snowpark Container Servicesの概要
プログラミング言語とハードウェアの柔軟性
開発者が選択したツールを使用して構築およびパッケージ化されたContainerには、任意のプログラミング言語 (C/C++、Node.js、Python、R、React など) のコードを含めることができ、GPU を含む構成可能なハードウェア オプションを使用して実行できます。プログラミング言語とハードウェアにおけるこの柔軟性により、Snowpark を使用して Snowflake データに導入される AI/ML および アプリのワークロードの範囲がさらに拡大します。
たとえば、データ サイエンス チームは、トレーニングや推論ジョブで使用される機械学習 (ML) Python ライブラリの実行を高速化できます。また、大規模言語モデル (LLM) などの計算集約型の生成 AI を実行することもできます。アプリ開発者は、React やその他の一般的な Web 開発フレームワークを使用して、フロントエンド ユーザー インターフェイスを構築および展開できます。データ エンジニアは、SQL または Python DataFrame 操作を実行するのと同じ処理エンジンで、通常は C/C++ で記述された最適化されたロジックを実行できます。
2020 年に初めて Snowpark を立ち上げたとき、Snowflake は、 ユーザー定義関数 (UDF) や ストアド プロシージャを含む一連のライブラリとランタイムを通じて、Snowflake で Python、Java、および Scala コードを展開および処理する安全な方法を導入しました。Snowpark Container Services は、開発者が Snowflake の管理されたデータ境界内で非 SQL コードを簡単に処理できる、信頼できる強力で使い慣れた方法を提供するという Snowpark のビジョン を実現するもう 1 つの方法を提供します。Snowpark の他の部分と同様に、コードとロジックは、Snowflake エクスペリエンスからアクセスして統合できます。ユーザーは、Snowpark Container Services で実行されているContainerを通じてデータを処理するデータ クエリを SQL、Python、Java、または Scala で作成できます。
フルマネージドで統合されたサービス
Snowpark Container Services は、コンテナ化されたアプリケーションと AI/ML モデルのエンドツーエンドのライフサイクルに、シンプルで統一されたエクスペリエンスを提供します。他のソリューションでは、Container レジストリ、Container管理サービス、コンピューティング サービスを手動で結合する必要があり、さらに可観測性、データ接続、セキュリティなどのために独自の個別のツールを管理する必要があります。
Snowflake Container Services は、プラットフォームが「適切に機能する」ことを保証するという Snowflake の哲学に忠実であり、それらすべてを統合し、コンピューティングとクラスターのメンテナンスに対処する必要性を排除して、データ アプリケーションの開発と製品化をスピードアップします。そうすることで、Snowpark Container Services は、開発者がContainerを提供するだけで済むよう、Containerのホスティングとサービスのシンプルさと機能を実現します。また、Snowflake は、Kubernetes の複雑さをすべて学ばなくても、Containerを大規模に提供およびホストします。
Containerへの幅広いアクセスをサポートする一環として、開発者にはプログラミング インターフェイスとして SQL、CLI、または Python を使用するオプションがあります。幅広いワークロードをサポートするために、Snowpark Container Services には 3 つの実行オプションがあります。
- ジョブ:時間制限のあるプロセスは、アドホックに手動で、またはスケジュールされたプロセスの一部としてトリガーされます。一般的な例には、GPU で ML トレーニングを開始するために使用されるContainer イメージや、Container内で言語、フレームワーク、ライブラリを実行しているデータ パイプラインのステップが含まれます。
- サービス機能:入力を受け取り、アクションを実行し、Containerによってサポートされるイベントによって繰り返しトリガーできる、時間制限のあるプロセス。
- サービス:安全な入力エンドポイントを備えた長期プロセス。通常はアプリケーション フロントエンドまたは API をホストし、オンデマンド リクエストに常に使用できる必要があります。
高度なサードパーティ製ソフトウェアとアプリをデータに取り込む
Snowpark Container Services を Snowflake Native App の一部として使用すると、開発者は完全にエンド顧客の Snowflake アカウントで実行される高度なアプリケーションを配布できます。これは、Snowflake の消費者にとって、プロバイダーの独自 IP を保護する方法で、ホスト型ノートブックや LLM などの最先端の製品を Snowflake アカウント内に安全にインストールして実行できることを意味します。
- Hex.データ サイエンス チームは、Snowpark Container Services を使用して分析とデータ サイエンスを加速し、共同分析とデータ サイエンス用のプラットフォームである Hex を展開し、SQL、R、Python でデータのクエリと処理を行うだけでなく、GPU で機械学習トレーニングを実行できます。同時に、データが消費者の Snowflake アカウントから決して流出しないようにします。Snowflake に Hex を展開するには、 デモ ビデオをチェックし、 待機リスト にサインアップしてください。
- LLM プロバイダー。組織は、プロバイダーの知的財産 (IP) と消費者のデータの両方が完全に保護される Snowflake Native Apps として、最先端の生成 AI モデルを Snowflake アカウント内に導入できます。AI21 Labs、Reka、NVIDIA (NVIDIA AI Enterprise ソフトウェア プラットフォームの一部である NeMo フレームワーク) などのプロバイダーを使用している場合、Snowflake Native Appのロジックがアクセスできないため、LLM ウェイトやその他の独自の IP はアプリの消費者に公開されません。LLM はエンド消費者のアカウント内で実行されるため、LLM との微調整やその他のやり取りに使用される管理された企業データが開発者に公開されることはありません。Snowflake Summit 2023 の基調講演の デモ で、実際の動作をご覧ください。
この新しい Snowpark ランタイムは、Snowpark Accelerated パートナー エコシステムをさらに拡張および強化します。Snowflake の強力なプラットフォームを活用し、管理されたデータに処理をもたらすパートナーの統合サービスとアプリケーションを通じて、技術チームとビジネス チームのエクスペリエンスを強化します。
- Alteryx.Alteryx Designer でワークフローを作成し、160 以上のノーコードでコードに優しいツールから選択して、需要を予測する予測モデルの構築などの高度な分析の問題を解決します。ワークフローを Alteryx Analytics Cloud Platform にアップロードし、Snowpark Container Services でロジックを実行します。
- Astronomer.Apache Airflow を使用すると、依存関係管理や特殊なコンピューティング制限なしでコードをデータに取り込むことで、高度なスケジューリング、アラート、モニタリング、複雑な分岐および再試行ロジックなど、複雑で強力なデータ パイプラインをより効率的に調整できます。
- Dataiku.Dataiku でトレーニングされたモデルを、スケーラブルな推論サービスとして Snowpark Container Services にデプロイします。Web アプリケーションを使用すると、Dataiku はモデルに機能をフィードし、Snowpark Container Services からすぐに予測を受け取ることができます。
- NVIDIA.NVIDIA GPU は、Snowpark Container Services の加速されたインフラストラクチャ レイヤーとして機能し、Snowflake の顧客にとってより効率的でパフォーマンスが高く、コスト効率の高いコンピューティングを実現します。
- SAS.SAS® Viya® を使用して、Snowflake のデータを使用したモデル開発と意思決定トレーニングを行うには、SAS Container Runtime (迅速なプロトタイピングと簡単なデプロイメントを可能にする OCI 準拠のContainer) を通じてチャンピオン モデルを Snowpark Container Services に公開します。
Snowpark Container Services には、専用データベース (RelationalAI、 Pinecone 、CARTO)、ML および MLOps (H2O.ai、Kumo AI、Weights & Biases)、アプリケーション全体 (Amplitude) など、さらに多くの統合パートナー ソリューションがあります。
Snowpark Container Servicesの未来
Snowpark Container Services は、Snowflake に提供できるものに制限のないアプリ開発の新時代の舞台を設定します。しかし、この新しい Snowpark ランタイムには、Snowflakeマーケットプレイス経由でContainer イメージを使用して Snowflake Native Apps を提供するというビジョンを実現するなど、さらに多くのことを計画しています。
Snowpark Container Services の最新情報を入手するには、必ず ここでサインアップしてください。