尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
MindSpeed LLM流式推理实战:分布式在线生成完全指南
MindSpeed LLM流式推理实战分布式在线生成完全指南【免费下载链接】MindSpeed-LLM昇腾LLM分布式训练框架项目地址: https://gitcode.com/Ascend/MindSpeed-LLMMindSpeed-LLM是面向昇腾 NPU 的 LLM 分布式训练框架除训练外它还内置了一套开箱即用的流式推理能力把千亿参数的大模型切分到多张 NPU 上实现边生成、边输出的打字机式在线对话。本文将手把手带你跑通 MindSpeed-LLM 流式推理的完整流程并拆解其中的关键工程细节。为什么需要流式推理 大模型生成是逐 token进行的非流式接口要等几百个 token 全部算完才返回用户体感就是卡住十几秒而流式推理Streaming Inference让每个新 token 一经生成就立刻吐给前端首 token 延迟和交互体验都有质的提升。难点在于分布式场景当模型被 FSDP 切分到 16 张甚至 32 张 NPU 上时如何保证所有卡步调一致、输入同步、输出不重复这正是 MindSpeed-LLM 流式推理引擎要解决的问题。上图展示了 FSDP2 的分片执行流程每张卡只保存自己的参数分片Shard计算前通过 ALL-GATHER 临时聚合完整权重算完立即释放FREE FULL WEIGHTS。推理时直接复用这套机制无需额外转换。架构速览流式推理的 4 层调用链MindSpeed-LLM 的流式推理入口是根目录的 inference_fsdp2.py整体是一条清晰的分层调用链层级类职责1️⃣ 启动层AutoInferencer解析参数、初始化 NPU 与 HCCL 分布式环境、构建 Tokenizer、加载 FSDP 分片模型2️⃣ 交互层Inferencer交互式聊天循环负责多卡输入同步与流式打印3️⃣ 桥接层ChatModel在后台线程跑 asyncio 事件循环把异步引擎包装成同步生成器4️⃣ 引擎层HuggingfaceEngine调用model.generateTextIteratorStreamer逐段吐出文本核心源码可以沿这条链阅读入口与启动inference_fsdp2.py聊天循环与多卡输入同步mindspeed_llm/fsdp2/inference/inferencer.py异步桥接mindspeed_llm/fsdp2/inference/chat_model.py流式生成引擎mindspeed_llm/fsdp2/inference/engine/hf_engine.py流式的实现很巧妙HuggingfaceEngine._stream_chat把model.generate放进一个后台守护线程执行主线程则通过TextIteratorStreamer迭代器不断next()取已生成的文本片段——生成与输出天然并行打字机效果就此而来。一键启动跑通分布式流式推理以仓库内置的 GLM 744B MoE 模型2 节点 × 16 NPU 32 卡为例示例脚本 examples/fsdp2/glm52/chat_glm52_744b_fsdp2_A3.sh 的启动方式只有两步source examples/fsdp2/env_config.sh torchrun --nproc_per_node 16 --nnodes 2 --node_rank 0 \ --master_addr localhost --master_port 6060 \ inference_fsdp2.py ./examples/fsdp2/glm52/glm52_744b_4k_fsdp2_A3.yaml \ --model.model_name_or_path your hf model path \ --parallel.fsdp_size 16 \ --parallel.ep_size 8 --parallel.ep_fsdp_size 2 \ --inference.infer_backend huggingface \ --inference.max_new_tokens 512模型与并行配置写在 examples/fsdp2/glm52/glm52_744b_4k_fsdp2_A3.yaml 中fsdp_size控制模型按层切分的规模MoE 模型的专家部分再叠加ep_size/ep_fsdp_size两级专家并行744B 的权重正是这样被摊到每张 NPU 上的。启动后终端进入交互模式输入问题即见流式回答输入exit退出 Entering Interactive Chat Mode. Type exit to quit. User: 什么是FSDP Assistant: FSDPFully Sharded Data Parallel是一种把模型参数、梯度 和优化器状态都分片到多卡上的并行策略可以显著降低单卡显存占用…… ----------------------------------------关键参数速查表 推理相关超参都集中在InferenceArguments中源码见 mindspeed_llm/fsdp2/utils/arguments.py通过--inference.xxx覆盖参数默认值说明infer_backendhuggingface推理引擎后端当前支持 HuggingFacegenerate流式引擎max_new_tokens512单次回复最多生成的 token 数do_sampleFalse是否采样。注意分布式下建议保持贪心解码随机采样各卡结果不一致容易触发 FSDP 集合通信死锁parallel.fsdp_size-FSDP 分片规模决定模型切到多少张卡parallel.ep_size/ep_fsdp_size-MoE 模型专家并行规模3 个不容错过的工程细节 只有 Rank 0 收键盘输入其余卡靠广播。多卡环境下只有 Rank 0 能读 stdinInferencer._get_sync_input会用dist.broadcast_object_list把输入广播到所有 Rank确保每卡拿到完全相同的 Prompt避免集合通信错序卡死。输出只打印一次。流式分片在Inferencer中逐块累积但打印逻辑包在if self.rank 0里——所有卡都在说话但只有 Rank 0 开口避免文字重复输出。推理时强制关闭重计算。AutoInferencer会把recompute设为False推理没有反传重计算只会白白浪费时间。延伸阅读训练侧 Megatron 推理入口inference.pyuse_kv_cache模式下的生成任务FSDP2 训练与参数体系examples/fsdp2/ 下的各模型脚本与配置框架整体架构可参考 docs/zh/pytorch/introduction.md跑通这一步你就拥有了在昇腾集群上对超大模型进行在线流式对话的能力——接下来可以尝试调大max_new_tokens、接入自己的 chat template或基于ChatModel的异步接口开发 Web 服务。【免费下载链接】MindSpeed-LLM昇腾LLM分布式训练框架项目地址: https://gitcode.com/Ascend/MindSpeed-LLM创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

react-native-fast-image 中移除内置 AppGlideModule:解决 Glide 单例冲突的 excludeAppGlideModule 实践

react-native-fast-image 中移除内置 AppGlideModule:解决 Glide 单例冲突的 excludeAppGlideModule 实践

移动开发前端UI组件 【免费下载链接】react-native-fast-image 🚩 FastImage, performant React Native image component. 项目地址: https://gitcode.com/gh_mirrors/re/react-native-fast-image 点击查看 免费下载 本篇围绕 docs/app-glide-module.md…

📅 2026/9/25 3:36:11
揭秘源师兄Python IDE隐藏的游戏化玩法:做任务、绑邀请码领积分,学Python更有动力

揭秘源师兄Python IDE隐藏的游戏化玩法:做任务、绑邀请码领积分,学Python更有动力

揭秘源师兄Python IDE隐藏的游戏化玩法:做任务、绑邀请码领积分,学Python更有动力 【免费下载链接】PythonIDE 源师兄的专属Python IDE,深度适配源师兄生态,打造人机一体的编程体验。 项目地址: https://gitcode.com/yuanshixio…

📅 2026/9/25 3:36:11
迁移 MySQL 扩展:从 mysql_* 到 mysqli 与 PDO 的升级指南(php-the-right-way)

迁移 MySQL 扩展:从 mysql_* 到 mysqli 与 PDO 的升级指南(php-the-right-way)

文档教程 【免费下载链接】php-the-right-way An easy-to-read, quick reference for PHP best practices, accepted coding standards, and links to authoritative tutorials around the Web 项目地址: https://gitcode.com/gh_mirrors/ph/php-the-right-way 点击…

📅 2026/9/25 3:36:11
MORE NEWS

更多资讯

📰

如何为 easy-loading-cj 添加第 28 种动画?从零实现新指示器的完整步骤

如何为 easy-loading-cj 添加第 28 种动画?从零实现新指示器的完整步骤 【免费下载链接】easy-loading-cj easy-loading提供多种 loading/Toast 动画加载效果 项目地址: https://gitcode.com/Cangjie-TPC/easy-loading-cj easy-loading-cj 是一个基于 Cangji…

📰

UC网盘直链解析原理:不登录下载的底层逻辑与实操

1. 从“转存才能下”说起:UC网盘的分享机制到底卡在哪经常用UC网盘的朋友大概率遇到过这种场景:朋友甩过来一个分享链接,你点开一看,页面提示要先登录账号、再转存到自己的网盘,然后才能下载。如果只是偶尔用一次&…

📰

从零理解Online Judge:OJ判题原理、平台选择与刷题排错全攻略

聊到“3.1 OJ”这个标题,我第一反应是:这是一个课程讲义里的章节号,大概率是某个程序设计课或者算法竞赛入门课里,专门讲 Online Judge(在线评测系统)的那一节课。我太熟悉这个场景了——老师刚教完基本语法…

📰

Qt QPalette配色机制详解:从原理到实战,彻底掌控控件颜色

Qt开发者绕不开的痛点,就是“默认控件实在太丑了”。不管是刚接触Qt的新手,还是写了几年业务代码的老手,面对灰蒙蒙的QPushButton、白底黑字的QLineEdit,都会冒出同一个念头:怎么让界面好看一点?市面上的方…

📰

Blender4.2 + CLI-Anything 建模批量工程环境部署记录(二):TaoToken 统一 Key 接入 Codex 与 BlenderMCP 的 config.toml 骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

B站视频接口批量抓取实战:视频列表与详情数据采集全指南

做内容运营和数据分析的人,迟早会遇到一个需求:批量拉取某个B站账号的视频列表和详情数据。可能是想把自己账号的投稿导出成表格做季度复盘,可能是想研究某个垂直领域头部UP主都在发什么选题,也可能是想给内部工具加一个稳定的数据…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬