《动手学习大模型》系列课程以大模型实践教学为主旨在将前沿技术通过代码实践的方式采用由浅入深的教学顺序为对大模型感兴趣的开发者和研究人员提供全流程的入门指南。本文作为整个系列的开篇先带大家过一遍大模型领域的主体知识同时规划后续的详细学习计划。在阅读过程中遇到不理解的地方不必纠结在后续实践课程中遇到了会有详细的解释。1. 大模型发展过程人工智能技术经历了小数据到大数据小模型到大模型专用到通用的发展历程正逐步进入大模型时代。所谓大模型最核心的特点就是在海量无标注数据上进行大规模自监督训练学习到大量的语言知识和世界知识通过自然语言交互完成多种任务具备了多场景、多用途、跨学科的任务处理能力。下图是基于任务求解能力的四代语言模型的演化过程• 统计语言模型使用马尔可夫假设来建立语言序列的预测模型通常根据词序列中若干个连续的上下文单词来预测下一个词的出现概率即根据一个固定长度的前缀来预测目标单词。但是由于高级统计语言模型的转移概率项数会指数级增长对于高阶上下文的刻画能力较弱。• 神经语言模型使用神经网络来建模文本序列的生成低稠密向量表示的词汇语义能够刻画更为丰富的隐含语义特征同时稠密向量的非零表征能够有效克服数据稀疏问题。但对于长文本建模能力较弱且不容易并行训练。• 预训练语言模型在训练架构和训练数据两方面进行了改进和创新基于自注意力机制的Transformer模型可以通过 GPU 或 TPU 进行加速训练为研发大模型语言提供了可并行优化的神经网络架构。预训练模型确立了预训练-微调的任务求解范式预训练阶段通过大模型无标注文本建立模型的基础能力微调阶段使用有标注数据对于模型进行特定任务的适配从而更好解决下游的自然语言处理任务。• 大语言模型是对预训练模型的大规模扩展通过规模扩展如增加模型参数规模或数据规模通常会带来下游任务的模型性能提升即扩展法则。当语言模型参数达到一定规模时某些能力表现语言推理会突然大幅提升即涌现能力为区别这一能力差异学术界将这些大型预训练语言模型命名为大语言模型。2022 年 11 月底 OpenAI 推出基于大语言模型的在线对话应用 ChatGPT由于具有出色的人机对话能力和任务解决能力一经发布就引发了全社会对于大语言模型的广泛关注众多大语言模型应运而生并且数量还在不断增加。Qwen、DeepSeek 和 GLM 等国产大模型也紧随其后截止到 2024 年 4 月国内共推出了 305 个模型到现在 2026 年之后更多。在发展过程中大模型的概念也在不断延伸例如目前比较受关注的垂域大模型、多模态大模型以及大模型智能体等。垂域大模型是在通用大模型基础上进行领域训练增强具有专业性强、落地速度快、成本效益高、合规性好的优点主要应用于教育、医疗、法律和金融等领域。多模态大模型的能力突破成为大模型前沿发展的新趋势和焦点极大扩展了大模型能力边界和应用场景必然是智能跃迁的下一个关键引擎。大模型本身是具有通用能力的内核智能体是在大模型的基础上加上了感知、决策和反思等方面的能力不仅能够理解我们说的话还能自己做决定完成任务。智能体的构建通常有两种方式工作流编排和智能体基座。前者通过预定义的路径编排LLM和工具类似复杂的自动化脚本虽然稳定但是灵活性有限。后者是由智能体自主指导行为过程和工具使用动态规划和更新路径保持对任务完成方式的控制这种方式给予了智能体更大的自主性可进化能力强。从被动执行的流程自动化到主动决策的自主智能成为了当前智能体发展的主要趋势。大模型分类当前主流的大语言模型都基于Transformer模型进行设计。Transformer是由多层的Multi-head Self-attention多头自注意力模块堆叠而成的神经网络模型。原始的Transformer模型由编码器和解码器两个部分构成而这两个部分实际上可以独立使用所以按照大模型的基础架构可以将大模型分为三类Encoder-Only编码器模型Decoder-Only解码器模型Encoder-Decoder编解码模型2021 年之前编码器模型和解码器模型的衍生版本不断出现例如基于编码器架构的 BERT 模型和解码器架构的 GPT 模型。约 2021 年之后解码器模型得到飞速发展迎来了Next-Level的生成式大模型时代。编码器模型Encoder-Only编码器模型的输入是自然语言序列首先在原始序列中随机用[mask]标记来替换原始序列中的字符然后根据上下文来最大化[mask]位置的标签字符的条件概率所以编码器模型其实是在做完形填空的任务。BERT 是最出名的编码器模型基于Transformer编码器架构实现。采用MLMMasked Language Modeling掩码语言模型和NSPNext Sentence Prediction下一句预测两个预训练目标其中下一句预测对于建模一些句间关系或者语篇关系比较有效。解码器模型Decoder-Only解码器模型通过自回归语言建模Auto-regressive Language Modeling进行建模即在训练时通过学习和预测序列中的下一个词来建模语言主要通过Transformer解码器实现。自回归语言建模的优化目标是最大化对序列中每一个位置的下一个词的条件概率的预测更加适用于生成式的任务或者对模型的扩增。代表性的模型包括 GPT、Llama、PaLM 等系列。GPT 系列模型通过训练模型学习恢复预训练文本数据将广泛的世界知识压缩到仅包含解码器 (Decoder-Only) 的Transformer模型中从而使模型能够学习获得较为全面的能力展现了解码器模型的发展潜力。截止到目前OpenAI 对大语言模型的研发历程大致可分为早期探索、路线确立、能力增强以及能力跃升四个阶段GPT 系列模型虽然优秀但是它们都是商业闭源模型因为大模型预训练有非常高的算力成本。但是公开模型检查点Model Checkpoint对于推动大语言模型技术的渐进式发展是非常重要的得益于学术界和工业界的共同努力目前开源社区已经积累了大量的模型检查点资源其中Meta AI 公司公布的 LLaMA 模型以及一系列衍生模型已经成为最受欢迎的开源大语言模型大语言模型的训练基本都要经历预训练、指令微调和人类对齐三个阶段下面几章会分别解释各阶段的主要工作内容。预训练预训练是研发大语言模型的第一个训练阶段也是最为重要的一个阶段。有效的预训练能够为大语言模型的能力奠定坚实的基础通过在大规模语料上进行预训练大语言模型可以获得通用的语言理解与生成能力掌握较为广泛的世界知识具备解决众多下游任务的性能潜力。典型的预训练数据预处理流程如下图所示数据来源预训练过程中语料的规模和质量对于提升大语言模型的能力至关重要。为了构建功能强大的大语言模型需要从多元化的数据源中收集海量数据来进行训练。现有的大语言模型主要将各种公开的文本数据进行混合作为预训练语料。具有代表性的大语言模型的预训练数据来源示例如下从图中可以看到目前网页仍然是建立语言模型最广泛使用的预训练数据其他常用的数据还包括书籍、代码、对话语料等。质量过滤直接收集到的文本数据往往掺杂了很多低质量的数据。例如从网页抓取的数据中可能包含由机器自动生成的广告网页。为了优化模型学习的性能需要去除语料库中的低质量数据。目前主要使用以下两种数据清洗方法•基于启发式规则的方法通过精心设计的规则来针对地识别和剔除低质量的文本数据包括基于语种的过滤、基于简单统计指标的过滤和基于关键词的过滤等。•基于分类器的方法可以选取部分代表性的数据进行质量标注高质量数据作为正样本低质量数据作为负样本以此训练出一个精准的文本质量分类器。同时可以使用多个分类器进行联合过滤或召回从而来实现对低质量文本的高可信过滤。目前常用来实现分类器的方法包括轻量级模型如FastText等、可微调的预训练语言模型如 BERT、BART或者 LLaMA 等以及闭源大语言模型 API如 GPT-4、Claude 3。敏感内容过滤除了去除低质量内容收集到的数据还可能包括有毒内容或隐私信息需要进一步进行更为细致的过滤和处理常用过滤方法与上述方法相同。举两个例子• Jigsaw 评论数据集[2] 收集了近 160K 条论坛评论数据每条评论都经过细致的标注包括有毒、“严重有毒”、“有威胁”、“侮辱性”、暴力以及身份仇恨等六个类别。利用这一数据集进行训练可以构建出高效的毒性文本分类器。通过设置合理的阈值训练完成的分类器将能够有效识别并过滤掉含有有毒内容的信息。• Dolma 采用了基于规则的方法来过滤数据集中的隐私内容主要标注了三类敏感信息邮箱地址、IP 地址以及电话号码。在文本收集过程中一旦检测到这些隐私信息Dolma 会根据其出现的频率采取不同的处理策略。例如如果某个文档中的隐私信息少于五条Dolma 会使用特定的词元如|||EMAIL_ADDRESS|||来替换这些信息以保护用户的隐私。然而如果文档中的隐私信息达到六条或更多Dolma 会选择直接删除整个文档。数据去重⚠️为什么需要去重由于大语言模型具有较强的数据拟合与记忆能力很容易习得训练数据中的重复模式可能导致对于这些模式的过度学习。研究发现预训练语料中出现的重复低质量数据可能诱导模型在生成时频繁输出类似数据进而影响模型的性能。去重算法的设计需要考虑计算粒度和匹配方法两个方面•计算粒度去重可以在句子级别、文档级别和数据集级别等多种粒度上进行•匹配方法可以使用精确匹配算法每个字符都相同或近似匹配算法。精确匹配算法常使用后缀数组来匹配最小长度的完全相同子串近似匹配算法常采用LSHLocality-Sensitive Hashing局部敏感哈希算法如MinHash最小哈希。词元化词元化Tokenization旨在将原始文本分割成模型可识别和建模的词元序列作为大语言模型的输入数据。有代表性的词元化方法如下•BPEByte Pair Encoding字节对编码分词1994 年就提出了最早用于数据压缩。BPE算法从一组基本符号(例如字母和边界字符)开始迭代地寻找语料库中的两个相邻词元并将它们替换为新的词元这一过程被称为合并。合并的选择标准是计算两个连续词元的共现频率也就是每次迭代中最频繁出现的一对词元会被选择与合并。合并过程将一直持续达到预定义的词表大小。•WordPiece分词谷歌内部非公开分词算法。WordPiece分词和BPE分词的想法非常相似都是通过迭代合并连续的词元但是合并的选择标准略有不同。在合并前WordPiece分词算法会首先训练一个语言模型并用这个语言模型对所有可能的词元对进行评分。然后在每次合并时它都会选择使得训练数据的似然性增加最多的词元对。•Unigram分词与BPE分词和WordPiece分词不同Unigram分词方法从语料库的一组足够大的字符串或词元初始集合开始迭代地删除其中的词元直到达到预期的词表大小。最佳实践虽然直接使用已有的分词器较为方便(例如 OPT 和 GPT-3 使用了 GPT-2 的分词器)但是使用为预训练语料专门训练或设计的分词器会更加有效尤其是对于那些混合了多领域、多语言和多种格式的语料。最近的大语言模型通常使用SentencePiece代码库为预训练语料训练定制化的分词器这一代码库支持字节级别的BPE分词和Unigram分词。数据调度完成数据预处理之后需要设计合适的调度策略来安排这些多来源的数据进而用于训练大语言模型。通常来说数据调度Data Scheduling主要关注两个方面:各个数据源的混合比例以及各数据源用于训练的顺序称为数据课程Data Curriculum。具体的数据调度示意图可以参考下图指令微调指令微调Instruction Tuning是指使用自然语言形式的数据对预训练后的大语言模型进行参数微调。指令微调也被称为有监督微调Supervised Fine-tuning或多任务提示训练Multitask Prompted Training。指令微调过程需要首先收集或构建指令化的实例然后通过有监督的方式对大语言模型的参数进行微调。经过指令微调后大语言模型能够展现出较强的指令遵循能力可以通过零样本学习Zero-shot Learning的方式解决多种下游任务。指令数据的构建指令微调的第一步首先要构建指令数据。一般来说一个经过指令格式化的数据实例包括任务描述也称为指令、任务输入-任务输出以及可选的示例。学术界围绕传统NLPNatural Language Processing自然语言处理任务如机器翻译、文本摘要和文本分类等发布了大量的开源数据集合这些数据是非常重要的监督学习数据资源可以用于指令数据集的构造。通常来说这些NLP数据集都包括输入和输出两个主要部分。例如在中英翻译任务中输入是大语言模型已经成为机器学习的一个重要研究方向而相应的输出则是Large language models have become one important research direction for machine learning。为了生成指令化的训练数据一个非常关键的步骤就是为上述的输入-输出数据对添加任务描述信息经过NLP指令数据微调后大语言模型可以学习到指令遵循Instruction Following的能力进而能够解决其他未见过的NLP任务。尽管通过指令格式化已有的NLP数据集能够获得大量的指令数据实例但是这些数据的多样性比较局限与人类的真实需求也不能很好匹配。为此研究人员开始使用用户在日常对话中的实际需求作为任务描述。例如InstructGPT 将用户提交给 OpenAI API 的查询作为任务描述。由于这些用户查询源自于真实应用场景均采用自然语言形式进行表达因此特别适合大模型学习指令跟随能力。以下示例是一个多轮日常对话的数据为了进一步增加任务的多样性OpenAI 还雇佣标注者创作更多的真实生活任务包括开放式生成、开放式问答、头脑风暴等任务然后由另一组标注者来回答这些问题作为输出。为了减轻人工收集与标注数据的负担研究人员进一步提出半自动化的数据合成方法。他们借助已有的高质量指令数据作为上下文学习示例输入大语言模型进而生成大量多样化的任务描述和输入-输出数据⚠️注意在指令微调中指令数据的格式、数量等因素对微调后的模型性能有着重要影响。指令微调中应该优先使用人工标注的多样性指令数据。然而如何大规模标注符合人类需求的指令数据目前仍然缺乏规范性的指导标准(比如什么类型的数据更容易激发大模型的能力)。在实践中可以使用 ChatGPT、GPT-4 等闭源大语言模型来合成、重写、筛选现有指令并通过数量来弥补质量和多样性上的不足。指令微调的训练策略有了指令数据实例就可以对模型进行微调训练了。训练方式上指令微调与预训练较为相似很多设置包括数据组织形式都可以预训练阶段所采用的技术不过有些训练策略是指令微调所特有的。例如•优化部分设置目标函数、批次大小和学习率、多轮对话数据的高效训练等•数据组织策略混合使用多个指令数据集能够提升模型的综合能力对于不同的微调阶段训练中可以逐渐增加指令的难度和复杂性从而逐渐提高大模型遵循复杂指令的能力为了使得微调过程更加有效和稳定可以在指令微调期间引入了预训练数据和任务这可以看作是对于指令微调的正则化。参数高效的模型微调问题通过指令微调大语言模型能够更好地学习遵循和执行人类指令。然而由于大语言模型的参数量巨大进行全参数微调需要较多的算力资源开销。✅解决方案参数高效微调Parameter-efficient Fine-tuningPEFT也成为轻量化微调能够有效减少需要训练的模型参数量同时保证微调后的模型性能能够与全量微调的表现相媲美。大语言模型中包含大量的线性变换层其中参数矩阵的维度通常很高。低秩适配Low-Rank AdaptationLoRA微调技术在预训练模型的参数矩阵上添加低秩分解矩阵来近似每层的参数更新从而减少适配下游任务所需要训练的参数通过计算LoRA微调技术能够将显存大小从 108GB 大幅下降到 14GB模型参数从 16P 降至 2P。LoRA还有很多变种技术例如Alpaca-LoRA、QLoRA等等都被广泛地应用于开源大语言模型如 LLaMA 和 BLOOM的参数高效微调中。除了LoRA微调技术还有三种被广泛使用的方法包括适配器微调、前缀微调、提示微调。人类对齐大语言模型的能力主要源自于对于海量文本数据的学习因此大模型的行为会受到数据质量、数据来源以及具体创作者等多方面的影响。经过大规模的预训练和有监督指令微调大语言模型具备了解决各种任务的通用能力和指令遵循能力但是同时也可能生成有偏见的、冒犯的以及事实错误的文本内容。这些潜在的有害行为可能在下游应用中产生严重的影响与危害进一步被恶意使用者进行放大与利用。因此在大语言模型的学习过程中如何确保大语言模型的行为与人类价值观、人类真实意图和社会伦理相一致成为了一个关键研究问题通常称这一研究问题为***人类对齐Human Alignment***。现有的大语言模型广泛使用的对齐研究标准主要有三个方面•有用性Helpfulness在实际应用中大语言模型需要提供有用的信息能够准确完成任务正确理解上下文并展现出一定的创造性与多样性。•诚实性Honesty模型的输出应具备真实性和客观性不应夸大或歪曲事实避免产生误导性陈述并能够应对输入的多样性和复杂性。•无害性Harmlessness大语言模型应避免生成可能引发潜在负面影响或危害的内容。⚠️挑战但是这些对齐标准主要是基于人类认知进行设计的具有一定的主观性直接通过优化目标来建模这些对齐标准较为困难因此研究人员提出了**基于人类反馈的强化学习Reinforcement Learning from Human FeedbackRLHF**旨在利用收集到的人类反馈数据指导大语言模型进行微调从而使得大语言模型在多个标准(例如有用性、诚实性和无害性)上实现与人类的对齐。RLHF首先需要收集人类对于不同模型输出的偏好然后使用收集到的人类反馈数据训练奖励模型最后基于奖励模型使用强化学习算法例如PPO[3]Proximal Policy Optimization近端策略优化微调大语言模型这种将人类反馈纳入大语言模型训练过程的方法已成为实现人类对齐的主要技术途径之一上图体现了RLHF算法系统的三个关键组成部分需要与人类价值观对齐的模型、基于人类反馈数据学习的奖励模型以及用于训练大语言模型的强化学习算法。监督微调在预训练阶段大语言模型通过语言建模目标在大规模无标注语料库上进行训练。然而这一过程无法直接反映人类对于大语言模型输出的主观和定性偏好。为了实现有效的人类对齐需要使用高质量的人类反馈数据对大语言模型进行针对性的微调。在大语言模型的背景下这种利用配对文本进行训练的方法也被广泛地称为**监督微调Supervised Fine-TuningSFT**研究人员往往将监督微调作为RLHF算法的第一个步骤。奖励模型训练由于RLHF的训练过程中需要依赖大量的人类偏好数据进行学习因此很难在训练过程中要求人类标注者实时提供偏好反馈。为此我们需要训练一个模型来替代人类在RLHF训练过程中实时提供反馈这个模型被称为奖励模型。在训练开始前我们需要预先构造一系列相关问题作为输入。人类标注者将针对这些问题标注出符合人类偏好的输出以及不符合人类偏好的输出。收集到这些人类偏好数据后就可以用来训练奖励模型。经过充分训练的奖励模型能够有效地拟合人类偏好并在后续的强化学习训练过程中替代人类提供反馈信号。这样一来就可以在保证训练效率的同时加强模型行为与人类期望的一致性。强化学习训练强化学习是RLHF中的核心优化算法。一般来说强化学习旨在训练一个智能体该智能体与外部环境进行多轮交互通过学习合适的策略进而最大化从外部环境获得的奖励。在强化学习的过程中智能体是根据外部环境决定下一步行动的决策者因此其被称为策略模型Policy Model。在自然语言生成任务中大语言模型即策略模型需要根据用户输入的问题和已经生成的内容即当前状态生成下一个词元即对下一步行动做出决策。当大语言模型完整生成整个回复之后即决策轨迹标注人员或奖励模型会针对大语言模型生成的回复进行偏好打分即奖励分数。大语言模型需要学习生成回应的有效策略使得生成的内容能获得尽可能高的奖励即使其生成的内容尽可能符合人类的价值观和偏好。常用到的强化学习算法有策略梯度算法Policy Gradient和近端策略优化算法Proximal Policy OptimizationPPO。大模型学习路径系列课程以大模型实践教学为主旨在将前沿技术通过代码实践的方式采用由浅入深的教学顺序为对大模型感兴趣的开发者和研究人员提供全流程的入门指南。课程分为初级、中级和高级三个阶段实验基于华为昇腾开放平台的软硬件进行开发和加速。全系列的课程规划如下这里给大家精心整理了一份全面的AI大模型学习资源包括AI大模型全套学习路线图从入门到实战、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等资料免费分享扫码免费领取全部内容1. 成长路线图学习规划要学习一门新的技术作为新手一定要先学习成长路线图方向不对努力白费。这里我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。2. 大模型经典PDF书籍书籍和学习文档资料是学习大模型过程中必不可少的我们精选了一系列深入探讨大模型技术的书籍和学习文档它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。书籍含电子版PDF3. 大模型视频教程对于很多自学或者没有基础的同学来说书籍这些纯文字类的学习教材会觉得比较晦涩难以理解因此我们提供了丰富的大模型视频教程以动态、形象的方式展示技术概念帮助你更快、更轻松地掌握核心知识。4. 2026行业报告行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。5. 大模型项目实战学以致用当你的理论知识积累到一定程度就需要通过项目实战在实际操作中检验和巩固你所学到的知识同时为你找工作和职业发展打下坚实的基础。6. 大模型面试题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我们将提供精心整理的大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。7. 资料领取全套内容免费抱走学 AI 不用再找第二份不管你是 0 基础想入门 AI 大模型还是有基础想冲刺大厂、了解行业趋势这份资料都能满足你现在只需按照提示操作就能免费领取扫码免费领取全部内容