ワークショップのセットアップ
ベクトルデータベースのデプロイ
このステップでは、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 documentation を参照してください。
新しい namespace を作成します
oc create namespace weaviateWeaviate が特権コンテナを実行できるようにするために、以下のコマンドを実行します
注意:このアプローチは本番環境では推奨されません
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 をデプロイします。このプロセスが一度だけ実行されるようにするため、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
