Snowflake Cortexを使用した簡単かつ安全なRAGからLLMへの推論
注:本記事は(2024年3月5日)に公開された(Easy and Secure LLM Inference and Retrieval Augmented Generation (RAG) Using Snowflake Cortex)を機械翻訳により公開したものです。
大規模言語モデル(LLM)では、自然言語を使用した人間と機械のインタラクションが可能になるため、より多くのデータチームと開発者が日々のワークフローにAIを取り入れることができます。これを効率的かつ安全に行うには、チームは、トレーニング済みのLLMに関する知識を組織のプライベートエンタープライズデータと組み合わせて、LLMが特定の日付までのデータしかトレーニングされていないために生じる幻覚(つまり、誤った応答)に対処する方法を決定する必要があります。
このようなAIの幻覚を軽減するために、LLMのカスタマイズが不要なプロセス(プロンプトエンジニアリングや検索の拡張生成など)またはカスタマイズが必要なプロセス(微調整や再トレーニングなど)でLLMをプライベートデータセットと組み合わせることができます。どこから始めるかを決めるには、AIモデルのカスタマイズに必要なリソースと時間、および生成AI投資のROIを示すために必要なタイムラインの間でトレードオフを行うことが重要です。
すべての組織が両方の選択肢をテーブルに保持する必要がありますが、迅速に価値を提供するには、プロンプトエンジニアリングと検索拡張生成(RAG)を使用して価値を提供できるユースケースを特定し、展開することが重要です。これは、LLMで企業データから価値を得るための迅速かつコスト効率の高いアプローチだからです。
LLM使用時のデータセキュリティを維持しながら、生成AIで迅速に成功を収められるように、AWSとAzureの一部リージョンでSnowflake Cortex LLM機能のパブリックプレビューが利用可能になりました。NVIDIA GPUで高速化されたコンピュート上で動作するフルマネージド型のサービスであるSnowflake Cortexでは、Mistral AIやMetaなどの業界をリードするLLMを活用するために、統合の設定、インフラストラクチャーの管理、Snowflakeのガバナンス境界外へのデータの移動を行う必要はありません。
では、プロンプトエンジニアリングであれRAGであれ、Snowflake CortexによってAIを簡単に実行できるのはなぜでしょうか?では、詳しく見ていきましょう。
プロンプトを表示するかどうか
Snowflake Cortexには、プロンプトを定義することなくすぐに使えるタスク固有の関数があります。特に、翻訳、センチメント分析、要約などのタスクを迅速かつコスト効率の良い方法で実行できます。アナリストなどSQLに精通したユーザーが行わなければならないのは、テキストデータを含むテーブルの列を以下の特定の関数でポイントすることだけです。その他の作業はSnowflake Cortex関数が行います。手動オーケストレーション、データフォーマット、インフラストラクチャーの管理は必要ありません。これは、マーケティングチーム、セールスチーム、カスタマーサポートチームがこれまで十分に活用できていなかった製品レビュー、調査、通話記録、その他の長文データソースを常に利用するチームに特に役立ちます。
SELECT SNOWFLAKE.CORTEX.SUMMARIZE(review_text) FROM reviews_table LIMIT 10;
もちろん、プロンプトによるカスタマイズが役立つユースケースもたくさんあります。たとえば :
Mistral AI(Mistral Large、Mistral 8x7B、Mistral 7B)、Google(Gemma-7b)、Meta(Llama2 70B)の業界をリードする基盤モデルのパワーにより、これらすべてを迅速に実行できます。他のSnowflake Cortex関数と同様に、これらのすべての基盤LLMには完全な関数でアクセスできます。手動オーケストレーションやLLMスループット管理は必要ありません。
SELECT SNOWFLAKE.CORTEX.COMPLETE(
'mistral-large',
CONCAT('Summarize this product review in less than 100 words.
Put the product name, defect and summary in JSON format: <review>',
content, '</review>')
) FROM reviews LIMIT 10;
ドキュメントの上にチャットボットを配置するなどのユースケースでは、すべてのドキュメントをコンテキストとしてプロンプトに表示するとコストがかかる場合があります。このような場合は、LLMに入力するトークンの量(一般的な経験則として、75語は100トークンに相当します)を最小にすることで、コスト効率を高めることができます。LLMを変更することなくこの問題を解決する一般的なフレームワークはRAGです。RAGはSnowflakeで簡単に実行できます。
RAGとは
Snowflakeでこれを行う方法について説明する前に、RAGの基本事項を確認しておきましょう。
RAGは、LLMが応答を生成する前に、正確かつ最新の情報を使用して特定のナレッジベースにアクセスする一般的なフレームワークです。モデルを再トレーニングする必要がないため、LLMの機能をコスト効率の良い方法で特定のドメインに拡張できます。
この検索を展開するために、拡張フレームワークチームと生成フレームワークチームは以下を組み合わせる必要があります。
- クライアント/アプリUI:ここでは、ビジネスの意思決定者などのエンドユーザーが、通常チャットサービスの形式でナレッジベースと対話できます。
- コンテキスト・リポジトリ:ここでは、最新のナレッジリポジトリを提供するために、関連するデータソースが集約、管理され、必要に応じて継続的に更新されます。このコンテンツは、ドキュメントをチャンクしてベクトルストアに埋め込む自動化されたパイプラインに挿入する必要があります。
- ベクトル検索:これには、ナレッジベースの数値またはベクトル表現を維持するベクトルストアと、質問に最も関連したチャンクを簡単に検索できるセマンティック検索の組み合わせが必要です。
- LLM推論:これらの組み合わせにより、チームは質問とコンテキストを埋め込み、会話型LLMを使用して最も関連性の高い情報を見つけ、コンテキスト化された応答を生成できます。
Snowflake Cortexにより、RAGからリッチなLLMアプリを数分で開発
RAGが一般的にどのように機能するかを理解したところで、Snowflakeにどのように適用すればよいでしょうか?ベクトルデータ型(プライベートプレビュー中)を含むSnowflakeプラットフォームのデータガバナンスおよび管理のための豊富な基盤を使用することで、RAGを使用したエンドツーエンドのAIアプリを、統合、インフラストラクチャ管理、データ移動なしで、次の3つの主要機能を使用して開発および展開できます。
次に、これらの特徴量をRAGフレームワークの主要アーキテクチャコンポーネントにどのようにマッピングするかを示します。
- クライアント/アプリUI:Streamlit in Snowflakeのチャット要素を使用すると、ユーザーインターフェイスを迅速に構築して共有できます。
- コンテキスト・リポジトリ:ナレッジリポジトリは、Snowflakeステージを使用して簡単に更新および管理できます。ドキュメントがロードされると、チャンク(コンテキストリッチな小さなテキストブロック)の生成を含むすべてのデータ準備がSnowparkで実行できます。特にチャンクについては、Snowparkユーザー定義関数の一部としてLangChainをシームレスに使用できます。
- ベクトル検索:SnowflakeではVECTORがデータ型としてネイティブサポートされているため、個別のストアやサービスを統合して管理する必要はありません。VECTORデータをSnowflakeテーブルに保存し、システム定義の類似関数(L2、コサイン、内積距離)を使用して類似クエリを実行します。
- LLM推論:Snowflake Cortexは、埋め込みとテキスト補完推論のためのサーバーレス関数(Mistral AI、Llama、Gemma LLMのいずれかを使用)でワークフローを完了します。
コードを表示
Snowflake Cortexと緊密に統合された機能エコシステムにより、Snowflakeでの迅速なプロトタイピングとアジャイルなAIアプリ展開を実現しましょう。以下のいずれかのリソースから始めます。
- Snowflake Cortex LLM関数のドキュメント
- Snowflake Cortexにより、3つの有用なLLM推論ジョブを10分で実行
- RAGとSnowflake Cortexを使用して文書チャットLLMアプリを構築する
ライブデモを見たり、Snowflake Cortexのエキスパートに質問するには、次のいずれかのイベントに登録してください。
他の業界やSnowflakeのエキスパートから最新の生成AI機能の使い方を学び、仲間と交流してみませんか?今年6月にサンフランシスコで開催されるSnowflake Data Cloud Summitにぜひご参加ください