鲲鹏社区首页
中文
注册
开发者
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

准备环境

  1. 确保已经安装并配置好以下工具和模型文件。
    • Python: >= 3.10。
    • Ray:>= 2.31.0。
    • 使用pip3安装相关Python包。
      pip3 install -r requirements.txt
    • numactl。
    • 下载所需Embedding/Reranker模型的gguf文件
    • 如需使用二进制cmd启动Embedding模型准备llama.cpp二进制。
    • 如需使用Docker启动Embedding模型准备llama.cpp镜像。
  2. 克隆项目到本地。
    git clone --branch v2.0.0 https://gitee.com/kunpeng_compute/KunpengRAG.git 
    cd KunpengRAG/deployment/ray-compute/
  3. 配置用户自定义配置,自定义修改llamacpp_config.yaml文件中配置。用户选择Embedding/Reranker模型启动方式:Docker、cmd或external,根据以下步骤进行自定义配置。

    Docker:

    1. 下载“swr.cn-north-4.myhuaweicloud.com/kunpeng-ai/llama.cpp:full-kunpeng”镜像。
    2. 在llamacpp_config.yaml中配置“start_mode”“docker”
    3. 在llamacpp_config.yaml中model_configs配置“model_type”“embedding”或者“reranker”
    4. 在llamacpp_config.yaml中配置“docker_image”“swr.cn-north-4.myhuaweicloud.com/kunpeng-ai/llama.cpp:full-kunpeng”
    5. 在llamacpp_config.yaml中配置docker_configs下Embedding/Reranker模型所需参数,model_configs可扩展,用户可以根据需求自行配置启动Embedding模型数量。以下为例子,添加一组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:

    1. 准备llama.cpp二进制文件。
    2. 在llamacpp_config.yaml中配置“start_mode”“cmd”
    3. 在llamacpp_config.yaml中model_configs配置“model_type”“embedding”或者“reranker”
    4. 添加服务器环境变量“#export LD_LIBRARY_PATH = llama-sever”路径。
    5. 在llamacpp_config.yaml中配置“llamacpp_path”为实际的llama-sever路径。
    6. 在llamacpp_config.yaml中配置llamacpp_configs下Embedding/Reranker模型所需参数,model_configs可扩展,用户可以根据需求自行配置启动Embedding/Reranker模型数量。以为下为例子,添加一组model_configs即可启动一个Embedding/Reranker模型。
      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:

    1. 通过Docker自行启动Embedding/Reranker模型,参考以下命令启动:
      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
    2. 添加服务器环境变量“#export LD_LIBRARY_PATH = llama-sever”路径(使用llama.cpp二进制启动需要)。
    3. 通过llama.cpp二进制启动Embedding/Reranker模型,参考以下启动命令:
      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  \
  4. 执行Ray脚本。
    python3 deplicas_ray.py
  5. 执行完成后,脚本自动暴露服务,您可以通过以下地址访问。
    http://<服务器IP>:<rag serve服务端口(默认为8000)>

    例如:http://192.168.1.100:8000

  6. 配置Ray地址到RAG服务。

    打开RAG服务前端,配置RAY服务http://<服务器IP>:<rag serve服务端口(默认为8000)>/v1到embedding模型配置中。(/v1为openai embedding模型访问范式)。配置完毕后即可正常使用RAG服务。