移动九天平台大模型部署实测:CM-57B 推理服务搭建全记录

移动九天平台大模型部署实测:CM-57B 推理服务搭建全记录

本文记录在「移动九天」平台部署 CM-57B 九天基础语言大模型 的真实过程:推理服务搭建、接口调用、有监督微调(SFT)以及自定义模型部署。硬件底座是昇腾 NPU + MindIE(Model Inference Engine),和常见的 NVIDIA + vLLM 路线不同,坑点也集中在镜像与配置上。

一、推理服务部署(CM-57B)

1.1 关键配置项

在「模型推理 → 推理服务」新建时,这几项必须对应正确:

配置项 说明
镜像类型 平台预制镜像
Base 镜像 atb_mindie_v1.0.2-1:1.0.T59-npu-py310-ubuntu22.04-aarch64
Chat 镜像 atb_mindie_v1.1.1:1.0.RC3-npu-py310-ubuntu22.04-aarch64
模型配置 Chat=CM-57B九天基础语言大模型-Chat;Base=CM-57B九天基础语言大模型-Base
容器映射目录 /model
启动命令 /bin/bash -c 'bash /workspace/mindie_start.sh -m /model'
工作空间 /workspace

实测中我们没有做任何微调,直接用预制镜像起 Chat / Base 两个版本。

1.2 服务访问方式

服务起来后对外暴露两个接口:

  • 非流式generate
  • 流式generate_stream

非流式调用参数示例:

{
  "inputs": "Human:\n将下面的markdown文本结构化……\nAssistant:\n",
  "parameters": {
    "do_sample": false,
    "max_new_tokens": 2048
  }
}

流式接口参数结构相同,只是响应逐 token 返回,适合做打字机效果的前端。

二、模型微调(SFT)

背景:基于 九天 13.9B-chat 模型,用平台「模型调优 → 有监督微调」菜单完成。

2.1 数据集准备

原始数据集从 ModelScope 下载(Panda233/china_legal_articles_samples),需转成平台要求的格式:

def convert_model_scope_to_jiutian():
    import json
    with open('./resources/law_item.jsonl', 'r', encoding='utf-8') as infile, \
         open('./output/converted_law_items.jsonl', 'w', encoding='utf-8') as outfile:
        for line in infile:
            item = json.loads(line)
            title = item.get('title', item.get('text', '未知标题'))
            converted = [{
                "system": "你是一个人工智能助手。",
                "prompt": f"{title},属于什么类别, {item['num']}是什么",
                "response": f"{title},{item['classification']},法律内容为:{item['contents']}"
            }]
            outfile.write(json.dumps(converted, ensure_ascii=False) + '\n')
    print("转换完成")

2.2 提交微调任务

  1. 资产管理 → 数据集管理上传转换后的 converted_law_items.jsonl
  2. 模型调优 → 有监督微调新建任务,选择该数据集,其余用默认参数;
  3. 等待训练结束即可「发布」。

2.3 发布后的坑

  • 发布时「迭代步数」下拉框响应慢,多试几次
  • 发布成功后模型出现在「资产管理 → 模型管理」;
  • ⚠️ 不要在模型管理里直接点「部署」——虽然能部署成功,但调用会持续报错。正确姿势是去 模型推理 → 推理服务 → 新增推理服务,过程中选择「自己微调的模型」,镜像用 cm_mindie_v1.2.2:1.0.T59-npu-py310-ubuntu22.04-aarch64,映射目录 /models,启动命令 bash /workspace/mindie_start.sh

三、自定义模型部署(chatglm3-6b-128k)

依托九天算力,把 chatglm3-6b-128k 部署成对外提供 generate / generate_stream / /v1/chat/completions 三个接口的服务。

流程要点:

  1. 先申请模型(平台模型详情页),审批通过后用「模型训练 → 开发环境」下载;
  2. 新建开发环境,注意镜像分英伟达系昇腾系,按模型需要选;
  3. 配置文件 mindie_config.json 两种落地方式:
    • 上传到 /root/work/filestorage/模型下载路径,启动时 bash /workspace/mindie_start.sh -m /model -c /model/mindie_config.json
    • 或上传到任意位置,用 atb_mindie_v1.1.1 镜像的的开发环境 mv/workspace/mindie_config.json 并保存为新镜像,启动命令带 -c /workspace/mindie_config.json
  4. 新建推理服务:模型挂载路径固定 /model(读写),推理框架优先用预制 atb_mindie_v1.1.1

四、常见问题与处理

Q1:开发环境 notebook 的 Python kernel 不生效

conda install ipykernel
python -m ipykernel install --user --name mindspore2.2.11_py39 --display-name "mindspore"

然后在 notebook 右上角选对应环境即可。

Q2:调用提示「入参超出」
调大 mindie_config.json 中的长度参数:

{ "maxSeqLen": 65536, "maxInputTokenLen": 65500, "maxPrefillTokens": 65536, "maxIterTimes": 32768 }

仍超出则把 maxSeqLen 提到 128000

Q3:chatglm3-6b-128k 出现续写/截断
演示场景下,可在 Python 服务侧做后处理,对应用侧返回无感知的结果。

五、小结

九天平台的模型部署核心是「选对预制镜像 + 配好映射目录和启动命令 + 用正确的入口部署微调模型」。和 NVIDIA 路线最大的区别是底座走昇腾 NPU + MindIE,配置文件的 token 长度、kernel 环境、部署入口这几处最容易踩坑。照着本文的配置项逐项核对,能省下大量试错时间。


参考资料

  • 九天平台官方文档(MindIE 服务开发)
  • 昇腾社区 MindIE 配置说明
  • 个人部署实测记录
posted @ 2026-08-17 09:23  钱栈up  阅读(15)  评论(0)    收藏  举报