Compare commits
39 Commits
genaicomps
...
helmcharts
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ebd2ab0222 | ||
|
|
2f1f80bbae | ||
|
|
5158b5e822 | ||
|
|
1c3f55602a | ||
|
|
bb4c1dbc44 | ||
|
|
16018085b0 | ||
|
|
93bbd5131f | ||
|
|
4f32f867ec | ||
|
|
4f183c2a0d | ||
|
|
1046aad26f | ||
|
|
2876677214 | ||
|
|
a9536321a0 | ||
|
|
24de14e58a | ||
|
|
065222f29b | ||
|
|
3f596d9747 | ||
|
|
9da0c09b18 | ||
|
|
b9c646a2b8 | ||
|
|
27e9832af4 | ||
|
|
f3cbcadfa2 | ||
|
|
e21ee76f24 | ||
|
|
8effe7a4eb | ||
|
|
0d3876d6fa | ||
|
|
bb46f5b355 | ||
|
|
bcaffd7db4 | ||
|
|
124143ea40 | ||
|
|
6dc4bb5c79 | ||
|
|
d290bd811f | ||
|
|
d68ce801e4 | ||
|
|
048b4e1df9 | ||
|
|
fdb8a33a6e | ||
|
|
4e1237d410 | ||
|
|
58ff7d9518 | ||
|
|
9ee1a7410b | ||
|
|
24166615d7 | ||
|
|
a0b2263fd3 | ||
|
|
5c2f3f0301 | ||
|
|
a70775d3d6 | ||
|
|
3dd5475773 | ||
|
|
d6b04b3405 |
@@ -1,6 +1,6 @@
|
|||||||
# ChatQnA Deployment
|
# Benchmarking Deployment
|
||||||
|
|
||||||
This document guides you through deploying ChatQnA pipelines using Helm charts. Helm charts simplify managing Kubernetes applications by packaging configuration and resources.
|
This document guides you through deploying this example pipelines using Helm charts. Helm charts simplify managing Kubernetes applications by packaging configuration and resources.
|
||||||
|
|
||||||
## Getting Started
|
## Getting Started
|
||||||
|
|
||||||
@@ -8,29 +8,19 @@ This document guides you through deploying ChatQnA pipelines using Helm charts.
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# on k8s-master node
|
# on k8s-master node
|
||||||
cd GenAIExamples/ChatQnA/benchmark/performance/helm_charts
|
cd GenAIExamples/{example_name}/benchmark/performance/helm_charts
|
||||||
|
|
||||||
# Replace the key of HUGGINGFACEHUB_API_TOKEN with your actual Hugging Face token:
|
# Replace the key of HUGGINGFACEHUB_API_TOKEN with your actual Hugging Face token:
|
||||||
# vim customize.yaml
|
# vim hpu_with_rerank.yaml or hpu_without_rerank.yaml
|
||||||
HUGGINGFACEHUB_API_TOKEN: hf_xxxxx
|
HUGGINGFACEHUB_API_TOKEN: hf_xxxxx
|
||||||
```
|
```
|
||||||
|
|
||||||
### Deploy your ChatQnA
|
### Deployment
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Deploy a ChatQnA pipeline using the specified YAML configuration.
|
# Options:
|
||||||
# To deploy with different configurations, simply provide a different YAML file.
|
# --num_nodes choices=[1, 2, 4, 8]
|
||||||
helm install chatqna helm_charts/ -f customize.yaml
|
# --mode choices=["tuned", "oob"]
|
||||||
|
# --workflow choices=["with_rerank", "without_rerank"]
|
||||||
|
python deployment.py --workflow=with_rerank --mode=tuned --num_nodes=1
|
||||||
```
|
```
|
||||||
|
|
||||||
Notes: The provided [BKC manifests](https://github.com/opea-project/GenAIExamples/tree/main/ChatQnA/benchmark) for single, two, and four node Kubernetes clusters are generated using this tool.
|
|
||||||
|
|
||||||
## Customize your own ChatQnA pipelines. (Optional)
|
|
||||||
|
|
||||||
There are two yaml configs you can specify.
|
|
||||||
|
|
||||||
- customize.yaml
|
|
||||||
This file can specify image names, the number of replicas and CPU cores to manage your pods.
|
|
||||||
|
|
||||||
- values.yaml
|
|
||||||
This file contains the default microservice configurations for ChatQnA. Please review and understand each parameter before making any changes.
|
|
||||||
|
|||||||
@@ -1,71 +1,48 @@
|
|||||||
# Copyright (C) 2024 Intel Corporation
|
# Copyright (C) 2024 Intel Corporation
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
HUGGINGFACEHUB_API_TOKEN: ${HF_TOKEN}
|
|
||||||
|
|
||||||
podSpecs:
|
podSpecs:
|
||||||
- name: chatqna-backend-server-deploy
|
- name: chatqna-backend-server-deploy
|
||||||
spec:
|
replicas: 2
|
||||||
image_name: opea/chatqna
|
resources:
|
||||||
image_tag: latest
|
limits:
|
||||||
replicas: 2
|
cpu: "8"
|
||||||
resources:
|
memory: "8000Mi"
|
||||||
limits:
|
requests:
|
||||||
cpu: "8"
|
cpu: "8"
|
||||||
memory: "8000Mi"
|
memory: "8000Mi"
|
||||||
requests:
|
|
||||||
cpu: "8"
|
|
||||||
memory: "8000Mi"
|
|
||||||
|
|
||||||
- name: embedding-dependency-deploy
|
- name: embedding-dependency-deploy
|
||||||
spec:
|
replicas: 1
|
||||||
image_name: ghcr.io/huggingface/text-embeddings-inference
|
resources:
|
||||||
image_tag: cpu-1.5
|
limits:
|
||||||
replicas: 1
|
cpu: "80"
|
||||||
resources:
|
memory: "20000Mi"
|
||||||
limits:
|
requests:
|
||||||
cpu: "80"
|
cpu: "80"
|
||||||
memory: "20000Mi"
|
memory: "20000Mi"
|
||||||
requests:
|
|
||||||
cpu: "80"
|
|
||||||
memory: "20000Mi"
|
|
||||||
|
|
||||||
- name: reranking-dependency-deploy
|
- name: reranking-dependency-deploy
|
||||||
spec:
|
replicas: 1
|
||||||
image_name: opea/tei-gaudi
|
resources:
|
||||||
image_tag: latest
|
limits:
|
||||||
replicas: 1
|
habana.ai/gaudi: 1
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
habana.ai/gaudi: 1
|
|
||||||
|
|
||||||
- name: llm-dependency-deploy
|
- name: llm-dependency-deploy
|
||||||
spec:
|
replicas: 7
|
||||||
image_name: ghcr.io/huggingface/tgi-gaudi
|
resources:
|
||||||
image_tag: 2.0.4
|
limits:
|
||||||
replicas: 7
|
habana.ai/gaudi: 1
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
habana.ai/gaudi: 1
|
|
||||||
|
|
||||||
- name: dataprep-deploy
|
- name: dataprep-deploy
|
||||||
spec:
|
replicas: 1
|
||||||
image_name: opea/dataprep-redis
|
|
||||||
image_tag: latest
|
|
||||||
replicas: 1
|
|
||||||
|
|
||||||
- name: vector-db
|
- name: vector-db
|
||||||
spec:
|
replicas: 1
|
||||||
image_name: redis/redis-stack
|
|
||||||
image_tag: 7.2.0-v9
|
|
||||||
replicas: 1
|
|
||||||
|
|
||||||
- name: retriever-deploy
|
- name: retriever-deploy
|
||||||
spec:
|
replicas: 2
|
||||||
image_name: opea/retriever-redis
|
resources:
|
||||||
image_tag: latest
|
requests:
|
||||||
replicas: 2
|
cpu: "4"
|
||||||
resources:
|
memory: "4000Mi"
|
||||||
requests:
|
|
||||||
cpu: "4"
|
|
||||||
memory: "4000Mi"
|
|
||||||
|
|||||||
168
ChatQnA/benchmark/performance/helm_charts/deployment.py
Normal file
168
ChatQnA/benchmark/performance/helm_charts/deployment.py
Normal file
@@ -0,0 +1,168 @@
|
|||||||
|
# Copyright (C) 2024 Intel Corporation
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import os
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
import yaml
|
||||||
|
|
||||||
|
|
||||||
|
def generate_yaml(num_nodes, mode="oob", with_rerank="True"):
|
||||||
|
|
||||||
|
common_pods = [
|
||||||
|
"chatqna-backend-server-deploy",
|
||||||
|
"embedding-dependency-deploy",
|
||||||
|
"dataprep-deploy",
|
||||||
|
"vector-db",
|
||||||
|
"retriever-deploy",
|
||||||
|
]
|
||||||
|
|
||||||
|
if with_rerank:
|
||||||
|
pods_list = common_pods + ["reranking-dependency-deploy", "llm-dependency-deploy"]
|
||||||
|
else:
|
||||||
|
pods_list = common_pods + ["llm-dependency-deploy"]
|
||||||
|
|
||||||
|
if num_nodes == 1:
|
||||||
|
replicas = [
|
||||||
|
{"name": "chatqna-backend-server-deploy", "replicas": 2},
|
||||||
|
{"name": "embedding-dependency-deploy", "replicas": 1},
|
||||||
|
{"name": "reranking-dependency-deploy", "replicas": 1} if with_rerank else None,
|
||||||
|
{"name": "llm-dependency-deploy", "replicas": 7 if with_rerank else 8},
|
||||||
|
{"name": "dataprep-deploy", "replicas": 1},
|
||||||
|
{"name": "vector-db", "replicas": 1},
|
||||||
|
{"name": "retriever-deploy", "replicas": 2},
|
||||||
|
]
|
||||||
|
else:
|
||||||
|
replicas = [
|
||||||
|
{"name": "chatqna-backend-server-deploy", "replicas": 1 * num_nodes},
|
||||||
|
{"name": "embedding-dependency-deploy", "replicas": 1 * num_nodes},
|
||||||
|
{"name": "reranking-dependency-deploy", "replicas": 1} if with_rerank else None,
|
||||||
|
{"name": "llm-dependency-deploy", "replicas": (8 * num_nodes) - 1 if with_rerank else 8 * num_nodes},
|
||||||
|
{"name": "dataprep-deploy", "replicas": 1},
|
||||||
|
{"name": "vector-db", "replicas": 1},
|
||||||
|
{"name": "retriever-deploy", "replicas": 1 * num_nodes},
|
||||||
|
]
|
||||||
|
|
||||||
|
resources = [
|
||||||
|
{
|
||||||
|
"name": "chatqna-backend-server-deploy",
|
||||||
|
"resources": {"limits": {"cpu": "16", "memory": "8000Mi"}, "requests": {"cpu": "16", "memory": "8000Mi"}},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "embedding-dependency-deploy",
|
||||||
|
"resources": {"limits": {"cpu": "80", "memory": "20000Mi"}, "requests": {"cpu": "80", "memory": "20000Mi"}},
|
||||||
|
},
|
||||||
|
(
|
||||||
|
{"name": "reranking-dependency-deploy", "resources": {"limits": {"habana.ai/gaudi": 1}}}
|
||||||
|
if with_rerank
|
||||||
|
else None
|
||||||
|
),
|
||||||
|
{"name": "llm-dependency-deploy", "resources": {"limits": {"habana.ai/gaudi": 1}}},
|
||||||
|
{"name": "retriever-deploy", "resources": {"requests": {"cpu": "8", "memory": "8000Mi"}}},
|
||||||
|
]
|
||||||
|
|
||||||
|
replicas = [replica for replica in replicas if replica]
|
||||||
|
resources = [resource for resource in resources if resource]
|
||||||
|
|
||||||
|
tgi_params = [
|
||||||
|
{
|
||||||
|
"name": "llm-dependency-deploy",
|
||||||
|
"args": [
|
||||||
|
{"name": "--model-id", "value": "$(LLM_MODEL_ID)"},
|
||||||
|
{"name": "--max-input-length", "value": 1280},
|
||||||
|
{"name": "--max-total-tokens", "value": 2048},
|
||||||
|
{"name": "--max-batch-total-tokens", "value": 65536},
|
||||||
|
{"name": "--max-batch-prefill-tokens", "value": 4096},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
replicas_dict = {item["name"]: item["replicas"] for item in replicas}
|
||||||
|
resources_dict = {item["name"]: item["resources"] for item in resources}
|
||||||
|
tgi_params_dict = {item["name"]: item["args"] for item in tgi_params}
|
||||||
|
|
||||||
|
dicts_to_check = [
|
||||||
|
{"dict": replicas_dict, "key": "replicas"},
|
||||||
|
]
|
||||||
|
if mode == "tuned":
|
||||||
|
dicts_to_check.extend([{"dict": resources_dict, "key": "resources"}, {"dict": tgi_params_dict, "key": "args"}])
|
||||||
|
|
||||||
|
merged_specs = {"podSpecs": []}
|
||||||
|
|
||||||
|
for pod in pods_list:
|
||||||
|
pod_spec = {"name": pod}
|
||||||
|
|
||||||
|
for item in dicts_to_check:
|
||||||
|
if pod in item["dict"]:
|
||||||
|
pod_spec[item["key"]] = item["dict"][pod]
|
||||||
|
|
||||||
|
if len(pod_spec) > 1:
|
||||||
|
merged_specs["podSpecs"].append(pod_spec)
|
||||||
|
|
||||||
|
yaml_data = yaml.dump(merged_specs, default_flow_style=False)
|
||||||
|
|
||||||
|
print(yaml_data)
|
||||||
|
|
||||||
|
if with_rerank:
|
||||||
|
filename = f"{mode}_{num_nodes}_gaudi_with_rerank.yaml"
|
||||||
|
else:
|
||||||
|
filename = f"{mode}_{num_nodes}_gaudi_without_rerank.yaml"
|
||||||
|
with open(filename, "w") as file:
|
||||||
|
file.write(yaml_data)
|
||||||
|
|
||||||
|
current_dir = os.getcwd()
|
||||||
|
filepath = os.path.join(current_dir, filename)
|
||||||
|
print(f"YAML file {filepath} has been generated.")
|
||||||
|
|
||||||
|
return filepath
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument("--name", help="The name of example pipelines", default="chatqna")
|
||||||
|
parser.add_argument("--folder", help="The path of helmcharts folder", default=".")
|
||||||
|
parser.add_argument(
|
||||||
|
"--num_nodes", help="Number of nodes to deploy", type=int, choices=[1, 2, 4, 8], default=1, required=True
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--mode", help="set up your chatqna in the specified mode", type=str, choices=["oob", "tuned"], default="oob"
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--workflow",
|
||||||
|
help="with rerank in the pipeline",
|
||||||
|
type=str,
|
||||||
|
choices=["with_rerank", "without_rerank"],
|
||||||
|
default="with_rerank",
|
||||||
|
)
|
||||||
|
|
||||||
|
parser.add_argument("--template", help="helm template", action="store_true")
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
if args.workflow == "with_rerank":
|
||||||
|
with_rerank = True
|
||||||
|
workflow_file = "./hpu_with_rerank.yaml"
|
||||||
|
else:
|
||||||
|
with_rerank = False
|
||||||
|
workflow_file = "./hpu_without_rerank.yaml"
|
||||||
|
|
||||||
|
customize_filepath = generate_yaml(args.num_nodes, mode=args.mode, with_rerank=with_rerank)
|
||||||
|
|
||||||
|
if args.template:
|
||||||
|
subprocess.run(
|
||||||
|
["helm", "template", args.folder, "-f", workflow_file, "-f", customize_filepath],
|
||||||
|
check=True,
|
||||||
|
text=True,
|
||||||
|
capture_output=False,
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
subprocess.run(
|
||||||
|
["helm", "install", args.name, args.folder, "-f", workflow_file, "-f", customize_filepath],
|
||||||
|
check=True,
|
||||||
|
text=True,
|
||||||
|
capture_output=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
223
ChatQnA/benchmark/performance/helm_charts/hpu_with_rerank.yaml
Normal file
223
ChatQnA/benchmark/performance/helm_charts/hpu_with_rerank.yaml
Normal file
@@ -0,0 +1,223 @@
|
|||||||
|
# Copyright (C) 2024 Intel Corporation
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
namespace: default
|
||||||
|
|
||||||
|
config:
|
||||||
|
CONFIG_MAP_NAME: chatqna-config
|
||||||
|
NODE_SELECTOR: opea
|
||||||
|
EMBEDDING_MODEL_ID: BAAI/bge-base-en-v1.5
|
||||||
|
LLM_MODEL_ID: Intel/neural-chat-7b-v3-3
|
||||||
|
RERANK_MODEL_ID: BAAI/bge-reranker-base
|
||||||
|
HUGGINGFACEHUB_API_TOKEN: ${HF_TOKEN}
|
||||||
|
|
||||||
|
REDIS_URL: redis://vector-db.default.svc.cluster.local:6379
|
||||||
|
RERANK_SERVER_HOST_IP: reranking-dependency-svc
|
||||||
|
RETRIEVER_SERVICE_HOST_IP: retriever-svc
|
||||||
|
LLM_SERVER_HOST_IP: llm-dependency-svc
|
||||||
|
INDEX_NAME: rag-redis
|
||||||
|
EMBEDDING_SERVER_HOST_IP: embedding-dependency-svc
|
||||||
|
TEI_ENDPOINT: http://embedding-dependency-svc.default.svc.cluster.local:6006
|
||||||
|
LLM_SERVER_PORT: 9009
|
||||||
|
RERANK_SERVER_PORT: 8808
|
||||||
|
EMBEDDING_SERVER_PORT: 6006
|
||||||
|
|
||||||
|
microservices:
|
||||||
|
- name: chatqna-backend-server-deploy
|
||||||
|
image: opea/chatqna:latest
|
||||||
|
replicas: 1
|
||||||
|
ports:
|
||||||
|
- containerPort: 8888
|
||||||
|
|
||||||
|
- name: dataprep-deploy
|
||||||
|
image: opea/dataprep-redis:latest
|
||||||
|
replicas: 1
|
||||||
|
ports:
|
||||||
|
- containerPort: 6007
|
||||||
|
|
||||||
|
- name: vector-db
|
||||||
|
image: redis/redis-stack:7.2.0-v9
|
||||||
|
replicas: 1
|
||||||
|
ports:
|
||||||
|
- containerPort: 6379
|
||||||
|
- containerPort: 8001
|
||||||
|
|
||||||
|
- name: retriever-deploy
|
||||||
|
image: opea/retriever-redis:latest
|
||||||
|
replicas: 1
|
||||||
|
ports:
|
||||||
|
- containerPort: 7000
|
||||||
|
|
||||||
|
- name: embedding-dependency-deploy
|
||||||
|
image: ghcr.io/huggingface/text-embeddings-inference:cpu-1.5
|
||||||
|
replicas: 1
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
args:
|
||||||
|
- name: "--model-id"
|
||||||
|
value: $(EMBEDDING_MODEL_ID)
|
||||||
|
- name: "--auto-truncate"
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: model-volume
|
||||||
|
- mountPath: /dev/shm
|
||||||
|
name: shm
|
||||||
|
volumes:
|
||||||
|
- hostPath:
|
||||||
|
path: /mnt/models
|
||||||
|
type: Directory
|
||||||
|
name: model-volume
|
||||||
|
- emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Gi
|
||||||
|
name: shm
|
||||||
|
|
||||||
|
- name: reranking-dependency-deploy
|
||||||
|
image: opea/tei-gaudi:latest
|
||||||
|
replicas: 1
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
habana.ai/gaudi: 1
|
||||||
|
args:
|
||||||
|
- name: "--model-id"
|
||||||
|
- value: $(RERANK_MODEL_ID)
|
||||||
|
- name: "--auto-truncate"
|
||||||
|
env:
|
||||||
|
- name: OMPI_MCA_btl_vader_single_copy_mechanism
|
||||||
|
value: none
|
||||||
|
- name: PT_HPU_ENABLE_LAZY_COLLECTIVES
|
||||||
|
value: "true"
|
||||||
|
- name: runtime
|
||||||
|
value: habana
|
||||||
|
- name: HABANA_VISIBLE_DEVICES
|
||||||
|
value: all
|
||||||
|
- name: MAX_WARMUP_SEQUENCE_LENGTH
|
||||||
|
value: "512"
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: model-volume
|
||||||
|
- mountPath: /dev/shm
|
||||||
|
name: shm
|
||||||
|
volumes:
|
||||||
|
- hostPath:
|
||||||
|
path: /mnt/models
|
||||||
|
type: Directory
|
||||||
|
name: model-volume
|
||||||
|
- emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Gi
|
||||||
|
name: shm
|
||||||
|
|
||||||
|
- name: llm-dependency-deploy
|
||||||
|
image: ghcr.io/huggingface/tgi-gaudi:2.0.4
|
||||||
|
replicas: 1
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
habana.ai/gaudi: 1
|
||||||
|
args:
|
||||||
|
- name: "--model-id"
|
||||||
|
value: $(LLM_MODEL_ID)
|
||||||
|
- name: "--max-input-length"
|
||||||
|
value: "2048"
|
||||||
|
- name: "--max-total-tokens"
|
||||||
|
value: "4096"
|
||||||
|
env:
|
||||||
|
- name: OMPI_MCA_btl_vader_single_copy_mechanism
|
||||||
|
value: none
|
||||||
|
- name: PT_HPU_ENABLE_LAZY_COLLECTIVES
|
||||||
|
value: "true"
|
||||||
|
- name: runtime
|
||||||
|
value: habana
|
||||||
|
- name: HABANA_VISIBLE_DEVICES
|
||||||
|
value: all
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: model-volume
|
||||||
|
- mountPath: /dev/shm
|
||||||
|
name: shm
|
||||||
|
volumes:
|
||||||
|
- hostPath:
|
||||||
|
path: /mnt/models
|
||||||
|
type: Directory
|
||||||
|
name: model-volume
|
||||||
|
- emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Gi
|
||||||
|
name: shm
|
||||||
|
|
||||||
|
services:
|
||||||
|
- name: chatqna-backend-server-svc
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
nodePort: 30888
|
||||||
|
port: 8888
|
||||||
|
targetPort: 8888
|
||||||
|
selector:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
type: NodePort
|
||||||
|
|
||||||
|
- name: dataprep-svc
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: port1
|
||||||
|
port: 6007
|
||||||
|
targetPort: 6007
|
||||||
|
selector:
|
||||||
|
app: dataprep-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
|
||||||
|
- name: embedding-dependency-svc
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 6006
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
|
||||||
|
- name: llm-dependency-svc
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 9009
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
|
||||||
|
- name: reranking-dependency-svc
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 8808
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: reranking-dependency-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
|
||||||
|
- name: retriever-svc
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 7000
|
||||||
|
targetPort: 7000
|
||||||
|
selector:
|
||||||
|
app: retriever-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
|
||||||
|
- name: vector-db
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: vector-db-service
|
||||||
|
port: 6379
|
||||||
|
targetPort: 6379
|
||||||
|
- name: vector-db-insight
|
||||||
|
port: 8001
|
||||||
|
targetPort: 8001
|
||||||
|
selector:
|
||||||
|
app: vector-db
|
||||||
|
type: ClusterIP
|
||||||
@@ -0,0 +1,166 @@
|
|||||||
|
# Copyright (C) 2024 Intel Corporation
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
namespace: default
|
||||||
|
|
||||||
|
config:
|
||||||
|
CONFIG_MAP_NAME: chatqna-config
|
||||||
|
NODE_SELECTOR: opea
|
||||||
|
EMBEDDING_MODEL_ID: BAAI/bge-base-en-v1.5
|
||||||
|
LLM_MODEL_ID: Intel/neural-chat-7b-v3-3
|
||||||
|
RERANK_MODEL_ID: BAAI/bge-reranker-base
|
||||||
|
HUGGINGFACEHUB_API_TOKEN: ${HF_TOKEN}
|
||||||
|
|
||||||
|
microservices:
|
||||||
|
- name: chatqna-backend-server-deploy
|
||||||
|
image: opea/chatqna-without-rerank:latest
|
||||||
|
replicas: 1
|
||||||
|
ports:
|
||||||
|
- containerPort: 8888
|
||||||
|
|
||||||
|
- name: dataprep-deploy
|
||||||
|
image: opea/dataprep-redis:latest
|
||||||
|
replicas: 1
|
||||||
|
ports:
|
||||||
|
- containerPort: 6007
|
||||||
|
|
||||||
|
- name: vector-db
|
||||||
|
image: redis/redis-stack:7.2.0-v9
|
||||||
|
replicas: 1
|
||||||
|
ports:
|
||||||
|
- containerPort: 6379
|
||||||
|
- containerPort: 8001
|
||||||
|
|
||||||
|
- name: retriever-deploy
|
||||||
|
image: opea/retriever-redis:latest
|
||||||
|
replicas: 1
|
||||||
|
ports:
|
||||||
|
- containerPort: 7000
|
||||||
|
|
||||||
|
- name: embedding-dependency-deploy
|
||||||
|
image: ghcr.io/huggingface/text-embeddings-inference:cpu-1.5
|
||||||
|
replicas: 1
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
args:
|
||||||
|
- name: "--model-id"
|
||||||
|
value: $(EMBEDDING_MODEL_ID)
|
||||||
|
- name: "--auto-truncate"
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: model-volume
|
||||||
|
- mountPath: /dev/shm
|
||||||
|
name: shm
|
||||||
|
volumes:
|
||||||
|
- hostPath:
|
||||||
|
path: /mnt/models
|
||||||
|
type: Directory
|
||||||
|
name: model-volume
|
||||||
|
- emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Gi
|
||||||
|
name: shm
|
||||||
|
|
||||||
|
- name: llm-dependency-deploy
|
||||||
|
image: ghcr.io/huggingface/tgi-gaudi:2.0.4
|
||||||
|
replicas: 1
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
habana.ai/gaudi: 1
|
||||||
|
args:
|
||||||
|
- name: "--model-id"
|
||||||
|
value: $(LLM_MODEL_ID)
|
||||||
|
- name: "--max-input-length"
|
||||||
|
value: "2048"
|
||||||
|
- name: "--max-total-tokens"
|
||||||
|
value: "4096"
|
||||||
|
env:
|
||||||
|
- name: OMPI_MCA_btl_vader_single_copy_mechanism
|
||||||
|
value: none
|
||||||
|
- name: PT_HPU_ENABLE_LAZY_COLLECTIVES
|
||||||
|
value: "true"
|
||||||
|
- name: runtime
|
||||||
|
value: habana
|
||||||
|
- name: HABANA_VISIBLE_DEVICES
|
||||||
|
value: all
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: model-volume
|
||||||
|
- mountPath: /dev/shm
|
||||||
|
name: shm
|
||||||
|
volumes:
|
||||||
|
- hostPath:
|
||||||
|
path: /mnt/models
|
||||||
|
type: Directory
|
||||||
|
name: model-volume
|
||||||
|
- emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Gi
|
||||||
|
name: shm
|
||||||
|
|
||||||
|
services:
|
||||||
|
- name: chatqna-backend-server-svc
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
nodePort: 30888
|
||||||
|
port: 8888
|
||||||
|
targetPort: 8888
|
||||||
|
selector:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
type: NodePort
|
||||||
|
|
||||||
|
- name: dataprep-svc
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: port1
|
||||||
|
port: 6007
|
||||||
|
targetPort: 6007
|
||||||
|
selector:
|
||||||
|
app: dataprep-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
|
||||||
|
- name: embedding-dependency-svc
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 6006
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
|
||||||
|
- name: llm-dependency-svc
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 9009
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
|
||||||
|
- name: retriever-svc
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 7000
|
||||||
|
targetPort: 7000
|
||||||
|
selector:
|
||||||
|
app: retriever-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
|
||||||
|
- name: vector-db
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: vector-db-service
|
||||||
|
port: 6379
|
||||||
|
targetPort: 6379
|
||||||
|
- name: vector-db-insight
|
||||||
|
port: 8001
|
||||||
|
targetPort: 8001
|
||||||
|
selector:
|
||||||
|
app: vector-db
|
||||||
|
type: ClusterIP
|
||||||
@@ -4,22 +4,22 @@
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: ConfigMap
|
kind: ConfigMap
|
||||||
metadata:
|
metadata:
|
||||||
name: qna-config
|
name: {{ .Values.config.CONFIG_MAP_NAME }}
|
||||||
namespace: default
|
namespace: default
|
||||||
data:
|
data:
|
||||||
EMBEDDING_MODEL_ID: {{ .Values.config.EMBEDDING_MODEL_ID }}
|
EMBEDDING_MODEL_ID: {{ .Values.config.EMBEDDING_MODEL_ID }}
|
||||||
EMBEDDING_SERVER_HOST_IP: embedding-dependency-svc
|
HUGGINGFACEHUB_API_TOKEN: {{ .Values.config.HUGGINGFACEHUB_API_TOKEN }}
|
||||||
HUGGINGFACEHUB_API_TOKEN: {{ .Values.HUGGINGFACEHUB_API_TOKEN }}
|
NODE_SELECTOR: {{ .Values.config.NODE_SELECTOR }}
|
||||||
INDEX_NAME: rag-redis
|
|
||||||
LLM_MODEL_ID: {{ .Values.config.LLM_MODEL_ID }}
|
|
||||||
LLM_SERVER_HOST_IP: llm-dependency-svc
|
|
||||||
NODE_SELECTOR: chatqna-opea
|
|
||||||
REDIS_URL: redis://vector-db.default.svc.cluster.local:6379
|
|
||||||
RERANK_MODEL_ID: {{ .Values.config.RERANK_MODEL_ID }}
|
RERANK_MODEL_ID: {{ .Values.config.RERANK_MODEL_ID }}
|
||||||
|
LLM_MODEL_ID: {{ .Values.config.LLM_MODEL_ID }}
|
||||||
|
REDIS_URL: redis://vector-db.default.svc.cluster.local:6379
|
||||||
RERANK_SERVER_HOST_IP: reranking-dependency-svc
|
RERANK_SERVER_HOST_IP: reranking-dependency-svc
|
||||||
RETRIEVER_SERVICE_HOST_IP: retriever-svc
|
RETRIEVER_SERVICE_HOST_IP: retriever-svc
|
||||||
TEI_EMBEDDING_ENDPOINT: http://embedding-dependency-svc.default.svc.cluster.local:6006
|
LLM_SERVER_HOST_IP: llm-dependency-svc
|
||||||
|
INDEX_NAME: rag-redis
|
||||||
|
EMBEDDING_SERVER_HOST_IP: embedding-dependency-svc
|
||||||
TEI_ENDPOINT: http://embedding-dependency-svc.default.svc.cluster.local:6006
|
TEI_ENDPOINT: http://embedding-dependency-svc.default.svc.cluster.local:6006
|
||||||
TEI_RERANKING_ENDPOINT: http://reranking-dependency-svc.default.svc.cluster.local:8808
|
LLM_SERVER_PORT: "9009"
|
||||||
TGI_LLM_ENDPOINT: http://llm-dependency-svc.default.svc.cluster.local:9009
|
RERANK_SERVER_PORT: "8808"
|
||||||
|
EMBEDDING_SERVER_PORT: "6006"
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -2,33 +2,46 @@
|
|||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
{{- $global := .Values }}
|
{{- $global := .Values }}
|
||||||
{{- range $deployment := .Values.deployments }}
|
{{- range $microservice := .Values.microservices }}
|
||||||
{{- range $podSpec := $global.podSpecs }}
|
|
||||||
{{- if eq $podSpec.name $deployment.name }}
|
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ $deployment.name }}
|
name: {{ $microservice.name }}
|
||||||
namespace: default
|
namespace: default
|
||||||
spec:
|
spec:
|
||||||
replicas: {{ $podSpec.spec.replicas }}
|
{{- $replicas := $microservice.replicas }}
|
||||||
|
{{- range $podSpec := $global.podSpecs }}
|
||||||
|
{{- if eq $podSpec.name $microservice.name }}
|
||||||
|
{{- $replicas = $podSpec.replicas | default $microservice.replicas }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
replicas: {{ $replicas }}
|
||||||
|
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: {{ $deployment.name }}
|
app: {{ $microservice.name }}
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
labels:
|
labels:
|
||||||
app: {{ $deployment.name }}
|
app: {{ $microservice.name }}
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- envFrom:
|
- envFrom:
|
||||||
- configMapRef:
|
- configMapRef:
|
||||||
name: qna-config
|
name: {{ $global.config.CONFIG_MAP_NAME }}
|
||||||
{{- if $deployment.spec.args }}
|
|
||||||
|
{{- $args := $microservice.args }}
|
||||||
|
{{- range $podSpec := $global.podSpecs }}
|
||||||
|
{{- if eq $podSpec.name $microservice.name }}
|
||||||
|
{{- $args = $podSpec.args | default $microservice.args }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if $microservice.args }}
|
||||||
args:
|
args:
|
||||||
{{- range $arg := $deployment.spec.args }}
|
{{- range $arg := $args }}
|
||||||
{{- if $arg.name }}
|
{{- if $arg.name }}
|
||||||
- {{ $arg.name }}
|
- {{ $arg.name }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
@@ -38,31 +51,46 @@ spec:
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
{{- if $deployment.spec.env }}
|
{{- if $microservice.env }}
|
||||||
env:
|
env:
|
||||||
{{- range $env := $deployment.spec.env }}
|
{{- range $env := $microservice.env }}
|
||||||
- name: {{ $env.name }}
|
- name: {{ $env.name }}
|
||||||
value: "{{ $env.value }}"
|
value: "{{ $env.value }}"
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
image: {{ $podSpec.spec.image_name }}:{{ $podSpec.spec.image_tag }}
|
{{- $image := $microservice.image }}
|
||||||
imagePullPolicy: IfNotPresent
|
{{- range $podSpec := $global.podSpecs }}
|
||||||
name: {{ $podSpec.name }}
|
{{- if eq $podSpec.name $microservice.name }}
|
||||||
|
{{- $image = $podSpec.image | default $microservice.image }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
image: {{ $image }}
|
||||||
|
|
||||||
{{- if $deployment.spec.ports }}
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: {{ $microservice.name }}
|
||||||
|
|
||||||
|
{{- if $microservice.ports }}
|
||||||
ports:
|
ports:
|
||||||
{{- range $port := $deployment.spec.ports }}
|
{{- range $port := $microservice.ports }}
|
||||||
{{- range $port_name, $port_id := $port }}
|
{{- range $port_name, $port_id := $port }}
|
||||||
- {{ $port_name }}: {{ $port_id }}
|
- {{ $port_name }}: {{ $port_id }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
|
{{- $resources := $microservice.resources }}
|
||||||
|
{{- range $podSpec := $global.podSpecs }}
|
||||||
|
{{- if eq $podSpec.name $microservice.name }}
|
||||||
|
{{- if $podSpec.resources }}
|
||||||
|
{{- $resources = $podSpec.resources }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
{{- if $podSpec.spec.resources }}
|
{{- if $resources }}
|
||||||
resources:
|
resources:
|
||||||
{{- range $resourceType, $resource := $podSpec.spec.resources }}
|
{{- range $resourceType, $resource := $resources }}
|
||||||
{{ $resourceType }}:
|
{{ $resourceType }}:
|
||||||
{{- range $limitType, $limit := $resource }}
|
{{- range $limitType, $limit := $resource }}
|
||||||
{{ $limitType }}: {{ $limit }}
|
{{ $limitType }}: {{ $limit }}
|
||||||
@@ -70,9 +98,9 @@ spec:
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
{{- if $deployment.spec.volumeMounts }}
|
{{- if $microservice.volumeMounts }}
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
{{- range $volumeMount := $deployment.spec.volumeMounts }}
|
{{- range $volumeMount := $microservice.volumeMounts }}
|
||||||
- mountPath: {{ $volumeMount.mountPath }}
|
- mountPath: {{ $volumeMount.mountPath }}
|
||||||
name: {{ $volumeMount.name }}
|
name: {{ $volumeMount.name }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
@@ -80,20 +108,20 @@ spec:
|
|||||||
|
|
||||||
hostIPC: true
|
hostIPC: true
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
node-type: chatqna-opea
|
node-type: {{ $global.config.NODE_SELECTOR }}
|
||||||
serviceAccountName: default
|
serviceAccountName: default
|
||||||
topologySpreadConstraints:
|
topologySpreadConstraints:
|
||||||
- labelSelector:
|
- labelSelector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: {{ $deployment.name }}
|
app: {{ $microservice.name }}
|
||||||
maxSkew: 1
|
maxSkew: 1
|
||||||
topologyKey: kubernetes.io/hostname
|
topologyKey: kubernetes.io/hostname
|
||||||
whenUnsatisfiable: ScheduleAnyway
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
|
||||||
|
|
||||||
{{- if $deployment.spec.volumes }}
|
{{- if $microservice.volumes }}
|
||||||
volumes:
|
volumes:
|
||||||
{{- range $index, $volume := $deployment.spec.volumes }}
|
{{- range $index, $volume := $microservice.volumes }}
|
||||||
- name: {{ $volume.name }}
|
- name: {{ $volume.name }}
|
||||||
{{- if $volume.hostPath }}
|
{{- if $volume.hostPath }}
|
||||||
hostPath:
|
hostPath:
|
||||||
@@ -109,5 +137,3 @@ spec:
|
|||||||
|
|
||||||
---
|
---
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
|
|||||||
@@ -1,203 +0,0 @@
|
|||||||
# Copyright (C) 2024 Intel Corporation
|
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
namespace: default
|
|
||||||
|
|
||||||
config:
|
|
||||||
EMBEDDING_MODEL_ID: BAAI/bge-base-en-v1.5
|
|
||||||
LLM_MODEL_ID: Intel/neural-chat-7b-v3-3
|
|
||||||
RERANK_MODEL_ID: BAAI/bge-reranker-base
|
|
||||||
|
|
||||||
deployments:
|
|
||||||
- name: chatqna-backend-server-deploy
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- containerPort: 8888
|
|
||||||
|
|
||||||
- name: dataprep-deploy
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- containerPort: 6007
|
|
||||||
|
|
||||||
- name: vector-db
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- containerPort: 6379
|
|
||||||
- containerPort: 8001
|
|
||||||
|
|
||||||
- name: retriever-deploy
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- containerPort: 7000
|
|
||||||
|
|
||||||
- name: embedding-dependency-deploy
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- containerPort: 80
|
|
||||||
args:
|
|
||||||
- name: "--model-id"
|
|
||||||
value: $(EMBEDDING_MODEL_ID)
|
|
||||||
- name: "--auto-truncate"
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /data
|
|
||||||
name: model-volume
|
|
||||||
- mountPath: /dev/shm
|
|
||||||
name: shm
|
|
||||||
volumes:
|
|
||||||
- hostPath:
|
|
||||||
path: /mnt/models
|
|
||||||
type: Directory
|
|
||||||
name: model-volume
|
|
||||||
- emptyDir:
|
|
||||||
medium: Memory
|
|
||||||
sizeLimit: 1Gi
|
|
||||||
name: shm
|
|
||||||
|
|
||||||
- name: reranking-dependency-deploy
|
|
||||||
spec:
|
|
||||||
args:
|
|
||||||
- name: "--model-id"
|
|
||||||
- value: $(RERANK_MODEL_ID)
|
|
||||||
- name: "--auto-truncate"
|
|
||||||
env:
|
|
||||||
- name: OMPI_MCA_btl_vader_single_copy_mechanism
|
|
||||||
value: none
|
|
||||||
- name: PT_HPU_ENABLE_LAZY_COLLECTIVES
|
|
||||||
value: "true"
|
|
||||||
- name: runtime
|
|
||||||
value: habana
|
|
||||||
- name: HABANA_VISIBLE_DEVICES
|
|
||||||
value: all
|
|
||||||
- name: HF_TOKEN
|
|
||||||
value: ${HF_TOKEN}
|
|
||||||
- name: MAX_WARMUP_SEQUENCE_LENGTH
|
|
||||||
value: "512"
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /data
|
|
||||||
name: model-volume
|
|
||||||
- mountPath: /dev/shm
|
|
||||||
name: shm
|
|
||||||
volumes:
|
|
||||||
- hostPath:
|
|
||||||
path: /mnt/models
|
|
||||||
type: Directory
|
|
||||||
name: model-volume
|
|
||||||
- emptyDir:
|
|
||||||
medium: Memory
|
|
||||||
sizeLimit: 1Gi
|
|
||||||
name: shm
|
|
||||||
|
|
||||||
- name: llm-dependency-deploy
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- containerPort: 80
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
habana.ai/gaudi: 1
|
|
||||||
args:
|
|
||||||
- name: "--model-id"
|
|
||||||
value: $(LLM_MODEL_ID)
|
|
||||||
- name: "--max-input-length"
|
|
||||||
value: "2048"
|
|
||||||
- name: "--max-total-tokens"
|
|
||||||
value: "4096"
|
|
||||||
env:
|
|
||||||
- name: OMPI_MCA_btl_vader_single_copy_mechanism
|
|
||||||
value: none
|
|
||||||
- name: PT_HPU_ENABLE_LAZY_COLLECTIVES
|
|
||||||
value: "true"
|
|
||||||
- name: runtime
|
|
||||||
value: habana
|
|
||||||
- name: HABANA_VISIBLE_DEVICES
|
|
||||||
value: all
|
|
||||||
- name: HF_TOKEN
|
|
||||||
value: ${HF_TOKEN}
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /data
|
|
||||||
name: model-volume
|
|
||||||
- mountPath: /dev/shm
|
|
||||||
name: shm
|
|
||||||
volumes:
|
|
||||||
- hostPath:
|
|
||||||
path: /mnt/models
|
|
||||||
type: Directory
|
|
||||||
name: model-volume
|
|
||||||
- emptyDir:
|
|
||||||
medium: Memory
|
|
||||||
sizeLimit: 1Gi
|
|
||||||
name: shm
|
|
||||||
|
|
||||||
services:
|
|
||||||
- name: chatqna-backend-server-svc
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: service
|
|
||||||
nodePort: 30888
|
|
||||||
port: 8888
|
|
||||||
targetPort: 8888
|
|
||||||
selector:
|
|
||||||
app: chatqna-backend-server-deploy
|
|
||||||
type: NodePort
|
|
||||||
|
|
||||||
- name: dataprep-svc
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: port1
|
|
||||||
port: 6007
|
|
||||||
targetPort: 6007
|
|
||||||
selector:
|
|
||||||
app: dataprep-deploy
|
|
||||||
type: ClusterIP
|
|
||||||
|
|
||||||
- name: embedding-dependency-svc
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: service
|
|
||||||
port: 6006
|
|
||||||
targetPort: 80
|
|
||||||
selector:
|
|
||||||
app: embedding-dependency-deploy
|
|
||||||
type: ClusterIP
|
|
||||||
|
|
||||||
- name: llm-dependency-svc
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: service
|
|
||||||
port: 9009
|
|
||||||
targetPort: 80
|
|
||||||
selector:
|
|
||||||
app: llm-dependency-deploy
|
|
||||||
type: ClusterIP
|
|
||||||
|
|
||||||
- name: reranking-dependency-svc
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: service
|
|
||||||
port: 8808
|
|
||||||
targetPort: 80
|
|
||||||
selector:
|
|
||||||
app: reranking-dependency-deploy
|
|
||||||
type: ClusterIP
|
|
||||||
|
|
||||||
- name: retriever-svc
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: service
|
|
||||||
port: 7000
|
|
||||||
targetPort: 7000
|
|
||||||
selector:
|
|
||||||
app: retriever-deploy
|
|
||||||
type: ClusterIP
|
|
||||||
|
|
||||||
- name: vector-db
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: vector-db-service
|
|
||||||
port: 6379
|
|
||||||
targetPort: 6379
|
|
||||||
- name: vector-db-insight
|
|
||||||
port: 8001
|
|
||||||
targetPort: 8001
|
|
||||||
selector:
|
|
||||||
app: vector-db
|
|
||||||
type: ClusterIP
|
|
||||||
@@ -29,7 +29,7 @@ metadata:
|
|||||||
name: chatqna-backend-server-deploy
|
name: chatqna-backend-server-deploy
|
||||||
namespace: default
|
namespace: default
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 4
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: chatqna-backend-server-deploy
|
app: chatqna-backend-server-deploy
|
||||||
@@ -381,7 +381,7 @@ metadata:
|
|||||||
name: retriever-deploy
|
name: retriever-deploy
|
||||||
namespace: default
|
namespace: default
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 4
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: retriever-deploy
|
app: retriever-deploy
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ metadata:
|
|||||||
name: chatqna-backend-server-deploy
|
name: chatqna-backend-server-deploy
|
||||||
namespace: default
|
namespace: default
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 4
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: chatqna-backend-server-deploy
|
app: chatqna-backend-server-deploy
|
||||||
@@ -295,7 +295,7 @@ metadata:
|
|||||||
name: retriever-deploy
|
name: retriever-deploy
|
||||||
namespace: default
|
namespace: default
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 4
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: retriever-deploy
|
app: retriever-deploy
|
||||||
|
|||||||
@@ -167,10 +167,10 @@ spec:
|
|||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
cpu: 76
|
cpu: 80
|
||||||
memory: 20000Mi
|
memory: 20000Mi
|
||||||
requests:
|
requests:
|
||||||
cpu: 76
|
cpu: 80
|
||||||
memory: 20000Mi
|
memory: 20000Mi
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- mountPath: /data
|
- mountPath: /data
|
||||||
|
|||||||
@@ -167,10 +167,10 @@ spec:
|
|||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
cpu: 76
|
cpu: 80
|
||||||
memory: 20000Mi
|
memory: 20000Mi
|
||||||
requests:
|
requests:
|
||||||
cpu: 76
|
cpu: 80
|
||||||
memory: 20000Mi
|
memory: 20000Mi
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- mountPath: /data
|
- mountPath: /data
|
||||||
|
|||||||
@@ -167,10 +167,10 @@ spec:
|
|||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
cpu: 76
|
cpu: 80
|
||||||
memory: 20000Mi
|
memory: 20000Mi
|
||||||
requests:
|
requests:
|
||||||
cpu: 76
|
cpu: 80
|
||||||
memory: 20000Mi
|
memory: 20000Mi
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- mountPath: /data
|
- mountPath: /data
|
||||||
|
|||||||
@@ -167,10 +167,10 @@ spec:
|
|||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
cpu: 76
|
cpu: 80
|
||||||
memory: 20000Mi
|
memory: 20000Mi
|
||||||
requests:
|
requests:
|
||||||
cpu: 76
|
cpu: 80
|
||||||
memory: 20000Mi
|
memory: 20000Mi
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- mountPath: /data
|
- mountPath: /data
|
||||||
|
|||||||
@@ -167,10 +167,10 @@ spec:
|
|||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
cpu: 76
|
cpu: 80
|
||||||
memory: 20000Mi
|
memory: 20000Mi
|
||||||
requests:
|
requests:
|
||||||
cpu: 76
|
cpu: 80
|
||||||
memory: 20000Mi
|
memory: 20000Mi
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- mountPath: /data
|
- mountPath: /data
|
||||||
|
|||||||
@@ -167,10 +167,10 @@ spec:
|
|||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
cpu: 76
|
cpu: 80
|
||||||
memory: 20000Mi
|
memory: 20000Mi
|
||||||
requests:
|
requests:
|
||||||
cpu: 76
|
cpu: 80
|
||||||
memory: 20000Mi
|
memory: 20000Mi
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- mountPath: /data
|
- mountPath: /data
|
||||||
|
|||||||
@@ -167,10 +167,10 @@ spec:
|
|||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
cpu: 76
|
cpu: 80
|
||||||
memory: 20000Mi
|
memory: 20000Mi
|
||||||
requests:
|
requests:
|
||||||
cpu: 76
|
cpu: 80
|
||||||
memory: 20000Mi
|
memory: 20000Mi
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- mountPath: /data
|
- mountPath: /data
|
||||||
|
|||||||
@@ -167,10 +167,10 @@ spec:
|
|||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
cpu: 76
|
cpu: 80
|
||||||
memory: 20000Mi
|
memory: 20000Mi
|
||||||
requests:
|
requests:
|
||||||
cpu: 76
|
cpu: 80
|
||||||
memory: 20000Mi
|
memory: 20000Mi
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- mountPath: /data
|
- mountPath: /data
|
||||||
|
|||||||
@@ -0,0 +1,507 @@
|
|||||||
|
# Copyright (C) 2024 Intel Corporation
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
EMBEDDING_MODEL_ID: BAAI/bge-base-en-v1.5
|
||||||
|
EMBEDDING_SERVER_HOST_IP: embedding-dependency-svc
|
||||||
|
HUGGINGFACEHUB_API_TOKEN: ${HF_TOKEN}
|
||||||
|
INDEX_NAME: rag-redis
|
||||||
|
LLM_MODEL_ID: Intel/neural-chat-7b-v3-3
|
||||||
|
LLM_SERVER_HOST_IP: llm-dependency-svc
|
||||||
|
NODE_SELECTOR: chatqna-opea
|
||||||
|
REDIS_URL: redis://vector-db.default.svc.cluster.local:6379
|
||||||
|
RERANK_MODEL_ID: BAAI/bge-reranker-base
|
||||||
|
RERANK_SERVER_HOST_IP: reranking-dependency-svc
|
||||||
|
RETRIEVER_SERVICE_HOST_IP: retriever-svc
|
||||||
|
TEI_EMBEDDING_ENDPOINT: http://embedding-dependency-svc.default.svc.cluster.local:6006
|
||||||
|
TEI_ENDPOINT: http://embedding-dependency-svc.default.svc.cluster.local:6006
|
||||||
|
TEI_RERANKING_ENDPOINT: http://reranking-dependency-svc.default.svc.cluster.local:8808
|
||||||
|
TGI_LLM_ENDPOINT: http://llm-dependency-svc.default.svc.cluster.local:9009
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: qna-config
|
||||||
|
namespace: default
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: chatqna-backend-server-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 8
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: opea/chatqna:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: chatqna-backend-server-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 8888
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 8
|
||||||
|
memory: 8000Mi
|
||||||
|
requests:
|
||||||
|
cpu: 8
|
||||||
|
memory: 8000Mi
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: chatqna-backend-server-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
nodePort: 30888
|
||||||
|
port: 8888
|
||||||
|
targetPort: 8888
|
||||||
|
selector:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
type: NodePort
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: dataprep-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: dataprep-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: dataprep-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: opea/dataprep-redis:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: dataprep-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 6007
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: dataprep-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: dataprep-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: port1
|
||||||
|
port: 6007
|
||||||
|
targetPort: 6007
|
||||||
|
selector:
|
||||||
|
app: dataprep-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: embedding-dependency-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 8
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- args:
|
||||||
|
- --model-id
|
||||||
|
- $(EMBEDDING_MODEL_ID)
|
||||||
|
- --auto-truncate
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: ghcr.io/huggingface/text-embeddings-inference:cpu-1.5
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: embedding-dependency-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 80
|
||||||
|
memory: 20000Mi
|
||||||
|
requests:
|
||||||
|
cpu: 80
|
||||||
|
memory: 20000Mi
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: model-volume
|
||||||
|
- mountPath: /dev/shm
|
||||||
|
name: shm
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
volumes:
|
||||||
|
- hostPath:
|
||||||
|
path: /mnt/models
|
||||||
|
type: Directory
|
||||||
|
name: model-volume
|
||||||
|
- emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Gi
|
||||||
|
name: shm
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: embedding-dependency-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 6006
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: llm-dependency-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 63
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- args:
|
||||||
|
- --model-id
|
||||||
|
- $(LLM_MODEL_ID)
|
||||||
|
- --max-input-length
|
||||||
|
- '1280'
|
||||||
|
- --max-total-tokens
|
||||||
|
- '2048'
|
||||||
|
- --max-batch-total-tokens
|
||||||
|
- '65536'
|
||||||
|
- --max-batch-prefill-tokens
|
||||||
|
- '4096'
|
||||||
|
env:
|
||||||
|
- name: OMPI_MCA_btl_vader_single_copy_mechanism
|
||||||
|
value: none
|
||||||
|
- name: PT_HPU_ENABLE_LAZY_COLLECTIVES
|
||||||
|
value: 'true'
|
||||||
|
- name: runtime
|
||||||
|
value: habana
|
||||||
|
- name: HABANA_VISIBLE_DEVICES
|
||||||
|
value: all
|
||||||
|
- name: HF_TOKEN
|
||||||
|
value: ${HF_TOKEN}
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: ghcr.io/huggingface/tgi-gaudi:2.0.5
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: llm-dependency-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
habana.ai/gaudi: 1
|
||||||
|
securityContext:
|
||||||
|
capabilities:
|
||||||
|
add:
|
||||||
|
- SYS_NICE
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: model-volume
|
||||||
|
- mountPath: /dev/shm
|
||||||
|
name: shm
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
volumes:
|
||||||
|
- hostPath:
|
||||||
|
path: /mnt/models
|
||||||
|
type: Directory
|
||||||
|
name: model-volume
|
||||||
|
- emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Gi
|
||||||
|
name: shm
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: llm-dependency-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 9009
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: reranking-dependency-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: reranking-dependency-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: reranking-dependency-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- args:
|
||||||
|
- --model-id
|
||||||
|
- $(RERANK_MODEL_ID)
|
||||||
|
- --auto-truncate
|
||||||
|
env:
|
||||||
|
- name: OMPI_MCA_btl_vader_single_copy_mechanism
|
||||||
|
value: none
|
||||||
|
- name: PT_HPU_ENABLE_LAZY_COLLECTIVES
|
||||||
|
value: 'true'
|
||||||
|
- name: runtime
|
||||||
|
value: habana
|
||||||
|
- name: HABANA_VISIBLE_DEVICES
|
||||||
|
value: all
|
||||||
|
- name: HF_TOKEN
|
||||||
|
value: ${HF_TOKEN}
|
||||||
|
- name: MAX_WARMUP_SEQUENCE_LENGTH
|
||||||
|
value: '512'
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: ghcr.io/huggingface/tei-gaudi:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: reranking-dependency-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
habana.ai/gaudi: 1
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: model-volume
|
||||||
|
- mountPath: /dev/shm
|
||||||
|
name: shm
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: reranking-dependency-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
volumes:
|
||||||
|
- hostPath:
|
||||||
|
path: /mnt/models
|
||||||
|
type: Directory
|
||||||
|
name: model-volume
|
||||||
|
- emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Gi
|
||||||
|
name: shm
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: reranking-dependency-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 8808
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: reranking-dependency-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: retriever-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 8
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: retriever-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: retriever-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: opea/retriever-redis:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: retriever-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 7000
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 4
|
||||||
|
memory: 4000Mi
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: retriever-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: retriever-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 7000
|
||||||
|
targetPort: 7000
|
||||||
|
selector:
|
||||||
|
app: retriever-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: vector-db
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: vector-db
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: vector-db
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: redis/redis-stack:7.2.0-v9
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: vector-db
|
||||||
|
ports:
|
||||||
|
- containerPort: 6379
|
||||||
|
- containerPort: 8001
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: vector-db
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: vector-db
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: vector-db-service
|
||||||
|
port: 6379
|
||||||
|
targetPort: 6379
|
||||||
|
- name: vector-db-insight
|
||||||
|
port: 8001
|
||||||
|
targetPort: 8001
|
||||||
|
selector:
|
||||||
|
app: vector-db
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
@@ -0,0 +1,507 @@
|
|||||||
|
# Copyright (C) 2024 Intel Corporation
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
EMBEDDING_MODEL_ID: BAAI/bge-base-en-v1.5
|
||||||
|
EMBEDDING_SERVER_HOST_IP: embedding-dependency-svc
|
||||||
|
HUGGINGFACEHUB_API_TOKEN: ${HF_TOKEN}
|
||||||
|
INDEX_NAME: rag-redis
|
||||||
|
LLM_MODEL_ID: Intel/neural-chat-7b-v3-3
|
||||||
|
LLM_SERVER_HOST_IP: llm-dependency-svc
|
||||||
|
NODE_SELECTOR: chatqna-opea
|
||||||
|
REDIS_URL: redis://vector-db.default.svc.cluster.local:6379
|
||||||
|
RERANK_MODEL_ID: BAAI/bge-reranker-base
|
||||||
|
RERANK_SERVER_HOST_IP: reranking-dependency-svc
|
||||||
|
RETRIEVER_SERVICE_HOST_IP: retriever-svc
|
||||||
|
TEI_EMBEDDING_ENDPOINT: http://embedding-dependency-svc.default.svc.cluster.local:6006
|
||||||
|
TEI_ENDPOINT: http://embedding-dependency-svc.default.svc.cluster.local:6006
|
||||||
|
TEI_RERANKING_ENDPOINT: http://reranking-dependency-svc.default.svc.cluster.local:8808
|
||||||
|
TGI_LLM_ENDPOINT: http://llm-dependency-svc.default.svc.cluster.local:9009
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: qna-config
|
||||||
|
namespace: default
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: chatqna-backend-server-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 4
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: opea/chatqna:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: chatqna-backend-server-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 8888
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 8
|
||||||
|
memory: 8000Mi
|
||||||
|
requests:
|
||||||
|
cpu: 8
|
||||||
|
memory: 8000Mi
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: chatqna-backend-server-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
nodePort: 30888
|
||||||
|
port: 8888
|
||||||
|
targetPort: 8888
|
||||||
|
selector:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
type: NodePort
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: dataprep-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: dataprep-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: dataprep-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: opea/dataprep-redis:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: dataprep-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 6007
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: dataprep-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: dataprep-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: port1
|
||||||
|
port: 6007
|
||||||
|
targetPort: 6007
|
||||||
|
selector:
|
||||||
|
app: dataprep-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: embedding-dependency-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 4
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- args:
|
||||||
|
- --model-id
|
||||||
|
- $(EMBEDDING_MODEL_ID)
|
||||||
|
- --auto-truncate
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: ghcr.io/huggingface/text-embeddings-inference:cpu-1.5
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: embedding-dependency-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 80
|
||||||
|
memory: 20000Mi
|
||||||
|
requests:
|
||||||
|
cpu: 80
|
||||||
|
memory: 20000Mi
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: model-volume
|
||||||
|
- mountPath: /dev/shm
|
||||||
|
name: shm
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
volumes:
|
||||||
|
- hostPath:
|
||||||
|
path: /mnt/models
|
||||||
|
type: Directory
|
||||||
|
name: model-volume
|
||||||
|
- emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Gi
|
||||||
|
name: shm
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: embedding-dependency-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 6006
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: llm-dependency-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 31
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- args:
|
||||||
|
- --model-id
|
||||||
|
- $(LLM_MODEL_ID)
|
||||||
|
- --max-input-length
|
||||||
|
- '1280'
|
||||||
|
- --max-total-tokens
|
||||||
|
- '2048'
|
||||||
|
- --max-batch-total-tokens
|
||||||
|
- '65536'
|
||||||
|
- --max-batch-prefill-tokens
|
||||||
|
- '4096'
|
||||||
|
env:
|
||||||
|
- name: OMPI_MCA_btl_vader_single_copy_mechanism
|
||||||
|
value: none
|
||||||
|
- name: PT_HPU_ENABLE_LAZY_COLLECTIVES
|
||||||
|
value: 'true'
|
||||||
|
- name: runtime
|
||||||
|
value: habana
|
||||||
|
- name: HABANA_VISIBLE_DEVICES
|
||||||
|
value: all
|
||||||
|
- name: HF_TOKEN
|
||||||
|
value: ${HF_TOKEN}
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: ghcr.io/huggingface/tgi-gaudi:2.0.5
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: llm-dependency-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
habana.ai/gaudi: 1
|
||||||
|
securityContext:
|
||||||
|
capabilities:
|
||||||
|
add:
|
||||||
|
- SYS_NICE
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: model-volume
|
||||||
|
- mountPath: /dev/shm
|
||||||
|
name: shm
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
volumes:
|
||||||
|
- hostPath:
|
||||||
|
path: /mnt/models
|
||||||
|
type: Directory
|
||||||
|
name: model-volume
|
||||||
|
- emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Gi
|
||||||
|
name: shm
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: llm-dependency-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 9009
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: reranking-dependency-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: reranking-dependency-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: reranking-dependency-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- args:
|
||||||
|
- --model-id
|
||||||
|
- $(RERANK_MODEL_ID)
|
||||||
|
- --auto-truncate
|
||||||
|
env:
|
||||||
|
- name: OMPI_MCA_btl_vader_single_copy_mechanism
|
||||||
|
value: none
|
||||||
|
- name: PT_HPU_ENABLE_LAZY_COLLECTIVES
|
||||||
|
value: 'true'
|
||||||
|
- name: runtime
|
||||||
|
value: habana
|
||||||
|
- name: HABANA_VISIBLE_DEVICES
|
||||||
|
value: all
|
||||||
|
- name: HF_TOKEN
|
||||||
|
value: ${HF_TOKEN}
|
||||||
|
- name: MAX_WARMUP_SEQUENCE_LENGTH
|
||||||
|
value: '512'
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: ghcr.io/huggingface/tei-gaudi:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: reranking-dependency-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
habana.ai/gaudi: 1
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: model-volume
|
||||||
|
- mountPath: /dev/shm
|
||||||
|
name: shm
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: reranking-dependency-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
volumes:
|
||||||
|
- hostPath:
|
||||||
|
path: /mnt/models
|
||||||
|
type: Directory
|
||||||
|
name: model-volume
|
||||||
|
- emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Gi
|
||||||
|
name: shm
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: reranking-dependency-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 8808
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: reranking-dependency-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: retriever-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 4
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: retriever-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: retriever-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: opea/retriever-redis:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: retriever-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 7000
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 4
|
||||||
|
memory: 4000Mi
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: retriever-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: retriever-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 7000
|
||||||
|
targetPort: 7000
|
||||||
|
selector:
|
||||||
|
app: retriever-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: vector-db
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: vector-db
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: vector-db
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: redis/redis-stack:7.2.0-v9
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: vector-db
|
||||||
|
ports:
|
||||||
|
- containerPort: 6379
|
||||||
|
- containerPort: 8001
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: vector-db
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: vector-db
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: vector-db-service
|
||||||
|
port: 6379
|
||||||
|
targetPort: 6379
|
||||||
|
- name: vector-db-insight
|
||||||
|
port: 8001
|
||||||
|
targetPort: 8001
|
||||||
|
selector:
|
||||||
|
app: vector-db
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
@@ -0,0 +1,514 @@
|
|||||||
|
# Copyright (C) 2024 Intel Corporation
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: chatqna-config
|
||||||
|
namespace: default
|
||||||
|
data:
|
||||||
|
EMBEDDING_MODEL_ID: BAAI/bge-base-en-v1.5
|
||||||
|
EMBEDDING_SERVER_HOST_IP: embedding-dependency-svc
|
||||||
|
HUGGINGFACEHUB_API_TOKEN: ${HF_TOKEN}
|
||||||
|
INDEX_NAME: rag-redis
|
||||||
|
LLM_MODEL_ID: Intel/neural-chat-7b-v3-3
|
||||||
|
|
||||||
|
LLM_SERVER_HOST_IP: llm-dependency-svc
|
||||||
|
NODE_SELECTOR: opea
|
||||||
|
REDIS_URL: redis://vector-db.default.svc.cluster.local:6379
|
||||||
|
RERANK_MODEL_ID: BAAI/bge-reranker-base
|
||||||
|
RERANK_SERVER_HOST_IP: reranking-dependency-svc
|
||||||
|
RETRIEVER_SERVICE_HOST_IP: retriever-svc
|
||||||
|
TEI_EMBEDDING_ENDPOINT: http://embedding-dependency-svc.default.svc.cluster.local:6006
|
||||||
|
TEI_ENDPOINT: http://embedding-dependency-svc.default.svc.cluster.local:6006
|
||||||
|
TEI_RERANKING_ENDPOINT: http://reranking-dependency-svc.default.svc.cluster.local:8808
|
||||||
|
TGI_LLM_ENDPOINT: http://llm-dependency-svc.default.svc.cluster.local:9009
|
||||||
|
|
||||||
|
LLM_SERVER_PORT: '9009'
|
||||||
|
RERANK_SERVER_PORT: '8808'
|
||||||
|
EMBEDDING_SERVER_PORT: '6006'
|
||||||
|
|
||||||
|
---
|
||||||
|
# Source: chatqna-charts/templates/service.yaml
|
||||||
|
# Copyright (C) 2024 Intel Corporation
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: chatqna-backend-server-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
nodePort: 30888
|
||||||
|
port: 8888
|
||||||
|
targetPort: 8888
|
||||||
|
selector:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
type: NodePort
|
||||||
|
---
|
||||||
|
# Source: chatqna-charts/templates/service.yaml
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: dataprep-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: port1
|
||||||
|
port: 6007
|
||||||
|
targetPort: 6007
|
||||||
|
selector:
|
||||||
|
app: dataprep-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
# Source: chatqna-charts/templates/service.yaml
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: embedding-dependency-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 6006
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
# Source: chatqna-charts/templates/service.yaml
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: llm-dependency-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 9009
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
# Source: chatqna-charts/templates/service.yaml
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: reranking-dependency-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 8808
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: reranking-dependency-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
# Source: chatqna-charts/templates/service.yaml
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: retriever-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 7000
|
||||||
|
targetPort: 7000
|
||||||
|
selector:
|
||||||
|
app: retriever-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
# Source: chatqna-charts/templates/service.yaml
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: vector-db
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: vector-db-service
|
||||||
|
port: 6379
|
||||||
|
targetPort: 6379
|
||||||
|
- name: vector-db-insight
|
||||||
|
port: 8001
|
||||||
|
targetPort: 8001
|
||||||
|
selector:
|
||||||
|
app: vector-db
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
# Source: chatqna-charts/templates/deployment.yaml
|
||||||
|
# Copyright (C) 2024 Intel Corporation
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: chatqna-backend-server-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: chatqna-config
|
||||||
|
image: opea/chatqna-model-fixed-root:latest
|
||||||
|
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: chatqna-backend-server-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 8888
|
||||||
|
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
# Source: chatqna-charts/templates/deployment.yaml
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: dataprep-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: dataprep-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: dataprep-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: chatqna-config
|
||||||
|
image: opea/dataprep-redis:latest
|
||||||
|
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: dataprep-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 6007
|
||||||
|
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: dataprep-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
# Source: chatqna-charts/templates/deployment.yaml
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: vector-db
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: vector-db
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: vector-db
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: chatqna-config
|
||||||
|
image: redis/redis-stack:7.2.0-v9
|
||||||
|
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: vector-db
|
||||||
|
ports:
|
||||||
|
- containerPort: 6379
|
||||||
|
- containerPort: 8001
|
||||||
|
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: vector-db
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
# Source: chatqna-charts/templates/deployment.yaml
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: retriever-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 2
|
||||||
|
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: retriever-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: retriever-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: chatqna-config
|
||||||
|
image: opea/retriever-redis:latest
|
||||||
|
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: retriever-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 7000
|
||||||
|
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: retriever-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
# Source: chatqna-charts/templates/deployment.yaml
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: embedding-dependency-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: chatqna-config
|
||||||
|
args:
|
||||||
|
- --model-id
|
||||||
|
- "$(EMBEDDING_MODEL_ID)"
|
||||||
|
- --auto-truncate
|
||||||
|
image: ghcr.io/huggingface/text-embeddings-inference:cpu-1.5
|
||||||
|
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: embedding-dependency-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: model-volume
|
||||||
|
- mountPath: /dev/shm
|
||||||
|
name: shm
|
||||||
|
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
volumes:
|
||||||
|
- name: model-volume
|
||||||
|
hostPath:
|
||||||
|
path: /mnt/models
|
||||||
|
type: Directory
|
||||||
|
- name: shm
|
||||||
|
emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Gi
|
||||||
|
---
|
||||||
|
# Source: chatqna-charts/templates/deployment.yaml
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: reranking-dependency-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: reranking-dependency-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: reranking-dependency-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: chatqna-config
|
||||||
|
args:
|
||||||
|
- --model-id
|
||||||
|
- "$(RERANK_MODEL_ID)"
|
||||||
|
- --auto-truncate
|
||||||
|
env:
|
||||||
|
- name: OMPI_MCA_btl_vader_single_copy_mechanism
|
||||||
|
value: "none"
|
||||||
|
- name: PT_HPU_ENABLE_LAZY_COLLECTIVES
|
||||||
|
value: "true"
|
||||||
|
- name: runtime
|
||||||
|
value: "habana"
|
||||||
|
- name: HABANA_VISIBLE_DEVICES
|
||||||
|
value: "all"
|
||||||
|
- name: MAX_WARMUP_SEQUENCE_LENGTH
|
||||||
|
value: "512"
|
||||||
|
image: opea/tei-gaudi:latest
|
||||||
|
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: reranking-dependency-deploy
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
habana.ai/gaudi: 1
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: model-volume
|
||||||
|
- mountPath: /dev/shm
|
||||||
|
name: shm
|
||||||
|
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: reranking-dependency-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
volumes:
|
||||||
|
- name: model-volume
|
||||||
|
hostPath:
|
||||||
|
path: /mnt/models
|
||||||
|
type: Directory
|
||||||
|
- name: shm
|
||||||
|
emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Gi
|
||||||
|
---
|
||||||
|
# Source: chatqna-charts/templates/deployment.yaml
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: llm-dependency-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: chatqna-config
|
||||||
|
command: ["/bin/bash", "-c"]
|
||||||
|
args: ["python3 -m vllm.entrypoints.openai.api_server --model $LLM_MODEL_ID --tensor-parallel-size 1 --host 0.0.0.0 --port 80 --block-size 128 --max-num-seqs 256 --max-seq_len-to-capture 2048"]
|
||||||
|
env:
|
||||||
|
- name: OMPI_MCA_btl_vader_single_copy_mechanism
|
||||||
|
value: "none"
|
||||||
|
- name: PT_HPU_ENABLE_LAZY_COLLECTIVES
|
||||||
|
value: "true"
|
||||||
|
- name: runtime
|
||||||
|
value: "habana"
|
||||||
|
- name: HABANA_VISIBLE_DEVICES
|
||||||
|
value: "all"
|
||||||
|
image: opea/llm-vllm-hpu:latest
|
||||||
|
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: llm-dependency-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
habana.ai/gaudi: 1
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: model-volume
|
||||||
|
- mountPath: /dev/shm
|
||||||
|
name: shm
|
||||||
|
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
volumes:
|
||||||
|
- name: model-volume
|
||||||
|
hostPath:
|
||||||
|
path: /mnt/models
|
||||||
|
type: Directory
|
||||||
|
- name: shm
|
||||||
|
emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Gi
|
||||||
@@ -0,0 +1,507 @@
|
|||||||
|
# Copyright (C) 2024 Intel Corporation
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
EMBEDDING_MODEL_ID: BAAI/bge-base-en-v1.5
|
||||||
|
EMBEDDING_SERVER_HOST_IP: embedding-dependency-svc
|
||||||
|
HUGGINGFACEHUB_API_TOKEN: ${HF_TOKEN}
|
||||||
|
INDEX_NAME: rag-redis
|
||||||
|
LLM_MODEL_ID: Intel/neural-chat-7b-v3-3
|
||||||
|
LLM_SERVER_HOST_IP: llm-dependency-svc
|
||||||
|
NODE_SELECTOR: chatqna-opea
|
||||||
|
REDIS_URL: redis://vector-db.default.svc.cluster.local:6379
|
||||||
|
RERANK_MODEL_ID: BAAI/bge-reranker-base
|
||||||
|
RERANK_SERVER_HOST_IP: reranking-dependency-svc
|
||||||
|
RETRIEVER_SERVICE_HOST_IP: retriever-svc
|
||||||
|
TEI_EMBEDDING_ENDPOINT: http://embedding-dependency-svc.default.svc.cluster.local:6006
|
||||||
|
TEI_ENDPOINT: http://embedding-dependency-svc.default.svc.cluster.local:6006
|
||||||
|
TEI_RERANKING_ENDPOINT: http://reranking-dependency-svc.default.svc.cluster.local:8808
|
||||||
|
TGI_LLM_ENDPOINT: http://llm-dependency-svc.default.svc.cluster.local:9009
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: qna-config
|
||||||
|
namespace: default
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: chatqna-backend-server-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 2
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: opea/chatqna:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: chatqna-backend-server-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 8888
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 8
|
||||||
|
memory: 8000Mi
|
||||||
|
requests:
|
||||||
|
cpu: 8
|
||||||
|
memory: 8000Mi
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: chatqna-backend-server-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
nodePort: 30888
|
||||||
|
port: 8888
|
||||||
|
targetPort: 8888
|
||||||
|
selector:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
type: NodePort
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: dataprep-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: dataprep-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: dataprep-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: opea/dataprep-redis:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: dataprep-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 6007
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: dataprep-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: dataprep-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: port1
|
||||||
|
port: 6007
|
||||||
|
targetPort: 6007
|
||||||
|
selector:
|
||||||
|
app: dataprep-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: embedding-dependency-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 2
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- args:
|
||||||
|
- --model-id
|
||||||
|
- $(EMBEDDING_MODEL_ID)
|
||||||
|
- --auto-truncate
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: ghcr.io/huggingface/text-embeddings-inference:cpu-1.5
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: embedding-dependency-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 80
|
||||||
|
memory: 20000Mi
|
||||||
|
requests:
|
||||||
|
cpu: 80
|
||||||
|
memory: 20000Mi
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: model-volume
|
||||||
|
- mountPath: /dev/shm
|
||||||
|
name: shm
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
volumes:
|
||||||
|
- hostPath:
|
||||||
|
path: /mnt/models
|
||||||
|
type: Directory
|
||||||
|
name: model-volume
|
||||||
|
- emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Gi
|
||||||
|
name: shm
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: embedding-dependency-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 6006
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: llm-dependency-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 15
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- args:
|
||||||
|
- --model-id
|
||||||
|
- $(LLM_MODEL_ID)
|
||||||
|
- --max-input-length
|
||||||
|
- '1280'
|
||||||
|
- --max-total-tokens
|
||||||
|
- '2048'
|
||||||
|
- --max-batch-total-tokens
|
||||||
|
- '65536'
|
||||||
|
- --max-batch-prefill-tokens
|
||||||
|
- '4096'
|
||||||
|
env:
|
||||||
|
- name: OMPI_MCA_btl_vader_single_copy_mechanism
|
||||||
|
value: none
|
||||||
|
- name: PT_HPU_ENABLE_LAZY_COLLECTIVES
|
||||||
|
value: 'true'
|
||||||
|
- name: runtime
|
||||||
|
value: habana
|
||||||
|
- name: HABANA_VISIBLE_DEVICES
|
||||||
|
value: all
|
||||||
|
- name: HF_TOKEN
|
||||||
|
value: ${HF_TOKEN}
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: ghcr.io/huggingface/tgi-gaudi:2.0.5
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: llm-dependency-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
habana.ai/gaudi: 1
|
||||||
|
securityContext:
|
||||||
|
capabilities:
|
||||||
|
add:
|
||||||
|
- SYS_NICE
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: model-volume
|
||||||
|
- mountPath: /dev/shm
|
||||||
|
name: shm
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
volumes:
|
||||||
|
- hostPath:
|
||||||
|
path: /mnt/models
|
||||||
|
type: Directory
|
||||||
|
name: model-volume
|
||||||
|
- emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Gi
|
||||||
|
name: shm
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: llm-dependency-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 9009
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: reranking-dependency-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: reranking-dependency-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: reranking-dependency-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- args:
|
||||||
|
- --model-id
|
||||||
|
- $(RERANK_MODEL_ID)
|
||||||
|
- --auto-truncate
|
||||||
|
env:
|
||||||
|
- name: OMPI_MCA_btl_vader_single_copy_mechanism
|
||||||
|
value: none
|
||||||
|
- name: PT_HPU_ENABLE_LAZY_COLLECTIVES
|
||||||
|
value: 'true'
|
||||||
|
- name: runtime
|
||||||
|
value: habana
|
||||||
|
- name: HABANA_VISIBLE_DEVICES
|
||||||
|
value: all
|
||||||
|
- name: HF_TOKEN
|
||||||
|
value: ${HF_TOKEN}
|
||||||
|
- name: MAX_WARMUP_SEQUENCE_LENGTH
|
||||||
|
value: '512'
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: ghcr.io/huggingface/tei-gaudi:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: reranking-dependency-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
habana.ai/gaudi: 1
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: model-volume
|
||||||
|
- mountPath: /dev/shm
|
||||||
|
name: shm
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: reranking-dependency-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
volumes:
|
||||||
|
- hostPath:
|
||||||
|
path: /mnt/models
|
||||||
|
type: Directory
|
||||||
|
name: model-volume
|
||||||
|
- emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Gi
|
||||||
|
name: shm
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: reranking-dependency-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 8808
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: reranking-dependency-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: retriever-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 2
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: retriever-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: retriever-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: opea/retriever-redis:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: retriever-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 7000
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 4
|
||||||
|
memory: 4000Mi
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: retriever-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: retriever-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 7000
|
||||||
|
targetPort: 7000
|
||||||
|
selector:
|
||||||
|
app: retriever-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: vector-db
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: vector-db
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: vector-db
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: redis/redis-stack:7.2.0-v9
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: vector-db
|
||||||
|
ports:
|
||||||
|
- containerPort: 6379
|
||||||
|
- containerPort: 8001
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: vector-db
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: vector-db
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: vector-db-service
|
||||||
|
port: 6379
|
||||||
|
targetPort: 6379
|
||||||
|
- name: vector-db-insight
|
||||||
|
port: 8001
|
||||||
|
targetPort: 8001
|
||||||
|
selector:
|
||||||
|
app: vector-db
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
@@ -0,0 +1,421 @@
|
|||||||
|
# Copyright (C) 2024 Intel Corporation
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
EMBEDDING_MODEL_ID: BAAI/bge-base-en-v1.5
|
||||||
|
EMBEDDING_SERVER_HOST_IP: embedding-dependency-svc
|
||||||
|
HUGGINGFACEHUB_API_TOKEN: ${HF_TOKEN}
|
||||||
|
INDEX_NAME: rag-redis
|
||||||
|
LLM_MODEL_ID: Intel/neural-chat-7b-v3-3
|
||||||
|
LLM_SERVER_HOST_IP: llm-dependency-svc
|
||||||
|
NODE_SELECTOR: chatqna-opea
|
||||||
|
REDIS_URL: redis://vector-db.default.svc.cluster.local:6379
|
||||||
|
RERANK_MODEL_ID: BAAI/bge-reranker-base
|
||||||
|
RERANK_SERVER_HOST_IP: reranking-dependency-svc
|
||||||
|
RETRIEVER_SERVICE_HOST_IP: retriever-svc
|
||||||
|
TEI_EMBEDDING_ENDPOINT: http://embedding-dependency-svc.default.svc.cluster.local:6006
|
||||||
|
TEI_ENDPOINT: http://embedding-dependency-svc.default.svc.cluster.local:6006
|
||||||
|
TEI_RERANKING_ENDPOINT: http://reranking-dependency-svc.default.svc.cluster.local:8808
|
||||||
|
TGI_LLM_ENDPOINT: http://llm-dependency-svc.default.svc.cluster.local:9009
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: qna-config
|
||||||
|
namespace: default
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: chatqna-backend-server-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 8
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: opea/chatqna-without-rerank:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: chatqna-backend-server-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 8888
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 8
|
||||||
|
memory: 8000Mi
|
||||||
|
requests:
|
||||||
|
cpu: 8
|
||||||
|
memory: 8000Mi
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: chatqna-backend-server-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
nodePort: 30888
|
||||||
|
port: 8888
|
||||||
|
targetPort: 8888
|
||||||
|
selector:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
type: NodePort
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: dataprep-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: dataprep-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: dataprep-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: opea/dataprep-redis:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: dataprep-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 6007
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: dataprep-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: dataprep-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: port1
|
||||||
|
port: 6007
|
||||||
|
targetPort: 6007
|
||||||
|
selector:
|
||||||
|
app: dataprep-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: embedding-dependency-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 8
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- args:
|
||||||
|
- --model-id
|
||||||
|
- $(EMBEDDING_MODEL_ID)
|
||||||
|
- --auto-truncate
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: ghcr.io/huggingface/text-embeddings-inference:cpu-1.5
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: embedding-dependency-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 80
|
||||||
|
memory: 20000Mi
|
||||||
|
requests:
|
||||||
|
cpu: 80
|
||||||
|
memory: 20000Mi
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: model-volume
|
||||||
|
- mountPath: /dev/shm
|
||||||
|
name: shm
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
volumes:
|
||||||
|
- hostPath:
|
||||||
|
path: /mnt/models
|
||||||
|
type: Directory
|
||||||
|
name: model-volume
|
||||||
|
- emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Gi
|
||||||
|
name: shm
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: embedding-dependency-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 6006
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: llm-dependency-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 64
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- args:
|
||||||
|
- --model-id
|
||||||
|
- $(LLM_MODEL_ID)
|
||||||
|
- --max-input-length
|
||||||
|
- '1280'
|
||||||
|
- --max-total-tokens
|
||||||
|
- '2048'
|
||||||
|
- --max-batch-total-tokens
|
||||||
|
- '65536'
|
||||||
|
- --max-batch-prefill-tokens
|
||||||
|
- '4096'
|
||||||
|
env:
|
||||||
|
- name: OMPI_MCA_btl_vader_single_copy_mechanism
|
||||||
|
value: none
|
||||||
|
- name: PT_HPU_ENABLE_LAZY_COLLECTIVES
|
||||||
|
value: 'true'
|
||||||
|
- name: runtime
|
||||||
|
value: habana
|
||||||
|
- name: HABANA_VISIBLE_DEVICES
|
||||||
|
value: all
|
||||||
|
- name: HF_TOKEN
|
||||||
|
value: ${HF_TOKEN}
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: ghcr.io/huggingface/tgi-gaudi:2.0.5
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: llm-dependency-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
habana.ai/gaudi: 1
|
||||||
|
securityContext:
|
||||||
|
capabilities:
|
||||||
|
add:
|
||||||
|
- SYS_NICE
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: model-volume
|
||||||
|
- mountPath: /dev/shm
|
||||||
|
name: shm
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
volumes:
|
||||||
|
- hostPath:
|
||||||
|
path: /mnt/models
|
||||||
|
type: Directory
|
||||||
|
name: model-volume
|
||||||
|
- emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Gi
|
||||||
|
name: shm
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: llm-dependency-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 9009
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: retriever-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 8
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: retriever-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: retriever-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: opea/retriever-redis:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: retriever-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 7000
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 4
|
||||||
|
memory: 4000Mi
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: retriever-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: retriever-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 7000
|
||||||
|
targetPort: 7000
|
||||||
|
selector:
|
||||||
|
app: retriever-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: vector-db
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: vector-db
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: vector-db
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: redis/redis-stack:7.2.0-v9
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: vector-db
|
||||||
|
ports:
|
||||||
|
- containerPort: 6379
|
||||||
|
- containerPort: 8001
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: vector-db
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: vector-db
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: vector-db-service
|
||||||
|
port: 6379
|
||||||
|
targetPort: 6379
|
||||||
|
- name: vector-db-insight
|
||||||
|
port: 8001
|
||||||
|
targetPort: 8001
|
||||||
|
selector:
|
||||||
|
app: vector-db
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
@@ -0,0 +1,421 @@
|
|||||||
|
# Copyright (C) 2024 Intel Corporation
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
EMBEDDING_MODEL_ID: BAAI/bge-base-en-v1.5
|
||||||
|
EMBEDDING_SERVER_HOST_IP: embedding-dependency-svc
|
||||||
|
HUGGINGFACEHUB_API_TOKEN: ${HF_TOKEN}
|
||||||
|
INDEX_NAME: rag-redis
|
||||||
|
LLM_MODEL_ID: Intel/neural-chat-7b-v3-3
|
||||||
|
LLM_SERVER_HOST_IP: llm-dependency-svc
|
||||||
|
NODE_SELECTOR: chatqna-opea
|
||||||
|
REDIS_URL: redis://vector-db.default.svc.cluster.local:6379
|
||||||
|
RERANK_MODEL_ID: BAAI/bge-reranker-base
|
||||||
|
RERANK_SERVER_HOST_IP: reranking-dependency-svc
|
||||||
|
RETRIEVER_SERVICE_HOST_IP: retriever-svc
|
||||||
|
TEI_EMBEDDING_ENDPOINT: http://embedding-dependency-svc.default.svc.cluster.local:6006
|
||||||
|
TEI_ENDPOINT: http://embedding-dependency-svc.default.svc.cluster.local:6006
|
||||||
|
TEI_RERANKING_ENDPOINT: http://reranking-dependency-svc.default.svc.cluster.local:8808
|
||||||
|
TGI_LLM_ENDPOINT: http://llm-dependency-svc.default.svc.cluster.local:9009
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: qna-config
|
||||||
|
namespace: default
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: chatqna-backend-server-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 4
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: opea/chatqna-without-rerank:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: chatqna-backend-server-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 8888
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 8
|
||||||
|
memory: 8000Mi
|
||||||
|
requests:
|
||||||
|
cpu: 8
|
||||||
|
memory: 8000Mi
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: chatqna-backend-server-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
nodePort: 30888
|
||||||
|
port: 8888
|
||||||
|
targetPort: 8888
|
||||||
|
selector:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
type: NodePort
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: dataprep-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: dataprep-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: dataprep-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: opea/dataprep-redis:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: dataprep-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 6007
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: dataprep-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: dataprep-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: port1
|
||||||
|
port: 6007
|
||||||
|
targetPort: 6007
|
||||||
|
selector:
|
||||||
|
app: dataprep-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: embedding-dependency-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 4
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- args:
|
||||||
|
- --model-id
|
||||||
|
- $(EMBEDDING_MODEL_ID)
|
||||||
|
- --auto-truncate
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: ghcr.io/huggingface/text-embeddings-inference:cpu-1.5
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: embedding-dependency-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 80
|
||||||
|
memory: 20000Mi
|
||||||
|
requests:
|
||||||
|
cpu: 80
|
||||||
|
memory: 20000Mi
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: model-volume
|
||||||
|
- mountPath: /dev/shm
|
||||||
|
name: shm
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
volumes:
|
||||||
|
- hostPath:
|
||||||
|
path: /mnt/models
|
||||||
|
type: Directory
|
||||||
|
name: model-volume
|
||||||
|
- emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Gi
|
||||||
|
name: shm
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: embedding-dependency-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 6006
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: llm-dependency-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 32
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- args:
|
||||||
|
- --model-id
|
||||||
|
- $(LLM_MODEL_ID)
|
||||||
|
- --max-input-length
|
||||||
|
- '1280'
|
||||||
|
- --max-total-tokens
|
||||||
|
- '2048'
|
||||||
|
- --max-batch-total-tokens
|
||||||
|
- '65536'
|
||||||
|
- --max-batch-prefill-tokens
|
||||||
|
- '4096'
|
||||||
|
env:
|
||||||
|
- name: OMPI_MCA_btl_vader_single_copy_mechanism
|
||||||
|
value: none
|
||||||
|
- name: PT_HPU_ENABLE_LAZY_COLLECTIVES
|
||||||
|
value: 'true'
|
||||||
|
- name: runtime
|
||||||
|
value: habana
|
||||||
|
- name: HABANA_VISIBLE_DEVICES
|
||||||
|
value: all
|
||||||
|
- name: HF_TOKEN
|
||||||
|
value: ${HF_TOKEN}
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: ghcr.io/huggingface/tgi-gaudi:2.0.5
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: llm-dependency-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
habana.ai/gaudi: 1
|
||||||
|
securityContext:
|
||||||
|
capabilities:
|
||||||
|
add:
|
||||||
|
- SYS_NICE
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: model-volume
|
||||||
|
- mountPath: /dev/shm
|
||||||
|
name: shm
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
volumes:
|
||||||
|
- hostPath:
|
||||||
|
path: /mnt/models
|
||||||
|
type: Directory
|
||||||
|
name: model-volume
|
||||||
|
- emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Gi
|
||||||
|
name: shm
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: llm-dependency-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 9009
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: retriever-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 4
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: retriever-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: retriever-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: opea/retriever-redis:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: retriever-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 7000
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 4
|
||||||
|
memory: 4000Mi
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: retriever-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: retriever-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 7000
|
||||||
|
targetPort: 7000
|
||||||
|
selector:
|
||||||
|
app: retriever-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: vector-db
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: vector-db
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: vector-db
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: redis/redis-stack:7.2.0-v9
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: vector-db
|
||||||
|
ports:
|
||||||
|
- containerPort: 6379
|
||||||
|
- containerPort: 8001
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: vector-db
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: vector-db
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: vector-db-service
|
||||||
|
port: 6379
|
||||||
|
targetPort: 6379
|
||||||
|
- name: vector-db-insight
|
||||||
|
port: 8001
|
||||||
|
targetPort: 8001
|
||||||
|
selector:
|
||||||
|
app: vector-db
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
@@ -0,0 +1,421 @@
|
|||||||
|
# Copyright (C) 2024 Intel Corporation
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
EMBEDDING_MODEL_ID: BAAI/bge-base-en-v1.5
|
||||||
|
EMBEDDING_SERVER_HOST_IP: embedding-dependency-svc
|
||||||
|
HUGGINGFACEHUB_API_TOKEN: ${HF_TOKEN}
|
||||||
|
INDEX_NAME: rag-redis
|
||||||
|
LLM_MODEL_ID: Intel/neural-chat-7b-v3-3
|
||||||
|
LLM_SERVER_HOST_IP: llm-dependency-svc
|
||||||
|
NODE_SELECTOR: chatqna-opea
|
||||||
|
REDIS_URL: redis://vector-db.default.svc.cluster.local:6379
|
||||||
|
RERANK_MODEL_ID: BAAI/bge-reranker-base
|
||||||
|
RERANK_SERVER_HOST_IP: reranking-dependency-svc
|
||||||
|
RETRIEVER_SERVICE_HOST_IP: retriever-svc
|
||||||
|
TEI_EMBEDDING_ENDPOINT: http://embedding-dependency-svc.default.svc.cluster.local:6006
|
||||||
|
TEI_ENDPOINT: http://embedding-dependency-svc.default.svc.cluster.local:6006
|
||||||
|
TEI_RERANKING_ENDPOINT: http://reranking-dependency-svc.default.svc.cluster.local:8808
|
||||||
|
TGI_LLM_ENDPOINT: http://llm-dependency-svc.default.svc.cluster.local:9009
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: qna-config
|
||||||
|
namespace: default
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: chatqna-backend-server-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 2
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: opea/chatqna-without-rerank:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: chatqna-backend-server-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 8888
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 8
|
||||||
|
memory: 8000Mi
|
||||||
|
requests:
|
||||||
|
cpu: 8
|
||||||
|
memory: 8000Mi
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: chatqna-backend-server-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
nodePort: 30888
|
||||||
|
port: 8888
|
||||||
|
targetPort: 8888
|
||||||
|
selector:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
type: NodePort
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: dataprep-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: dataprep-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: dataprep-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: opea/dataprep-redis:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: dataprep-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 6007
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: dataprep-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: dataprep-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: port1
|
||||||
|
port: 6007
|
||||||
|
targetPort: 6007
|
||||||
|
selector:
|
||||||
|
app: dataprep-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: embedding-dependency-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- args:
|
||||||
|
- --model-id
|
||||||
|
- $(EMBEDDING_MODEL_ID)
|
||||||
|
- --auto-truncate
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: ghcr.io/huggingface/text-embeddings-inference:cpu-1.5
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: embedding-dependency-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 80
|
||||||
|
memory: 20000Mi
|
||||||
|
requests:
|
||||||
|
cpu: 80
|
||||||
|
memory: 20000Mi
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: model-volume
|
||||||
|
- mountPath: /dev/shm
|
||||||
|
name: shm
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
volumes:
|
||||||
|
- hostPath:
|
||||||
|
path: /mnt/models
|
||||||
|
type: Directory
|
||||||
|
name: model-volume
|
||||||
|
- emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Gi
|
||||||
|
name: shm
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: embedding-dependency-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 6006
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: llm-dependency-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 8
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- args:
|
||||||
|
- --model-id
|
||||||
|
- $(LLM_MODEL_ID)
|
||||||
|
- --max-input-length
|
||||||
|
- '1280'
|
||||||
|
- --max-total-tokens
|
||||||
|
- '2048'
|
||||||
|
- --max-batch-total-tokens
|
||||||
|
- '65536'
|
||||||
|
- --max-batch-prefill-tokens
|
||||||
|
- '4096'
|
||||||
|
env:
|
||||||
|
- name: OMPI_MCA_btl_vader_single_copy_mechanism
|
||||||
|
value: none
|
||||||
|
- name: PT_HPU_ENABLE_LAZY_COLLECTIVES
|
||||||
|
value: 'true'
|
||||||
|
- name: runtime
|
||||||
|
value: habana
|
||||||
|
- name: HABANA_VISIBLE_DEVICES
|
||||||
|
value: all
|
||||||
|
- name: HF_TOKEN
|
||||||
|
value: ${HF_TOKEN}
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: ghcr.io/huggingface/tgi-gaudi:2.0.5
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: llm-dependency-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
habana.ai/gaudi: 1
|
||||||
|
securityContext:
|
||||||
|
capabilities:
|
||||||
|
add:
|
||||||
|
- SYS_NICE
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: model-volume
|
||||||
|
- mountPath: /dev/shm
|
||||||
|
name: shm
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
volumes:
|
||||||
|
- hostPath:
|
||||||
|
path: /mnt/models
|
||||||
|
type: Directory
|
||||||
|
name: model-volume
|
||||||
|
- emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Gi
|
||||||
|
name: shm
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: llm-dependency-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 9009
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: retriever-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 2
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: retriever-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: retriever-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: opea/retriever-redis:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: retriever-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 7000
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 4
|
||||||
|
memory: 4000Mi
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: retriever-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: retriever-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 7000
|
||||||
|
targetPort: 7000
|
||||||
|
selector:
|
||||||
|
app: retriever-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: vector-db
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: vector-db
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: vector-db
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: redis/redis-stack:7.2.0-v9
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: vector-db
|
||||||
|
ports:
|
||||||
|
- containerPort: 6379
|
||||||
|
- containerPort: 8001
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: vector-db
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: vector-db
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: vector-db-service
|
||||||
|
port: 6379
|
||||||
|
targetPort: 6379
|
||||||
|
- name: vector-db-insight
|
||||||
|
port: 8001
|
||||||
|
targetPort: 8001
|
||||||
|
selector:
|
||||||
|
app: vector-db
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
@@ -0,0 +1,421 @@
|
|||||||
|
# Copyright (C) 2024 Intel Corporation
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
EMBEDDING_MODEL_ID: BAAI/bge-base-en-v1.5
|
||||||
|
EMBEDDING_SERVER_HOST_IP: embedding-dependency-svc
|
||||||
|
HUGGINGFACEHUB_API_TOKEN: ${HF_TOKEN}
|
||||||
|
INDEX_NAME: rag-redis
|
||||||
|
LLM_MODEL_ID: Intel/neural-chat-7b-v3-3
|
||||||
|
LLM_SERVER_HOST_IP: llm-dependency-svc
|
||||||
|
NODE_SELECTOR: chatqna-opea
|
||||||
|
REDIS_URL: redis://vector-db.default.svc.cluster.local:6379
|
||||||
|
RERANK_MODEL_ID: BAAI/bge-reranker-base
|
||||||
|
RERANK_SERVER_HOST_IP: reranking-dependency-svc
|
||||||
|
RETRIEVER_SERVICE_HOST_IP: retriever-svc
|
||||||
|
TEI_EMBEDDING_ENDPOINT: http://embedding-dependency-svc.default.svc.cluster.local:6006
|
||||||
|
TEI_ENDPOINT: http://embedding-dependency-svc.default.svc.cluster.local:6006
|
||||||
|
TEI_RERANKING_ENDPOINT: http://reranking-dependency-svc.default.svc.cluster.local:8808
|
||||||
|
TGI_LLM_ENDPOINT: http://llm-dependency-svc.default.svc.cluster.local:9009
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: qna-config
|
||||||
|
namespace: default
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: chatqna-backend-server-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 2
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: opea/chatqna-without-rerank:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: chatqna-backend-server-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 8888
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 8
|
||||||
|
memory: 8000Mi
|
||||||
|
requests:
|
||||||
|
cpu: 8
|
||||||
|
memory: 8000Mi
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: chatqna-backend-server-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
nodePort: 30888
|
||||||
|
port: 8888
|
||||||
|
targetPort: 8888
|
||||||
|
selector:
|
||||||
|
app: chatqna-backend-server-deploy
|
||||||
|
type: NodePort
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: dataprep-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: dataprep-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: dataprep-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: opea/dataprep-redis:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: dataprep-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 6007
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: dataprep-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: dataprep-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: port1
|
||||||
|
port: 6007
|
||||||
|
targetPort: 6007
|
||||||
|
selector:
|
||||||
|
app: dataprep-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: embedding-dependency-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 2
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- args:
|
||||||
|
- --model-id
|
||||||
|
- $(EMBEDDING_MODEL_ID)
|
||||||
|
- --auto-truncate
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: ghcr.io/huggingface/text-embeddings-inference:cpu-1.5
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: embedding-dependency-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 80
|
||||||
|
memory: 20000Mi
|
||||||
|
requests:
|
||||||
|
cpu: 80
|
||||||
|
memory: 20000Mi
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: model-volume
|
||||||
|
- mountPath: /dev/shm
|
||||||
|
name: shm
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
volumes:
|
||||||
|
- hostPath:
|
||||||
|
path: /mnt/models
|
||||||
|
type: Directory
|
||||||
|
name: model-volume
|
||||||
|
- emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Gi
|
||||||
|
name: shm
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: embedding-dependency-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 6006
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: embedding-dependency-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: llm-dependency-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 16
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- args:
|
||||||
|
- --model-id
|
||||||
|
- $(LLM_MODEL_ID)
|
||||||
|
- --max-input-length
|
||||||
|
- '1280'
|
||||||
|
- --max-total-tokens
|
||||||
|
- '2048'
|
||||||
|
- --max-batch-total-tokens
|
||||||
|
- '65536'
|
||||||
|
- --max-batch-prefill-tokens
|
||||||
|
- '4096'
|
||||||
|
env:
|
||||||
|
- name: OMPI_MCA_btl_vader_single_copy_mechanism
|
||||||
|
value: none
|
||||||
|
- name: PT_HPU_ENABLE_LAZY_COLLECTIVES
|
||||||
|
value: 'true'
|
||||||
|
- name: runtime
|
||||||
|
value: habana
|
||||||
|
- name: HABANA_VISIBLE_DEVICES
|
||||||
|
value: all
|
||||||
|
- name: HF_TOKEN
|
||||||
|
value: ${HF_TOKEN}
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: ghcr.io/huggingface/tgi-gaudi:2.0.5
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: llm-dependency-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
habana.ai/gaudi: 1
|
||||||
|
securityContext:
|
||||||
|
capabilities:
|
||||||
|
add:
|
||||||
|
- SYS_NICE
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: model-volume
|
||||||
|
- mountPath: /dev/shm
|
||||||
|
name: shm
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
volumes:
|
||||||
|
- hostPath:
|
||||||
|
path: /mnt/models
|
||||||
|
type: Directory
|
||||||
|
name: model-volume
|
||||||
|
- emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Gi
|
||||||
|
name: shm
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: llm-dependency-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 9009
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: llm-dependency-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: retriever-deploy
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 2
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: retriever-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: retriever-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: opea/retriever-redis:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: retriever-deploy
|
||||||
|
ports:
|
||||||
|
- containerPort: 7000
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 4
|
||||||
|
memory: 4000Mi
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: retriever-deploy
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: retriever-svc
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: service
|
||||||
|
port: 7000
|
||||||
|
targetPort: 7000
|
||||||
|
selector:
|
||||||
|
app: retriever-deploy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: vector-db
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: vector-db
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
sidecar.istio.io/rewriteAppHTTPProbers: 'true'
|
||||||
|
labels:
|
||||||
|
app: vector-db
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: qna-config
|
||||||
|
image: redis/redis-stack:7.2.0-v9
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: vector-db
|
||||||
|
ports:
|
||||||
|
- containerPort: 6379
|
||||||
|
- containerPort: 8001
|
||||||
|
hostIPC: true
|
||||||
|
nodeSelector:
|
||||||
|
node-type: chatqna-opea
|
||||||
|
serviceAccountName: default
|
||||||
|
topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: vector-db
|
||||||
|
maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: vector-db
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: vector-db-service
|
||||||
|
port: 6379
|
||||||
|
targetPort: 6379
|
||||||
|
- name: vector-db-insight
|
||||||
|
port: 8001
|
||||||
|
targetPort: 8001
|
||||||
|
selector:
|
||||||
|
app: vector-db
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
Reference in New Issue
Block a user