banner
NEWS LETTER

大模型应用岗位问答手册

Scroll down

一、LoRA + SFT 微调相关

【必考】


Q1. 你能简述一下 LoRA 微调的核心原理吗?

详细解读:
LoRA(Low-Rank Adaptation)是一种针对大型神经网络微调的参数高效方法。它的核心思想是,假设微调过程中的权重变化矩阵可以被近似为低秩矩阵的乘积,即:

$$\Delta W = BA, \quad B \in \mathbb{R}^{d \times r}, A \in \mathbb{R}^{r \times k}$$

这里$r$(rank)远小于$d$和$k$,大幅减少了训练参数。训练时,只更新$B$和$A$,而保持原权重$W_0$冻结,最终模型权重为:$W_{adapted} = W_0 + BA$

这种设计不仅降低了训练时显存和计算需求,而且避免了大规模参数更新可能导致的过拟合。LoRA特别适合大模型微调,尤其是在算力有限和数据量有限的科研应用场景。


面试官可能追问细节:

  • 为什么微调的权重变化可以用低秩矩阵近似?
    微调过程中,大模型的参数调整多集中在某些关键方向,整体权重变化空间维度远小于参数矩阵维度,因此低秩分解是合理近似。

  • LoRA如何影响模型推理效率?
    LoRA权重可在推理时动态叠加或预先合并,不增加推理计算复杂度。

  • rank选取有什么指导原则?
    一般从4或8开始尝试,平衡训练效果和显存消耗。rank过小可能欠拟合,过大则资源消耗高。

  • LoRA与传统微调相比有哪些优势和限制?
    优势是显存占用低、训练快,适合资源受限场景。限制是可能无法捕捉极其复杂的任务需求。


Q2. SFT(监督微调)与 LoRA 的关系是什么?

详细解读:
SFT是“监督微调”的简称,指在标注的任务特定数据上对预训练模型进行微调,提升模型在该任务上的表现。SFT通常更新模型大部分或全部参数。

LoRA是实现SFT的一种高效技术手段。通过引入低秩矩阵微调方式,LoRA只训练极少量参数,避免了传统SFT中的巨量参数更新与显存瓶颈。二者结合后,既能利用SFT的有监督优势,又保证训练资源效率,适合大模型的科学任务定制。


面试官可能追问细节:

  • SFT中常用的损失函数有哪些?
    交叉熵损失(对分类/生成任务),有时还结合KL散度或序列标注损失。

  • LoRA训练时,原模型参数为什么要冻结?
    冻结保证原模型能力不丢失,同时减少训练负担。

  • 有没有其他高效微调方法?
    Adapter、Prefix Tuning、Prompt Tuning、BitFit等。

  • SFT和RLHF有什么区别?
    SFT用监督数据微调,RLHF结合人类反馈进行强化学习。


Q3. 你在项目中如何使用LoRA?具体数据准备流程是怎样的?

详细解读:

  • 数据准备
    将化学反应路径数据和分子动力学模拟结果,转化成结构化的自然语言描述,形成{instruction, input, output}格式,如:“请预测分子 Mo3O9 在反应体系中的持续时间”。

  • 模型准备
    选用开源预训练大模型(如Llama、Falcon),加载权重。

  • LoRA配置
    指定目标注入层(通常是attention模块的query/key/value层),设置rank、alpha。

  • 训练
    使用混合精度训练,梯度累积,进行LoRA参数微调,冻结原权重。

  • 评估
    在验证集上监控准确率、损失,避免过拟合。

  • 推理
    加载基础模型和LoRA权重,合并后进行推理。


面试官可能追问细节:

  • 训练数据中如何保证多样性和代表性?
    结合不同反应路径和时间点,采样平衡,避免数据偏倚。

  • 训练优化器和学习率如何选?
    通常使用AdamW,学习率在1e-4到5e-5间调整。

  • 如何监控微调过程中的过拟合?
    观察验证集损失和准确率,采用早停和正则化。

  • 有没有考虑数据增强?
    通过同义词替换、语序变化等提升数据丰富性。


二、RAG(LangChain)相关

【必考】


Q4. 什么是RAG?为什么它可以提高模型的知识时效性和准确性?

详细解读:
RAG是一种将检索系统与生成模型结合的框架。它的优势在于:

  • 通过对外部知识库进行实时检索,补充生成模型内部训练时未覆盖或过时的信息。

  • 检索到的相关文档作为上下文输入,增强生成时的事实依据,降低“幻觉”风险。

  • 允许知识库动态更新,适应新兴领域或快速变化的科学知识。

RAG的流程是:用户问题 → 向量化 → 向量检索 → 获取Top-k文档 → 拼接Prompt → LLM生成回答


面试官可能追问细节:

  • 如何构建高质量的向量索引?
    精心设计文本切分策略,使用强大Embedding模型,并维护索引更新。

  • RAG如何避免检索到无关文档?
    使用重排序模型(Cross Encoder),设计严格相似度阈值。

  • 检索文档数量如何确定?
    根据上下文窗口限制和召回效果折中。

  • RAG适合所有任务吗?
    不适合纯语言生成的开放式任务,更适合有明确知识需求的场景。


Q5. 你在项目中是如何用LangChain实现RAG的?

详细解读:

  • 准备知识库,将科学文档按语义完整性拆分成chunk。

  • 通过embedding模型(如Instructor-xl)向量化chunk,存入FAISS。

  • 使用LangChain的RetrievalQA接口,封装检索和生成逻辑。

  • 定制Prompt模板,将检索内容格式化后注入模型上下文。

  • 实现接口层(API),支持多轮对话和上下文记忆。


面试官可能追问细节:

  • LangChain如何支持多种检索器组合?
    支持MultiRetriever,融合BM25、FAISS等多种检索方式。

  • 你如何调优Prompt模板?
    通过实验不断调整检索内容长度、指令词、格式结构。

  • 检索响应时间如何优化?
    预缓存查询结果,缩短向量检索时间,使用并行计算。


三、LoRA + SFT 与 RAG 的对比与应用


Q6. 在你的项目中,如何权衡LoRA微调与RAG的使用?

详细解读:

  • LoRA+SFT适合固定任务场景,模型具有强大结构化理解能力,生成连贯准确,但知识更新需要再训练。

  • RAG适合知识更新频繁或知识库庞大的场景,能灵活引入外部信息,减轻模型记忆压力。

  • 结合使用可以先用LoRA微调模型基础能力,再通过RAG提升最新知识补充,实现更稳健的科学推理。


面试官可能追问细节:

  • 如何设计混合系统的推理流程?
    先模型生成草案,再用检索结果验证并修正输出。

  • RAG和LoRA是否有冲突?
    无冲突,属于互补。

  • 模型部署时如何平衡效率和准确性?
    通过缓存策略和异步检索减少响应时间。

你知道什么是量化吗?
答:量化就是把模型的权重从高精度浮点数压缩到低精度整数,比如从 FP16 压到 INT8 或 INT4,这样模型的体积会缩小一半甚至四分之一,推理也更快
我用过 Ollama 的 q4/q8 量化模型,本地 GPU 就能跑几十亿参数的 LLM。量化的优势是显存和延迟降低,但也需要关注精度损失问题

Support me with a coffee?

其他文章
目录导航 置顶
  1. 1. 一、LoRA + SFT 微调相关
    1. 1.1. 【必考】
    2. 1.2. Q1. 你能简述一下 LoRA 微调的核心原理吗?
    3. 1.3. Q2. SFT(监督微调)与 LoRA 的关系是什么?
    4. 1.4. Q3. 你在项目中如何使用LoRA?具体数据准备流程是怎样的?
  2. 2. 二、RAG(LangChain)相关
    1. 2.1. 【必考】
    2. 2.2. Q4. 什么是RAG?为什么它可以提高模型的知识时效性和准确性?
    3. 2.3. Q5. 你在项目中是如何用LangChain实现RAG的?
  3. 3. 三、LoRA + SFT 与 RAG 的对比与应用
    1. 3.1. Q6. 在你的项目中,如何权衡LoRA微调与RAG的使用?