AI Agent常考面试题汇总- LoRA篇

1. 什么是 LoRA?

LoRA 全称是 Low-Rank Adaptation,核心思想是在微调大模型时不直接更新原始大权重矩阵,而是冻结预训练权重,只额外学习两个低秩矩阵,用这两个小矩阵的乘积去近似原权重的增量。

原来如果某层权重是:

W ∈ R^(d×k)

LoRA 不直接学习 ΔW 的完整矩阵,而是写成:

ΔW = B A
A ∈ R^(r×k), B ∈ R^(d×r), 且 r << min(d, k)

最终前向变成:

h = W x + ΔW x = W x + B A x

这样训练参数量会大幅下降。

2. LoRA 的思路是什么?

LoRA 的基本假设是:大模型在迁移到下游任务时,权重更新虽然看起来维度很高,但真正有效的更新空间往往是低秩的。也就是说,不需要对整个大矩阵做自由更新,只需要在一个低维子空间里学习变化,就足够适配任务。

所以它的思路就是:

  • 冻结原模型参数
  • 在指定线性层旁边插入低秩分支
  • 只训练低秩矩阵
  • 推理时可选择合并回原权重,也可以不合并

3. LoRA 的特点是什么?

LoRA 的主要特点有这些:

  • 训练参数少,显存占用明显低于全参数微调
  • 原模型参数冻结,训练更稳定
  • 易于在多个任务之间切换,只需要切换 LoRA adapter
  • 可以与量化结合,形成 QLoRA
  • 推理时可以把 LoRA 权重合并进原模型,不额外增加推理结构复杂度

但它也有局限:

  • 表达能力受 rank 限制
  • 对某些复杂任务不一定能完全达到全参微调效果
  • 插入位置、rank、alpha 对效果影响很大

4. 简单描述一下 LoRA

可以把 LoRA 理解成:不给大模型“动大手术”,只给它外挂一个很小的“修正模块”

训练时不改原模型的大矩阵,只让这个修正模块学习任务相关的信息。这个修正模块本质上就是两个低秩矩阵,最后叠加到原线性层输出上。

5. QLoRA 的思路是怎么样的?

QLoRA 可以理解为:量化后的 LoRA 微调。它不是只做 LoRA,而是把基础模型先量化到 4bit,再在量化模型上挂 LoRA adapter 进行训练。

核心思路是:

  • 预训练模型权重量化到 4bit,减少显存占用
  • 前向和反向时通过反量化参与计算
  • 冻结量化后的基础模型
  • 只训练 LoRA 参数
  • 配合分页优化器、NF4、Double Quantization 进一步省显存

所以 QLoRA 的关键不是“LoRA 更强”,而是“让大模型在单卡/小显存环境下也能微调”。

6. QLoRA 的特点是什么?

QLoRA 的特点一般会从下面几个方面说:

  • 显存占用更低,可以在更小的 GPU 上训练更大的模型
  • 基础模型是低比特存储,LoRA 参数仍然是可训练高精度参数
  • 基本保留了 LoRA 的训练效率
  • 通常采用 4bit NF4 量化,兼顾压缩率和效果
  • 常用于 7B、13B、33B、65B 这类大模型的低成本微调

不过 QLoRA 的训练吞吐不一定比 LoRA 更快,因为量化/反量化本身也有额外开销,它主要优化的是显存,不一定总是优化时间。

7. AdaLoRA 的思路是怎么样的?

AdaLoRA 是在 LoRA 基础上做自适应 rank 分配。普通 LoRA 通常给所有层分配同样的 rank,但不同层对任务的重要性不一样,统一 rank 可能不够高效。

AdaLoRA 的核心思路是:

  • 总预算固定
  • 训练过程中动态评估各层的重要性
  • 更重要的层分配更高 rank
  • 不重要的层减少 rank
  • 最终实现参数预算下更优的分配

也就是说,它不再默认“每层都一样重要”,而是让 rank 成为动态资源。

8. LoRA 权重是否可以合入原模型?

可以。LoRA 的增量是:

ΔW = B A

如果原权重是 W,那么合并后就是:

W' = W + ΔW

合并后推理时就不需要额外保留 LoRA 分支了,和普通全参模型一样直接前向。

优点是:

  • 推理图更简单
  • 部署更方便
  • 不增加额外 forward 分支

缺点是:

  • 合并后失去灵活切换多个 adapter 的能力
  • 如果原模型是量化权重,合并操作需要注意精度和实现方式

9. ChatGLM-6B LoRA 后的权重多大?

这个问题没有固定唯一值,要看:

  • rank 取多少
  • 注入哪些模块
  • 是否只注入 attention
  • 是否注入 MLP
  • 保存的是纯 adapter 还是合并后的完整模型

一般来说,LoRA 只保存 adapter 权重时会远小于原模型,通常是几十 MB 到几百 MB 量级,而不是和原模型一样大。如果保存的是 merge 后完整模型,那大小接近原模型。

10. LoRA 微调优点是什么?

LoRA 的优点主要是:

  • 参数效率高,只训练少量参数
  • 显存占用低
  • 训练成本低
  • 适合多任务快速切换
  • 不破坏原始模型参数
  • 可以和量化、梯度检查点等技术结合

面试里常见一句话总结:

LoRA 用很小的可训练参数代价,换来了接近全参微调的效果。

11. L

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

AI-Agent面试实战专栏 文章被收录于专栏

本专栏聚焦 AI-Agent 面试高频考点,内容来自真实面试与项目实践。系统覆盖大模型基础、Prompt工程、RAG、Agent架构、工具调用、多Agent协作、记忆机制、评测、安全与部署优化等核心模块。以“原理+场景+实战”为主线,提供高频题解析、标准答题思路与工程落地方法,帮助你高效查漏补缺.

全部评论
可以的,总结的很好
点赞 回复 分享
发布于 昨天 23:35 北京

相关推荐

04-22 15:23
南昌大学 Java
程序员小白条:尽量别纯复制大家都一样的亮点部分,最好还是得有特点可以思考下优化和实验的量化具体效果
我的求职进度条
点赞 评论 收藏
分享
昨天 17:30
门头沟学院 Java
继续来分享下最近的面经~欢迎友好讨论,信息共享1.&nbsp;你有没有接触过自动化测试?了解哪些测试框架(Python&nbsp;或其他语言)?2.&nbsp;你在A公司做的&nbsp;AI&nbsp;平台整体是干什么的?3.&nbsp;你说的孤儿资源清理具体是怎么实现的?4.&nbsp;你是怎么判断一个资源是孤儿资源的?5.&nbsp;这个过程是基于全量扫描,还是事件驱动?具体怎么做的?6.&nbsp;Watch&nbsp;和数据库同步这一套是怎么设计的?有没有一致性问题?7.&nbsp;你的事件处理链路是怎样的?有没有用&nbsp;Kafka?为什么用&nbsp;/&nbsp;不用?8.&nbsp;你在B公司做的&nbsp;Agent&nbsp;核心是做什么的?解决了什么问题?9.&nbsp;这个&nbsp;Agent&nbsp;实际是在部署什么?是服务、脚本还是其他东西?10.&nbsp;Agent&nbsp;是中心化部署还是每台机器一个?为什么这么设计?11.&nbsp;Agent&nbsp;和&nbsp;Jenkins&nbsp;的关系是什么?谁负责调度,谁负责执行?12.&nbsp;Agent&nbsp;的所有动作是不是最终都是通过&nbsp;Jenkins&nbsp;来执行的?13.&nbsp;Jenkins&nbsp;执行完之后,怎么和&nbsp;Agent&nbsp;做状态同步或结果回传?14.&nbsp;既然&nbsp;Jenkins&nbsp;本身就能做自动化,为什么还要做一个&nbsp;Agent?15.&nbsp;用户在&nbsp;Jenkins&nbsp;上最容易填错哪些参数?为什么?16.&nbsp;能不能完全不让用户填参数,让系统自动完成?为什么做不到?17.&nbsp;如果&nbsp;Jenkins&nbsp;已经可以完成这些事情,引入&nbsp;Agent&nbsp;/&nbsp;AI&nbsp;的价值在哪里?18.&nbsp;如果让你设计一个自动拉日志的&nbsp;Agent,你整体流程是怎样的?19.&nbsp;有3台Linux机器,日志路径不统一,而且是二进制日志,需要解析,你怎么设计?20.&nbsp;IP/Port&nbsp;固定,但&nbsp;SSH&nbsp;密码会随软件版本变化,这个你怎么处理?21.&nbsp;不同业务的人要不同日志路径,你怎么做管理?22.&nbsp;用户不愿意维护配置表,你怎么让用户输入,同时系统自动沉淀规则?23.&nbsp;日志解析涉及不同格式、工具、版本,这一块怎么设计?24.&nbsp;如果这个&nbsp;Agent&nbsp;要扩展到自动检测、排障、自动化能力,架构怎么演进?25.&nbsp;在完全没有规范流程、系统很混乱的情况下,你怎么落地这个&nbsp;Agent?手撕:第二大的数字,不能用既有函数。
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务