Eugene Yan 详解机器学习系统的九种设计模式
Eugene Yan 总结九种机器学习系统设计模式:原始数据只处理一次、人在回路、数据增强、困难负例挖掘、问题重构、级联、数据飞轮、业务规则层和部署前评估。文章结合 Meta 搜索、Cloudflare、Stack Exchange、Tesla Autopilot 等案例说明各模式的优缺点,并提出这些模式同样适用于 LLM 系统,如为 LLM 输出加业务规则层、用数据飞轮收集用户反馈微调模型。
Eugene Yan 总结九种机器学习系统设计模式:原始数据只处理一次、人在回路、数据增强、困难负例挖掘、问题重构、级联、数据飞轮、业务规则层和部署前评估。文章结合 Meta 搜索、Cloudflare、Stack Exchange、Tesla Autopilot 等案例说明各模式的优缺点,并提出这些模式同样适用于 LLM 系统,如为 LLM 输出加业务规则层、用数据飞轮收集用户反馈微调模型。
Hugging Face 发布 StackLLaMA 教程,手把手讲解如何用 RLHF 方法训练 LLaMA 模型,覆盖完整训练流程。
推荐理由:这是一份手把手教程,讲解如何用 RLHF 训练 LLaMA,读者可跟随步骤复现完整训练流程。
该研究利用 TransformerLens 可解释性工具,针对 TRLX 框架训练的 RLHF Transformer 模型开展探索性分析,系统展示了对齐后模型的内部工作机制。通过逐层可视化与激活分析,揭示了人类反馈强化学习训练过程中形成的特定注意力模式与表征结构,为理解大语言模型在 RLHF 微调后的行为机制提供了实证观察与可视化证据。
Eugene Yan 撰文总结撰写数据标注指南的方法,提出指南应回答五个问题:任务为何重要、任务是什么、术语含义、如何决定标签、如何执行任务。文中引用 Google 和 Bing 的标注指南示例,并建议用 Cohen's kappa 衡量标注者一致性来迭代改进指南。
Hugging Face 发布博客,讲解如何在 24GB 消费级 GPU 上用 RLHF 微调 20B 参数大语言模型,文中涉及 TRL 与 PEFT(见原文链接 huggingface.co/blog/trl-peft)。正文抓取失败,仅标题可用,更多细节以原文为准。
Eugene Yan 撰文介绍提升机器学习项目成功率的四种机制。包括为每个项目设 pilot 和 copilot(copilot 约投入 pilot 10% 的精力做评审)、项目前先做文献综述、对实验做方法论评审以排查数据泄漏和验证集划分错误,以及用三种方式设定 timebox,如文献综述两周、原型四到八周、生产落地三到六个月。
本研究在有限数据集上训练简单神经网络,发现过拟合表现为模型在叠加中存储具体数据点而非抽象特征,形成两种机制:过拟合机制(记忆数据点)与泛化机制(学习特征),并在过渡期间出现双下降现象。实验采用稀疏高维输入(维度n=10,000)与二维隐藏空间,通过全批量更新进行训练。可视化结果表明,从特征视角看模型表现混乱,但从数据点激活视角看则呈现简单结构,提示叠加可能提升记忆效率。这项初步研究揭示了过拟合与叠加的关联,为机制可解释性提供了新视角。
Hugging Face 发布音频数据集完整指南,演示用 🤗 Datasets 库一行代码加载 GigaSpeech 等数据集并用 13 行代码完成重采样、预处理和过滤。指南还介绍了流式模式可绕过磁盘空间限制(GigaSpeech xl 配置需超 1TB 存储),并汇总了 Hub 上热门的语音识别、语音翻译和音频分类数据集。
Hugging Face 发布长文图解 RLHF,将其拆为预训练语言模型、训练奖励模型、用 PPO 强化学习微调三个核心步骤,并解释 KL 惩罚如何防止策略偏离初始模型产生胡言乱语。文章还盘点 TRL、TRLX、RL4LMs 等开源工具,指出人类偏好数据成本高、标注不一致以及 PPO 之外优化器等仍待探索的方向。
推荐理由:原文系统拆解 RLHF 三阶段流程与 KL 惩罚等细节,并盘点开源工具与局限,适合作为理解该技术的入门框架。
Hugging Face 与 Intel Labs、UKP Lab 发布少样本学习框架 SetFit,无需提示词即可微调 Sentence Transformer 做文本分类。
推荐理由:原文给出 SetFit 在少样本文本分类上的具体对比数字和训练成本,读者可以据此评估小样本场景下是否用它替代大模型微调。
Hugging Face 发布教程,教读者从零训练一个离线 Decision Transformer 模型,让 MuJoCo HalfCheetah 环境中的半猎豹跑起来。
Hugging Face 博客发布教程,讲解如何在 NVIDIA GPU 上用 Megatron-LM 预训练 GPT2 模型,并以 110M 参数的 CodeParrot 为例给出环境搭建、数据预处理、8 卡训练(约 12 小时)到权重转换为 transformers 格式的完整流程。
Hugging Face 发布教程,讲解如何在 AWS DL1 实例上用 Habana Gaudi 从零预训练 BERT-base,使用 Transformers、Optimum Habana 和 Datasets 库,通过 masked-language modeling 完成训练。
Hugging Face 为 🤗 Datasets 补充了音频和图像数据集的文档,Quickstart 新增端到端加载与处理示例,并引入 to_tf_dataset 函数,可将数据集转换为 tf.data.Dataset 供 TensorFlow 或 Keras 训练。
Hugging Face 发布长文详解 176B 参数模型 BLOOM 的训练技术,训练在 Jean Zay 超算上使用 384 张 NVIDIA A100 80GB GPU,耗时约 3.5 个月、约 100 万计算小时。
OpenAI 发布文章梳理大型神经网络的训练技术,指出训练这类模型是一项困难的工程与研究挑战,需要编排一整个 GPU 集群来完成单次同步计算。
微软提出 TAPEX,通过让 BART 学习执行合成 SQL 查询来实现表格预训练,无需真实标注数据。该方法在 WikiSQL、TabFact、SQA 和 WikiTableQuestions 四个基准上均取得 SOTA,其中 WikiSQL 准确率达 89.6%,WikiTableQuestions 达 57.5%。
Hugging Face 深度强化学习免费课程第 2 单元第 1 部分讲解 value-based 方法、State-Value 与 Action-Value 函数及 Bellman 方程。
Hugging Face 发布教程,介绍如何通过 Accelerate 库无需改代码即可使用 PyTorch FullyShardedDataParallel(FSDP)训练大模型。
研究发现,Transformer语言模型中的“归纳头”可能是其实现上下文学习能力的主要机制。归纳头是一种能够识别并复制序列模式的内部电路,其功能是在序列中寻找当前令牌的先前出现,并预测相同的后续令牌。在训练早期,模型会经历一个“相位变化”,此时归纳头迅速形成,同时上下文学习能力显著提升。通过架构扰动、直接剔除等六条互补的证据链表明,这种电路不仅存在于小型模型中,也可能构成了大型模型上下文学习的核心机制。这一机制性解释为理解模型内部计算、系统化解决安全问题提供了新途径。
监督学习任务的性能依赖于高质量标注数据,但获取大量标注样本成本高昂。主动学习是一种在标注预算有限、但允许投入部分人工标注资源的条件下,应对标注数据不足的范式。其核心思路是智能地选择最具信息量的样本进行标注,以在有限预算内最大化模型性能的提升。该方法旨在解决当面临标注数据受限时,如何通过策略性采样来高效利用标注资源的问题。
推荐理由:这是 Lilian Weng 数据不足系列的第二篇,把主动学习的核心采样策略和实际权衡讲得很清楚,做数据标注和 ML 工程的同学值得复习一遍。
监督学习任务的性能通常随高质量标签数量的增加而提升,但大规模标注数据的获取成本高昂。在标签稀缺的场景下,半监督学习作为一种有效的机器学习范式,通过同时利用大量无标签数据与少量标签数据来提升模型性能。面对有限的标注数据,本文重点探讨了四种常用的半监督学习方法,为数据受限条件下的模型训练提供了技术路径。
自回归语言模型(GPT-3、GPT-Neo、GPT-J 等)的多项选择任务评估存在多种实现路径。文章系统梳理了当前主流的归一化(Normalization)方法,针对模型在不同选项上的概率计算方式、长度偏差修正及分数标准化技术进行详细阐述,为统一语言模型评测标准提供方法论参考。
训练大型神经网络面临GPU内存需求巨大和训练时间漫长的双重挑战。文章系统梳理了多种主流的并行训练范式,以及模型架构与内存优化设计方案,为跨多GPU训练超大规模神经网络提供了可行路径。文中进一步补充了专家选择路由等新技术,并提及本文的精简升级版已作为《训练大型神经网络的技术》发布于OpenAI官方博客。
Eugene Yan 撰文提出解决新问题时应先不用机器学习,并引用 Google Rules of ML 第 1 条及 Tumblr、GitHub、Spotify 等公司 ML 工程师的相似建议。
该评估系统对比了旋转位置编码(RoPE)与 GPT 类学习式位置编码在下游任务中的性能表现,通过多维度基准测试分析两种位置编码机制的应用差异,为 Transformer 模型架构中位置编码方案的选择提供实证依据。
Eugene Yan 撰文讨论训练标签缺失时如何收集标签,介绍半监督学习的伪标签、主动学习的不确定性与信息密度采样、弱监督的标注函数三类方法。
本练习集旨在通过动手编写注意力头的具体权重矩阵,从参数层面精确理解Transformer工作机制。内容涵盖:详解注意力头中W_Q、W_K、W_V、W_out矩阵的作用;分析读写子空间的控制矩阵及其乘积意义;探讨如何用两个矩阵等效表示注意力头及其秩的含义;研究跨层注意力头如何通过矩阵运算传递信息。并通过具体数值示例,演示多个“前词注意力头”如何协作实现“查看前两个词”的虚拟功能,以及手动构建实现“归纳头”的“指针算法”步骤。
推荐理由:帮助开发者亲手拆解Transformer内部机制,提升可解释性研究能力。
研究团队对GPT-Neo模型开展下游任务微调实验,利用eval harness评测体系进行针对性训练,系统观测微调过程对其性能表现产生的具体影响。实验通过调整模型参数适配特定任务,评估预训练模型在下游场景中的能力变化与适应性表现,为理解微调对模型性能的优化效果提供实证数据支撑。
针对类 GPT 自回归语言模型开展激活函数消融实验,系统评估不同激活函数对模型性能的影响。通过对比分析各类激活函数在自回归架构中的表现差异,检验其对模型表达能力、训练稳定性及生成质量的作用机制,为大语言模型的激活函数选择与架构优化提供实验依据。
旋转位置编码(RoPE)作为一种新型位置编码技术,统一了绝对位置与相对位置编码方法。该技术突破了传统位置编码的局限,在保持绝对位置信息的同时实现了相对位置感知能力。测试验证表明,这种编码方案在模型性能和位置外推方面展现出优势,为大语言模型的位置表示策略提供了新的技术路径。
面对 8 名数据科学家和 20 个问题,团队该选哪 3 到 8 个来做?文章主张用成本收益分析量化收益与成本,并考虑受影响用户规模(extent)与严重程度(severity)。作者还指出,部分问题难以量化,但能带来可复用的能力与学习,从而降低解决其他问题的成本。
在 Hacklytics 2021 担任评委的 Eugene Yan 总结了获胜队伍的共同做法:优先使用现成数据集和 API 而非爬取数据,借助 Vader、afinn、text2emotion 等库和预训练 BERT 微调来加速建模,并用 React、Streamlit、Plotly 或 Flask 快速搭建可部署的演示界面。
Eugene Yan 撰文讲解实时推荐系统的适用场景、中美业界实现与 MVP 设计。文章指出多数场景用批量推荐即可,实时推荐适合任务导向购物、视频观看等情境;文中拆解了 Alibaba 1688 的 Swing 算法架构(该组件获 72% 用户点击)。
数据科学作品集不只是求职工具,更应出于学习实践、帮助他人和兴趣乐趣等内在动机来构建。作品集分为代码与内容两类,可包含开源贡献、数据竞赛、NLP 工具等,展示技术之外的多种技能与特质。
一份按时间线梳理的 NLP 监督学习技术综述,从 1985 年的 RNN 讲到 2020 年,涵盖 LSTM(1997)、GRU(2014)、Word2vec(2013)。
数据科学家应更端到端,从识别问题到解决问题全程负责,而非把问题框定、数据工程、ML、部署维护拆给不同角色。作者认为端到端能带来更多上下文、更快迭代和更高满意度,并减少沟通与协调开销。
Eugene Yan 撰文说明数据科学项目完成后需要跟进收尾,指出首次迭代的代码常因死路代码、运行顺序错误和 Jupyter notebook 版本控制不佳而难以复现。
数据科学项目执行阶段,作者建议先花约一周做文献调研,参考 LinkedIn、大众点评、eBay、Walmart 的文本分类论文,再借助 Jupyter、papermill 和 mlflow 快速实验迭代。团队协作上,每日站会用于对齐与暴露阻塞,可选的 EODD 提供非正式反馈,并定期与利益相关方确认业务目标。
作者总结数据科学项目启动前的三项实践:写一页纸文档、设定时间盒和任务拆解。一页纸写明意图、期望结果、交付物和约束;时间盒按阶段从可行性评估的 1-2 周到生产开发的 3-6 个月逐步放宽;拆解则用于提前发现死胡同并优先处理高风险组件。