Ray是一个用于构建和运行可扩展的Python应用程序(特别是AI和机器学习工作负载)的开源分布式计算框架,其定位是一个通用的分布式编程框架,提供了统一的分布式底盘,能帮助用户将自己的程序快速分布式化。该项目基于Ray框架对Embedding/Reranker请求进行分流处理并对接RAG服务,显著提升Embedding/Reranker速度。
git clone --branch v2.0.0 https://gitee.com/kunpeng_compute/KunpengRAG.git cd KunpengRAG/deployment/ray-compute/
Docker:
下面的例子中,添加一组model_configs即可启动一个Embedding/Reranker模型。
docker_configs:
- model_configs:
server_ip: yourIP # 服务绑定的IP地址
container_port: 11439 # 容器内部端口
host_port: 11439 # 主机映射端口
cpuset: "0-31" # 绑定的CPU核心
model_type: "embeddings" # 模型类型 embedding或者reranker
threads: 32
ubatch_size: 1024
max_model_input_chunks: 512 # 最大输入chunk数量
- model_configs:
server_ip: yourIP # 服务绑定的IP地址
container_port: yourPort # 第二个容器内部端口
host_port: yourPort # 第二个主机映射端口
cpuset: "32-63" # 绑定到另一组CPU核心
model_type: "embeddings"
threads: 32
ubatch_size: 1024
max_model_input_chunks: 512 # 最大输入chunk数量
cmd:
llamacpp_configs:
- model_configs:
server_ip: yourIP # 服务绑定的IP地址
port: yourPort # 服务端口
cpuset: "0-31" # 绑定的CPU核心(空字符串表示不绑定)
model_type: "embeddings" # 模型类型 embedding或者reranker
threads: 32 # 线程数
ubatch_size: 1024 # 批处理大小
max_model_input_chunks: 512 # 最大输入chunk数量
- model_configs:
server_ip: yourIP # 服务绑定的IP地址
port: yourPort # 第二个实例端口
cpuset: "32-63" # 绑定到另一组CPU核心
model_type: "embeddings"
threads: 32
ubatch_size: 1024
external:
鲲鹏920处理器:swr.cn-north-4.myhuaweicloud.com/kunpeng-ai/llama.cpp:920-kunpeng
鲲鹏920新型号处理器:swr.cn-north-4.myhuaweicloud.com/kunpeng-ai/llama.cpp:920B-kunpeng
docker run \
--cpuset-cpus="0-31" \ # 容器绑核,绑定一个numa上
-v /root/models:/models \ # 挂载模型目录到容器
-p 11133:11133 # 映射容器的服务端口到主机端口
-c 512 # 模型可接收最大chunk数量
swr.cn-north-4.myhuaweicloud.com/kunpeng-ai/llama.cpp:full-kunpeng \ # 使用已构建好的llama.cpp镜像
--server \ # 启动api服务
-m /models/your_model.gguf \ # 指定模型路径
--embedding \
--port 11133 \
--threads 32 \
--host 0.0.0.0 \
--ubatch-size 1024
numactl -C 32-63 \ # cpu绑核 /yourPath/llama.cpp/build/bin/llama-server \ # llama.cpp二进制文件 --model /your Path to your model.gguf # embedding/reranker模型文件 --port 11438 \ --embedding \ --threads 32 \ --host 90.90.82.204 \ --ubatch-size 1024 \
python3 deplicas_ray.py
执行完成后,脚本自动暴露服务,您可以通过以下地址访问:
http://<服务器IP>:<rag server服务端口(默认为8000)>
例如:http://192.168.1.100:8000
打开RAG服务前端,配置ray服务http://<服务器IP>:<rag server服务端口(默认为8000)>/v1到embedding模型配置中。(/v1为openai embedding模型访问范式)。配置完毕后即可正常使用RAG服务。