1月15日,由上海人工智能实验室(上海AI实验室)推出的书生·浦语3.0(InternLM3)正式开源,通过精炼数据框架,大幅提升了数据效率,并实现思维密度的跃升。仅使用4T训练数据的InternLM3-8B-Instruct,其综合性能超过了同量级开源模型,节约训练成本75%以上;同时,书生·浦语3.0首次在通用模型中实现了常规对话与深度思考能力融合,可应对更多真实使用场景。

基于上海AI实验室的DeepLink人工智能开放计算体系,书生·浦语3.0与沐曦达成合作,支持使用开源工具LMDeploy和XTuner,在沐曦曦云C系列产品上实现书生·浦语3.0的高效推理与微调训练。

沐曦旗舰产品曦云C系列产品采用全自主研发的通用GPU IP,内置大容量显存、支持多卡互联。自研MXMACA 原生支持国际主流深度学习算法框架,配套自研Compiler、Libraries、Runtime API、Tools & Documents等一系列整套GPU编程工具,并全面兼容国际主流GPU生态,可大幅降低新兴GPU的迁移适配成本。曦云C系列GPU适用于智算、通用计算、数据处理等多种应用场景。

本文将介绍如何使用开源工具LMDeploy和XTuner,结合DeepLink在沐曦曦云C系列产品上实现书生·浦语3.0的高效推理与微调训练。

InternLM 开源链接:

https://github.com/InternLM/InternLM

DeepLink dlinfer 开链接:

https://github.com/DeepLink-org/dlinfer

LMDeploy 开源链接:

https://github.com/InternLM/lmdeploy

XTuner 开源链接:

https://github.com/InternLM/xtuner

1.使用LMDeploy进行高效推理

1.1 LMDeploy 与 dlinfer简介

LMDeploy涵盖了LLM任务的全套轻量化、部署和服务解决方案。

DeepLink团队开发的dlinfer提供了一套将新兴硬件接入大模型推理框架的解决方案。对上承接大模型推理框架,对下在eager模式下调用各厂商的融合算子,在graph模式下调用厂商的图引擎。dlinfer 根据主流大模型推理框架与主流硬件厂商的融合算子粒度,定义了大模型推理的融合算子接口。目前,dlinfer正在全力支持LMDeploy适配包括沐曦在内的多款新兴芯片品牌。

1.2 推理环境准备

获取模型推理镜像

登录沐曦开放平台软件中心获取docker镜像:

vllm:maca2.27.0.9-py38-ubuntu22.04-amd64

可联系沐曦business@metax-tech.com获取软件中心地址和账号

安装 dlinfer 和 LMDeploy

dlinfer 安装:

DEVICE=maca python3 setup.py develop

LMDeploy安装:

LMDEPLOY_TARGET_DEVICE=maca pip3 install -e .

1.3 进行推理

环境变量设置

export MACA_PATH=/opt/maca
export PATH=${MACA_PATH}/bin:${PATH}
export LD_LIBRARY_PATH=${MACA_PATH}/lib:${MACA_PATH}/mxgpu_llvm/lib:${LD_LIBRARY_PATH}

推理代码示例如下:

import lmdeploy
from lmdeploy import PytorchEngineConfig
if name == "__main__":
    pipe = lmdeploy.pipeline("internlm/internlm3-8b-instruct",
                            backend_config = PytorchEngineConfig(tp=1,
                            cache_max_entry_count=0.8, device_type="maca", block_size=16))
    question = ["Shanghai is", "Please introduce China", "How are you?"]
    response = pipe(question, request_output_len=256, do_preprocess=False)
    for idx, r in enumerate(response):
        print(f"Q: {question[idx]}")
        print(f"A: {r.text}")
        print()

使用XTuner进行微调训练

XTuner是一个高效、灵活、全能的轻量化大模型微调工具库。

训练环境准备

获取模型训练镜像

登录沐曦开放平台软件中心获取docker镜像:

deepspeed:maca2.27.0.10-py38-ubuntu22.04-amd64

可联系沐曦business@metax-tech.com获取软件中心地址和账号

安装XTuner

git clone https://github.com/InternLM/xtuner.git
cd xtuner
pip install -r requirements.txt
pip install -e .

依赖安装

升级pip并安装transformers库:

pip install --upgrade pip
pip install transformers

安装适配沐曦曦云C系列产品的torch2.4

登录沐曦开软件中心下载适配沐曦GPU的torch 2.4并安装:

pip install torch*.whl

训练数据与模型准备

准备训练数据文件

sft.jsonl中填入样例SFT格式数据:

{"messages": [{"role": "user", "content": "Hello"}, {"role": "assistant", "content": "Hello!"}]}
{"messages": [{"role": "user", "content": "Hello"}, {"role": "assistant", "content": "Hello!"}]}
{"messages": [{"role": "user", "content": "Hello"}, {"role": "assistant", "content": "Hello!"}]}

下载模型文件

modelscope download --model Shanghai_AI_Laboratory/internlm3-8b-instruct --local_dir pth_to_internlm3_8b

启动微调训练

环境变量设置

export MACA_PATH=/opt/maca
export PATH=${MACA_PATH}/bin:${PATH}
export LD_LIBRARY_PATH=${MACA_PATH}/lib:${MACA_PATH}/mxgpu_llvm/lib:${LD_LIBRARY_PATH}

启动微调

torchrun --nnodes=1 --nproc_per_node=4 --master_port=12983 \
    tools/fsdp_sft.py \
    --llm pth_to_internlm3_8b \  
    --tokenizer pth_to_internlm3_8b \  
    --datasets internlm3/data/sft.jsonl \
    --dset-file-types .jsonl \
    --dset-cache-dir cached \
    --dset-formats openai \
    --dset-pack-level soft \
    --group-by-length \
    --max-length 2048 \
    --sp-size 4 \
    --global-batch-size 4 \
    --lr 2e-6 \
    --wd 0.0 \
    --warmup-ratio 0.03 \
    --num-workers 1 \
    --work-dir saves/output/ \
    2>&1 | tee -a $logfile;

通过以上步骤,您可以使用开源工具DeepLink、LMDeploy 和 XTuner,在沐曦曦云C系列产品上实现书生·浦语3.0的高效推理与微调训练。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐