ワークショップセットアップ
ベクターデータベースのデプロイ
このステップでは、OpenShift クラスターにベクターデータベースをデプロイし、ワークショップ参加者が使用するテストデータを投入します。
ベクターデータベースのデプロイ #
このワークショップでは、オープンソースのベクターデータベースである Weaviate をデプロイします。
まず、Weaviate の Helm チャートを含む Weaviate Helm リポジトリを追加します。
helm repo add weaviate https://weaviate.github.io/weaviate-helm
helm repo updateweaviate/weaviate-values.yaml ファイルには、Weaviate ベクターデータベースのデプロイに使用する設定が含まれています。
Weaviate が Prometheus receiverでスクレイピングできるメトリクスを公開するように、以下の環境変数を TRUE に設定しています。
PROMETHEUS_MONITORING_ENABLED: true
PROMETHEUS_MONITORING_GROUP: true追加のカスタマイズオプションについては、Weaviate のドキュメント を参照してください。
新しい Namespace を作成します。
oc create namespace weaviate以下のコマンドを実行して、Weaviate が特権コンテナを実行できるようにします。
注意: この方法は本番環境では推奨されません。
oc adm policy add-scc-to-user privileged -z default -n weaviate次に、Weaviate をデプロイします。
helm upgrade --install \
"weaviate" \
weaviate/weaviate \
--namespace "weaviate" \
--values ./weaviate/weaviate-values.yamlベクターデータベースへのデータ投入 #
Weaviate が起動したので、ワークショップでカスタムアプリケーションと共に使用するデータを追加します。
この作業に使用するアプリケーションは、LangChain Playbook for NeMo Retriever Text Embedding NIM に基づいています。
./load-embeddings/k8s-job.yaml の設定に従い、NVIDIA H200 Tensor Core GPU のデータシート
をベクターデータベースにロードします。
このドキュメントには、大規模言語モデルが学習していない NVIDIA H200 GPU に関する情報が含まれています。ワークショップの次のパートでは、ベクターデータベースにロードされたこのドキュメントのコンテキストを使用して、LLM が質問に回答するアプリケーションを構築します。
OpenShift クラスターに Kubernetes Job をデプロイしてエンベディングをロードします。 このプロセスが1回だけ実行されるようにするために、Pod ではなく Kubernetes Job を使用します。
oc create namespace llm-app
oc apply -f ./load-embeddings/k8s-job.yaml注意: エンベディングを Weaviate にロードする Python アプリケーションの Docker イメージをビルドするために、以下のコマンドを実行しました。
bashcd workshop/cisco-ai-pods/load-embeddings docker build --platform linux/amd64 -t derekmitchell399/load-embeddings:1.0 . docker push derekmitchell399/load-embeddings:1.0
