懂车帝 AI Agent开发 二面

1. 模型训练里你怎么在全参微调和 LoRA 之间做选择

这个问题我一般不会只从显存够不够来答,而是会结合任务复杂度、分布偏移程度和上线方式来讲。全参微调的优点是表达空间更大,适合任务分布和原模型差异比较大的场景,比如领域知识很重、输出风格和推理路径都要明显改造的时候,它更容易学到深层适配;LoRA 这类 PEFT 方法更适合成本敏感、实验迭代快、模型版本频繁切换的场景,特别是多任务并行或者多租户配置时,管理上会轻很多。

如果任务本质上是在原模型能力基础上做轻量偏移,比如格式约束、领域术语补强、特定工具调用习惯,LoRA 往往就够了。反过来,如果发现训练后模型虽然会答,但深层行为模式改不动,比如推理链路还是旧习惯、拒答风格很顽固、领域事实老是浅层匹配,那我会考虑更激进的微调方式,甚至分阶段做 SFT + 局部全参。真正的选择逻辑不是“哪种先进”,而是“你想改动模型的哪一层能力”。

2. 说一下 LoRA 的原理,以及你还了解哪些 PEFT 方法

LoRA 的核心思路是把原本大的权重更新矩阵拆成两个低秩矩阵的乘积,只训练这两个小矩阵,而冻结原始大权重。这样做的好处是显存和参数更新量都能大幅下降,同时保留原模型主体能力。它本质上是在假设很多任务适配所需要的权重变化,其实落在一个低秩子空间里,不需要把整个参数空间都重新学一遍。

除了 LoRA,我还会提到 Prefix Tuning、Prompt Tuning、P-Tuning v2、Adapter、QLoRA 这些。Prefix Tuning 更像在注意力层前面插一段可训练前缀;Adapter 是在层间插小模块;QLoRA 则是在低比特量化基础上再做 LoRA,进一步压资源。实际工程里,LoRA 和 QLoRA 最常见,因为它们在效果、成本和工程成熟度之间平衡得比较好。

import torch

W = torch.randn(8, 8)
A = torch.randn(8, 2)
B = torch.randn(2, 8)

# LoRA后的等效权重
W_new = W + A @ B
print(W_new.shape)

3. 模型训练过程中的调参思路一般是什么

我调参不会一开始就铺很大搜索空间,那样效率太低。通常会先固定住大方向,比如数据配比、训练目标、模板格式和评测集,再优先调最影响稳定性的参数,像 learning rate、warmup ratio、batch size、max length、梯度裁剪和权重衰减。因为这些参数往往决定模型是不是先能正常学起来,后面再去看更细的超参才有意义。

另一个重点是调参不能只盯 loss。我会把调参拆成三类指标一起看:训练稳定性指标、离线任务指标、生成质量指标。很多模型 loss 下得很漂亮,但生成出来套话变多、格式更脆、工具调用更激进,这种就是目标对齐出了问题。调参本质上不是把曲线调好看,而是让行为往正确方向收敛。

4. 训练里如果用了 GRPO,你怎么理解它和 PPO 这类方法的差异,奖励怎么设

GRPO 可以理解成不依赖显式 value model 的一类相对偏好优化思路,它更多是基于同一问题下多个采样结果之间的相对比较来更新策略,而不是像 PPO 那样强依赖 advantage 估计和 value 网络拟合。这样做的一个好处是训练链路会更简洁,尤其在大模型场景里,少一套 value model 往往意味着更低的复杂度和更少的不稳定因素。

奖励设计上我更倾向做分解式,不会只给一个总分。比如对话或 Agent 场景里,可以把奖励拆成任务完成度、工具路径合理性、结果可验证性、格式合法性和安全性惩罚几部分。因为单一奖励很容易被模型钻空子,尤其只要“答得像”就给高分的话,模型很快就会学出一套讨巧风格,而不是学会真正解决问题。

def reward_fn(done, valid_tool_path, grounded, format_ok, unsafe):
    score = 0.0
    score += 2.0 if done else 0.0
    score += 1.0 if valid_tool_path else -1.0
    score += 1.5 if grounded else -1.5
    score += 0.5 if format_ok else -0.5
    score -= 3.0 if unsafe else 0.0
    return score

5. 你怎么理解 Agent 训练,和普通 SFT 最大区别是什么

普通 SFT 更多是在学“输入到输出”的映射,而 Agent 训练更像是在学“状态到动作”的策略。也就是说,模型不仅要会回答,还要会判断什么时候调用工具、什么时候追问、什么时候停止、什么时候回滚。训练目标从单纯的生成正确文本,变成了在多步交互环境里持续做对决策。

所以 Agent 训练最关键的不是把答案标出来,而是把过程监督做好。比如同一个任务,最终答案一样,但有的轨迹路径很脏、工具调用冗余、状态切换混乱,这种样本如果也被当成正例,模型就会学坏。Agent 的好坏往往不体现在最后一句话,而体现在中间每一步是否合理。

6. 在和用户对话的场景下,你会怎么挖掘用户消费兴趣并推荐产品

这个问题我不会把它答成一个纯推荐系统题,而是按对话 Agent 的方式来讲。核心是先把“挖兴趣”和“做推荐”拆开。前者要做的是动态画像构建,不是等用户明确说“我喜欢什么”,而是从语义偏好、预算敏感度、场景词、反复提到的约束条件里不断更新用户状态;后者则是在这个状态基础上做候选召回、过滤和解释生成。

对话里最麻烦的是兴趣往往不显式,而且会变化。所以我会做短期兴趣和长期兴趣分层。短期兴趣来自当前会话,比如用户最近在问露营装备、防水、轻量化,那当前推荐就应该偏户外;长期兴趣则来自历史偏好,比如一直偏高性价比或者偏品牌导向。系统层面最好把兴趣抽成结构化槽位,再驱动召回和排序,而不是每次全靠大模型现猜。

user_profile = {
    "short_term": ["露营", "轻量化", "防水"],
    "lon

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

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

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

全部评论

相关推荐

很多实习生入职第一周,最怕的事就是跟mt或者ld说话。总觉得人家是大佬,自己是个小白,生怕问出什么低级问题显得自己不专业。于是,宁愿对着代码里一个看不懂的逻辑死磕一下午,或者为了请个假在对话框里删删改改半小时,最后把自己憋成了一座“孤岛”。其实,这种“闷头干”才是实习生最大的误区。想在部门里快速“抢跑”,最核心的小技巧就一条:只要他们有空,多去跟你的mt或ld“套近乎”。别误会,这不是让你去拍马屁,而是高效的资源对齐。技术上的逻辑点,你钻研三天可能不如导师点拨三分钟;业务上的弯弯绕绕,mt随口提一句背后的背景,能让你少写多少无用功?更重要的是,交流不仅是为了解决问题,更是为了刷“存在感”和“好感度”。平时不管是技术方案的疑惑,还是业务流程的生疏,甚至是想请个假、问问公司食堂哪家好,只要看准他们手头活儿不忙的空档,大胆走过去聊几句。这种非正式的交流,能让你迅速摸清部门的人际脉络和职场潜规则。在mt眼里,一个爱问问题、主动沟通的实习生,远比一个整天戴着耳机、半天没动静的实习生更靠谱。哪怕你问的问题很基础,只要你有思考,他们通常是很愿意分享的——毕竟,谁不喜欢带一个聪明又主动的徒弟呢?所以,收起那点多余的“社交恐惧”。记住,你手里的键盘只是工具,你身后的mt和ld才是你实习期最大的“外挂”。多问几句,业务熟得快,转正的机率也会大一些。
实习生的生存小技巧
点赞 评论 收藏
分享
牛客62533758...:华为不卡双非,而是卡院校hhhh
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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