第一次把DistributedSampler塞进训练脚本的时候,我以为它只是给DataLoader多加一个参数,跟shuffle=True差不多。结果八卡跑起来 loss 曲线像心电图,梯度一路乱跳,排查了两个晚上才发现问题根本不在通信、不在学习率,而在于每个 epoch 里有 5 条样本被八个进程轮流重复喂了八遍,尾部还有几条样本从头到尾没进过模型。DistributedSampler就是那个把「一份数据集怎么切给 N 个进程」这件事管起来的组件,它看起来只有十来个参数,实际决定了每个 rank 看到什么、看到多少、看到几次。这篇内容适合所有正在把单卡脚本往 DDP 上搬的人,也适合已经跑通多卡但一直怀疑数据侧有问题的人,我会把源码里的关键分支、参数之间的耦合关系、以及我自己踩过的几个坑全部摊开讲清楚。
DistributedSampler 多卡训练:样本重复与漏喂的源码排查
张小明
前端开发工程师
STM32嵌入式开发必装四件套:CubeMX、Keil、ST-Link与串口助手详解
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
Vue项目免费图标库选型与SVG按需加载实战指南
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
虚拟机连不上网:网络模式、主机服务与DNS三层排查
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
source 并非全局生效:深入理解 /etc/profile 与环境变量传播
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
Win11各版本怎么选:家庭版/专业版/企业版/教育版/SE版/LTSC差异解析
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
微信开源WeKnora:RAG知识库流水线深度解析与部署实践
最近微信团队的 GitHub 仓库里多了一个值得 AI 应用圈关注的开源项目——WeKnora。它不是又一个刷榜的大模型,而是把"从一堆文档到可被大模型检索的知识"这整条链路做成了开箱即用的服务。如果你折腾过 RAG,被 PDF 解析折磨过,或者…