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,就设置成功了,很神奇

### 昇腾 910B 硬件规格 昇腾 910 处理器采用了芯粒(chiplet)技术,包含六个 die: 1 个计算芯粒(包含 32 个 Davinci Core、16 个 CPU Core 和 4 个 DVDP),1 个 IO 芯粒,和 4 个 HBM 芯粒(总计 1.2TB/s 带宽)[^1]。 #### 计算能力 - **Davinci Cores**: 提供强大的 AI 加速功能,支持多种数据类型的高效处理。 - **CPU Cores**: 支持常规控制逻辑运算以及轻量级任务调度。 - **DVDP (Digital Video Data Processing)**: 针对视频流媒体的数据预处理进行了专门设计。 #### 存储带宽 HBM(高带宽内存)提供了高达 1.2 TB/s 的总线带宽,极大地提升了大规模模型训练中的数据传输效率。 ### 性能特点 针对云端训练和推理场景,昇腾 910 进行了一系列针对性优化措施。这些改进不仅提高了单芯片的绝对性能指标,还增强了多节点集群环境下的扩展性和稳定性。 ### 开发工具和支持资源 对于开发者而言,在 ModelArts 平台上可以找到丰富的文档和技术支持来帮助解决训练网络精度调优等问题。具体来说: - **ModelArts** 是华为云提供的全流程一站式AI开发平台,能够有效简化从数据准备到部署上线整个流程的操作复杂度; - **Ascend Studio** 则是一套完整的软件栈解决方案,涵盖了编译调试在内的多个方面,旨在让使用者更便捷地构建高性能的应用程序; 此外,还有其他辅助性的 SDKs 及 API 接口可供选择使用,以便更好地适配不同应用场景的需求[^2]。 ### 设备主机协作模式 在实际应用环境中,“Device”指的是安装有昇腾 AI 处理器并通过 PCIe 接口连接至服务器端的硬件单元。“Host”,即 X86 或 ARM 架构的服务机,则负责协调管理来自前端请求的任务分配工作,并通过调用 Device 上所提供的 NN 计算服务实现最终目标——加速人工智能算法执行过程[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值