Atlas 300I duo mindie 部署qwen3-vl-30b-a3b笔记
·
这里写自定义目录标题
Atlas 300I duo mindie 部署qwen3-vl-30b-a3b笔记
第一步 mindie镜像下载安装
镜像地址:https://www.hiascend.com/developer/ascendhub/detail/af85b724a7e5469ebd7ea13c3439d48f
docker pull --platform=arm64 swr.cn-south-1.myhuaweicloud.com/ascendhub/mindie:3.0.0b2-300I-Duo-py311-openeuler24.03-lts
第二步
docker run -it -d \
--shm-size=64g \
--name mindie_310 \
--device=/dev/davinci0 \
--device=/dev/davinci1 \
--device=/dev/davinci2 \
--device=/dev/davinci3 \
--device=/dev/davinci4 \
--device=/dev/davinci5 \
--device=/dev/davinci_manager \
--device=/dev/hisi_hdc \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \
-v /usr/local/dcmi:/usr/local/dcmi:ro \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi:ro \
-v /usr/local/Ascend/firmware:/usr/local/Ascend/firmware:ro \
-v /usr/local/sbin:/usr/local/sbin:ro \
-v /data/alg:/root/alg \
-p 29511:29511 \
-p 29512:29512 \
-p 29513:29513 \
-p 1025:1025 \
-p 1026:1026 \
-p 1027:1027 \
-p 1121:1121 \
swr.cn-south-1.myhuaweicloud.com/ascendhub/mindie:3.0.0-300I-Duo-py311-openeuler24.03-lts \
bash
第三步
docker exec -it mindie_310 /bin/bash
cd /usr/local/Ascend/atb-models/requirements/models
pip install -r requirements_qwen3vl.txt
第四步
cd /usr/local/Ascend/mindie/latest
chmod 750 mindie-service
chmod -R 550 mindie-service/bin
chmod 550 mindie-service/lib
chmod 440 mindie-service/lib/*
chmod 550 mindie-service/lib/grpc
chmod 440 mindie-service/lib/grpc/*
chmod -R 550 mindie-service/include
chmod -R 550 mindie-service/scripts
chmod 750 mindie-service/logs
chmod 750 mindie-service/conf
chmod 640 mindie-service/conf/config.json
chmod 700 mindie-service/security
chmod -R 700 mindie-service/security/*
第五步
# 配置CANN环境,默认安装在/usr/local目录下
source /usr/local/Ascend/ascend-toolkit/set_env.sh
# 配置加速库环境
source /usr/local/Ascend/nnal/atb/set_env.sh
# 配置模型仓环境变量
source /usr/local/Ascend/atb-models/set_env.sh
# MindIE
source /usr/local/Ascend/mindie/latest/mindie-llm/set_env.sh
source /usr/local/Ascend/mindie/latest/mindie-service/set_env.sh
# 开启MindIE日志打印
export MINDIE_LOG_TO_STDOUT="true"
第六步
cd /usr/local/Ascend/mindie/latest/mindie-service
cd mindie-service/conf
vim config.json
修改"httpsEnabled" : false
修改"modelName" : "qwen2-7b",
"modelWeightPath" : "/home/weight",
其余参数视情况修改
注意
"maxSeqLen" : 1280000,#2560倍数
"maxInputTokenLen" : 1024000,1024倍数
"maxPrefillTokens" : 1024000,需大于maxInputTokenLen
第七步 启动服务
nohup ./bin/mindieservice_daemon > output.log 2>&1 &
或
./bin/mindieservice_daemon
回显
Daemon start success!
表明启动成功


测试
import time
import requests
import json
def test_generation_speed(prompt="输出工地安全准则", max_tokens=1204000, runs=3):
url = "http://127.0.0.1:1025/v1/chat/completions"
total_tokens = 0
total_time = 0
for i in range(runs):
print(f"\n--- Run {i+1} ---")
start_time = time.time()
generated_tokens = 0
response = requests.post(
url,
headers={"Content-Type": "application/json"},
json={
"model": "qwen3-vl-qwen3-vl-a3b",
"messages": [{"role": "user", "content": prompt}],
"max_tokens": max_tokens, # 增加生成长度
"temperature": 0.7,
"stream": True
},
timeout=3600, # 增加超时时间
stream=True
)
if response.status_code == 200:
print("生成内容: ", end="", flush=True)
for line in response.iter_lines():
if line:
line = line.decode('utf-8')
if line.startswith('data: '):
if line.strip() == 'data: [DONE]':
break
try:
chunk = json.loads(line[6:])
content = chunk['choices'][0]['delta'].get('content', '')
if content:
print(content, end="", flush=True)
generated_tokens += len(content.split())
except:
pass
print() # 换行
else:
print(f"Run {i + 1}: Error {response.status_code} - {response.text}")
continue
duration = time.time() - start_time
speed = generated_tokens / duration if duration > 0 else 0
print(f"Run {i+1}: ~{generated_tokens} tokens in {duration:.2f}s → {speed:.2f} tokens/s")
total_tokens += generated_tokens
total_time += duration
if total_time > 0:
print(f"\nAverage: {total_tokens / total_time:.2f} tokens/s over {runs} runs")
if __name__ == "__main__":
test_generation_speed()
输出
其他:容器简单推理测化命令
torchrun --standalone --nnodes=1 --nproc_per_node=1 \
examples/run_pa.py \
--model_path /root/alg/qwen3-vl-8b \
--input_texts "什么是深度学习?" "深度学习和机器学习有什么区别?" "请举例说明深度学习的应用场景。" \
--max_output_length 512 \
--max_batch_size 3 \
--trust_remote_code
参考连接
https://www.hiascend.com/document/detail/zh/mindie/300/envdeployment/instg/docs/zh/user_guide/install/source/image_usage_guide.md
https://gitcode.com/Ascend/MindIE-LLM/blob/v3.0.0/docs/zh/user_guide/quick_start/quick_start.md
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐


所有评论(0)