Datawhale 07月24日 23:28
超全解析!大模型面试宝典60题
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文作者牧小熊系统梳理了大模型领域常见的面试题,并结合《图解大模型》一书提供了自己的解答。文章旨在帮助大家更好地理解大模型的基本原理,弥补实战经验与理论知识间的差距,同时也为有面试需求的朋友提供针对性复习材料。内容涵盖了模型架构、自注意力机制、上下文长度、分词器、词嵌入、注意力计算、模型优化、位置编码、零样本学习、预训练策略、嵌入模型应用、主题建模、参数设置、提示词工程、智能体设计、RAG技术、多模态模型、向量检索、损失函数、模型蒸馏等多个核心技术点,旨在提供一个全面深入的大模型知识框架。

💡 **模型架构与核心机制解析**:文章详细对比了仅编码器(BERT类)、仅解码器(GPT类)和完整编码器-解码器架构的优缺点。重点阐述了自注意力机制如何通过全局信息聚合实现长距离依赖捕捉,并与RNN的串行传播机制形成鲜明对比,强调了其并行计算的优势。同时,解释了大模型上下文长度的概念及其与模型计算复杂度(O(n^2))的关系,以及为何总长度包含输入和已生成token。

🗂️ **分词、嵌入与注意力机制的深入探讨**:对于分词器,文章区分了大模型分词与传统中文分词的侧重点,指出大模型分词是为满足模型输入形式,且在固定词表下具有唯一性。在词嵌入方面,对比了静态词嵌入(如word2vec)与大模型上下文相关嵌入的异同,并解释了word2vec中“king-man+woman≈queen”现象的向量空间语义关系,以及大模型中类似结构关系在多层Transformer后的变化。注意力机制的计算过程被分解为相似度计算、权重归一化和上下文生成三步,并说明了多头注意力的作用是捕捉不同子空间的关联模式。

⚙️ **模型优化与训练策略**:文章探讨了如何通过修改注意力层参数来让模型“忘记”特定知识,并解释了多头注意力、多查询注意力(MQA)和分组查询注意力(GQA)的区别及其优化阶段。Flash Attention的推理速度提升被归因于内存访问优化和减少重复计算,通过增量计算softmax实现。RoPE(旋转位置嵌入)的优点在于编码相对位置和长上下文外推能力,但也面临位置过大导致表示混乱的挑战。

📚 **下游任务与应用场景**:在下游应用方面,文章讨论了零样本分类在标注数据不足或类别频繁变动时的优势。对比了BERT的掩蔽语言建模(MLM)与GPT的下一词预测,解释了MLM如何帮助模型理解句子整体语义从而提升文本分类性能。对于低资源场景下的分类任务,提出了结合表示模型、伪标签增强和生成模型(Zero-shot/Few-shot)的融合方案。讨论了嵌入模型在大规模检索、相似度计算等方面的价值,以及词袋法在特定场景下的可用性。

📊 **主题建模与聚类技术**:文章详细阐述了BERTopic中的c-TF-IDF与传统TF-IDF的区别,后者通过计算主题内词频和跨主题词频来提高主题代表性关键词的区分度。比较了基于质心(如K-means)和基于密度(如DBSCAN)的文本聚类算法的优缺点,并提供了在主题建模中处理关键词重叠、提高区分度的技术,如使用c-TF-IDF、调整模型参数及采用密度聚类。

💬 **提示工程与智能体设计**:针对不同的生成任务(翻译、创意写作、头脑风暴),文章给出了temperature和top_p参数设置的指导。专业的提示词模板被分解为角色定义、任务目标、上下文信息、输入数据和输出格式要求,并强调了角色定义的重要性。为防止提示词注入,提出了模板设计和系统层面的检测方法。对于“先思考后回答”的需求,提到了思维链、自洽性、思维树等技术。

🧩 **模型协同与应用扩展**:文章探讨了如何结合能力较弱的多模态模型和能力较强的文本模型来处理多模态问题,通过“感知-推理分离”的框架实现。对于AI照片助手,提出了特征提取、向量索引、查询解析和相似度检索的构建方案。对比了双编码器和交叉编码器在大规模相似度搜索中的效率差异,以及MNR、余弦相似度、Softmax损失的优缺点和适用场景。此外,还讨论了如何生成负例提升模型性能,以及TSDAE使用特殊词元而非平均池化的原因。

📈 **模型训练与优化策略**:文章介绍了SetFit等方法在数据量少时的训练数据扩增策略,以及在继续预训练时如何在获取领域知识的同时保留通用能力。对比了在医疗领域文本分类任务中,直接微调、继续预训练后微调和从头预训练的优缺点。针对命名实体识别中的词元拆分问题,提出了标签对齐的解决方案,以及如何用较低成本提升英文主导模型的中文能力。最后,还探讨了如何利用困惑度验证模型生成内容,以及微调Llama模型实现特定风格和安全要求的方法。

牧小熊 2025-07-13 22:32 浙江

 Datawhale干货 

作者:牧小熊,Datawhale成员

最近没有什么事,想系统的梳理一下大模型相关的事情。偶然阅读了李博杰翻译的《图解大模型》一书,其中有配套阅读:大模型面试题 60 问,根据自己的理解给了相应的一个答案,供大家参考。

我在面试候选人和参加业内研讨会时,常常发现很多人有大量实战经验,但对模型的基本原理知之甚少。为了帮助大家更好地理解本书,也为了方便部分有面试需求的朋友更有针对性地阅读本书,围绕本书各章主题,我系统梳理了大模型领域常见的面试题,其中的大多数问题可以在书中直接找到答案,部分进阶问题可以从本书的参考文献或网络上的最新论文中找到答案。希望所有的朋友都能够带着这些问题阅读本书。

部分答案引用了大语言模型进行了辅助回答,笔者进行了新筛选与矫正。

Q1:仅编码器(BERT 类)、仅解码器(GPT 类)和完整的编码器-解码器架构各有什么优缺点?

Q2:自注意力机制如何使大模型能够捕捉长距离依赖关系,它跟 RNN 有什么区别?

自注意力机制允许序列中每个位置直接与所有其他位置交互,通过计算 Query 和 Key 的相似度,对全局信息进行加权聚合。因此,无论依赖关系有多远,都能在一次计算中捕捉到。

相比之下,RNN 是一步步传递信息,远距离依赖需要多步传播,容易造成梯度消失,也限制了模型对长依赖的建模能力。

此外,自注意力机制支持并行计算,而 RNN 必须串行执行,训练效率也低很多。

Q3:大模型为什么有上下文长度的概念?为什么它是指输入和输出的总长度?

Transformer 模型在处理文本时,会把输入 token 编码成一个固定长度的序列,并通过位置编码保留顺序信息。

模型的注意力机制是全局的,每个 token 都会与序列中其他 token 进行交互,其计算复杂度是 O(n^2),这在显存或内存上有较高开销,因此在训练阶段我们就需要设定一个最大的上下文长度,比如 2048 或 4096 个 token。

而这个“上下文长度”指的是当前模型可感知的全部 token 的数量,也就是“输入 token + 已生成 token”的总和。

原因是像 GPT 类模型是自回归的,每生成一个新 token,都需要重新读取整个已有上下文作为输入。所以如果总长度超过了模型的最大支持范围,就必须截断或者做缓存处理。

Q4:大模型的分词器和传统的中文分词有什么区别?对于指定的词表,一句话是不是只有唯一的分词方式?

大模型的分词是为了满足模型输入 token 的形式,而传统中文分词是为了符合人类语义理解习惯。

大模型的分词器在编码阶段,对于一个固定词表,一句话的分词方式是唯一的。

因为大模型的分词器会使用固定的词表,并且按照最长匹配优先的规则从前往后一个个切分。

这个过程是贪心算法,没有随机性,也不考虑上下文,词表一样,分词规则一样,输入一样,输出就一定一样。

Q5:大模型是如何区分聊天历史中用户说的话和 AI 说的话的?

大模型区分用户和 AI,是靠在输入里加明确的角色标记,如 <|im_start|>user 和 <|im_start|>assistant。

模型并不理解“谁是谁”,它只是学会了这些格式对应的说话模式。只要格式规范,模型就能正确判断并生成对应角色的回复。

Q6:传统的静态词嵌入(如 word2vec)与大模型产生的上下文相关的嵌入相比,有什么区别?有了 与上下文相关的嵌入,静态词嵌入还有什么价值?

静态词嵌入的价值:

Q7:在 word2vec 等词嵌入空间中,存在 king – man + woman ≈ queen 的现象,这是为什么?大模型 的词元嵌入空间是否也有类似的属性?

Word2Vec 学到的词向量不仅捕捉了语义相似性,还在向量空间中学到了一些语义关系的方向性。

在大模型(如 GPT、BERT)中,词元嵌入层也会保留类似的结构关系,尤其在 embedding 层和初始的表示空间中,可以观测到一些类似的加减逻辑。

但因为大模型后续加入了上下文建模,经过多层 Transformer 的非线性变换后,最终的 token 表示是上下文相关的,不一定再保持简单的线性结构。

Q8:注意力机制是如何计算上下文各个词元之间的相关性的?每个注意力头只关注一个词元吗?

注意力机制的核心原理是通过动态权重分配,让模型在处理输入数据时能够聚焦于关键信息。

其计算过程分为三步:

每个注意力头并不只关注一个词元,而是从不同子空间学习多样化的关联模式,一个头可能捕捉语法结构(如主谓一致),另一个头关注关键词匹配,多头并行计算后拼接结果,综合多视角信息。

Q9:如果需要通过修改尽可能少的参数值,让模型忘记某一特定知识,应该修改注意力层还是前馈神经网络层的参数。

要让模型快速忘记某个特定知识,优先修改注意力层的参数(尤其是 Q/K 矩阵),因为注意力层直接控制词元间的关联性,调整少量参数即可切断目标知识的上下文联系。

理由如下:

Q10:为什么注意力机制需要多个头?跟简单地减少注意力头的数量相比,多查询注意力和分组查询 注意力优化有什么不同?它们优化的是训练阶段还是推理阶段?

多头设计(MHA)通过并行计算多个注意力头,使模型能同时捕捉序列中不同维度的依赖关系(如语法、语义、长距离关联等),显著提升模型表达能力。

多查询注意力(MQA)与分组查询注意力(GQA)的优化差异:

Q11:Flash Attention 并不能减少计算量,为什么能提升推理速度?Flash Attention 是如何实现增量计算 softmax 的?

Flash Attention 主要通过以下几种方式提升推理速度:

内存访问优化:传统的注意力计算需要大量的内存访问,尤其是在计算 Query、Key 和 Value 的矩阵乘法时。

Flash Attention 使用了更高效的内存访问模式,通过利用 GPU 的高效缓存和内存带宽,减少了不必要的数据传输。

特别是在大模型的推理中,大量的内存访问和数据复制会拖慢速度,而 Flash Attention 通过优化内存访问方式,显著加速了计算。

减少重复计算:传统注意力机制计算时,softmax 和加权求和是独立计算的,Flash Attention 通过增量计算softmax,避免了重复计算,减少了计算量。

更高效的硬件利用:Flash Attention 通过专为 GPU 设计的高效算法,能够更好地利用 GPU 上的计算资源,减少了计算延迟。

它将注意力矩阵按块(block)读取,每次只处理一部分 token,在计算 softmax 时,不是一次性对整行做归一化,而是边读边计算最大值与加权和,逐步更新 softmax 的中间结果。

这样可以避免保存整个注意力矩阵,用更少的内存完成等价计算,从而提升速度和效率。

Q12:跟原始 Transformer 论文中的绝对位置编码相比,RoPE(旋转位置嵌入)有什么优点? RoPE 在长上下文外推时会面临什么挑战?

RoPE 的优势:

RoPE 在长上下文外推时的挑战:

Q13:嵌入模型 + 逻辑回归的分类方式获得了 0.85 的 F1 分数,而零样本分类方式获得了 0.78 的 F1 分数。如果有标注数据,什么情况下会选择零样本分类?

即使有标注数据,也会在以下几种情况下选择零样本分类:

Q14:与 BERT 的掩蔽策略相比,掩码语言建模有何不同?这种预训练方式如何帮助模型在下游的文本分类任务中获得更好的性能?

BERT 用的就是掩码语言建模(MLM),它会把句子里一部分词换成 [MASK],然后让模型去猜被遮住的词是什么。这种方法让模型学会理解整个句子的意思,而不是像 GPT 那样只预测下一个词。

因为模型在预训练时学会了看一句话的上下文,理解句子的语义,所以在做文本分类时,比如判断情感、话题、意图,只需要在上面接一个简单的分类器,模型就能表现很好。

Q15:假设你有一个包含 100 万条客户评论的数据集,但只有 1000 条带有标签的数据,请同时利用有标签和无标签的数据,结合表示模型和生成模型的优势,构建一个分类系统。

Step1:构建基础表示模型,使用 BERT 类预训练模型,加载 MLM 预训练权重,用这 1000 条标注样本训练。

Step2:利用无标签数据做伪标签增强,用初始模型对部分高置信度的无标签数据打标签,将这些“伪标签样本”加入训练集,继续训练模型。

Step3:引入生成模型增强(Prompt + 少样本能力),使用 LLM 做 zero-shot 或 few-shot 辅助,和 BERT 模型的预测结果进行融合,提升低资源条件下的准确率。

Q16:有了强大的生成式大模型,嵌入模型还有什么用?

嵌入模型速度快、成本低,适合做大规模文本检索和相似度计算。

嵌入能把文本转成向量,方便做分类、聚类和搜索等基础任务。

生成模型更重,更适合复杂对话和文本生成,嵌入模型更轻量,能做很多高效的辅助工作。

嵌入模型可以跟生成模型配合使用,提升整体系统效果。

Q17:词袋法和文档嵌入在实现原理上有什么区别?词袋法是不是一无是处了?

词袋法的优势:

Q18:BERTopic 中的 c-TF-IDF 与传统的 TF-IDF 有何不同?这种差异如何帮助改进主题表示的质量?

c-TF-IDF 与传统 TF-IDF 的区别:

传统 TF-IDF 是针对单个文档计算词频和逆文档频率,用来衡量词在文档中的重要性。

c-TF-IDF 是针对一个“类”或“主题下的所有文档的集合”来计算词频和逆文档频率,强调词在该主题下的重要性,同时抑制在其他主题中的普遍词。

c-TF-IDF 可以更准确地找到某个主题的代表性关键词,因为它把主题内词频和跨主题词频都考虑进去了。

这样主题关键词更具区分性,不容易被在所有主题中都出现的高频词干扰。因此,c-TF-IDF 提升了主题的清晰度和区分度,使得主题表示更精准、更有意义。

Q19:基于质心和基于密度的文本聚类算法有什么优缺点?

基于质心的文本聚类(如 K-means)优缺点:

优点:

缺点:

基于密度的文本聚类(如 DBSCAN)优缺点:

优点:

缺点:

Q20:在一个主题建模项目中,你发现生成的主题中有大量重叠的关键词,如何使用本章介绍的技术来提高主题之间的区分度?

可以用以下几种技术:

使用 c-TF-IDF:c-TF-IDF 会针对每个主题集合计算词权重,抑制在多个主题中都高频的词,从而突出每个主题的独特关键词。

调整主题数量和模型参数:适当调整主题数,避免主题过多导致语义重复;通过正则化或增加主题间距离约束,提高区分度。

基于密度的聚类方法:采用 DBSCAN 等密度聚类替代 K-means,避免不同主题被划入同一簇。

关键词后处理:对重复关键词做过滤或降权处理,保留区分度高的词。

Q21:针对翻译类、创意写作类、头脑风暴类任务,分别如何设置 temperature 和 top_p?

任务越标准越严谨(如翻译),temperature 就越低;任务越开放越创新(如写作、头脑风暴),就适当提高 temperature 和 top_p,增强多样性。

Q22:一个专业的提示词模板由哪几部分构成?为什么提示词中需要描述角色定义?

一个专业的提示词(Prompt)模板通常包含以下几部分:

因为大模型是通过模式学习的,角色定义能引导模型以更专业、更符合预期的语气和风格回答问题。

Q23:为了尽可能防止提示词注入,如何设计提示词模板?如何在系统层面检测提示词注入攻击?

1. 提示词模板设计防护

明确角色设定:在 prompt 中指定模型身份和行为范围,如“你是一个只能回答财经问题的助手”。

使用指令封闭结构:避免开放式提示,使用模板化结构如 "指令: {instruction} \n 输入: {input} \n 输出: "。

控制用户插入点:将用户输入限制在变量 slot 中,避免影响系统指令。

2. 系统层面注入检测

关键词黑名单匹配:检测如“忽略之前的指令”“你现在是…”等注入特征。

提示词审查机制:在提示词构造后进行语义分析,识别可能的角色切换、指令覆写。

响应行为监控:监控输出是否越权,如输出系统不允许的内容,可触发告警或拒答。

使用上下文分离机制:通过系统-用户分段处理,防止用户内容污染系统 prompt。

Q24:在没有推理模型之前,如何让模型先思考后回答?思维链、自洽性、思维树等几种技术各有什么优缺点?

在没有推理能力前,如何让模型“先思考后回答”?

通过提示词工程引导模型“思考”,即在 prompt 中显式要求模型列出推理过程,如加上:

Q25:如何保证模型的输出一定是合法的 JSON 格式?将大模型用于分类任务时,如何保证其输出一定是几个类别之一,而不会输出无关内容?如果开发一个学习英语的应用,如何确保其输出的语言始终限定在指定的词汇表中?

如何保证输出是合法 JSON 格式?

结构化提示词:明确指令,如:“请仅输出以下 JSON 格式:{"label": ..., "score": ...},不添加任何解释。”

使用函数调用(Function Calling / Tool Use)机制:如 OpenAI / Qwen 支持结构化 schema,让模型输出严格符合预定义结构。

后处理校验:使用 JSON 解析库进行合法性校验,不合法则重试生成或触发 fallback 策略。

分类任务中如何约束输出为限定类别?

封闭式提示设计:明确说明“只允许从以下选项中选择一个:A、B、C”。

Few-shot 示例引导:通过提供标准分类示例(如“输入:... → 输出:B”)提高一致性。

输出校验与纠偏:使用正则或解析器判断输出是否合法,不合法时触发二次问答或重新生成。

可选:使用 Logits Bias / 多标签 token sampling 控制输出 token(限 API 层实现)

英语学习应用中如何限制词汇范围?

词汇表内提示约束:在提示中加入说明:“请仅使用以下词汇表中的单词作答”,并附上词表。

使用词表检索后重写(Constrained decoding):结合规则或重写策略,将非词表内词替换或拒答。

训练或微调阶段加入词表限制示例:增强模型对“词汇边界”的理解。

结合语法校正模块二次过滤:检测并剔除越界词汇。

Q26:如果我们需要生成小说的标题、角色描述和故事梗概,当单次模型调用生成效果不佳时,如何分步生成?

可以采用分步生成策略,分阶段控制质量与连贯性:

分步流程设计:

优点:

Q27:如果用户跟模型对话轮次过多,超出了模型的上下文限制,但我们又希望尽可能保留用户的对话信息,该怎么办?

信息摘要:对早期对话进行摘要压缩,保留核心内容,如用户目标、偏好、历史提问等。

结构化记忆:将对话转为结构化格式存入外部 memory,后续构建 prompt 时引用这些结构化内容,而非逐轮堆叠原始对话。

轮次截断:固定保留最近 N 轮对话,加上摘要或记忆,构成上下文窗口。

外部记忆+RAG 机制:将历史对话存入向量数据库,用户提问时检索相关历史片段,再拼接进 prompt

Q28:如何编写一个智能体,帮助用户规划一次包含机票预订、酒店安排和景点游览的旅行?需要配置哪些工具?如何确保系统在面对不完整或矛盾的信息时仍能提供合理建议?

采用基于工具调用的智能体架构

用户输入 → 智能体分析任务意图 → 规划任务流程 → 多工具调用 → 整合回复结果

方法:

利用 LLM 分析用户输入中缺失的关键信息(如日期、预算、偏好),主动进行“反问式追问”

设定默认值与容错机制,未指定预算则设定默认中档;未指定具体日期,则提示最近可用时间段。

多轮规划修正能力,使用 ReAct 思维链提示结构,支持思考—行动—观察—再决策循环,自动纠偏

Q29:如果单一智能体的提示词过长,导致性能下降,如何将其拆分为多个智能体,并在合适的时机调用不同的智能体?

当单一智能体的提示词过长,影响性能时,我会采用“模块化智能体架构”解决,具体如下:

功能拆分:将大智能体按功能划分为多个子智能体,例如:行程规划、机票预订、酒店推荐等,每个子体负责单一任务,提示词更短、聚焦。

主控调度器:设计一个主控 Agent 作为“路由器”,根据用户请求类型或上下文意图,动态调用对应子体。例如:识别“订酒店”意图后,调用酒店智能体。

上下文共享:通过共享存储(如 Memory 模块)或摘要传递,实现子体间信息协同,避免重复问询。

提示词压缩:对每个子体使用结构化提示+嵌入指令压缩技术,确保上下文长度控制在合理范围内。

这种方式能提升系统响应效率、增强可维护性,并保持智能体的扩展性。

Q30:在 RAG 中,为什么要把文档划分成多个块进行索引?如何解决文档分块后内容上下文缺失的问题?如何处理跨片段的依赖关系?

在 RAG 中,将文档划分为多个块是为了提高召回精度和效率,避免整篇文档过长导致嵌入不准确或超出上下文长度限制。

为解决分块后的上下文缺失问题,我通常采用以下策略:

跨片段依赖处理:

通过这些方式,RAG 系统能在保持检索效率的同时,尽量还原原始文档的上下文完整性。

Q31:向量相似度检索不能实现关键词的精确匹配,基于倒排索引的关键词检索不能匹配语义相近的词,如何解决这对矛盾?为什么需要重排序模型?

为解决语义检索与关键词匹配的矛盾,我采用混合检索架构:

重排序模型的作用是对初步召回结果进行语义理解与排序优化,解决召回阶段排序不准的问题。它通常使用跨编码器或大模型,根据查询与文档间深层语义关系重新打分,提升最终输出质量。

Q32:为什么要在向量相似度检索前,对用户输入的话进行改写?

在向量相似度检索前对用户输入进行改写,目的是提升检索效果,具体原因如下:

语义增强:用户查询可能简短或模糊,改写可以补全上下文,表达更清晰的语义意图。

与文档风格对齐:用户用语和文档表述方式可能不同,改写有助于统一语言风格,提升嵌入相似度。

避免歧义:消除查询中的多义词或口语表达,使向量更准确地表达用户真实意图。

引导模型聚焦关键点:通过重构问题,引导嵌入模型关注更相关的信息,提升召回精准度。

Q33:如果需要根据某长篇小说的内容回答问题,而小说的长度远远超出了上下文限制,应该如何综合利用摘要和 RAG 技术,使其能同时回答故事梗概和故事细节?

面对长篇小说超过上下文限制的问题,我会综合使用摘要机制与 RAG 技术,具体方案如下:

融合式回答策略:

Q34:在 CLIP 训练过程中,为什么需要同时最大化匹配图文对的相似度和最小化非匹配图文对的相似度?

在 CLIP 训练过程中,同时最大化匹配图文对的相似度、最小化非匹配对的相似度,是为了实现多模态对齐和区分,核心目的有两点:

这种对比学习目标确保模型既能“找到正确的对”,又能“区分错误的对”,从而具备强泛化能力与多模态理解能力。

Q35:BLIP-2 为何不直接将视觉编码器的输出连接到语言模型,而要引入 Q-Former 这一中间层结构

BLIP-2 引入 Q-Former 而不是直接将视觉编码器输出接入语言模型,主要有三个原因:

桥接模态差异:视觉编码器输出是高维 dense 的 patch embedding,不适合直接输入语言模型。Q-Former 通过少量 learnable queries 提取压缩后的语义信息,起到模态对齐的桥梁作用。

降低输入冗余:直接传入所有图像特征会超长且噪声多,Q-Former 用注意力机制从视觉特征中提取关键信息,减少 token 数,提高效率和效果。

增强信息交互:Q-Former 是 transformer 架构,可以在视觉上下文中进行交叉注意力,自适应地选择哪些视觉信息对当前任务更重要。

Q36:现有一个能力较弱的多模态模型和一个能力较强的文本模型(如 DeepSeek-R1),如何结合两者的能力来回答与多模态相关的问题?

可以通过两阶段协同框架结合弱多模态模型与强文本模型,方式如下:

阶段一:多模态理解(由弱多模态模型完成)

使用弱多模态模型对图像+文本输入进行理解,输出中间表示,如:

阶段二:语言生成与推理(交给强文本模型处理)

将阶段一输出连同原始问题一并输入强大的文本模型(如 DeepSeek-R1),由其执行复杂推理、问答、对话生成等任务。

弱多模态模型负责提取视觉语义信息,强语言模型负责推理与表达,实现“感知-推理分离”,充分发挥两者优势。

Q37:如何构建一个 AI 照片助手,能够对用户的上万张照片进行索引,根据用户的查询高效地检索相关照片?

构建 AI 照片助手的简要方案:

Q38:相比交叉编码器,为什么双编码器在大规模相似度搜索中更受欢迎?

双编码器更受欢迎因为:

交叉编码器需每次对查询和候选项一起编码,计算量大,无法快速扩展。

Q39:在训练嵌入模型时,MNR(多负例排序)损失、余弦相似度损失和 softmax 损失各有哪些优缺点?在哪些场景下,余弦相似度损失可能比 MNR 损失更合适?

MNR(多负例排序)损失

余弦相似度损失

Softmax 损失

余弦相似度损失更合适的场景:当负样本难以采集或训练资源有限,且模型需要稳定向量空间结构,尤其是在小样本、在线微调或向量归一化强制约束时,用余弦相似度损失更简单高效。

Q40:如何生成负例以提升模型性能?如何构建高质量的难负例?

生成负例提升性能的方法:

构建高质量难负例的方法:

Q41:为什么 TSDAE 选择使用特殊词元而非平均池化作为句子表征?

TSDAE 用特殊词元(如 [CLS])作为句子表征,因为:

Q42:相比 STSB,MTEB 有哪些改进?其中包括哪些类别的嵌入任务?

相比 STSB,MTEB(Massive Text Embedding Benchmark)改进在于:

MTEB 涵盖的嵌入任务类别主要包括:

Q43:如果标注的训练数据很少,如何扩增训练数据的数量?(提示:SetFit)

当标注数据少时,可以用 SetFit 方法扩增数据:

Q44:在继续预训练时,如何在保证模型获得特定领域知识的同时,最大限度地保留其通用能力?

继续预训练时,为兼顾特定领域知识和通用能力,可以:

Q45:请比较以下三种方案在医疗领域文本分类任务上的优缺点:

(a) 直接用通用 BERT 微调

(b) 医疗文本上继续预训练后微调

(c) 从头开始用医疗文本预训练再微调

总结:(b)方案通常在效果和成本间取得最佳平衡,是医疗领域主流选择。

Q46:在命名实体识别任务中,当 BERT 将单词拆分成多个词元时,如何解决标签对齐问题?

当 BERT 将单词拆成多个词元时,标签对齐常用方法有:

Q47:假设一个嵌入模型的训练语料主要由英文构成,在中文任务上表现不佳,如何用较低的继续预训练成本提升其中文能力?

用低成本提升英文主导嵌入模型的中文能力,可以:

这样在有限资源下,有效提升模型中文表现。

Q48:有人声称一篇文章是用 DeepSeek-R1 生成的,并给了你生成所用的完整提示词,如何证实或证伪这个说法?(提示:利用困惑度)

验证文章是否由 DeepSeek-R1 生成,可以:

困惑度是衡量模型对文本“熟悉度”的指标,低困惑度支持生成假设,高困惑度则反驳。

Q49:如何微调一个 Llama 开源模型,使其输出风格更简洁、更像微信聊天,并保证输出的内容符合国内的大模型安全要求?

微调 Llama 模型实现微信聊天风格且符合安全要求,可以:

Q50:QLoRA 中的分块量化如何解决普通量化导致的信息损失问题?

QLoRA 的分块量化通过将模型权重按小块(block)独立量化,解决普通量化信息损失问题,具体体现在:

Q51:现有一个由若干篇文章组成的企业知识库,如何将其转换成适合 SFT 的数据集?

将企业知识库转成适合 SFT 的数据集,步骤如下:

Q52:PPO 和 DPO 相比有什么优缺点?

PPO(Proximal Policy Optimization)

DPO(Direct Preference Optimization)

总结:PPO 灵活但训练成本高,适合在线交互;DPO 简单高效,更适合离线带偏好数据的优化。

Q53:在 PPO 中,如何防止模型在微调数据集以外的问题上泛化能力下降?如何防止模型收敛到单一类型的高奖励回答?

防止泛化能力下降:

防止收敛到单一高奖励回答:

Q54:设想一个网站上都是 AI 生成的内容,我们统计了每篇文章的平均用户停留时长,如何将其转化为 DPO 所需的偏好数据?对于小红书和知乎两种类型的网站,处理方式有什么区别?

转化方法:

小红书 vs 知乎区别:

Q55:提示工程、RAG、SFT、RL、RLHF 应该分别在什么场景下应用?例如:快速迭代基本能力(提示工程)、用户个性化记忆(提示工程)、案例库和事实知识(RAG)、输出格式和语言风格 (SFT)、领域深度思考能力和工具调用能力(RL)、根据用户反馈持续优化(RLHF)

提示工程(Prompt Engineering)

RAG(Retrieval-Augmented Generation)

SFT(Supervised Fine-Tuning)

RL(Reinforcement Learning)

RLHF(Reinforcement Learning from Human Feedback)

Q56:DeepSeek-R1 (简称 R1)与 DeepSeek-R1-Zero(简称 R1-Zero)的训练过程有什么区别,各自有什么优缺点?既然 R1-Zero 生成的推理过程可读性差,在非推理任务上的表现也不如 R1,那么 R1-Zero 存在的价值是什么? R1 训练过程是如何解决 R1-Zero 的上述问题的?

训练过程区别:

优缺点:

R1-Zero

R1

R1-Zero 的价值:

R1 如何解决问题:

Q57:DeepSeek 是如何把 R1 的推理能力蒸馏到较小的模型中的?如果我们要自己蒸馏一个较小的垂直领域模型,如何尽可能保留 R1 在特定领域的能力?

DeepSeek 蒸馏 R1 推理能力的方法:

自己蒸馏垂直领域模型保留 R1 能力建议:

Q58:R1-Zero 的方法主要适用于有明确验证机制的任务(如数学、编程),如何将这一方法扩展到更主观的领域(如创意写作或战略分析)?

将 R1-Zero 方法扩展到主观领域,可采用:

Q59:如果要在一个非推理型模型的基础上通过强化学习(RL)训练出一个 1000 以内的整数四则运算错误率低于 1% 的模型,预计基座模型至少需要多大? RL 过程需要多少张 GPU 和多少训练时长? (提示:TinyZero)

基座模型建议在 7B 模型以上可平衡效果与成本,满足 1000 以内四则运算的复杂度需求。

GPU 需求:

训练时长:

Q60:在 QwQ-32B 推理模型的基础上,通过 RL 在类似 OpenAI Deep Research 的场景中强化垂直领域能力,如何构建训练数据集?预计需要多少张 GPU 和多少训练时长?

训练数据集构建,领域知识库:学术论文、代码库、行业文档、书籍构建包含专家标注的问答对、对话或任务执行数据;使用强模型构建合成数据集或者加入噪音样本,提高数据集多样性。

GPU 需求

基础配置:8×A100 80G(或等效 H100),分配如下:

训练时长

冷启动阶段(基座适配):20 小时:监督微调(SFT)注入领域数据,学习率 2e-5,批量大小 64

RL 强化阶段:

总时长:≤4 天

到这里我们的面试小结就写完了,因为笔者的个人能力限制,可能有些地方写的不完善甚至又错误,欢迎大家匹配指正。


一起“三连

阅读原文

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

大模型 面试 Transformer 注意力机制 提示工程 RAG 微调 AI技术
相关文章