Retrieval-Augmented Generation (RAG) は、プライベートでドメイン固有のナレッジに関する質問に回答する大規模言語モデル (LLM) の能力を強化します。外部のナレッジベースから関連情報を取得し、ユーザーのクエリとともにコンテキストとして LLM に提供します。Elastic Algorithm Service (EAS) は、シナリオベースのデプロイオプションを提供し、RAG ベースの LLM チャットボットを迅速に構築・デプロイできるようにします。これにより、お好みの 大規模言語モデルとベクトルデータベースを選択できます。このトピックでは、RAG ベースの LLM チャットボットサービスをデプロイし、その推論を検証する方法について説明します。
このトピックは、RAG バージョン 0.3.4 および 0.3.5 に適用されます。最新バージョンを使用することを推奨します。
ステップ 1: RAG サービスのデプロイ
-
PAI コンソールにログインします。ページ上部でリージョンを選択します。次に、目的のワークスペースを選択し、Elastic Algorithm Service (EAS) をクリックします。
Inference Service タブで、Deploy Service をクリックします。Scenario-based Model Deployment セクションで、RAG-based Smart Dialogue Deployment をクリックします。
RAG-based LLM Chatbot Deployment ページで、以下のパラメーターを設定します:
Version: RAG サービスは 2 つのデプロイモードをサポートしています。ユースケースとリソースに合わせてモードを選択してください。
LLM-Integrated Deployment: RAG サービスと大規模言語モデル (Qwen など) を単一の EAS サービスインスタンスにデプロイします。このモードは設定が簡単で、迅速な検証やプロトタイピングに最適です。
LLM-Separated Deployment: RAG サービスのみをデプロイし、大規模言語モデルは別のサービスとして実行します。このモードでは、RAG サービスが他の LLM サービス (EAS にデプロイされた他の LLM や Alibaba Cloud Model Studio サービスなど) に接続できます。リソースの再利用と独立したスケーリングを容易にし、本番環境や LLM サービスが既に存在する場合に適しています。
Deployment: サービスに適切なコンピューティングリソースを割り当てます。
LLM-Integrated Deployment: 選択した [モデルカテゴリ] に基づいて、システムが自動的にリソース仕様を推奨します。推奨よりも低い仕様では、サービスが起動しない可能性があります。
LLM-Separated Deployment: RAG サービス自体が消費するリソースは最小限です。少なくとも 8 コア CPU と 16 GB のメモリを持つ仕様、たとえば
ecs.g6.2xlargeやecs.g6.4xlargeを推奨します。
ベクトルデータベースの設定:
Vector Database Type: [FAISS] を選択して、迅速な実践のためにローカルのベクトルデータベースを構築します。本番環境では、本番環境グレードのベクトルデータベースを使用することを推奨します。詳細については、「Alibaba Cloud ベクトルデータベースの使用」をご参照ください。
OSS Path: 現在のリージョンに存在する Object Storage Service (OSS) ディレクトリを選択し、アップロードされたナレッジベースファイルを保存します。利用可能なストレージパスがない場合は、「コンソールのクイックスタート」を参照して作成してください。
説明セルフホストのファインチューニング済みモデルでサービスをデプロイする場合、選択した OSS ストレージパスがモデルのストレージパスと競合しないようにしてください。
VPC: 「EAS がパブリックまたはプライベートリソースにアクセスするための設定」を行い、RAG サービスが LLM サービス、ベクトルデータベース、およびその他のクラウドサービスと適切に通信できるようにします。
パブリックサービスへのアクセス: インターネット経由でベクトルデータベース、LLM サービス (Alibaba Cloud Model Studio など)、または Web 検索にアクセスするには、EAS サービスのパブリックネットワークアクセスを設定する必要があります。
プライベートサービスへのアクセス:
プライベートエンドポイントを使用してベクトルデータベースにアクセスするには、RAG サービスとベクトルデータベースが同じ VPC 内にある必要があります。
プライベートエンドポイントを使用して LLM サービスにアクセスするには、RAG サービスと LLM サービスが同じ VPC 内にある必要があります。
説明Hologres、Elasticsearch、および RDS PostgreSQL は、プライベートネットワークとパブリックネットワークの両方でのアクセスをサポートしています。プライベートネットワークアクセスを使用することを推奨します。
FAISS ベクトルデータベースはネットワークアクセスを必要としません。OpenSearch はパブリックネットワーク経由でのみアクセスをサポートします。
パラメーターを設定した後、Deploy をクリックします。Service Status が Running に変わると、サービスは正常にデプロイされています。デプロイには通常約 5 分かかりますが、モデルサイズやその他の要因によって時間は異なる場合があります。
ステップ 2: API の呼び出し
RAG サービスは、ナレッジベース管理や会話などのタスク用の API を提供しており、アプリケーションへの統合が容易です。詳細については、「RAG API リファレンス」をご参照ください。
コストとリスク
コストの内訳
このソリューションのコストには、主に以下が含まれます:
EAS リソース料金: RAG サービスが消費するコンピューティングリソース (vCPU、メモリ、GPU など) は時間単位で課金されます。これらのリソースの課金は、サービスを停止すると停止します。
ベクトルデータベース料金: Elasticsearch、 Hologres、OpenSearch、または RDS PostgreSQL を使用する場合、対応するプロダクトのインスタンス料金が課金されます。
Object Storage Service (OSS) 料金: これらの料金は、元のナレッジベースファイルを保存するために発生します。
大規模言語モデル呼び出し料金: Alibaba Cloud Model Studio などの商用モデルサービスを使用する場合、API 呼び出し料金が適用されます。
インターネット NAT Gateway 料金: EAS サービスがインターネットにアクセスする必要がある場合、NAT Gateway 料金が発生します。
Web 検索サービス料金: Web 検索機能 (Bing など) を有効にすると、対応する検索サービスの料金が発生します。
EAS サービスを停止すると、EAS リソースの課金のみが停止します。他のプロダクトの課金を停止するには、それらのプロダクトのドキュメントを参照し、指示に従って関連インスタンスを停止または削除してください。
主なリスクと制限事項
会話長の制限: 1 回の会話で処理されるテキストの量は、選択した LLM サービスのコンテキストウィンドウサイズ (トークン制限) によって制限されます。
ファイルの上書き: FAISS 以外のベクトルデータベースを使用する場合、同じ名前のファイルをアップロードすると既存のデータが上書きされます。注意して進めてください。
API パラメーターの制限: API 呼び出しを通じて設定できるのは、機能パラメーターのサブセットのみです。ほとんどの取得チューニングパラメーターなど、その他の詳細設定は WebUI で設定する必要があります。
注意事項
このソリューションは、サーバーリソースサイズと LLM サービスのデフォルトのトークン制限によって制限され、会話長が制約されます。その目的は、RAG ベースの LLM チャットボットの基本的な取得機能を体験していただくことです。
よくある質問
無効な API パラメーター
現在、PAI-RAG サービスは、API リファレンスドキュメントに記載されているパラメーターのみを API 経由で設定できます。その他のパラメーターは WebUI で設定する必要があります。