1.部署方式

大模型容器部署在910B2,dify、oneapi等部署在X86志强服务器上,实现前后端分离。


  • 以下在X86上完成

2.docker 安装

参阅乌班图安装Docker并免sudo运行

3.镜像拉取以及模型拉取

3.1 镜像

docker pull swr.cn-south-1.myhuaweicloud.com/ascendhub/mis-tei:7.1.RC1-800I-A2-aarch64

晟腾910B2适用

3.2 模型

参阅:乌班图安装pipx以及配置魔塔终端工具

参阅:魔塔模型库

4.镜像导出

docker save -o mis-tei:7.1.RC1-800I-A2-aarch64.tar swr.cn-south-1.myhuaweicloud.com/ascendhub/mis-tei:7.1.RC1-800I-A2-aarch64

  • 以下在晟腾arm64上完成

5.镜像导入及模型拷入

docker load -i mis-tei:7.1.RC1-800I-A2-aarch64.tar

Embedding模型 | Rerank模型

6.启动脚本

脚本思路:基于Atlas 800I A2的RAG端到端实践

vi mis-tei.sh
  • 以下是经过我实测能够正常运行的
#!/bin/bash
# 适配 swr.cn-south-1.myhuaweicloud.com/ascendhub/mis-tei:6.0.RC3-800I-A2-aarch64 镜像
# 解决权限、NPU设备识别、服务启动顺序问题

# ==============================================
# 1. 变量配置(根据实际环境修改)
# ==============================================
model_dir="/apps/sharedstorage/mindie/models"
# 模型存放路径
image_id="f85b838e7160"
# 运行docker image list 看到的ID
embedding_model_id="BAAI/bge-m3"
reranker_model_id="BAAI/bge-reranker-v2-m3"
listen_ip="0.0.0.0"
embedding_listen_port=9000
reranker_listen_port=9080
npu_id=4

# 获取当前脚本所在目录的绝对路径(解决Docker挂载路径问题)
current_dir=$(cd $(dirname "${BASH_SOURCE[0]}"); pwd)

# ==============================================
# 2. 预处理(解决权限和目录问题)
# ==============================================
# 确保日志目录存在且权限可写
mkdir -p "$current_dir/logs"
chmod 777 "$current_dir/logs"
# 避免容器内写入权限不足

# 确保模型目录权限正确(容器内可访问)
chmod -R 755 "$model_dir"
# 解决父目录权限穿透问题
chmod o+x "$(dirname "$model_dir")" "$(dirname "$(dirname "$model_dir")")"

# ==============================================
# 3. 生成容器内启动脚本(/home/HwHiAiUser/run.sh)
# ==============================================
mkdir -p "$current_dir/.temp"
cat > "$current_dir/.temp/run.sh" << EOF
#!/bin/bash
# 容器内服务启动脚本

# 启动embedding服务
export ENABLE_BOOST=True
bash start.sh $embedding_model_id $listen_ip $embedding_listen_port > logs/embedding.log 2>&1 &

# 等待embedding服务初始化
sleep 30

# 启动reranker服务(添加专用环境变量)
export ENABLE_BOOST=True
export IS_RERANK=1
# 声明为rerank模型
export DEFAULT_PROMPT="<Query>: <s1>\\n<Document>: <s2>"
# 适配rerank提示词格式
export PROMETHEUS_PORT=9001
# 关键:为reranker指定独立的监控端口
bash start.sh $reranker_model_id $listen_ip $reranker_listen_port > logs/reranker.log 2>&1 &

# 保持容器运行
wait
EOF

# 给启动脚本添加执行权限
chmod +x "$current_dir/.temp/run.sh"

# ==============================================
# 4. 启动容器(完整参数)
# ==============================================
docker run -itd \
  --name=mis-tei \
  --net=host \
  --privileged \
  --user root \
  --device=/dev/davinci_manager \
  --device=/dev/hisi_hdc \
  --device=/dev/devmm_svm \
  --device=/dev/davinci$npu_id \
  $( [ -e /dev/davinci${npu_id}_rdma ] && echo "--device=/dev/davinci${npu_id}_rdma" ) \
  -e ASCEND_VISIBLE_DEVICES=$npu_id \
  -e HOME=/home/HwHiAiUser \
  -e PATH=/usr/local/sbin:$PATH \
  -v "$model_dir:/home/HwHiAiUser/model" \
  -v "$current_dir/.temp/run.sh:/home/HwHiAiUser/run.sh" \
  -v "$current_dir/logs:/home/HwHiAiUser/logs" \
  -v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \
  -v /usr/local/sbin:/usr/local/sbin:ro \
  --entrypoint /home/HwHiAiUser/run.sh \
  $image_id

# 清理临时文件
rm -rf "$current_dir/.temp"

echo "容器启动完成!"
echo "查看embedding日志:tail -f $current_dir/logs/embedding.log"
echo "查看reranker日志:tail -f $current_dir/logs/reranker.log"

7.查看日志

tail -f logs/reranker.log
tail -f logs/embedding.log

经过我的测试,预计会等待5分钟的样子,等待日志输出如下图即可
日志截图

7.dify配置

7.1 安装Text Embedding Inference模型插件

image.png

7.2 安装实际填写对应信息

image.png

测试结果

最后修改:2025 年 08 月 19 日
如果觉得我的文章对你有用,请随意赞赏