当前位置: 首页 > news >正文

新一代书生·浦语大模型(InternLM3)沐曦训推实践

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的高效推理与微调训练。

相关文章:

  • 大型语言模型技术对比:阿里Qwen qwq、DeepSeek R1、OpenAI o3与Grok 3
  • 网站漏洞安全测试 具体渗透思路分析
  • ollama和open-webui部署ds
  • conda常用命令
  • git - study
  • HIVE数据类型
  • Three.js 入门(GUI可视化改变三维场景)
  • DNS的解析流程
  • 伊吖学C笔记(1、二进制、补码、小数)
  • 深入剖析:自定义实现C语言中的atoi函数
  • Java SSE流式数据前后端实现
  • Plugin ‘mysql_native_password‘ is not loaded`
  • vue3中ref和reactive响应式数据、ref模板引用(组合式和选项式区别)、组件ref的使用
  • Vue 3 响应式系统深度探索:构建购物车应用 - 精通 `watch` 和 `computed` 的响应式数据
  • 【大语言模型,数据向量化】向量化时使用本地HuggingFaceEmbeddings失败,调用embeddings时仍会去Huggingface下载的解决方法
  • 拉链表介绍
  • PySide(PyQT)重新定义contextMenuEvent()实现鼠标右键弹出菜单
  • SpringSecurity基于JWT实现Token的处理
  • 老旧android项目编译指南(持续更)
  • 【Java项目】基于Spring Boot的闲一品交易系统
  • 一个大型的网站建设/seo服务外包价格
  • 广州疫情最新消息今天又封了/南京市网站seo整站优化
  • 学敏网站建设/营销策划方案内容
  • 建立网站基本知识/厦门网站的关键词自动排名
  • wdcp 添加网站/百度地图导航2022最新版下载
  • apache 网站日志/seo推广和百度推广的区别