音频媒体文件

清除
标签搜索结果 for "语言模型"
2025-06-17 | Stanford CS336 Language Modeling from Scratch | Spring 2025 | Lecture 14: Data 2
2025-06-17 12:06

语言模型数据过滤与去重技术解析

语言模型 数据预处理 数据过滤 数据去重 fastText LSH MinHash 布隆过滤器 KenLM DSIR 质量过滤 近似重复检测
已摘要 阅读时间:12 分钟(4090 个字) 2 summary versions
2025-06-11 | Stanford CS336 | Language Modeling from Scratch | Spring 2025 | Lecture 13: Data 1
2025-06-11 11:49

数据:语言模型训练的核心要素

语言模型 LLM 模型训练 数据处理 预训练 指令微调 合成数据 Common Crawl 版权法 合理使用
已摘要 阅读时间:7 分钟(2385 个字) 2 summary versions
Stanford CS224N: NLP with Deep Learning | Spring 2024 | Lecture 6 - Sequence to Sequence Models
2025-05-15 22:01

该讲座是斯坦福CS224N课程关于自然语言处理与深度学习的第六讲,主要延续了先前关于语言模型和循环神经网络(RNN)的讨论。 核心内容包括: 1. **回顾与展望**:讲座首先回顾了语言模型(预测下一个词的系统)和RNN(能处理任意长度序列输入、每步共享权重并可选输出的神经网络架构)的基本概念。接着预告将介绍一种更高级的RNN——长短期记忆网络(LSTM),并在后续内容中探讨神经机器翻译。 2. **语言模型评估**:详细阐述了评估语言模型的标准指标——困惑度(Perplexity)。解释了其计算方法(本质上是交叉熵的指数形式)、历史背景(由Fred Jelinek提出,旨在用一个更直观的数值来表示模型预测的不确定性,相当于在多少个选项中均匀选择),以及其意义(更低的困惑度代表更好的模型性能,能更准确地预测人类书写的文本)。讲座还提及,比较困惑度时需注意所使用的对数底(如底数为2或自然对数e)。 3. **模型性能演进**:通过困惑度数值展示了语言模型的发展历程。从传统的N-gram模型(如使用Kneser-Ney平滑,困惑度约67),到早期RNN与其它模型结合(困惑度约51),再到LSTM的应用使得困惑度显著降低(例如降至43或30,相当于交叉熵减少约1比特)。讲座指出,当前最先进的语言模型困惑度已能达到个位数。 4. **RNN的挑战与LSTM的动机**:重点阐述了标准RNN在训练过程中面临的“梯度消失”和“梯度爆炸”问题。这些问题源于在反向传播过程中,损失函数对参数的梯度会随着序列长度的增加而连乘多个雅可比矩阵(在简化情况下,主要是权重矩阵Wh)。如果这些矩阵的范数持续小于1,梯度会趋近于零(梯度消失),导致模型难以学习长距离依赖;如果持续大于1,梯度会指数级增长(梯度爆炸)。这一缺陷是引入LSTM等更复杂RNN结构的主要动机。

自然语言处理 深度学习 循环神经网络 LSTM 语言模型 困惑度 梯度消失 序列到序列模型 神经机器翻译 编码器-解码器模型
已摘要 阅读时间:9 分钟(3048 个字) 2 summary versions
Stanford CS336 Language Modeling from Scratch | Spring 2025 | 06 Kernels, Triton
2025-05-13 17:44

该讲座聚焦于为语言模型编写高性能GPU代码。内容首先回顾GPU基础架构,包括流式多处理器(SM)、线程、内存层级(DRAM、缓存、寄存器文件)、线程块和线程束(warps),并强调了算术强度的重要性。讲座重点阐述了基准测试和性能分析在识别与解决代码瓶颈方面的核心作用,主张在优化前进行充分的分析。演讲者计划演示使用CUDA(C++)、Triton以及PyTorch的即时编译器(JIT)编写内核,并对比它们的性能,同时深入分析底层的PTX代码,最终可能实现一个快速的softmax函数。此外,讲座提及了课程作业,特别是与GPU内核和并行计算相关的第二项作业,并将使用一个简单的多层感知机(MLP)模型作为示例进行演示。

GPU编程 语言模型 高性能计算 Triton CUDA PyTorch 性能优化 性能分析 核函数融合 PTX GPU架构 深度学习
已摘要 阅读时间:7 分钟(2174 个字) 1 summary version
Stanford CS336 Language Modeling from Scratch | Spring 2025 | 03 Architectures, Hyperparameters
2025-05-13 16:59

该讲座深入探讨了语言模型(LM)架构和训练的细节。演讲者首先回顾了标准的Transformer模型,并指出现代实现(如学生们在作业中构建的)已包含多项改进,例如将LayerNorm置于模块之前、使用旋转位置编码(RoPE)以及SwiGLU激活函数。 核心内容是通过分析大量已发布的语言模型(从2017年的原始Transformer到2025年的最新模型如Llama 3、Qwen 2.5等),总结架构设计的演进趋势和共识。演讲者强调了从他人经验中学习的重要性,并展示了一个电子表格,追踪了不同模型在位置编码、归一化层等方面的选择。一个显著的趋同进化案例是位置编码,从早期的多种方案(绝对、相对、Alibi)到2023年后RoPE成为主流选择。 讲座重点讨论了架构变体中的一个关键共识:预归一化(Pre-Norm)优于后归一化(Post-Norm)。原始Transformer使用后归一化,但几乎所有现代大型语言模型都转向了预归一化,因为它能显著提升训练稳定性,减少损失尖峰,并可能无需学习率预热。演讲者引用了早期研究来支持这一观点,并提及了一个近期可能的新进展,暂称为“双重归一化”(double norm)。 此外,讲座预告了后续将讨论激活函数、前馈网络、注意力变体、位置编码等具体架构组件,以及隐藏层维度、词汇表大小等超参数的选择。

语言模型 Transformer架构 大型语言模型 模型训练 训练稳定性 架构演进 层归一化 RMSNorm 旋转位置编码 SwiGLU 注意力机制 超参数
已摘要 阅读时间:9 分钟(3084 个字) 2 summary versions
Stanford CS336 Language Modeling from Scratch | Spring 2025 | 05 GPUs
2025-05-13 16:31

演讲者首先介绍了课程作业的安排,并点明本次讲座的核心内容是图形处理器(GPU)。GPU对语言模型的运行至关重要,讲座旨在揭开CUDA和GPU的神秘面纱,帮助理解其工作原理及性能波动的原因,例如为何在特定矩阵乘法规模下GPU会变慢。学习目标包括让听众熟悉GPU,并能够利用CUDA等工具加速算法,例如理解FlashAttention这类高效算法的构建基础。演讲者提及了硬件发展的重要性,指出深度学习的进步得益于更快的硬件、更优的利用率和并行化。接着,演讲回顾了计算能力扩展的历史,从早期依赖登纳德缩放定律(Dennard scaling)提升CPU单核性能,到该趋势饱和后,转向并行计算的必要性,这也是GPU发展的关键。演讲者对比了CPU和GPU的设计理念:CPU侧重于低延迟,拥有复杂的控制单元以快速完成单个任务;而GPU则侧重于高吞吐量,通过大量并行计算单元(如ALU)同时处理多个任务,即使单个任务延迟可能更高,但总体处理效率更高。最后,演讲者初步介绍了GPU的内部结构,核心概念是流式多处理器(SM),每个SM包含多个流处理器(SP),SM负责控制逻辑和任务分发,而SP则对不同数据执行相同的指令,实现大规模并行计算。

GPU 语言模型 高性能计算 CUDA 内存瓶颈 并行计算 性能优化 FlashAttention 分块 重计算 矩阵乘法 硬件加速
已摘要 阅读时间:11 分钟(3809 个字) 2 summary versions
Stanford CS336 Language Modeling from Scratch | Spring 2025 | 02 Pytorch, Resource Accounting
2025-05-13 16:30

该讲座介绍了使用PyTorch从头构建语言模型的过程,并重点关注了模型训练中的资源效率问题,特别是内存和计算资源的使用。讲座通过示例计算(如训练大型模型的耗时、特定硬件可训练的最大模型参数量)强调了进行资源估算(“餐巾纸数学”)的重要性,以便有效控制成本。讲座内容不涉及Transformer架构的具体细节,而是聚焦于PyTorch的基本构件和资源核算方法,旨在培养学员的效率意识和实践能力。 在内存核算方面,讲座详细讨论了张量(Tensor)作为存储参数、梯度、优化器状态等数据的基本单元,及其不同浮点数表示对内存占用的影响。具体对比了`float32`(单精度,默认,4字节)、`float16`(半精度,2字节,动态范围受限,可能导致训练不稳定)、`bfloat16`(脑浮点数,2字节,具有类似`float32`的动态范围但精度较低,适合深度学习计算)以及`fp8`(8位浮点数,更小,适用于H100等新硬件以追求极致优化)等数据类型。讲座建议在计算中使用`bfloat16`以平衡效率和稳定性,而参数和优化器状态的存储仍推荐使用`float32`以保证训练稳定性。

语言模型 PyTorch 资源核算 内存核算 计算核算 浮点精度 BF16 FLOPs 矩阵乘法 混合精度训练 优化器状态 模型规模
已摘要 阅读时间:11 分钟(3692 个字) 2 summary versions
Stanford CS336 Language Modeling from Scratch | Spring 2025 | 01 Overview and Tokenization
2025-05-13 16:29

斯坦福大学的CS336课程《从零开始构建语言模型》旨在让学生端到端地理解语言模型构建全流程,包括数据、系统与建模。该课程的讲座将发布于YouTube。 主讲人Percy认为,当前研究者与底层技术日益脱节,许多人仅依赖调用大型专有模型接口。他强调,尽管便捷,但这些抽象是“泄露的”,真正的基础研究仍需深入理解技术栈的各个层面。因此,课程的核心理念是“要理解它,就必须构建它”。 鉴于前沿模型(如GPT-4)规模庞大、成本高昂且技术细节不公开,学生将专注于构建小型语言模型。Percy承认,小型模型可能无法完全复现大规模模型的某些特性(如不同模块的计算占比变化、特定能力的涌现)。 尽管如此,课程仍能传授三个层面的知识:1) 模型运行的“机制”(如Transformer架构、并行计算);2) “思维模式”(如追求硬件极限性能、严肃对待规模化问题,这被认为是OpenAI成功的关键);3) 关于数据与模型选择的“直觉”(但这部分受规模效应影响,只能部分传授,因为小规模有效的策略未必适用于大规模)。 Percy还对“惨痛的教训”进行了解读,指出并非“规模决定一切”,而是“规模化的有效算法”至关重要。他强调,效率(尤其是算法效率,其进步已超越摩尔定律)在大规模训练中更为关键。 课程旨在引导学生思考的核心问题是:在给定的计算和数据预算下,如何构建出最佳模型。

语言模型 LLMs 从零构建 Transformer Tokenization BPE 并行计算 规模法则 模型训练 模型对齐 数据处理 GPU优化
已摘要 阅读时间:15 分钟(4925 个字) 2 summary versions