AI-Agent 面试题汇总 - 大模型进阶面
1. 什么是生成式大模型?
生成式大模型,就是在海量数据上训练出来,能够根据输入内容继续生成文本、代码、摘要、问答结果的一类模型。它不是去数据库里“查原句”,而是根据上下文,一个 token 一个 token 往后预测,所以它能生成新的内容。
现在主流大模型大多是 Transformer 架构,尤其是 Decoder-only 这一类。因为这种结构天然适合做连续生成,训练目标和推理方式也比较统一。
常见的生成式大模型有 GPT、LLaMA、Qwen、ChatGLM、DeepSeek 这些。
2. 大模型为什么生成的文本能比较丰富,不会特别死板?
核心原因有两个,一个是训练数据足够大,另一个是推理时不会每次都死选概率最大的词。
如果模型只做最保守输出,那确实很容易单调。所以实际生成时,一般会结合 temperature、top_k、top_p 这些采样参数,让模型在合理范围内保留一点随机性。这样出来的内容会更自然,也更像正常表达。
from transformers import AutoTokenizer, AutoModelForCausalLM
model_name = "gpt2"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
inputs = tokenizer("人工智能未来的发展方向是", return_tensors="pt")
outputs = model.generate(
**inputs,
max_new_tokens=80,
do_sample=True,
temperature=0.8,
top_k=50,
top_p=0.9
)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
3. 什么叫大模型复读机问题?
复读机问题,就是模型生成的时候不断重复前面已经说过的话。轻一点是重复词和短语,重一点是连续重复句子、段落,甚至越生成越像卡住了一样。
比如本来应该继续往下回答,但它一直在重复“这是一个非常重要的问题”“这是一个非常重要的问题”,这种就很典型。
这个问题在长文本生成、开放式问答、低温采样或者保守解码时更常见。
4. 大模型为什么会出现复读?
因为语言模型本身就是做下一个 token 预测的,它天然更偏向高概率表达。一旦上下文里已经形成某种固定模式,模型就很容易顺着这个模式继续往下重复。
另外,解码方式如果太保守,也容易复读。比如贪心解码、beam search 过强、temperature 太低、top_k 或 top_p 限得太死,都会让输出越来越像“机械重复”。
还有一个很现实的原因是,生成越长,误差会不断累积。前面一旦开始重复,后面通常会被带偏。
5. 怎么解决大模型复读机问题?
实际里最常用的办法,不是只靠一种,而是几种一起上。
最简单直接的是在生成阶段加 repetition penalty,压低重复 token 的概率。也可以加 no_repeat_ngram_size,限制某个 n-gram 不要重复出现。如果还想兼顾流畅和多样性,可以用 top_k / top_p / temperature 做采样控制。有些场景会用 contrastive search,效果通常比纯贪心更自然。再往前一点,就是训练阶段做 unlikelihood training,从源头压制重复。如果是线上系统,还会再加一层文本后处理,发现明显循环就截断或者过滤。
outputs = model.generate(
**inputs,
max_new_tokens=100,
do_sample=True,
temperature=0.8,
top_p=0.9,
repetition_penalty=1.2,
no_repeat_ngram_size=3
)
6. Repetition Penalty 是什么?
Repetition Penalty 是推理阶段一个很常见的参数,用来降低已经出现过的 token 再次被选中的概率。简单理解,就是模型刚说过的话,后面别那么容易再说一遍。
这个方法的好处是简单、直接、工程上很好落地。很多线上生成任务都会带上这个参数。
一般来说:
1.0表示不惩罚1.1 ~ 1.3比较常见- 太大了会影响语言自然度
7. Top-K Sampling 是什么?
Top-K Sampling 的意思是,每一步生成时,不是从全词表里选,而是只在概率最高的 K 个 token 里做采样。这样可以避免采到特别离谱的低概率词,同时又不会像贪心解码那样死板。
比如 top_k=50,就是每一步只在最有可能的前 50 个 token 里选。
K 值越小,结果越稳;K 值越大,结果越发散。
outputs = model.generate(
**inputs,
max_new_tokens=100,
do_sample=True,
top_k=50
)
8. Top-P Sampling
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
本专栏聚焦 AI-Agent 面试高频考点,内容来自真实面试与项目实践。系统覆盖大模型基础、Prompt工程、RAG、Agent架构、工具调用、多Agent协作、记忆机制、评测、安全与部署优化等核心模块。以“原理+场景+实战”为主线,提供高频题解析、标准答题思路与工程落地方法,帮助你高效查漏补缺.
查看25道真题和解析