Prhub

#20289 Enable multi-thread weight loading by default

原始 PR 作者 b8zhong 合并时间 2026-04-02 12:27 文件变更 1 提交数 1 评论 2 代码增减 +1 / -1

执行摘要

将多线程权重加载默认值从 False 改为 True,提升模型冷启动性能。

根据关联Issue #12529,冷启动性能对SGLang很重要,当前默认权重加载不够优化。Issue中提到多线程加载对SSD/磁盘可带来约3倍性能提升,且已有CI测试大量使用该功能,因此可以安全地默认启用。PR body直接引用该Issue,说明变更动机。

该PR变更简单但影响默认行为,建议团队关注CI测试结果,确保无回归。对于深入理解模型加载优化,可结合Issue #12529中的其他改进方案(如Runai streamer集成)一起阅读。

讨论亮点

review讨论较少,仅gemini-code-assist[bot]的评论认为变更合理,因CI测试已充分验证该功能。没有争议点或未解决疑虑,变更被直接接受。

实现拆解

仅修改一个文件中的一行代码:将python/sglang/srt/model_loader/loader.py中_get_weights_iterator函数的use_multithread默认值从extra_config.get("enable_multithread_load", False)改为True。这意味着当用户未显式配置enable_multithread_load时,系统将自动启用多线程加载。

文件 模块 状态 重要度
python/sglang/srt/model_loader/loader.py model_loader modified 8.0

关键符号

_get_weights_iterator

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

默认值变更的合理性 设计

gemini-code-assist[bot] 认为变更合理,因 CI 测试已充分验证多线程加载功能。

结论:变更被接受,无争议。 · 已解决

风险与影响

风险较低但需注意:

  1. 默认行为变更可能影响未显式配置enable_multithread_load的现有用户,若多线程加载在某些环境(如低内存、特殊存储)有问题,可能导致加载失败或性能下降。
  2. 仅依赖CI测试验证,缺少针对边缘场景(如超大模型、特殊文件系统)的专门测试。
  3. 代码变更虽小,但影响核心模型加载路径。

对用户:默认提升模型加载速度,尤其对SSD/磁盘存储的模型。对系统:增加线程使用,可能轻微增加内存和CPU开销。对团队:简化配置,用户无需手动启用多线程加载。影响范围限于使用DefaultModelLoader的场景,RemoteInstanceModelLoader不受影响。

默认行为变更 核心路径变更

关联 Issue

#12529 [Feature] Multiple model weight loading improvements

完整报告

参与讨论