百度 大模型开发 一面
1、自我介绍
2、项目介绍
3、介绍 NLP 中数据增强方式
NLP 中常见的数据增强方式主要有同义词替换、随机插入、随机删除、随机交换、回译、模板扩写、噪声注入、对抗样本增强和基于大模型的数据改写。同义词替换是把句子中的部分词替换成语义相近的词;随机插入和删除适合做轻量扰动;随机交换适合增强模型对局部顺序变化的鲁棒性;回译是把句子翻译成另一种语言再翻回来,能够保留大意但改变表述;模板扩写适合分类和信息抽取任务;噪声注入比如加入错别字、空格、标点变化,适合提升鲁棒性;对抗样本增强更偏训练阶段优化;现在更常见的是让大模型做改写、扩写、同义表达生成。
数据增强不能只追求数量,更重要的是标签一致性和语义不偏移。比如情感分类里,同义改写后情感标签不能变;命名实体识别里,增强不能破坏实体边界;问答任务里,问题改写后答案仍然要对应原文。
一个简单的同义词替换示例如下:
import random
def synonym_replace(text, synonym_dict, replace_prob=0.3):
words = text.split()
new_words = []
for w in words:
if w in synonym_dict and random.random() < replace_prob:
new_words.append(random.choice(synonym_dict[w]))
else:
new_words.append(w)
return "".join(new_words)
synonym_dict = {
"喜欢": ["喜爱", "热爱"],
"学习": ["研究", "钻研"]
}
text = "我喜欢学习大模型"
print(synonym_replace(text, synonym_dict))
4、大模型如何进行预训练,如何进行微调
大模型预训练本质上是在海量无监督文本上做自监督学习,让模型学到语言规律、知识表示和上下文建模能力。对于 decoder-only 架构,最常见的目标是 next token prediction,也就是给定前面的 token,预测下一个 token。训练时会把大规模语料分词后送入模型,通过自注意力机制建模上下文,再用交叉熵损失优化预测结果。
预训练阶段的数据规模通常非常大,可能是百亿、千亿甚至更高数量级 token。预训练完成后,模型具备通用语言能力,但不一定适合具体任务,所以需要微调。
微调一般分为监督微调和参数高效微调。监督微调就是用指令数据、问答数据、任务数据让模型学会按要求输出;参数高效微调典型方法是 LoRA、QLoRA,只更新少量参数,不更新全部模型权重,这样显存和训练成本更低。如果是业务场景,通常流程是先做 SFT,再结合具体需求做偏好对齐或者规则约束。
训练里常见参数包括 learning rate、batch size、epoch、warmup ratio、max length。学习率通常比预训练阶段低,SFT 常见在 (1e^{-5}) 到 (5e^{-5}) 之间;epoch 通常 2 到 5 轮;batch size 取决于显存;长文本任务还要注意 sequence length 和梯度累积。
5、什么是 RAG
RAG 是 Retrieval-Augmented Generation,也就是检索增强生成。它的核心思想是:先从外部知识库检索相关内容,再把检索结果和用户问题一起输入给大模型,让模型基于检索到的证据生成答案。
RAG 的主要优势有三个。第一,不需要频繁重新训练模型就能更新知识;第二,可以接入企业私有数据;第三,可以减少模型幻觉,提高答案可追溯性。一个完整的 RAG 流程通常包括文档解析、文本切分、向量化、索引构建、召回、重排、Prompt 组织和生成。
常见问题主要出现在三处。第一是 chunk 切分不合理,导致信息断裂或者召回噪声太大;第二是 embedding 模型不匹配,导致召回结果不准;第三是生成阶段约束不够,模型脱离检索内容自由发挥。
一个简化版 RAG 流程代码如下:
documents = [
"机票报销需要行程单和发票",
"酒店报销需要发票和入住明细",
"火车票可以直接作为报销凭证"
]
def retrieve(query, docs):
result = []
for doc in docs:
score = sum(1 for word in query if word in doc)
result.append((score, doc))
result.sort(reverse=True)
return [x[1] for x in result[:2]]
query = "机票报销需要什么材料"
top_docs = retrieve(query, documents)
prompt = f"问题:{query}\n参考资料:{top_docs}\n请基于参考资料回答。"
print(prompt)
6、LoRA 和 QLoRA 是什么
LoRA 是一种参数高效微调方法。它的核心思想不是直接更新原始大模型的完整权重矩阵,而是在某些线性层旁边增加两个低秩矩阵 (A) 和 (B),把权重更新写成低秩分解形式:
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
本专栏聚焦 AI-Agent 面试高频考点,内容来自真实面试与项目实践。系统覆盖大模型基础、Prompt工程、RAG、Agent架构、工具调用、多Agent协作、记忆机制、评测、安全与部署优化等核心模块。以“原理+场景+实战”为主线,提供高频题解析、标准答题思路与工程落地方法,帮助你高效查漏补缺.

查看9道真题和解析