Snowday 2023で発表された新機能を公式ブログやYouTubeを参考にまとめてみた #Snowday
さがらです。
現地時間2023年11月1日~11月2日に、Snowday 2023が開催されています。
Snowday 2023は、「AMERICAS」「ASIA PACIFIC」「EUROPE, MIDDLE EAST, ADRICA」の地域に併せて3回放映されるのですが、「AMERICAS」での放映完了に伴い多くの公式ブログやYouTubeがリリースされました。
そこで公式ブログやYouTubeを元に、今回のSnowday 2023でどのような発表があったかをまとめてみます。
Fast, Easy and Secure LLM App Development With Snowflake Cortex
この記事ではLLMを用いたアプリケーション開発を、新しく発表されたSnowflake Cortexや、Summit 2023で発表されたSnowpark Container Servicesでどのように実装できるか、各機能の紹介がされています。
SnowflakeにおけるGenerative AIとLLM機能の全体像
Snowflakeですでに管理されているデータにGenerative AIを導入するための基本要素として、以下の2つがあります。
- Snowflake Cortex
- AIモデル、LLM、vector search機能、を提供するフルマネージドサービス
- Snowpark Container Services ※まもなく一部のAWSリージョンでパブリックプレビュー予定
- Snowflake管理のインフラを用いて、OSSのLLMを用いたワークロードを含むコンテナアプリケーションをデプロイ・運用ができるサービス
- 詳しくは、こちらのブログもご覧ください。
Snowflake CortexのLLMアプリ開発に関連する機能
Snowflake CortexのLLMアプリ開発に関連する機能として、以下の機能があります。
- ユーザーはLlama2の3つのモデルサイズから選択可能(7B、13B、70B)※プライベートプレビュー
- 各モデルの違いについては、Meta社の公式記事をご覧ください。
- Text to SQL ※プライベートプレビュー
- 自然言語からSQLを生成できる機能
- Embed Text ※プライベートプレビュー
- 与えられたテキスト入力を、ユーザーが選択したモデルを用いてvecotor embeddingsを行う機能
- Vector Distance ※プライベートプレビュー
- Vector間の距離を計算するための関数を3つ提供
Vector_cosine_ distance()
:コサインの類似度を計算Vector_l2_ distance()
:L2ノルムを計算Vector_inner_product()
:Vectorの内積を計算
- ネイティブのVectorデータ型 ※まもなくプライベートプレビュー
- 上述の関数をデータに対して実行するためのSnowflakeの新しいデータ型として、Vectorをサポートするデータ型を提供
- Streamlit in Snowflake ※パブリックプレビュー
- Streamlitを用いることで数行のPythonコードでインターフェースを開発できるため、LLMアプリの開発をさらに加速
- (Streamlit in Snowflakeについては私も一度試しているので、こちらのブログもご覧ください。)
Snowpark Container Servicesを用いたLLMアプリ開発に関連する機能
Snowpark Container Servicesを用いたLLMアプリ開発に関連する機能として、以下の機能があります。
- OSSのLLMとVector Databaseのデプロイ
- Snowflakeが提供するGPUを利用したインフラと、Snowpark Model Registryを用いたモデルの管理が可能
- 商用サービスの活用
- LLMアプリの開発に役立つ各商用サービスがSnowpark Container Servicesを用いたSnowflake Native Appsとして提供される予定 ※現在はプライベートプレビュー
- A21 LabsやReka.aiのような商用LLM、Wights & BiasesのようなLLMOpsツール、Pineconeのようなベクトルデータベース、が提供予定
- LLMアプリケーションのインターフェースのカスタマイズ
- Snowpark Container ServicesはReactなどのフレームワークを用いたアプリケーションのデプロイにも対応しているため、柔軟なインターフェースのカスタマイズが可能
Build and deploy ML with ease Using Snowpark ML, Snowflake Notebooks, and Snowflake Feature Store
Snowflake上で機械学習のワークフローの開発~実稼働を更に加速するために、以下の4つの機能について発表がありました。
- Snowflake Notebook ※プライベートプレビュー
- Snowpark ML Modeling API ※まもなくGA
- Snowpark Model Registry ※まもなくパブリックプレビュー
- Snowflake Feature Store ※プライベートプレビュー
Snowflake Notebook
Snowsight上で使用できる、PythonやSQLを用いたSnowflake内のデータを探索・分析できる対話型のプログラミング環境としてSnowflake Notebookが発表されました。
Pythonユーザーには馴染み深いNotebook形式のプログラミング環境ですが、Snowflake Notebookには以下の特徴があります。
- Snowpark MLを使用したモデルのトレーニングとデプロイ
- Streamlitを用いた結果の視覚化
- Snowflakeのロールを用いたアクセス制御を行い、共同作業が可能
Snowpark ML Modeling API
Snowflakeを用いて機械学習のワークフローを構築するために「Snowpark ML」がSummit 2023で発表されており、これには各種Pythonライブラリと、Snowpark ML Modeling APIやSnowpark ML Operations APIが含まれています。
この中で、Snowpark ML Modeling APIがまもなく一般提供となる予定です。このAPIを用いることで、Snowflakeからデータを移動することなくSnowflakeのスケーラブルなプラットフォーム上で、Scikit-learnや XGBoostなどの一般的なMLフレームワークを特徴量エンジニアリングやモデルのトレーニングに使用できるようになります。
Snowpark Model Registry
Snowpark MLを用いた運用の観点で、Snowflakeでの機械学習モデルの安全なデプロイと管理を可能とするSnowpark Model RegistryもSummit 2023で発表されています。
まだ機能の詳細までは発表されていませんが、以下のことがSnowpark Model Registryでできそうです。
- 組み込まれたバージョン管理機能
- ロールベースのアクセス制御
- SQL APIも備えることで、SQLユーザーとPythonユーザー両方に対応
Snowflake Feature Store
機械学習モデルのトレーニングと運用のためには特徴量管理が必要となりますが、その特徴量管理を実現する機能としてSnowflake Feature Storeが新しく発表されました。
まだ機能の詳細までは発表されていませんが、Snowflakeでの機械学習モデル構築での特徴量管理におけるSingle Source of truthとして役立ちそうです。
Snowday Announcements for Application Development: Snowpark Container Services, Snowflake Native Apps, Hybrid Tables and more!
この記事ではSnowflakeを用いたアプリケーション開発で役立つ各種機能についてSnowdayで発表があったため、それらの機能について説明がされています。
Snowpark Container Services
開発者がコンテナアプリケーションを簡単にデプロイ・管理するための機能としてSnowpark Container Servicesがあります。※まもなく一部のAWSリージョンでパブリックプレビュー
Snowflake管理のフルマネージドなインフラストラクチャ上にデプロイできるだけでなく、Snowflakeのインフラ上で完結するためデータの受け渡しも発生しません。
Snowpark Container Servicesのより技術的な詳細については下記の記事が参考になりますので、こちらも併せてご覧ください。
Snowflake Native Apps
Snowflake上でアプリをパッケージ化し、Snowflake Marketplaceで配布して収益化し、アプリ利用者は自身のSnowflakeアカウント内でアプリを利用できるという、一連のフレームワークがSnowflake Native Appsです。※まもなくAWSで一般公開、まもなくAzureでパブリックプレビュー
Snowflake Native Appsの詳細については下記の公式ドキュメントが参考になります。
また、Snowflake Native Appsの主な用途として考えられる、各種アプリケーションのデータを取得するためのコネクタ開発について、より楽に行うことができるSnowflake Native SDK for Connectorsが発表されました。
Snowflake Native SDK for Connectorsについてはすでに公式ドキュメントも用意されており、Quickstartまで用意されております。気になる方は下記の公式ドキュメントよりご確認ください。
更に、記事上ではSnowpark Container Servicesを利用するSnowflake Native Appsの例として、Carto、Hex、H2O.ai、Reka、RelationalAI、Lamini、について言及もありました。
Hybrid Table
Summit 2022で、トランザクションワークロードにも対応する新しいテーブルとしてHybrid Tableが発表されています。※プライベートプレビュー
Hybrid Tableを使うことで、主キーや参照整合性の制約を強制したり、高速に検索するためのセカンダリインデックスを使うことが可能です。
各種DevOps関連機能
また、本記事ではアプリケーションの管理に必要なDevOpsプロセスを行うための機能についても言及がありました。
- Database change management capabilities ※プライベートプレビュー
- configuration as codeのパターンを用いて、一貫した方法でdev/test/staging/prod環境間でオブジェクトを作成するための機能が提供されるようです。
- 具体的には、SQLスクリプトをGitリポジトリ・VS Code・Snowflake Native Appsから実行できる機能や、これらのスクリプトをテンプレートする機能が含まれるようです。
- Git integration with Snowflake ※プライベートプレビュー
- Gitリポジトリに存在する各種コードを簡単に閲覧・編集・実行ができるようになる
- Snowflake Command Line Interface ※まもなくパブリックプレビュー
- CLIを用いて、Snowflakeのインフラ関連の変更の自動化や、Snowflakeのインフラをコードで定義し、デプロイの自動化やテストが行える
- Event Tables ※まもなく一般提供
- Snowfalke上でログメッセージとトレースデータを管理できるテーブル
- Event Tableについてはこちらの記事で検証されており、とても参考になります
Use AI in Seconds with Snowflake Cortex
上述のLLMアプリ開発の記事に関するまとめでも触れたSnowflake Cortexですが、Snowflake CortexはユーザーにすぐにAIを活用してもらうことができる機能も多く備わっており、この記事ではそれらの機能について言及がされています。
Serverless functions in Snowflake Cortex
Snowflake Cortexには、ユーザーがすぐに使うことができるAI/LLMを活用したサーバーレス関数のセットが含まれています。これらのサーバーレス関数が使用するモデルはすべてSnowflake側で管理されているため、ユーザー側で高価なGPUインフラを立ち上げることなく使用できるとのことです。
具体的には、以下のようなAI/LLMを活用したサーバーレスの関数が含まれています。
LLMベースのサーバーレス関数
- Answer Extraction ※プライベートプレビュー
- 非構造化データから情報を抽出
- Sentiment Detection ※プライベートプレビュー
- テーブル上のテキストから感情を検出する
- Text Summarization ※プライベートプレビュー
- ドキュメントの要約
- Translation ※プライベートプレビュー
- テキストの翻訳
- Complete ※プライベートプレビュー
- 与えられたプロンプトに対して、Llama2などの最先端のOSSのLLMを使った回答が得られる
- Text2SQL ※まもなくプライベートプレビュー
- 自然言語からSQLを生成
MLベースのサーバーレス関数
- Forecasting ※まもなく一般公開
- 過去の時系列データを与え、未来の値を予測
- 公式ドキュメントはこちらです
- Anomaly Detection ※まもなく一般公開
- 時系列データから異常値を識別
- 公式ドキュメントはこちらです
- Contribution Explorer ※パブリックプレビュー
- ある指定した指標(売上など)に寄与しているディメンションはどれかを分析する
- 公式ドキュメントはこちらです
- Classification ※まもなくパブリックプレビュー
- データを定義済みのクラスやラベルに分類
Snowflake Copilot
Snowsightのワークシート上で、自然言語でリクエストをするとSQLを生成してくれたり、関連するクエリを絞り込むことができるアシスタント機能として、Snowflake Copilotが発表されました。※プライベートプレビュー
Universal Search
データやアプリを素早く発見しアクセスするためのLLMを用いた検索機能として、Universal Serarchが発表されました。※プライベートプレビュー
Neevaの検索エンジンの技術をベースとしており、Snowflakeアカウント内のデータベースオブジェクトだけでなく、Marketplace上のData ProductやNative Appsまで検索を行ってくれます。
Document AI
任意のドキュメント(PDF、word、txt、スクリーンショット)を処理し、ユーザーからの質問に対する回答を得ることができる機能として、Document AIがSummit 2023で発表されています。※プライベートプレビュー
Document AIについては下記のYouTubeも参考になります。
Snowflake Cortex: Industry-leading AI Models And LLMs In Snowflake | Snowday 2023
Snowflake Cortexに関する説明とデモンストレーションを行っている動画です。
- Snowflake Notebookでの、Snowflake Cortexのサーバーレス関数を用いたドイツ語から英語への翻訳
- テキストの要約
- Wikiのテキストに対してVector Embeddingを行い、SQLベースでRAGを用いてWikiに関する内容を自然言語でリクエストし取得
- Snowflake CortexのLLM機能とStreamlitを用いた、テキストの要約とチャットベースでの質疑応答
Build, Run, and Distribute Custom Apps on Snowflake | Snowday 2023
Snowflake Native Apps、Snowpark Container Services、Hybrid Tableを用いたアプリケーション開発のデモンストレーションを行っている動画です。
- フロントエンドからバックエンドまで、全てがSnowflake上で動いてる ※URL欄に注目
- アプリケーション上で使用するデータは各ユーザーのSnowflakeアカウントのデータを使用できる
- Snowflake上でLLMのモデル(要約機能)を関数として実装したので、アプリからはその関数を呼び出すコードを数行書くだけでOK
- 要約した結果はSnowflakeのHybrid Tableに保管されるように実装したため、Snowsightのワークシートからすぐに確認可能
- Hybrid Tableは主キー制約を強制するため、今回のユースケースであるサポートチケットのデータにおいてはチケットIDが重複することはない。別テーブルとの参照整合性も強制可能のため、存在しない顧客のチケットの追加はできない
- 開発したアプリケーションをMarketplaceで展開することで、収益化も容易に実現
[2023/11/3追記]Announcing New Innovations for Data Warehouse, Data Lake, and Data Lakehouse in the Data Cloud
昨今は、データウェアハウス、データレイク、データレイクハウスとデータを管理するストレージパターンも増え、中央集権ではなく分散してデータ基盤を管理するデータメッシュの考えも出てきています。
そのうえ、管理すべきデータもJSON、テキストファイル、ドキュメント、画像、ビデオ、と多岐にわたります。
そんな状況で、Snowflakeがどのような機能をもってこれらの多様なデータ管理のニーズに応えようとしているか、本記事でまとめられています。
Apache Iceberg関連
データレイクのスケーラビリティや柔軟性のメリットと、データウェアハウスのガバナンス・スキーマ管理・トランザクション特性を組み合わせたアーキテクチャとして、データレイクハウスアーキテクチャがあります。
現在はオープンソースのフォーマットを使用することが多く、Apache Iceberg、Apache Hudi、Delta Lakeが使われています。
このレイクハウスアーキテクチャへの対応としてSnowflakeは、Iceberg Tableを発表しています。※まもなくパブリックプレビュー
Iceberg Tableの特徴としては以下が挙げられます。
- データは顧客が管理するS3などのストレージに保存される
- Snowflakeでのクエリパフォーマンスは、外部テーブルよりも平均2倍以上優れている
- Snowflake特有の機能である、データシェアリング、ロールベースのアクセス制御、タイムトラベル、Snowpark、オブジェクトへのタグ付け、行アクセスポリシー、マスキングポリシーなどの機能にも対応
また、Iceberg Tableのメタデータを管理するためのテーブルカタログの定義をSnowflakeで行うようにすると、さらに以下のメリットが得られます。
- Snowflakeから、INSERT、MERGE、UPDATE、DELETEの処理が行える
- 圧縮、スナップショットの有効期限、ファイルの削除、などの自動ストレージメンテナンス
- 自動クラスタリング ※オプション
- Apache Sparkから、Snowflakeが提供するIceberg Catalog SDKを使用して、Snowflakeのコンピュートリソースを使わずともIceberg Tableをスキャンできる
データレイクの半構造化データと非構造化データのサポートの拡張
データレイクは、オブジェクトストレージ上にあらゆるファイル形式のデータを大規模かつ低コストに保存することができます。
Snowflakeは多様化するデータレイクのニーズに対応するため、以下の機能を提供・発表しております。
- PDF・画像・ビデオ・音楽ファイル、などの非構造化データをSnowflake管理の内部ステージに保存できるように ※一般公開
- JSON・CSVのスキーマを推論する機能と、スキーマの変化を捉え自動でスキーマを変更する機能(Schema Evolution)を提供 ※共にまもなく一般公開
- PDF・画像・ビデオ・音楽ファイルをSnowflakeのリソースを使ってプログラムで処理をできる、Snowpark for Python and Scala ※一般公開
データウェアハウス用途のパフォーマンスとコスト向上
Snowflakeはデータウェアハウスの用途として主に使用されていますが、さらにパフォーマンスとコストを向上させるための機能を提供・発表しています。
- AS OF JOINのサポートにより、タイムスタンプの完全一致ではなく近似値のレコードでのJOINを可能に(想定用途は、金融サービスやIoTなど) ※まもなくプライベートプレビュー
- 自然言語処理、画像分析、感情分析、などのユースケースに必要とされるデータに対応するため、ロード時のファイルサイズ制限の緩和 ※まもなくプライベートプレビュー
- メモリを多く使用するクエリに対して一時的にウェアハウスのリソースを増強するQuery Acceleration Service ※一般提供
- 参考までに、私も一度試してブログにしております。
- ORDER BY句とLIMIT句を含むSELECT文における、top-k pruningのサポートによる大規模なテーブルに対するクエリの高速化 ※まもなく一般公開
- 内部処理の効率化により、マテリアライズドビューのメンテナンスコストが50%以上削減 ※一般公開
ANY_VALUE()
、MODE()
などの一部の非決定的な関数を使用するクエリが、Query Result Cacheをサポート ※一般公開- INSERT句の処理に、 Query Acceleration Serviceが対応
- 特定のテーブルでの自動クラスタリングの初期費用とメンテナンス費用を見積もるために役立つ機能 ※プライベートプレビュー
[2023/11/3追記]Announcing New Innovations for Snowflake Horizon
Snowflakeはデータガバナンスにも力を入れており、関連するコンプライアンスや機能についてまとめられた記事です。
※タイトルにもある「Snowflake Horizon」は私も初めて聞いた用語でしたが、新機能というより、これまでもSnowflakeが提供していたデータガバナンス機能を総称した概念と理解しています。
コンプライアンス認証
Snowflakeはすでに多くのコンプライアンス認証を取得していますが、今後もさらに認証を追加していくようです。最近だと、以下の認証を得ております。
- 英国のCyber Essentials Plus (CE+)
- FBIのCriminal Justice Information Services (CJIS) Security Policy
- IRSのPublication 1075 Tax Information Security Guidelines
- 韓国のKorea Financial Security Institute (K-FSI)
- AWS GovCloudにおける、StateRAMP Highおよび米国国防総省の影響レベル4(DoD IL4)の暫定認可
データ品質監視
組織全体のデータ品質を監視する機能についても発表しております。※プライベートプレビュー
このデータ品質監視機能では、すぐに使用できるメトリクスはもちろん、独自のカスタムメトリクスの定義も可能となり、品質の閾値を超えた場合にメール通知を受信できるようにアラートを構成することもできます。
データリネージ
ユーザーがオブジェクトの上流・下流の依存関係を見ることができるデータリネージも発表しております。※プライベートプレビュー
このリネージを用いて、下流のオブジェクトにタグとポリシーを伝播することもできるようになる予定です。
Trust Center
Snowflake上で、セキュリティリスクを一か所で監視できる機能として、Trust Centerを発表しました ※まもなくプライベートプレビュー
データの安全性をさらに高めるためのその他機能
他にデータの安全性をさらに高めるための機能として、以下の内容についても触れられていました。
- ネットワークルールを用いた、AWS上の内部ステージへのアクセス制限、S3エンドポイントの識別子に基づいたアクセス制限 ※パブリックプレビュー
- ネットワークルールについてはこちらの公式Docをご覧ください。
- 複数のSAML IdP、Authentication Policy、Identifier first flow ※まもなくパブリックプレビュー
- データベースロール
- 私も一度データベースロールについては試してブログにしています。
DIfferential Privacy Policy
データクリーンルームなどの用途でより確実にデータのプライバシーを担保するため、各種ポリシーの機能を総称したDIfferential Privacy Policyが発表されました。まだ詳細は未定ですが、DIfferential Privacy Policyには以下の機能が含まれるようです。
- Dynamic Data Masking ※一般公開
- Aggregation ※プライベートプレビュー
- Projection Policies ※プライベートプレビュー
Apache Iceberg互換のカタログ対応
Iceberg Tableではメタデータを管理するためのカタログとして、SnowflakeまたはAWS Glueなどの外部サービスを使用するように設定できる予定です。
この際、Catalog Integrationという新しいアカウントレベルのオブジェクトを用いて、SnowflakeはAWS Glueなどの外部サービスのカタログであっても安全に読み取ることが出来るようになる予定です。※Catalog Integrationはまもなくパブリックプレビュー
また、Snowflakeで定義したメタデータを管理するカタログを外部参照させるために、以下の機能の提供・開発に取り組んでいます。
- Apache IcebergプロジェクトへのSDKの提供
- 実際にGitHubリポジトリで確認可能です
- Iceberg Catalog REST API ※開発中
[2023/11/3追記]Better Manage and Optimize Your Snowflake Spend In One Place With the New Cost Management Interface
Snowflakeを運用するうえで、コストの管理と最適化は複雑で時間のかかる作業であることをSnowflakeは認識しており、このコスト管理作業を改善するために、Cost Managementの機能を発表しました。 ※プライベートプレビュー
大きく、以下の2つの機能を含んでいます。
- アカウントの使用状況と支出の詳細を可視化 ※プライベートプレビュー
- 予算管理のためのBudgets機能 ※Budgets機能としてはすでにパブリックプレビュー
アカウントの使用状況と支出の詳細を可視化
下図のように、Snowflakeのクレジット利用状況を可視化・分析できるダッシュボードが提供されるようです。
予算管理のためのBudgets機能
Budgets機能では、GUIベースの操作で直感的にクレジットの消費状況や月末までの消費予測値を確認することが可能です。
また、特定のオブジェクトのみでグルーピングしてCustom Budgetsを設定することもできます。
私も一度Budgets機能は試しているので、こちらのブログも参考になるかと思います。
最後に
Snowday 2023で発表された新機能を公式ブログやYouTubeを参考にまとめてみました。
正直、Summit 2023と同じくらいアツい機能が多く発表され、テンションが上がりましたw 特にSnowflake Cortexは早く試してみたいですね!!