产品咨询:18982151213
联系我们
产品咨询

边缘侧大模型部署:CV186AH 核心板适配 Qwen1.5-1.8B 的具体操作手册

作者:万物纵横
发布时间:2026-01-27 09:15
阅读量:

前置条件说明


硬件:CV186AH 核心板(8GB 内存版本,核心是内存容量)、x86 架构 Linux 主机(用于模型量化 / 转换)、核心板供电稳定(建议 5V/3A)。


软件:核心板已烧录算能官方 Ubuntu 20.04 固件(带 TPU 驱动);主机需安装 Docker(简化编译器环境配置)。


边缘侧大模型部署:CV186AH 核心板适配 Qwen1.5-1.8B 的具体操作手册(图1)


第一步:环境搭建(主机 + 核心板)


1.1 主机端(模型转换 / 量化):部署 TPU-MLIR 编译器


TPU-MLIR 是算能官方的模型编译工具,专门适配 CV186AH 的 TPU,优先用 Docker 镜像避免环境冲突:


# 1. 拉取算能TPU-MLIR镜像(国内源)

docker pull sophgo/tpuc_dev:latest

# 2. 启动容器并挂载本地目录(用于存放模型)

mkdir -p ~/cv186ah_llm  # 本地模型目录

docker run -it --privileged -v ~/cv186ah_llm:/workspace sophgo/tpuc_dev:latest

# 3. 容器内验证编译器(出现版本信息即成功)

mlir_optimizer --version


1.2 核心板端:安装推理依赖库


通过 SSH 连接 CV186AH 核心板,安装 TPU 推理所需的基础库:


# 1. 更新源并安装依赖

sudo apt update && sudo apt install -y python3-pip libgomp1

# 2. 安装算能官方推理库(适配CV186AH)

pip3 install bmruntime==1.9.0  # 核心推理库

pip3 install transformers==4.36.2 sentencepiece  # 模型文本处理


第二步:模型选择与下载(主机端)


优先选择≤2B 参数的轻量模型,Qwen1.5-1.8B 是中文优化版,适配性最佳:


# 进入容器的/workspace目录(已挂载本地~/cv186ah_llm)

cd /workspace

# 1. 下载Qwen1.5-1.8B原始模型(Hugging Face)

git lfs install

git clone https://hf-mirror.com/Qwen/Qwen1.5-1.8B-Chat  # 国内镜像加速

# 2. 验证模型文件(确保下载完整,关键文件:config.json、pytorch_model.bin)

ls Qwen1.5-1.8B-Chat/


第三步:模型量化(主机端,核心步骤)


CV186AH 内存有限,必须通过INT4 量化压缩模型(1.8B 模型 INT4 量化后仅约 1GB):


# 1. 准备量化配置文件(创建quant_config.json)

cat > quant_config.json << EOF

{

"quant_type": "INT4",  // 量化精度,INT4比INT8更省内存

"batch_size": 1,       // 边缘侧单批次推理

"chip": "cv186x"       // 指定芯片为CV186AH

}

EOF

# 2. 用TPU-MLIR量化模型(转换为MLIR中间格式+量化)

python3 -m tpumlir_llm.quantize \

--model_path ./Qwen1.5-1.8B-Chat \

--quant_config ./quant_config.json \

--output_path ./qwen1.5-1.8b-int4  # 量化后模型输出目录


量化过程约 5-10 分钟,需确保主机有足够内存(≥16GB);


若报错 “缺少依赖”,在容器内执行:pip3 install -r tpumlir_llm/requirements.txt。


第四步:模型转换为 bmodel(TPU 可执行格式)


bmodel 是算能 TPU 的专属执行格式,需针对 CV186AH 的架构优化:


# 1. 量化模型转bmodel

python3 -m tpumlir_llm.export \

--quant_model ./qwen1.5-1.8b-int4 \

--chip cv186x \

--output ./qwen1.5-1.8b-int4.bmodel

# 2. 验证bmodel文件(大小约1GB,存在即成功)

ls -lh ./qwen1.5-1.8b-int4.bmodel


第五步:核心板部署与推理


5.1 拷贝 bmodel 到核心板


# 主机端:通过scp拷贝(替换为核心板IP)

scp ./qwen1.5-1.8b-int4.bmodel root@192.168.1.100:/root/


5.2 核心板编写推理代码


创建llm_infer.py,实现基础的文本对话推理:


import bmruntime as bmr

import torch

from transformers import AutoTokenizer

# 1. 初始化TPU设备(CV186AH只有1个TPU核心)

dev = bmr.Device(0)

# 2. 加载bmodel模型

model = bmr.Model(dev, "/root/qwen1.5-1.8b-int4.bmodel")

# 3. 加载tokenizer(文本编码/解码)

tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen1.5-1.8B-Chat", trust_remote_code=True)

# 4. 推理函数

def llm_infer(prompt):

# 编码输入文本

inputs = tokenizer(prompt, return_tensors="pt")

input_ids = inputs["input_ids"].numpy()

# TPU推理(核心步骤)

outputs = model.run({"input_ids": input_ids})

# 解码输出文本

output_ids = outputs["output_ids"][0]

response = tokenizer.decode(output_ids, skip_special_tokens=True)

return response

# 5. 测试对话

if __name__ == "__main__":

prompt = "你好,请介绍一下CV186AH核心板"

print(f"提问:{prompt}")

print(f"回答:{llm_infer(prompt)}")


5.3 运行推理测试


# 核心板端执行

python3 llm_infer.py


首次运行会下载 tokenizer 文件(约 100MB),耐心等待;


正常输出示例:


提问:你好,请介绍一下CV186AH核心板

回答:CV186AH核心板是基于算能CV186AH芯片设计的边缘计算核心板,内置ARM Cortex-A53处理器和专用TPU,AI算力可达7.2 TOPS(INT8),支持8GB LPDDR4内存,适合边缘侧部署轻量级大模型、计算机视觉等AI应用...


第六步:性能优化与常见问题排查


6.1 优化技巧(提升推理速度)


关闭核心板无关进程:sudo systemctl stop bluetooth cron,释放内存 / CPU;


调整推理 batch size 为 1(边缘侧最优);


使用高速 eMMC 存储(避免模型加载慢)。


6.2 常见问题解决


问题现象

原因

解决方案

推理时内存溢出(OOM)

模型量化精度过高 / 内存不足

改用 INT4 量化,关闭其他程序

TPU 设备初始化失败

驱动未加载

重新烧录算能官方固件,执行bm-smi验证 TPU

推理速度<5 tokens / 秒

CPU 占用过高

绑定进程到 A53 核心:taskset -c 0-3 python3 llm_infer.py


总结


CV186AH 部署大模型的核心是INT4 量化 + TPU-MLIR 转换,必须先在 x86 主机完成模型量化和 bmodel 转换,再到核心板推理;


优先选择≤2B 参数的轻量模型(如 Qwen1.5-1.8B),7B 模型需严格测试内存,且推理速度会降至 10 tokens / 秒左右;


关键依赖是算能bmruntime库和 TPU 驱动,环境搭建时需确保核心板固件适配 CV186AH 的 TPU。

- END -
分享:
留言 留言 试用申请
电话咨询 电话咨询 产品咨询
18982151213
微信在线客服 微信在线客服 在线客服
返回官网顶部 返回官网顶部 回到顶部
关闭窗口
产品订购
  • *

  • *

  • *

  • *

  • *