Dify+华为昇腾服务器配置embedding与rerank模型服务

部署运行你感兴趣的模型镜像

一、问题背景

现在基于RAG的大模型服务太火了。做RAG除了LLM以外,就离不开embedding和rerank模型,因此官方昇腾社区已经更新了相关镜像mis-tei,但是按照指示在服务启动过程中却遇到了一些坑,例如按照如下命令启动容器:

docker run -e ASCEND_VISIBLE_DEVICES=0 -itd --name=tei --net=host \
-v /home/data:/home/HwHiAiUser/model \
-e http_proxy=<ip:port> \
-e https_proxy=<ip:port> \
--entrypoint /home/HwHiAiUser/start.sh \
mis-tei:6.0.RC3-800I-A2-aarch64  BAAI/bge-reranker-large 127.0.0.1 8080

发现容器不能正常启动,docker ps -a显示容器exited,手动启动也没有办法成功。docker logs <container_id>查看显示:

Model 'bge-reranker-large' exists:
/home/HwHiAiUser/start.sh : line 74: npu-smi: commond not found
Available device not found

二、bug解决思路与方案:

1、从log来看,像是容器中没有把昇腾的NPU挂载成功,先更换启动容器脚本,进入容器手动启动.sh文件查看情况。

docker run -e ASCEND_VISIBLE_DEVICES=0 -itd --name=tei --net=host \
-v /home/data:/home/HwHiAiUser/model \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
--entrypoint /bin/bash \
mis-tei:6.0.RC3-800I-A2-aarch64 

这时候发现容器可以正常启动,而不是exited了,docker exec -it <容器ID> bash 进入容器后,执行 npu-smi info,这个时候不会再报npu-smi: commond not found错误信息了。

然后手动执行bash /home/HwHiAiUser/start.sh。这时候发现服务log正常打印~~~说明问题就是由于之前的容器启动语句中没有把昇腾的NPU驱动挂载成功导致的。

因此最终简单修改下驱动语句即可:

docker run -u root -e ASCEND_VISIBLE_DEVICES=0 -itd --name=tei --net=host \
-e HOME=/home/HwHiAiUser \
--privileged=true  \
-v /home/data:/home/HwHiAiUser/model \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
-e http_proxy=<ip:port> \ #网络物理隔离的情况可以省略
-e https_proxy=<ip:port> \ #网络物理隔离的情况可以省略
--entrypoint /home/HwHiAiUser/start.sh \
mis-tei:6.0.RC3-800I-A2-aarch64  BAAI/bge-reranker-large 127.0.0.1 8080

至此,容器可以正常启动,进行测试:

curl 127.0.0.1:8080/rerank \
    -X POST \
    -d '{"query":"What is Deep Learning?", "texts": ["Deep Learning is not...", "Deep learning is..."]}' \
    -H 'Content-Type: application/json'

可正常返回结果。

tips:

(1)提前检查服务端口8080注意不要被别的端口占用,linux系统查看端口占用命令:netstat -tulpn。如果被8080被占用,就更换为其他port,例如2025。

(2)dify如果需要远程登录访问的话,注意IP不要填写127.0.0.1,而是要写embedding或rerank服务所在的服务器IP。否则不能正常访问。

2、dify配置mis-tei的embedding和rerank服务

embedding和rerank服务的设置路径都是:

账户-->设置-->模型供应商-->text embedding inference 

设置embedding服务的时候,如果不写API key会报错,不请是什么问题,这里随便填了一个123456,就设置成功了,很神奇

您可能感兴趣的与本文相关的镜像

Llama Factory

Llama Factory

模型微调
LLama-Factory

LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调

<think>我们正在讨论的是在华为服务器上使用Dify配置Xorbits Inference模型的方法。首先需要明确几个关键点: 1. Dify是一个开源的LLM应用开发平台,支持多种大语言模型的部署和应用开发。 2. Xorbits Inference(原名Xinference)是一个开源的大型模型服务框架,旨在简化分布式模型的部署和推理。 3. 华为服务器提供了计算资源,我们需要在华为服务器上部署Xorbits Inference服务,然后配置Dify中。 步骤如下: ### 步骤1:准备华为服务器 -华为云上购买一台云服务器(ECS),建议选择较高配置(如内存至少16GB以上,GPU机型如果需要GPU加速),操作系统推荐Ubuntu 22.04 LTS。 - 安全组设置:开放必要的端口,如Xorbits Inference默认的端口(例如9997)和Dify的端口(默认80)。 ### 步骤2:在华为服务器上部署Xorbits Inference 1. **安装Xorbits Inference**: 通过pip安装: ```bash pip install "xinference[all]" ``` 注意:如果需要使用GPU,确保服务器已安装CUDA驱动。 2. **启动Xorbits Inference服务**: 使用以下命令启动: ```bash xinference-local -H 0.0.0.0 --port 9997 ``` 这里将服务绑定到所有网络接口(0.0.0.0)并指定端口9997,以便其他机器访问。 3. **验证服务**: 在浏览器中访问 `http://<华为服务器公网IP>:9997` 可以看到Xorbits Inference的Web UI。 4. **下载模型**: 在Web UI中选择需要的模型进行下载,或者使用命令行: ```bash xinference launch --model-name <模型名称> --size-in-billions <模型大小> --model-format <格式,如ggmlv3, gguf> --n-gpu <GPU数量> ``` 例如,启动一个Llama 2模型: ```bash xinference launch --model-name llama-2-chat --size-in-billions 7 --model-format gguf --n-gpu 1 ``` 启动后会返回一个模型UID,用于后续在Dify配置。 ### 步骤3:配置Dify使用Xorbits Inference模型 1. **部署Dify**: 如果还没有部署Dify,可以参考官方文档在华为服务器上部署Dify。可以使用Docker Compose方式部署。 2. **在Dify中添加模型**: - 登录Dify后台,进入“模型供应商”设置。 - 选择“Xinference”(Xorbits Inference在Dify中可能显示为Xinference)。 - 填写Xinference服务的地址,即 `http://<华为服务器内网IP>:9997`(如果Dify和Xinference在同一台服务器,则内网IP为127.0.0.1;若在不同服务器,则填写实际内网IP,并确保网络互通)。 -Dify的“模型配置中,选择“Xinference”作为供应商,然后选择之前启动的模型(通过模型UID)。 3. **测试模型**: 在Dify中创建一个应用,选择配置好的模型,测试是否可以正常对话。 ### 注意事项 - **网络安全**:确保华为服务器的安全组只对必要端口开放,避免安全风险。 - **性能优化**:如果使用GPU,确保Xinference正确识别GPU并启用加速。 - **模型格式**:注意Xinference支持的模型格式,通常为GGML或GGUF格式。 ### 常见问题 - **模型下载失败**:可以手动下载模型服务器,然后使用`--model-path`参数指定。 - **端口不通**:检查华为云安全组和服务器防火墙设置。 通过以上步骤,可以在华为服务器上部署Xorbits Inference并集成到Dify平台中使用。 §§相关问题§§ 1. 如何在Xorbits Inference中部署自定义模型? 2. Dify平台如何支持多模型切换? 3. 如何优化Xorbits Inference在华为服务器上的性能? </think>在华为服务器配置 Dify Xorbits Inference 模型的完整步骤如下,重点涉及环境部署、模型集成和网络配置--- ### **1. 华为服务器环境准备** - **服务器规格**:选择 GPU 实例(如 `p4s.2xlarge`),至少 16GB 内存,推荐 Ubuntu 22.04 系统。 - **安全组配置**: - 开放端口:`80`(Dify Web)、`9997`(Xorbits Inference API)、`22`(SSH)。 - 入方向规则:允许来源 `0.0.0.0/0`(或按需限制IP)[^1]。 - **依赖安装**: ```bash sudo apt update && sudo apt install -y docker.io docker-compose nvidia-driver-535 nvidia-container-toolkit ``` --- ### **2. 部署 Xorbits Inference 服务** #### **步骤 2.1:安装启动** ```bash # 安装 Xinference pip install "xinference[gpu]" # 启动服务(绑定公网IP) xinference-local -H 0.0.0.0 --port 9997 ``` - 验证服务:访问 `http://<华为云公网IP>:9997` 打开 Web UI。 #### **步骤 2.2:加载模型** ```bash # 示例:加载 Llama 3 8B 模型 xinference launch --model-name "llama-3-instruct" --size-in-billions 8 --model-format gguf --n-gpu 1 ``` - 记录返回的 **Model UID**(如 `model-3abf21c`),后续配置 Dify 需要。 --- ### **3. 部署 Dify 服务** #### **步骤 3.1:通过 Docker 部署** ```bash git clone https://github.com/langgenius/dify.git cd dify/docker docker-compose up -d ``` - 访问 `http://<华为云公网IP>:80` 初始化 Dify。 #### **步骤 3.2:配置模型集成** 1. 登录 Dify 控制台 → **模型供应商** → **Xinference**。 2. 填写参数: - **API Base URL**:`http://<华为云内网IP>:9997`(同服务器建议用 `127.0.0.1:9997`) - **Model UID**:步骤 2.2 获取的 UID 3. 保存后,在 **应用编排** 中选择该模型测试推理。 --- ### **4. 验证调试** - **测试 Xorbits API**: ```bash curl http://127.0.0.1:9997/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "model-3abf21c", "messages": [{"role": "user", "content": "你好"}] }' ``` - **Dify 测试**:创建应用并发送查询,检查日志: ```bash docker logs -f dify-api ``` --- ### **关键配置说明** | 组件 | 配置项 | 示例值 | |----------------|-------------------------|--------------------------------| | Xorbits | 服务绑定地址 | `-H 0.0.0.0`(允许外部访问) | | Dify | 模型供应商类型 | Xinference | | 网络 | 华为云安全组 | 放行端口 `80` 和 `9997` | --- ### **常见问题解决** - **端口冲突**:修改 `docker-compose.yml` 中的 Dify 端口映射(如 `"8080:80"`)。 - **GPU 未识别**:运行 `nvidia-smi` 确认驱动,添加 `--runtime=nvidia` 到 Docker 命令。 - **模型加载失败**:检查华为云磁盘空间(需 >50GB),或手动下载模型到 `~/.xinference/models/`。
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值