项目面试题:通用基础与个人问题

大模型项目通用基础与个人问题面试题,覆盖 Function Calling、MCP、LangGraph、LoRA、vLLM、机器学习基础与个人问题,附参考答案

大模型项目通用基础与个人问题面试题。点击折叠区查看答案。

四、通用基础与个人问题

1:Transformer 的整体架构是什么?

查看答案
Transformer就是编码器加解码器,核心是自注意力机制,不用像RNN那样一步步算,能并行处理还能抓住长距离关系。编码器提取特征,解码器生成结果,中间靠交叉注意力连起来。

2:Function Calling 的原理是什么?

查看答案
工具 Schema 随请求发给模型,模型输出 JSON 指明调哪个函数、参数是什么——模型只生成意图不执行;

3:MCP 和 Function Calling(函数调用)有什么区别和联系?

查看答案
  • Function Calling:大模型输出结构化的调用指令
  • MCP:通信协议,提供标准的工具供模型调用

4:LangChain 和 LangGraph 的区别?

查看答案
  • LangChain:LangChain 是一个用于构建大语言模型应用的开源编排框架,通过模块化组件和链式调用将 LLM 与外部数据、工具及业务逻辑无缝集成。

本质是组件库——六大组件,适合线性链。两种版本:经典版(v0.1,面试八股)→ 现代版(v0.2+/LCEL 时代,见下表)

组件 中文名 经典版(v0.1) 职责
Model I/O 模型输入输出 Models + Prompts 模型抽象、Prompt 模板、输出解析
Retrieval 检索 Indexes 文档加载器、文本分割、向量库、检索器
Chains 链 Chains 链式编排(旧 LLMChain 类 → 现 LCEL)
Agents 智能体 Agents 动态决策调用工具
Memory 记忆 Memory 跨轮次保存对话状态
Callbacks 回调 无(新晋一等公民) 日志、追踪、流式输出

演进要点:Indexes → Retrieval(强调检索编排而非存储结构);Models + Prompts → Model I/O(贴合 LCEL 管道);Callbacks 升一等公民(生产可观测性)。生态已拆分:LangChain Core(基础抽象)/ LangGraph(Agent 已迁移,弃用 AgentExecutor)/ LangSmith(追踪评估)。面试背经典版,开发看现代版,别执着“6”这个数字。

  • LangGraph:编排框架——有"循环 + 分支 + 状态",适合复杂流程,StateGraph 状态图、节点函数、条件边、Checkpointer 持久化。状态在节点间流转,支持中断恢复和人机协同。

5:LangChain、LangGraph、Dify 怎么选?

查看答案
轻量问答用 LangChain;复杂多步、要可控状态就用 LangGraph;非工程团队想快速上线就用 Dify。

6:介绍一下 LoRA、QLoRA 微调的原理和参数?

查看答案

核心是冻结预训练模型权重,在 Transformer 的线性层注入可训练的低秩分解矩阵,只训练这个小矩阵。训练后再合并回原权重 或者 通过适配器外挂。

LoRA (低秩自适应微调),预训练模型在适应特定任务时,权重更新量( ΔWΔW )具有“低秩”特性

QLoRA 在 LoRA 基础上引入高精度量化(4bit 量化)、双重量化、分页优化器 优化降低显存。

关键参数有 rank(r)、alpha、dropout,通常微调注意力层的 q_proj、v_proj 等线性层。

  • Rank (r):低秩矩阵的维度,决定可训练参数量和信息容量。r 越大,模型表达能力越强但显存占用越高;通常取 8~64。
  • Alpha (α):缩放系数,控制 LoRA 权重对基座模型的影响强度。实际生效的缩放因子为 α / r,增大 α 等效于提高 LoRA 的学习率或贡献度。

经验法则:一般设 α = r 或 α = 2r,保持训练稳定性。

7:怎么判断模型过拟合或者灾难性遗忘?

查看答案
  • 过拟合看验证集 Loss:训练 Loss 降但验证 Loss 升即过拟合;也可拿无关问题测,若模型只会用训练数据的格式回答一切,也是过拟合
  • 灾难性遗忘看通用任务:微调后问原本擅长的通用问题,质量断崖下跌就是遗忘了

LoRA本身很大程度缓解灾难性遗忘,rank不要设置太大,防止灾难遗忘和过拟合

8:为什么不用 DeepSpeed?为什么不全量微调?

查看答案
  • 4090 单卡完全够用了
  • 全量微调 7B 要几十 GB 显存、成本高且易灾难性遗忘
  • LoRA 只训不到 1% 参数,一张 4090 三小时训完,效果够用,还能按任务热插拔

9:能说一下 DeepSpeed 之中 Zero 1、2、3 的区别和用途吗?

查看答案

先说结论:我的项目(单卡 4090 + LoRA 微调 Qwen3-8B)不需要 DeepSpeed。 LoRA + Gradient Checkpointing 单卡即可跑通 8B 模型,引入 DeepSpeed 属于过度设计。

三者的本质区别是切分什么,切得越多越省显存、但通信开销越大:1→2→3 越来越慢,显存越来越小。

Stage 切分对象 显存节省 通信开销 适用场景
ZeRO-1 优化器状态 ~4x 几乎不变 模型放得下、想省优化器显存
ZeRO-2 优化器 + 梯度 ~8x 少量增加 LoRA 多卡首选
ZeRO-3 优化器 + 梯度 + 参数 ~N卡倍 显著增加 全量微调、模型单卡放不下
  • ZeRO-1(优化器状态分片):仅切分 Optimizer States,通信开销最低
  • ZeRO-2(+梯度分片):平衡显存与性能,中等规模模型训练的默认推荐
  • ZeRO-3(+参数分片):显存节省最大,可训练远超单卡显存的超大模型,但通信开销最高、训练速度最慢

决策口诀:

  1. 单卡 → 不用 DeepSpeed(GC + LoRA 够了)
  2. 多卡 + LoRA → ZeRO-2(LoRA 冻结了基座权重,可训练参数极少,ZeRO-3 切参数收益小还引入通信开销)
  3. 多卡 + 全量微调 → 先试 ZeRO-2,OOM 了再上 ZeRO-3(吞吐会降 20~40%)
  4. 模型大到单卡连推理都放不下(如 70B)→ ZeRO-3 + offload(CPU/NVMe 卸载)

一句话:ZeRO 不是越高级越好,是显存不够时的逐级妥协。GC + LoRA 在单卡下就是最优解。

10:vLLM 为什么快?

查看答案

分页注意力,GPU连续处理

核心就两点:PagedAttention(分页注意力)分页管理KV缓存,让GPU连续批处理,实现高并发下低延迟推理。

11:vLLM 的前缀缓存是怎么实现的?

查看答案
是的。vLLM的前缀缓存依赖PagedAttention的分页结构,通过哈希匹配相同前缀的KV页并共享引用,避免重复计算。没有分页机制,就难以高效实现块级复用与管理。

12:TensorRT、SGLang 和 vLLM 怎么选?

查看答案
  • TensorRT-LLM:追求极致性能和硬件利用率,且硬件是 NVIDIA GPU
  • vLLM:追求生产级稳定性、通用性,希望快速上线
  • SGLang:业务涉及复杂的多轮对话、AI Agent、需要频繁输出结构化数据

13:FP32、FP16、BF16、INT8、INT4 分别是什么?

查看答案

它们是数据精度格式:

  • 浮点:FP32/FP16、BF16
  • 整型量化:INT8/INT4

精度依次降低,显存占用减少,推理加速,但可能损失模型效果。

14:模型记忆层的 Q、K、V 分别是什么?

查看答案
q、k、v 是注意力机制中的查询、键、值向量。q 代表当前 token 的提问,k 是其他 token 的索引标签,v 是实际内容。通过 q 与 k 的点积计算相关性权重,再对 v 加权聚合,实现上下文信息提取。

15:幻觉有哪些不同类型?

查看答案
  • 事实性幻觉:和事实对不上
  • 逻辑幻觉:逻辑不对
  • 上下文幻觉:和之前聊的不一样
  • 总结:根本就是在瞎猜

16:为什么 LLM 会产生幻觉?

查看答案
概率预测器,没有高概率的正确依据,就会强行拼凑出来看似合理但实际是错误的内容。

17:CoT、ToT 区别?

查看答案
  • CoT:思维链,让模型一步步推导到答案
  • ToT:思维树,探索多条推理路径,能评估、回溯,找出最优解

18:提示词(Prompt)优化一般有哪些策略?

查看答案
明确任务、提供示例、分步引导、限定格式与角色,迭代测试反馈,持续提升模型输出质量与准确性。

19:什么场景调低温度?什么场景调高温度?

查看答案

温度(temperature)是模型生成的多样性指数

  • 低温:适合分类、代码、JSON 等要稳定的任务
  • 高温:适合创作发散

本项目意图分类用 0.1 低温,保证策略选择可复现;生成答案用较高温度(走 API 默认值、一般约 0.7 左右),回复更自然。

20:Embedding 怎么选?

查看答案
  • BGE-M3:双向量(稠密固定 1024 维)
  • BGE-Large:单向量
  • Qwen-Embedding:高精度,显存高

21:用的什么 embedding 模型?

查看答案
  • RAG 混合检索:BGE-M3
  • Neo4j 稠密:bge-large-zh-v1.5

22:向量带箭头的和不带箭头的区别?

查看答案
带箭头表示向量,有大小和方向;不带箭头通常指标量,只有大小。

23:了解哪些机器学习算法?详细讲一下项目中的随机森林

查看答案
KNN、线性回归、逻辑回归、随机森林、决策树。

24:讲讲 F1、精确率、准确率、召回率?

查看答案
  • 准确率(Accuracy):预测对了多少,最直观
  • 精确率(Precision):预测成正类的样本里,有多少是真的正类
  • 召回率(Recall):真实正类里,有多少被模型找出来了
  • F1-score:精确率和召回率的折中指标 (调和平均值)

25:这三个项目里,你觉得挑战最大的是哪个?

查看答案
RAG 吧,这个主要是靠内容生成内容,输入输出都有不确定,要不断地优化到你理想的答案。

26:你平时怎么用 AI 编程工具?

查看答案
  • AI 写代码,我 review
  • 开发后让 AI 写测试
  • 设计决策问题:先出方案,合理继续;不确定的让它测试出结果再实施
  • bug、报错就一键复制,啥也不管
  • 复杂代码让他读,给我注释、解释、流程图

其他的我都不咋用,唯一用的就是 concise-company,简单回答,默认回答太长了。

27:说说你的优点和缺点?

查看答案
  • 优点:快速学习
  • 缺点:不会拒绝人,已经在改了,有效沟通

28:公司一共有多少人;技术部门有多少人;产品是否上线;公司在什么位置;你住哪;平时怎么上班;

查看答案
(个人信息类问题,面试前自行准备)