AI-Agent 面试题汇总 - 大模型进阶面

1. 什么是生成式大模型?

生成式大模型,就是在海量数据上训练出来,能够根据输入内容继续生成文本、代码、摘要、问答结果的一类模型。它不是去数据库里“查原句”,而是根据上下文,一个 token 一个 token 往后预测,所以它能生成新的内容。

现在主流大模型大多是 Transformer 架构,尤其是 Decoder-only 这一类。因为这种结构天然适合做连续生成,训练目标和推理方式也比较统一。

常见的生成式大模型有 GPT、LLaMA、Qwen、ChatGLM、DeepSeek 这些。

2. 大模型为什么生成的文本能比较丰富,不会特别死板?

核心原因有两个,一个是训练数据足够大,另一个是推理时不会每次都死选概率最大的词。

如果模型只做最保守输出,那确实很容易单调。所以实际生成时,一般会结合 temperaturetop_ktop_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面试实战专栏 文章被收录于专栏

本专栏聚焦 AI-Agent 面试高频考点,内容来自真实面试与项目实践。系统覆盖大模型基础、Prompt工程、RAG、Agent架构、工具调用、多Agent协作、记忆机制、评测、安全与部署优化等核心模块。以“原理+场景+实战”为主线,提供高频题解析、标准答题思路与工程落地方法,帮助你高效查漏补缺.

全部评论

相关推荐

评论
1
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务