飞猪 大模型算法 一面

1. 介绍一下你做过的一个项目

2. 打分模型设计思路是什么

打分模型本质上是在多个候选里做排序,重点不是绝对分值,而是相对顺序。设计时先要明确标签来源,如果是检索系统里的重排,一般可以来自人工相关性标注、点击日志、停留时长、复制行为、是否继续追问等;如果是生成答案质量打分,还会加入事实一致性、格式完整性、引用正确性这些目标。特征上通常会混合语义特征和业务特征,比如 query 向量、doc 向量、交叉编码器打分、文档时效性、来源可信度、标题匹配度。

训练时常见有 pointwise、pairwise、listwise 三种。pointwise 简单,适合做基础版本;pairwise 更符合排序本质,像“这个文档比那个更相关”;listwise 更贴近真实线上排序目标。线上落地时,很多模型离线分高但效果一般,问题往往不是模型结构,而是样本偏差和负样本太容易。真正有区分度的打分模型,通常都依赖 hard negative 和合理的曝光校正。

import torch
import torch.nn.functional as F

def pairwise_rank_loss(pos_score, neg_score, margin=0.2):
    return F.relu(margin - pos_score + neg_score).mean()

3. QLoRA 和 LoRA 的区别是什么,LoRA 的原理是什么

LoRA 的核心是低秩适配。原始大模型权重 (W) 不动,只训练一个低秩增量 (\Delta W = BA),其中 (B) 和 (A) 的秩远小于原矩阵维度。这样下游微调时,不需要更新整套参数,显存、优化器状态和存储成本都会下降很多。公式通常写成:

这里 (r) 是低秩维度,(\alpha) 是缩放系数。

QLoRA 比 LoRA 更进一步。LoRA 只是冻结原模型参数,QLoRA 还会把基座模型权重量化到 4bit 存储,训练时只更新 LoRA 参数。这样一个原本显存根本放不下的模型,也能在比较有限的 GPU 资源上做微调。代价是量化后对数值精度会有一定影响,而且有些任务对底层分布特别敏感时,QLoRA 的效果上限可能会比全精度 LoRA 略低。

import torch
import torch.nn as nn

class LoRALinear(nn.Module):
    def __init__(self, in_features, out_features, r=8, alpha=16):
        super().__init__()
        self.weight = nn.Parameter(torch.randn(out_features, in_features))
        self.weight.requires_grad = False
        self.A = nn.Parameter(torch.randn(r, in_features) * 0.02)
        self.B = nn.Parameter(torch.zeros(out_features, r))
        self.scale = alpha / r

    def forward(self, x):
        delta = self.B @ self.A
        return x @ (self.weight + self.scale * delta).t()

4. RAG 如果检索到的回答有误读,如何快速处理

误读通常不是一个单点问题,可能出在 query 理解、chunk 切分、召回排序、上下文拼接或者生成阶段。线上要快,优先做的是“止损”和“回退”。最常见的做法是先加一个 lightweight consistency check,检查答案中的关键实体、时间、数值、结论是否真的在证据片段里出现过。如果没有,就不直接把生成结果返回,而是触发重检索或者降级成“基于以下资料,我无法确认”。

如果要快速修,先看几类高频错因。第一类是 chunk 切太碎,导致引用片段缺前置条件;第二类是召回到相似但不适用的文档,比如旧版本政策、错年级教材、错地区规则;第三类是模型把多个证据拼成一个看似合理但实际错误的结论。修法一般是加 metadata filter、缩短生成窗口、做 evidence rerank、限制生成必须引用证据 span,而不是单纯继续堆 prompt。RAG 稳定性的关键不是“多检几段”,而是减少无效证据进入生成阶段。

5. DPO 和 PPO 的区别是什么

PPO 是强化学习方法,完整链路通常包括策略模型、参考模型、奖励模型和 value/critic。它的思路是先用奖励模型给生成结果打分,再根据策略梯度去更新模型,同时用裁剪和 KL 惩罚避免策略变化过大。优点是灵活,什么奖励都能接;缺点是训练链长、成本高、调参难。

DPO 不显式训练奖励模型再跑 RL,而是直接用偏好对做优化。对于同一个 prompt 下的 chosen 和 rejected,DPO 直接提升 chosen 相对 rejected 的概率,并用参考模型当锚点。它的一个常见形式是:

所以本质上,PPO 是“奖励驱动的 RL 优化”,DPO 是“偏好对驱动的直接优化”。如果偏好数据质量比较高,DPO 往往更省事、更稳。

6. GRPO 和 PPO 的区别是什么,你觉得 GRPO 这种方式带来了什么启发

PPO 更偏经典策略优化,会显式估计 advantage,

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

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

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

全部评论

相关推荐

继续来分享下之前的面经~强度好大,俺不中咧。。。。1.实习中多智能体系统包含几个智能体?它们之间如何交互?2.意图识别模型需要识别多少个意图?3.750B 模型用于什么场景?4.实习中 Qwen3VL 模型是多少 B 的?用于什么场景?5.在实习中,你主要的贡献是什么?6.检索环节做了哪些优化?7.答案生成环节做了哪些优化?8.是否做了 SFT 或强化学习相关工作?在哪个环节做的?9.SFT 过程中是否对类别标签做了清洗或修正?10.强化学习的样本量是多少?11.基础模型经常分类分不准的案例有哪些?12.在校项目中,为什么用对话数据来增强数据集?13.在校项目任务的输出可以简单描述并举例吗?14.单智能体能否完成在校项目相关工作?为什么要使用多智能体?15.LangGraph 相对其他开源智能体编排工具的优点是什么?16.在现有场景中是否需要用到 LangGraph 的状态管理功能?17.如何理解 Long-term Memory 的实现方式?18.若将电商场景中用户的购买、点击、兴趣等信息设计为长期记忆,有什么想法?19.Context Window 能否储存大量电商交互信息?如何解决存储问题?20.推理时若将大量 Memory 以 Token 形式给到大模型,Token 长度过长该如何处理?21.强化学习有哪些常用技巧?22.若通过 SFT 进一步提升模型准确率,常用的手段有哪些?23.SFT 的理想数据量是多少?如何确定?24.SFT 数据分布一般怎么取?为什么选择该分布而非其他分布?
点赞 评论 收藏
分享
查看11道真题和解析
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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