当前位置: 首页 > news >正文

AI面试高频考点:从机器学习到大模型,大白话解析助你轻松通关!

本文涵盖了AI面试中的高频问题从机器学习基础到前沿大模型LLM及工程实践通过简洁易懂的大白话解释核心概念。内容分为AI基础与机器学习、深度学习与神经网络、大语言模型LLMs与Transformer、训练技术与工程实践等部分并附有术语表和进阶面试题旨在帮助读者快速掌握AI核心知识提升面试竞争力。本指南涵盖了从基础机器学习到最前沿的大模型LLM、训练技术及工程实践的面试高频问题并附带大白话解释旨在帮助您快速理解核心概念。第一部分AI 基础与机器学习 (Foundations ML)什么是机器学习它和传统编程有什么区别•标准答案机器学习ML是人工智能的一个子集它通过算法使计算机能够从数据中学习规律而不是通过显式编程。传统编程是“输入数据 规则 输出结果”而机器学习是“输入数据 输出结果 规则模型”。•大白话解释◦传统编程像教小孩做菜你得一步步告诉他先放油再放菜炒三分钟。如果没教过他炒肉他就不会。◦机器学习像带小孩去饭店吃饭让他尝 1000 道菜然后告诉他哪些好吃哪些不好吃。慢慢地他自己就总结出了“好吃的菜通常有肉、不糊、咸淡适中”的规律。下次看到新菜他自己就能判断好不好吃。什么是过拟合Overfitting和欠拟合Underfitting如何解决•标准答案◦过拟合模型在训练集上表现极好但在测试集新数据上表现很差。原因是模型“背”住了训练数据的噪声。◦欠拟合模型在训练集和测试集上表现都不好。原因是模型太简单没学到数据的规律。•大白话解释◦过拟合就像一个学生考试前把往年真题的答案全背下来了连题目里的错别字都记得清清楚楚。结果考试换了个数字他就傻眼了。解决方法多做不同类型的题增加数据、考试不准带小抄正则化、提前结束复习早停。◦欠拟合就像一个学生考试前只看了一眼书名啥也没学进去。解决方法多学点知识增加特征、换个聪明的脑子增加模型复杂度。什么是监督学习、无监督学习和强化学习•标准答案◦监督学习数据有标签Label模型学习输入到输出的映射。◦无监督学习数据无标签模型学习数据的内在结构如聚类。◦强化学习通过与环境交互根据奖励Reward来优化策略。•大白话解释◦监督学习有老师带着。老师给你看一张猫的照片告诉你这是“猫”看一张狗的照片告诉你这是“狗”。◦无监督学习没老师。给你一堆照片你自己看着办。你发现有些动物耳朵尖尖的有些耳朵垂着的于是你把它们分成了两堆。◦强化学习像训狗。狗做对了动作你给它一块肉做错了不给。狗为了吃到肉会不断尝试做出正确的动作。第二部分深度学习与神经网络 (Deep Learning)什么是神经网络为什么要用激活函数•标准答案神经网络是由大量神经元连接而成的计算模型。激活函数如 ReLU, Sigmoid引入了非线性因素使网络能够拟合复杂的函数。•大白话解释◦神经网络就像一个公司有很多层员工。底层员工收集信息汇报给主管主管汇总后再汇报给经理最后老板拍板。◦激活函数就像是一个“门槛”。如果没有门槛所有的信息都会原封不动地传上去最后老板听到的只是所有信息的简单叠加线性。有了激活函数只有信息足够重要超过门槛时才会传给上一级这样才能处理复杂的情况。什么是梯度消失和梯度爆炸•标准答案在反向传播过程中梯度误差信号通过多层网络传递。如果每一层的梯度都小于 1连乘之后梯度会趋近于 0消失如果大于 1连乘后会变得无穷大爆炸。•大白话解释◦梯度消失就像玩“传声筒”游戏。第一个人说了一句很长的话传到第 10 个人时声音越来越小最后一个人啥也听不见了根本不知道前面说了啥也就没法改正。◦梯度爆炸就像传话时每个人都加了一点夸张的修饰。第一个人说“今天有点热”传到最后一个人变成了“地球要爆炸了”。这种极端的信号会让模型直接崩溃。第三部分大语言模型 (LLMs) 与 Transformer什么是 Transformer它为什么比之前的 RNN 好•标准答案Transformer 是一种基于自注意力机制Self-Attention的架构。它摒弃了 RNN 的序列依赖实现了并行计算并能更好地捕捉长距离依赖关系。•大白话解释◦RNN旧模型像读一本书必须从第一页读到最后一页。读到第 100 页时可能已经忘了第 1 页讲了啥。而且你必须读完前一页才能读下一页速度慢。◦Transformer新模型像看一张大合影。你可以一眼看到所有人并且能立刻发现谁和谁站在一起注意力。你可以同时看照片的左边和右边速度快而且不会忘掉任何细节。补充循环神经网络 (RNN) 详解在深度学习领域循环神经网络Recurrent Neural Network, RNN 是一种专门用于处理序列数据如文本、语音、时间序列等的神经网络架构。与传统神经网络不同RNN 具有“记忆”能力能够捕捉数据中的时间依赖性。英文全称与核心含义•英文全称Recurrent Neural Network•核心含义RNN 之所以被称为“循环”是因为它在处理序列中的每个元素时会重复使用循环相同的神经网络结构并将上一步的输出或隐藏状态作为下一步的输入。这使得网络能够记住之前的信息从而在处理当前信息时考虑上下文。工作原理大白话解释想象你正在阅读一本长篇小说。当你读到某一章时你不可能只看这一章的内容就完全理解。你需要记住前面章节的故事情节、人物关系这些“记忆”会帮助你理解当前章节的含义并预测接下来的发展。•传统神经网络就像一个“健忘症患者”。它每次只能看一个词或一句话看完就忘了无法把上下文联系起来。比如你给它看“我爱吃苹果”它能理解你再给它看“我爱吃香蕉”它也理解。但它无法理解“我爱吃苹果因为它甜”这句话中“它”指的是“苹果”。•循环神经网络 (RNN)就像一个“有记忆的人”。它在处理序列数据时会把上一步处理的结果或者说“记忆”传递给下一步。这样当它读到“它”的时候就能结合之前的“苹果”这个信息知道“它”指的就是“苹果”。•具体来说RNN 的工作方式可以这样理解1.1输入每次输入序列中的一个元素比如一个词。1.2处理神经网络对这个输入进行处理并结合它“记住”的上一步的信息。1.3输出生成一个输出同时更新它的“记忆”隐藏状态这个新的“记忆”会传递给下一个时间步。1.4循环这个过程不断重复直到处理完整个序列。RNN 的优势与局限性•优势◦能够处理任意长度的序列数据。◦能够捕捉序列中的时间依赖性。◦模型参数共享减少了参数数量。•局限性◦长期依赖问题Long-Term Dependency Problem当序列很长时早期的信息在经过多次传递后可能会逐渐丢失导致 RNN 难以捕捉到长距离的依赖关系。这就像小说太长你读到后面就忘了开头的一些细节。◦梯度消失/爆炸问题在反向传播过程中由于权重矩阵的多次连乘容易导致梯度变得非常小消失或非常大爆炸使得模型训练困难。这在面试题库的“梯度消失和梯度爆炸”部分已有详细解释。◦并行计算困难由于其固有的序列依赖性RNN 难以进行并行计算导致训练速度较慢。RNN 的变体为了解决 RNN 的局限性特别是长期依赖问题研究人员提出了许多改进模型其中最著名的是•长短期记忆网络Long Short-Term Memory, LSTM通过引入“门控机制”输入门、遗忘门、输出门来选择性地记忆和遗忘信息有效缓解了长期依赖问题。•门控循环单元Gated Recurrent Unit, GRU是 LSTM 的简化版具有更少的门控结构但也能很好地解决长期依赖问题并且计算效率更高。这些变体在自然语言处理、语音识别等领域取得了巨大成功直到 Transformer 架构的出现才逐渐改变了序列建模的主流范式。什么是自注意力机制Self-Attention•标准答案自注意力机制通过计算查询Query、键Key和值Value之间的相关性为输入序列中的每个元素分配权重从而聚焦于重要的信息。•大白话解释◦自注意力就像你在读一句话“那个男孩拿着一个红色的苹果他很开心。”当你读到“他”这个词时你的大脑会自动把“他”和“那个男孩”联系起来而不是和“苹果”联系起来。自注意力机制就是让模型学会这种“自动联系”的能力。什么是 RAG检索增强生成•标准答案RAG 结合了检索系统和生成模型。它先从外部知识库中检索相关文档再将这些文档作为上下文输入给 LLM以减少幻觉并提供最新信息。•大白话解释◦普通 LLM像一个闭卷考试的学生。他只能凭记忆回答问题如果记错了就会瞎编幻觉。◦RAG像一个开卷考试的学生。他手头有一本最新的百科全书遇到问题先翻书找到答案后再组织语言告诉你。这样回答更准确也不会过时。第四部分训练技术与工程实践 (Training Engineering)什么是微调Fine-tuningLoRA 又是怎么回事•大白话解释与参数影响•想象一个超级学霸预训练大模型他已经读了海量的书掌握了各种知识模型参数。现在你想让他专门去考法律专业的研究生特定任务。1.5全量微调Full Fine-tuning•操作就像让这个学霸把所有学过的知识所有模型参数的数值都根据法律专业的要求进行调整和优化。他会把之前学过的所有书都重新看一遍并根据法律知识的重点进行修改和记忆。•参数影响◦参数数量不变。模型本身的结构和参数总量没有增加还是那个学霸。◦参数数值所有参数的数值都会被修改。学霸的知识体系被全面更新以适应法律专业。◦模型大小不变。最终得到的模型文件大小与原始预训练模型相同因为它包含了所有调整后的参数。•优缺点效果通常最好但需要大量的计算资源GPU 显存和时间并且每个新任务都需要保存一个与原始模型大小相同的完整模型副本。1.6LoRALow-Rank Adaptation•操作不是让学霸重新调整所有知识而是给他发一本薄薄的“法律速成手册”低秩矩阵。学霸在回答法律问题时会参考这本手册来调整他的回答但他的核心知识体系原始模型参数是保持不变的。•参数影响◦参数数量原始模型参数数量不变但额外增加了极少量的 LoRA 适配器参数。这些适配器参数通常只占原始模型参数的 0.01% 到 1% 左右。◦参数数值原始模型参数的数值保持冻结不被修改。只有新注入的 LoRA 适配器参数的数值会被训练和修改。◦模型大小原始模型文件大小不变但会额外生成一个非常小的 LoRA 适配器文件。部署时只需要加载原始大模型和这个小小的 LoRA 文件即可。•优缺点极大地节省了计算资源和存储空间训练速度快可以为多个任务训练不同的 LoRA 适配器然后按需“插拔”。虽然效果可能略逊于全量微调但在大多数场景下表现优秀是目前主流的高效微调方法。总结对比特性全量微调Full Fine-tuningLoRALow-Rank Adaptation修改参数所有原始模型参数的数值仅修改新注入的少量 LoRA 适配器参数的数值原始模型参数冻结参数数量o:page与原始模型相同原始模型参数不变额外增加极少量LoRA 参数模型大小与原始模型相同原始模型不变额外生成一个非常小的 LoRA 适配器文件资源消耗高显存、计算低显存、计算部署每个任务一个完整模型一个原始模型 多个小 LoRA 适配器效果通常最优接近全量微调在多数场景下表现优秀通过这个对比我们可以清楚地看到全量微调是修改了模型所有参数的数值但模型总参数量不变而 LoRA 则是冻结了原始模型的参数通过额外增加少量参数来达到微调的目的从而在模型大小和资源消耗上具有显著优势。什么是量化Quantization•标准答案量化是将模型参数从高精度如 FP32转换为低精度如 INT8, INT4的过程旨在减小模型体积并提高推理速度。•大白话解释◦量化就像把一张 4K 高清大图压缩成一张普通照片。虽然细节少了一点点但占用的空间小了很多在手机上打开的速度也快了很多。对于大模型来说量化能让原本需要几万块显卡才能跑的模型在普通电脑甚至手机上也能跑起来。第五部分AI 专有名词术语表 (Glossary)术语 (Term)全称/定义大白话解释LLMo:pageLarge Language Model (大语言模型)像 ChatGPT 这样博学多才、能说会道的超级 AI 脑子。Token文本的基本单位模型阅读时的“字”或“词块”。一句话会被切成一个个 Token 给模型吃。Prompt提示词你对 AI 说的指令。Prompt 写得好AI 活干得好。Hallucination幻觉AI 一本正经地胡说八道。Inference推理模型“干活”的过程。你问它答就是推理。SFTSupervised Fine-Tuning (有监督微调)老师手把手教 AI 怎么说话给它标准答案。RLHFReinforcement Learning from Human Feedback让 AI 根据人类的喜好来学习变得更像人。Agent智能体不只是会聊天的 AI它还能自己思考、查资料、用工具完成任务。MoEMixture of Experts (专家混合模型)像一个由很多专家组成的团队每次只叫最懂行的几个专家出来干活。Temperature温度 (采样参数)控制 AI 的“脑洞”大小。温度越高AI 越有创意但容易乱说温度越低AI 越保守。Zero-shot零样本学习没见过这类题直接上场考。Few-shot少样本学习给你看几个例子你照着学。Context Window上下文窗口AI 的“短期记忆”长度。窗口越大它能记得的前文越多。Embedding嵌入/向量化把文字变成一串数字让电脑能理解意思。Vector Database向量数据库专门存这些“数字意思”的仓库方便 AI 快速查资料。第六部分进阶面试题 (Advanced Topics)什么是 MoE专家混合模型为什么 GPT-4 和 DeepSeek 都用它•标准答案MoE 是一种稀疏激活架构。它包含多个“专家”网络通过门控网络Gating Network为每个输入选择最合适的专家进行计算。这使得模型可以在增加参数量的同时保持较低的推理成本。•大白话解释◦稠密模型Dense像一个全才不管你问数学还是文学他都得动用全身的脑细胞来回答。◦MoE 模型像一个专家团队。你问数学门卫门控网络就去叫数学专家你问文学就去叫文学专家。这样虽然团队里有 100 个人参数多但每次干活只需要 2 个人计算量小既聪明又省钱。PPO 和 DPO 有什么区别•标准答案PPOProximal Policy Optimization是强化学习算法需要训练奖励模型Reward Model并进行复杂的在线采样。DPODirect Preference Optimization则直接在偏好数据上优化模型无需奖励模型训练更稳定且高效。•大白话解释◦PPO像教小孩。你先雇个裁判奖励模型小孩每做一个动作裁判就打分小孩根据分数调整。过程很复杂裁判也可能打错分。◦DPO像给小孩看两张卷子。一张是满分卷一张是零分卷。你直接告诉他“学这张别学那张。”小孩直接照着学简单直接不容易出错。什么是 Flash Attention•标准答案Flash Attention 是一种针对 GPU 内存层次结构优化的注意力算法。它通过分块计算Tiling和重计算Recomputation减少了对显存的读写次数从而大幅提升了训练和推理速度。•大白话解释◦普通 Attention像一个厨师每切一个菜都要跑回仓库拿一次菜刀切完再跑回去放好。来回跑路显存读写花的时间比切菜还多。◦Flash Attention厨师把菜刀和菜都搬到灶台边GPU 缓存一次性切完再走。这样效率极高速度飞快。第七部分更多术语补充 (Glossary Continued)术语 (Term)全称/定义大白话解释Multimodal多模态AI 不仅能看文字还能看图、听声音、看视频。Chain of Thought思维链 (CoT)让 AI “一步步想”把推理过程写出来答案更准。KV Cache键值缓存AI 说话时把之前说过的词存起来下次不用重算速度更快。Quantization量化把模型“压缩”让它在手机或普通电脑上也能跑。Overfitting过拟合AI “死记硬背”只会做见过的题换个题就不会了。Underfitting欠拟合AI “太笨”或“没学够”连见过的题都不会做。Gradient Descent梯度下降AI 学习的方法。像下山一样顺着最陡的方向走直到找到最低点误差最小。Loss Function损失函数衡量 AI 表现好坏的尺子。分数越高AI 表现越差。Backpropagation反向传播AI 纠错的过程。从结果往回找看哪一层神经元出错了然后改掉。Epoch轮次AI 把所有的学习资料完整看了一遍。Batch Size批大小AI 每次学习时一次性看多少道题。Learning Rateo:page学习率AI 每次改错的幅度。太大容易跑偏太小改得太慢。祝您面试顺利这份指南将持续更新以涵盖更多前沿技术。补充强化学习中的“奖励Reward”详解在强化学习Reinforcement Learning, RL中奖励Reward 是一个至关重要的概念它是智能体Agent学习和优化行为策略的唯一信号。简单来说奖励是环境对智能体行为好坏的即时反馈。奖励的本质与作用奖励是一个标量数值它在智能体执行某个动作后由环境提供给智能体。这个数值可以是正的表示好的行为负的表示不好的行为也称为惩罚或者是零表示中性行为。智能体的核心目标就是最大化其在长期过程中获得的累积奖励。•引导学习奖励是智能体学习的“指挥棒”。通过接收奖励信号智能体能够判断当前的行为是否有利于达成目标。如果某个动作导致了高奖励智能体就会倾向于在相似情境下重复这个动作如果导致了低奖励或惩罚智能体就会避免这个动作。•定义目标在强化学习中我们不会直接告诉智能体“怎么做”而是通过设计奖励函数来告诉它“想要什么”。奖励函数的设计直接决定了智能体最终会学习到什么样的行为策略。奖励的特点•即时性奖励是在智能体执行动作后立即获得的反馈。尽管智能体追求的是长期累积奖励但每次的奖励信号都是即时的。•稀疏性与密集性◦密集奖励Dense Reward在每一步或大部分步骤中都能获得奖励信号。例如在玩游戏中每消灭一个敌人就获得分数。◦稀疏奖励Sparse Reward只有在完成特定任务或达到某个关键状态时才能获得奖励。例如在下棋游戏中只有赢棋或输棋时才能获得奖励中间过程没有直接奖励。•设计挑战设计一个有效的奖励函数是强化学习中最具挑战性的任务之一。一个不恰当的奖励函数可能导致智能体学习到非预期的行为“奖励黑客”问题。奖励的类型•正奖励Positive Reward鼓励智能体采取某个行动。例如机器人成功抓取物品获得 1 分。•负奖励Negative Reward/ 惩罚Penalty阻止智能体采取某个行动或进入某个状态。例如机器人撞到障碍物获得 -10 分。•内在奖励Intrinsic Reward智能体自身产生的奖励通常用于鼓励探索或学习新技能尤其是在外部奖励稀疏时。例如智能体因为发现新区域而获得“好奇心”奖励。•外在奖励Extrinsic Reward由环境直接提供的奖励是强化学习中最常见的奖励形式。奖励如何引导智能体学习大白话解释想象你正在训练一只小狗学习坐下。•奖励就是“小零食”当你发出“坐下”的指令小狗如果成功坐下了你立刻给它一块小零食。这块小零食就是正奖励。•惩罚就是“不给零食”或“批评”如果小狗没有坐下或者跳起来了你就不给它零食甚至轻轻拍一下它说“不行”。这就是负奖励或惩罚。•学习过程小狗一开始可能不知道“坐下”是什么意思它会尝试各种动作站着、趴着、叫唤。但每次它坐下时都能得到小零食。慢慢地它就明白了“坐下”这个动作能带来好东西于是它会越来越频繁地执行“坐下”这个动作并且在听到指令时会更快、更准确地坐下。•目标小狗的目标就是尽可能多地吃到小零食所以它会优化自己的行为策略学会如何正确地“坐下”。在这个例子中小零食就是奖励它直接告诉小狗哪些行为是“好”的哪些是“不好”的从而引导小狗学习到我们期望的策略。总结奖励是强化学习中连接智能体行为与环境反馈的桥梁。它通过简单的数值信号有效地将复杂的任务目标转化为智能体可以理解和优化的数学问题驱动智能体通过试错和经验积累最终学习到最优的决策策略。补充循环神经网络 (RNN) 详解在深度学习领域循环神经网络Recurrent Neural Network, RNN 是一种专门用于处理序列数据如文本、语音、时间序列等的神经网络架构。与传统神经网络不同RNN 具有“记忆”能力能够捕捉数据中的时间依赖性。英文全称与核心含义•英文全称Recurrent Neural Network•核心含义RNN 之所以被称为“循环”是因为它在处理序列中的每个元素时会重复使用循环相同的神经网络结构并将上一步的输出或隐藏状态作为下一步的输入。这使得网络能够记住之前的信息从而在处理当前信息时考虑上下文。工作原理大白话解释想象你正在阅读一本长篇小说。当你读到某一章时你不可能只看这一章的内容就完全理解。你需要记住前面章节的故事情节、人物关系这些“记忆”会帮助你理解当前章节的含义并预测接下来的发展。•传统神经网络就像一个“健忘症患者”。它每次只能看一个词或一句话看完就忘了无法把上下文联系起来。比如你给它看“我爱吃苹果”它能理解你再给它看“我爱吃香蕉”它也理解。但它无法理解“我爱吃苹果因为它甜”这句话中“它”指的是“苹果”。•循环神经网络 (RNN)就像一个“有记忆的人”。它在处理序列数据时会把上一步处理的结果或者说“记忆”传递给下一步。这样当它读到“它”的时候就能结合之前的“苹果”这个信息知道“它”指的就是“苹果”。•具体来说RNN 的工作方式可以这样理解1.7输入每次输入序列中的一个元素比如一个词。1.8处理神经网络对这个输入进行处理并结合它“记住”的上一步的信息。1.9输出生成一个输出同时更新它的“记忆”隐藏状态这个新的“记忆”会传递给下一个时间步。1.10循环这个过程不断重复直到处理完整个序列。RNN 的优势与局限性•优势◦能够处理任意长度的序列数据。◦能够捕捉序列中的时间依赖性。◦模型参数共享减少了参数数量。•局限性◦长期依赖问题Long-Term Dependency Problem当序列很长时早期的信息在经过多次传递后可能会逐渐丢失导致 RNN 难以捕捉到长距离的依赖关系。这就像小说太长你读到后面就忘了开头的一些细节。◦梯度消失/爆炸问题在反向传播过程中由于权重矩阵的多次连乘容易导致梯度变得非常小消失或非常大爆炸使得模型训练困难。这在面试题库的“梯度消失和梯度爆炸”部分已有详细解释。◦并行计算困难由于其固有的序列依赖性RNN 难以进行并行计算导致训练速度较慢。RNN 的变体为了解决 RNN 的局限性特别是长期依赖问题研究人员提出了许多改进模型其中最著名的是•长短期记忆网络Long Short-Term Memory, LSTM通过引入“门控机制”输入门、遗忘门、输出门来选择性地记忆和遗忘信息有效缓解了长期依赖问题。•门控循环单元Gated Recurrent Unit, GRU是 LSTM 的简化版具有更少的门控结构但也能很好地解决长期依赖问题并且计算效率更高。这些变体在自然语言处理、语音识别等领域取得了巨大成功直到 Transformer 架构的出现才逐渐改变了序列建模的主流范式。补充微调Fine-tuning与 LoRA 的工具和代码实现为了更深入地理解微调和 LoRA我们来看看在实际操作中它们通常会用到哪些工具和具体的代码实现。目前Hugging Face 的 transformers 和 peft 库是进行大模型微调最主流和强大的工具。全量微调Full Fine-tuning的代码实现工具与手段全量微调通常使用 Hugging Face 的 transformers 库特别是其提供的 Trainer API。Trainer 封装了训练循环、评估、日志记录等功能极大地简化了训练代码的编写。核心代码示例以下是一个使用 transformers 库对预训练模型进行全量微调的简化示例。假设我们有一个预训练的 BERT 模型现在想用它来做文本分类任务。# 导入必要的库 from transformers import AutoTokenizer, AutoModelForSequenceClassification, TrainingArguments, Trainer from datasets import load_dataset import numpy as np import evaluate # 1. 加载预训练模型和分词器 # 这里以一个小型BERT模型为例实际大模型可能需要更多资源 model_name bert-base-uncased tokenizer AutoTokenizer.from_pretrained(model_name) model AutoModelForSequenceClassification.from_pretrained(model_name, num_labels2) # 假设二分类任务 # 2. 准备数据集 # 使用Hugging Face datasets库加载一个示例数据集例如IMDB电影评论情感分类 dataset load_dataset(imdb) # 定义预处理函数对文本进行分词并截断或填充到模型最大长度 defpreprocess_function(examples): return tokenizer(examples[text], truncationTrue, paddingTrue, max_length512) # 对数据集进行预处理 tokenized_dataset dataset.map(preprocess_function, batchedTrue) # 重命名标签列为 \labels\, 并移除原始文本列 tokenized_dataset tokenized_dataset.rename_columns({label: labels}) tokenized_dataset tokenized_dataset.remove_columns([text]) # 3. 定义评估指标 metric evaluate.load(accuracy) defcompute_metrics(eval_pred): logits, labels eval_pred predictions np.argmax(logits, axis-1) return metric.compute(predictionspredictions, referenceslabels) # 4. 配置训练参数 training_args TrainingArguments( output_dir./results_full_finetune, # 输出目录 learning_rate2e-5, # 学习率 per_device_train_batch_size8, # 每个设备的训练批次大小 per_device_eval_batch_size8, # 每个设备的评估批次大小 num_train_epochs3, # 训练轮次 weight_decay0.01, # 权重衰减 evaluation_strategyepoch, # 每个epoch结束后进行评估 save_strategyepoch, # 每个epoch结束后保存模型 load_best_model_at_endTrue, # 训练结束后加载最佳模型 metric_for_best_modelaccuracy, # 衡量最佳模型的指标 report_tonone # 不上报到任何平台 ) # 5. 创建 Trainer 实例并开始训练 trainer Trainer( modelmodel, argstraining_args, train_datasettokenized_dataset[train], eval_datasettokenized_dataset[test], tokenizertokenizer, compute_metricscompute_metrics, ) trainer.train() # 6. 评估模型 eval_results trainer.evaluate() print(fFull Fine-tuning Evaluation Results: {eval_results}) # 7. 保存微调后的模型 trainer.save_model(./fine_tuned_bert_model)大白话解释这段代码就像是你请了一个全能的厨师Trainer给他一本基础菜谱预训练模型然后告诉他“这是我家的口味偏好数据集你照着这个口味把所有菜谱都重新调整一遍全量微调争取做出最符合我家口味的菜” 厨师就会把所有菜谱的配料、火候、步骤都改一遍最终得到一本完全定制化的菜谱。LoRALow-Rank Adaptation的代码实现工具与手段LoRA 微调主要依赖 Hugging Face 的 peft (Parameter-Efficient Fine-tuning) 库。peft 库提供了多种参数高效微调方法包括 LoRA可以轻松地将这些方法集成到 transformers 模型中。核心代码示例以下是一个使用 peft 库进行 LoRA 微调的简化示例。我们仍然使用上面相同的 BERT 模型和数据集。# 导入必要的库 from transformers import AutoTokenizer, AutoModelForSequenceClassification, TrainingArguments, Trainer from datasets import load_dataset from peft import LoraConfig, get_peft_model, TaskType import numpy as np import evaluate # 1. 加载预训练模型和分词器 model_name bert-base-uncased tokenizer AutoTokenizer.from_pretrained(model_name) # 注意这里加载的模型需要是可训练的即需要有线性层可以注入LoRA model AutoModelForSequenceClassification.from_pretrained(model_name, num_labels2) # 2. 准备数据集 (同全量微调部分) dataset load_dataset(imdb) defpreprocess_function(examples): return tokenizer(examples[text], truncationTrue, paddingTrue, max_length512) tokenized_dataset dataset.map(preprocess_function, batchedTrue) tokenized_dataset tokenized_dataset.rename_columns({label: labels}) tokenized_dataset tokenized_dataset.remove_columns([text]) # 3. 定义评估指标 (同全量微调部分) metric evaluate.load(accuracy) defcompute_metrics(eval_pred): logits, labels eval_pred predictions np.argmax(logits, axis-1) return metric.compute(predictionspredictions, referenceslabels) # 4. 配置 LoRA 参数 # target_modules: 指定要应用LoRA的模块通常是注意力机制中的QKV矩阵 # r: LoRA的秩通常是较小的整数如8, 16, 32 # lora_alpha: LoRA的缩放因子 # lora_dropout: LoRA层的dropout概率 peft_config LoraConfig( task_typeTaskType.SEQ_CLS, # 任务类型序列分类 inference_modeFalse, # 训练模式 r8, # LoRA的秩 lora_alpha16, # LoRA的缩放因子 lora_dropout0.1, # LoRA层的dropout target_modules[query, key, value], # 目标模块通常是Transformer的QKV层 ) # 5. 将 LoRA 配置应用到模型上 # get_peft_model 会修改原始模型使其只训练LoRA参数 model get_peft_model(model, peft_config) model.print_trainable_parameters() # 打印可训练参数的数量会发现非常少 # 6. 配置训练参数 (与全量微调类似但通常可以更小的学习率和更少的epoch) training_args TrainingArguments( output_dir./results_lora_finetune, learning_rate2e-4, # LoRA通常可以使用更高的学习率 per_device_train_batch_size8, per_device_eval_batch_size8, num_train_epochs5, # LoRA通常需要更多epoch才能收敛 weight_decay0.01, evaluation_strategyepoch, save_strategyepoch, load_best_model_at_endTrue, metric_for_best_modelaccuracy, report_tonone ) # 7. 创建 Trainer 实例并开始训练 trainer Trainer( modelmodel, argstraining_args, train_datasettokenized_dataset[train], eval_datasettokenized_dataset[test], tokenizertokenizer, compute_metricscompute_metrics, ) trainer.train() # 8. 评估模型 eval_results trainer.evaluate() print(fLoRA Fine-tuning Evaluation Results: {eval_results}) # 9. 保存 LoRA 适配器而不是整个模型 # 只保存LoRA相关的参数文件非常小 model.save_pretrained(./lora_adapter_bert) # 如果需要可以将LoRA适配器与原始模型合并得到一个完整的微调模型 # from peft import PeftModel # base_model AutoModelForSequenceClassification.from_pretrained(model_name, num_labels2) # lora_model PeftModel.from_pretrained(base_model, ./lora_adapter_bert) # merged_model lora_model.merge_and_unload() # merged_model.save_pretrained(./merged_lora_bert_model)大白话解释这段代码就像是你请了一个全能的厨师Trainer给他一本基础菜谱预训练模型但这次你只给他一本薄薄的“口味调整手册”LoRA 适配器。你告诉他“你不用改动原来的菜谱冻结原始模型参数只需要根据这本手册在做菜的时候稍微调整一下口味训练 LoRA 参数让它更符合我家偏好。” 厨师就只学习这本小手册做菜时参考它最终你得到的是原始菜谱 一本小小的口味调整手册。这样厨师学得快占用的厨房空间也小而且这本小手册可以随时换给其他厨师用。总结•全量微调直接修改所有模型参数的数值模型大小不变但训练成本高每个任务都需要一个完整模型。•LoRA冻结原始模型参数通过额外增加少量可训练的低秩矩阵来适应新任务。模型大小指原始模型不变但会生成一个非常小的适配器文件训练成本低部署灵活。第八部分AI 业界最新前沿技术 (Frontier Technologies 2025-2026)什么是 Kimi 发布的 Attention Residuals注意力残差它解决了什么问题•标准答案◦背景传统的 Transformer 架构使用固定的残差连接x_l1x_lf(x_l)x\_{l1} x\_l f(x\_l)x_l1x_lf(x_l)。当模型层数极深如超过 100 层时由于 Pre-norm 机制深层对输入的贡献会逐渐被稀释导致训练不稳定或性能退化。◦核心原理Attention Residuals 将固定的累加替换为可学习的、基于输入的 Softmax 注意力机制。每一层不再只是简单地加在前一层上而是通过一个“查询向量”Query去动态地查询和聚合之前所有层的信息。◦优势它有效解决了深层退化问题支持训练更深的模型如 48B 规模并将训练效率提升了约 25%。•大白话解释◦传统残差像一场接力赛。每一棒选手只能接到前一个人的棒如果前面有人跑累了或者传错了后面的人很难纠正而且越往后传最初的信息就越模糊。◦注意力残差像一场高效的复盘会议。当前发言的人当前层不仅听前一个人的总结还可以随时翻看之前所有人的发言记录历史层信息并根据需要挑选最重要的部分来参考。这样即使会议开了 100 轮核心信息也不会丢失决策也更精准。DeepSeek-V3 中的 MLAMulti-head Latent Attention是什么为什么它能提升推理效率•标准答案◦核心原理MLA 是一种通过低秩联合压缩Low-Rank Joint Compression来优化 KV Cache键值缓存的注意力机制。它不直接存储完整的 K 和 V 矩阵而是将它们压缩成一个低维的“潜在向量”Latent Vector。在推理计算时再通过解压缩矩阵动态恢复出多头 K 和 V。◦优势极大地减少了推理时的显存占用KV Cache 压缩比极高从而允许更大的 Batch Size 和更长的上下文处理显著提升了吞吐量。•大白话解释◦普通注意力MHA像存高清原图。每一张图KV 数据都占很大空间存不了几张手机内存显存就满了导致 AI 记不住太长的对话。◦MLA 技术像存压缩包。它把所有的图片都压成一个小文件只有在需要看的时候才瞬间解压。这样同样的内存就能存下成千上万张图AI 不仅记性变好了支持超长文本反应也变快了推理效率高。OpenAI o1 提出的“推理时计算”Inference-time Compute是什么意思•标准答案◦核心概念这标志着大模型从“快思考”向“慢思考”的转变。传统的 LLM 是根据概率直接预测下一个词而 o1 通过思维链CoT强化学习让模型在最终回答前进行内部的逻辑推理、自我修正和多路径搜索。◦Scaling Law 2.0性能提升不再仅仅依赖于增加训练数据和参数量还可以通过增加模型在推理阶段的“思考时间”来获得。•大白话解释◦传统 LLM像一个参加抢答比赛的选手。看到题目立刻就说答案虽然快但遇到脑筋急转弯或复杂数学题就容易翻车幻觉。◦OpenAI o1像一个参加闭卷考试的学霸。拿到卷子不急着写先在草稿纸上反复推演、检查确认没问题了再写下最终答案。虽然你等它回答的时间变长了但它的答案准确度极高甚至能解决奥数题。DeepSeek-V3 是如何解决 MoE 模型中的专家负载均衡问题的•标准答案◦创新点引入了 无辅助损失的负载均衡策略Auxiliary-loss-free Load Balancing。传统方法通过在损失函数中加惩罚项来强迫模型选择不同专家但这往往会损害模型性能。DeepSeek-V3 通过动态调整每个专家的“偏置项”Bias来引导流量确保每个专家都能得到充分利用。◦优势在不牺牲模型精度的情况下实现了极高的计算效率和专家利用率。•大白话解释◦传统方法像一个严厉的管理员。看到某个窗口排队人多就强行把后面的人拽到空窗口去不管那个人愿不愿意结果办事效率反而下降了。◦DeepSeek 方案像一个聪明的引导员。他发现某个窗口人多就给其他空闲窗口发“优先券”或者“小礼品”吸引大家主动去人少的窗口。这样既保证了每个窗口都有活干大家办事也都很开心模型性能不下降。说真的这两年看着身边一个个搞Java、C、前端、数据、架构的开始卷大模型挺唏嘘的。大家最开始都是写接口、搞Spring Boot、连数据库、配Redis稳稳当当过日子。结果GPT、DeepSeek火了之后整条线上的人都开始有点慌了大家都在想“我是不是要学大模型不然这饭碗还能保多久”我先给出最直接的答案一定要把现有的技术和大模型结合起来而不是抛弃你们现有技术掌握AI能力的Java工程师比纯Java岗要吃香的多。即使现在裁员、降薪、团队解散的比比皆是……但后续的趋势一定是AI应用落地大模型方向才是实现职业升级、提升薪资待遇的绝佳机遇这绝非空谈。数据说话2025年的最后一个月脉脉高聘发布了《2025年度人才迁徙报告》披露了2025年前10个月的招聘市场现状。AI领域的人才需求呈现出极为迫切的“井喷”态势2025年前10个月新发AI岗位量同比增长543%9月单月同比增幅超11倍。同时在薪资方面AI领域也显著领先。其中月薪排名前20的高薪岗位平均月薪均超过6万元而这些席位大部分被AI研发岗占据。与此相对应市场为AI人才支付了显著的溢价算法工程师中专攻AIGC方向的岗位平均薪资较普通算法工程师高出近18%产品经理岗位中AI方向的产品经理薪资也领先约20%。当你意识到“技术AI”是个人突围的最佳路径时整个就业市场的数据也印证了同一个事实AI大模型正成为高薪机会的最大源头。最后我在一线科技企业深耕十二载见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事早已在效率与薪资上形成代际优势我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我整理出这套 AI 大模型突围资料包【允许白嫖】✅从入门到精通的全套视频教程✅AI大模型学习路线图0基础到项目实战仅需90天✅大模型书籍与技术文档PDF✅各大厂大模型面试题目详解✅640套AI大模型报告合集✅大模型入门实战训练这份完整版的大模型 AI 学习和面试资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】①从入门到精通的全套视频教程包含提示词工程、RAG、Agent等技术点② AI大模型学习路线图0基础到项目实战仅需90天全过程AI大模型学习路线③学习电子书籍和技术文档市面上的大模型书籍确实太多了这些是我精选出来的④各大厂大模型面试题目详解⑤640套AI大模型报告合集⑥大模型入门实战训练获取方式有需要的小伙伴可以保存图片到wx扫描二v码免费领取【保证100%免费】
http://www.zskr.cn/news/1340933.html

相关文章:

  • Learn X by doing Y技术架构揭秘:Python与JavaScript完美协作
  • Learn X by doing Y:终极项目式学习搜索引擎完全指南
  • 终极Unity资产提取指南:5分钟学会用AssetRipper解锁游戏资源宝藏
  • Android-shapeLoadingView扩展开发终极指南:如何添加新的形状和动画效果
  • 14402黄大年茶思屋144期第二题基于用户行为与内存冷热管理建模与优化问题
  • Learn X by doing Y未来展望:AI驱动的个性化学习路径规划的终极指南
  • claude code、codex双AI协同高水平论文撰写与质量校准:数据分析→论文初稿→交叉审稿全流程
  • 勒索者反被“抄家“:The Gentlemen组织全量数据泄露与RaaS黑产末日
  • 博德之门3脚本扩展器终极指南:5分钟掌握游戏定制化
  • macchina维护模式下的发展前景:社区驱动项目的未来展望
  • 如何解决黑苹果USB端口识别问题:USBInjectAll.kext完整技术指南
  • 对比直接使用原厂 API 体验 Taotoken 在多模型聚合与路由上的优势
  • TripoSR:如何用0.5秒从单张图片生成高质量3D模型
  • Flux1-dev 轻量级AI推理模型:为有限显存环境打造的高效解决方案
  • 从零搭建Node.js后台系统:连接MySQL、Express与CORS配置详解
  • 大模型的商业化应用:从ToB到ToC的全场景覆盖
  • 2026年京东云OpenClaw/Hermes Agent配置Token Plan新手必看指南
  • 2026年腾讯云OpenClaw/Hermes Agent配置Token Plan新手必看指南
  • 【大模型12步学习路线 · 第12步 · ②代码篇】Qwen3-VL + ColQwen2.5 + Qdrant 多模态 RAG 全栈实战
  • CANN/cannbot-skills Triton算子草图设计
  • CANN/Ascend C:批处理矩阵乘法临时缓冲区大小计算
  • DiffMOT: A Real-time Diffusion-based Multiple Object Tracker with Non-linear Prediction代码详解-2
  • CANN/asc-devkit矩阵计算SetFixSplit
  • Pandora.js与PM2对比分析:哪个更适合你的Node.js应用管理?
  • CANN/ops-tensor矩阵乘Kernel框架
  • 如何5分钟掌握ZeroOmega:浏览器代理智能切换的终极指南
  • 异常处理函数在WebShell免杀中的实战应用:绕过安全检测的终极指南
  • Carnac键盘操作可视化工具:让每个按键都清晰可见的终极方案
  • 【车辆】基于110cc全地形车平台设计的自主无人地面车辆GPS 航路点导航、纯追踪路径跟踪、越野自动驾驶功能附matlab代码
  • qb-web测试策略:Jest单元测试与Vue组件测试最佳实践