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

查看11道真题和解析