三、大语言模型基础——如何更好地使用大语言模型及大语言模型的相关局限性

admin 2026-06-22 04:32:42 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文详细阐述了大语言模型(LLM)的核心交互技术,重点解析提示工程中的模型采样参数(temperature、top-k、top-p)、零/单/少样本提示、指令调优及思维链等关键方法,并深入剖析文本分词的底层逻辑与字节对编码(BPE)算法,旨在指导开发者通过精准提示词与分词技术提升模型在复杂任务中的性能表现。 综合评分: 88 文章分类: AI安全,安全培训


cover_image

三、大语言模型基础——如何更好地使用大语言模型及大语言模型的相关局限性

原创

Yang Yang

AI+网络安全笔记

2026年6月18日 12:10 北京

在小说阅读器读本章

去阅读

3.2 与大语言模型交互

3.2.1 提示工程

如果将大语言模型(LLM)比作一个拥有庞大知识储备与极高智力的“数字大脑”,那么提示词(Prompt)便是我们与其进行无缝沟通的专属语言。所谓提示工程(Prompt Engineering),其本质就是探究如何通过精准、高度结构化的文本输入,来有效引导并规范这个“大脑”的思考路径,使其输出最符合业务预期的优质答复。在构建多智能体系统(Multi-Agent System)时,一个精心雕琢的提示词方案更是不同 Agent 之间实现高效分工、流畅协作的核心基石。

(1)模型采样参数

在实际调用大模型时,你经常会遭遇诸如 Temperature(温度)这类的超参数配置。这些参数的底层逻辑在于:通过动态调整模型在预测下一个词元时的“概率分布”采样策略,让输出结果完美契合具体的应用场景。合理配置这些参数,能够显著拔高 Agent 在垂直业务中的落地性能。

传统的原生概率分布是由经典的 Softmax 公式计算得到的:采样参数的底层机制就是在此基础之上,通过多元化的数学策略对该概率分布进行“二次形变”或“硬截断”,进而干预大模型对下一个 Token 的预测走向。

  • Temperature(温度系数)温度是把控大模型输出文本“创造发散性”与“严谨确定性”之间平衡的核心杠杆。其运作原理是在原生的 Softmax 函数中注入一个温度调节因子,将其改写为。 当温度系数  趋近于 0 时,概率分布曲线会变得极为陡峭,高频词元的权重被无限放大,此时模型的输出倾向于极端保守、严谨,但也容易伴随较高的文本重复率;反之,当  显著增大时,整体概率分布曲线趋于平缓,低频词元被选中的概率得到实质性提升,生成的文本随之变得更加多样且富有创意,但代价是更容易出现逻辑失焦或前后不连贯的风险。
  • 低温度区间():输出特征为“精准、确定、高鲁棒性”。适用场景:事实性极强的硬核任务(如精细化问答、严密的数据计算、工业级代码生成);高严谨性行业场景(如法律条文精密解读、企业级技术文档撰写、学术概念严谨阐述)。
  • 中温度区间():输出特征为“平衡、自然、符合常人语感”。适用场景:日常情境对话(如智能客服交互、情感陪聊机器人);常规文案创作(如商务邮件撰写、标准产品宣发文案、简单故事铺陈)。
  • 高温度区间():输出特征为“创新、发散、天马行空”。适用场景:高度依赖创意的任务(如诗歌与剧本创作、科幻小说构思、广告 Slogan 头脑风暴、艺术灵感启发);开放式发散性思考。
  • Top-k 采样其算法原理是将所有待选 Token 按照预测概率从高到低进行重排,仅截取排名前  个的最高频 Token 构筑成一个“精英候选池”,随后对这个筛选出的  个 Token 的概率进行重新归一化处理: $ \hat{p}i = \frac{p_i}{\sum{j \in \text{候选集}} p_j}$。

与温度采样的区别与联系:温度采样是通过改变全局概率曲线的陡峭程度来间接干预选择,但它并不会缩减可供选择的代币基数(自始至终在全量 Token 中进行筛选);而 Top-k 采样则是简单粗暴地实行“硬截断”,直接在物理层面上将可能性较低的尾部 Token 拒之门外。特别地,当  时,输出将变得完全唯一且固定,此时算法等同于退化为了“贪心采样(Greedy Sampling)”。

  • Top-p 采样(核采样,Nucleus Sampling)其原理同样先将所有 Token 按照概率降序排列,然后从概率最高的第一个 Token 开始进行逐步累加,直到累积概率和首次达到或超越预先设定的阈值 :,此时被累加进来的所有 Token 共同组成了最终的“核集合(Nucleus)”,最后对该集合内的词元概率进行重新归一化。

与 Top-k 的区别与联系:相较于死板固定截断规模的 Top-k 策略,Top-p 的精妙之处在于其“动态截断”的特质。面对长尾分布明显的复杂语料,它能敏锐地适应概率分布的肥瘦变化:在概率高度集中时收窄候选池,在概率分布极度分散时放宽候选池,因而对多变、极端的极端上下文具备更强的自适应性。

在实际的工业级文本生成中,如果同时激活了 Top-p、Top-k 与 Temperature 三大系数,它们会以分层过滤的流水线方式协同运作。标准的执行优先级顺序为:温度调整  Top-k 过滤  Top-p 截断。即系统首先通过温度系数对全局概率分布进行塑形,随后利用 Top-k 剔除低频噪音并保留前  个种子,最后在这些种子的基础上通过 Top-p 筛选出累积概率达标的最小集合作为最终的决策池。

不过在开发实践中,通常建议 Top-k 与 Top-p 二选一 启用即可。若强行同时启用,实际候选集将取两者的交集。

需要格外警惕的是两种极端边界情况:

  1. 若将 Temperature 强行设为 0,则 Top-k 和 Top-p 的设置将自动失效,因为模型在每一步必然会直接抓取概率最高的那一个 Token;
  2. 若将 Top-k 设为 1,温度与 Top-p 同样会失去意义,因为候选池中自始至终只有唯一一个选项通过标准。

(2)零样本、单样本与少样本提示

依据开发者在提示词中附带的示范样本(Exemplars)数量,提示方法通常可以划分为以下三大经典流派。为了更直观地解构它们,我们以大模型的情感分类任务(判定文本属于正面、负面还是中性)为例进行对比:

  • 零样本提示 (Zero-shot Prompting)这意味着我们不在提示词中喂给模型任何参考范例,直接下达核心任务指令。这高度依赖于大模型在海量海量语料预训练阶段所沉淀出的强大泛化能力与常识网络。
  • 案例:直接要求模型进行情感划分。
文本:Datawhale的AI Agent课程非常棒!                                            情感:正面
  • 单样本提示 (One-shot Prompting)在正式下达核心请求前,在提示词中置入一个结构完整的“输入-输出”对作为示范,向模型清晰地展示任务的期望格式与行文风格。
  • 案例:先提供一个完整的负面示例,再提出新问题。
文本:这家餐厅的服务太慢了。                                                      情感:负面
文本:Datawhale的AI Agent课程非常棒!                                            情感:

模型将精准捕捉并模仿上述格式,在末尾顺理成章地补全“正面”。

  • 少样本提示 (Few-shot Prompting)通过向模型提供多个极具代表性的多元化示例,以此勾勒出任务的边界、细节逻辑与细微差别,能够显著拉高模型在特定复杂垂直场景下的综合表现。
  • 案例:提供涵盖负面、中性等多重情况的示例。
文本:这家餐厅的服务太慢了。                                                      情感:负面
文本:这部电影的情节很平淡。                                                      情感:中性
文本:Datawhale的AI Agent课程非常棒!                                            情感:

大模型在通盘考虑了多维示例的上下文后,能以极高的置信度将最后一句话分类为“正面”。

(3)指令调优的影响

回溯大模型的发展史,早期的原生基座模型(例如初代的 GPT-3)在本质上只是极其庞大的“文本续写/补全机器”。它们极为擅长根据已有的上文顺理成章地向下编织文字,但往往无法精准理解并履行人类带有明确意图的“对话指令”。

指令调优 (Instruction Tuning) 这一微调技术的诞生彻底打破了这一僵局。它通过在极其庞大的、以“指令-回答(Instruction-Response)”为规范格式的数据集上对预训练模型进行二次洗礼,使得模型能够完美对齐人类的对话习惯与执行意图。今天我们在日常工作与学习中所高频使用的所有明星模型(如 ChatGPT、DeepSeek、Qwen 矩阵),无一例外都是其模型家族中深度经过指令调优过的结晶。

  • 面对“文本补全”模型时的提示词风格(开发者必须笨拙地利用少样本提示来强行“喂招”):
这是一段将英文翻译成中文的程序。
英文:Hello                                                                     中文:你好
英文:How are you?                                                              中文:
  • 面对“指令调优”模型时的提示词风格(开发者可以直接、爽快地下命令):
请将下面的英文翻译成中文:
How are you?

指令调优的成熟极大地降低了人机交互的技术门槛,赋予了我们通过直白、纯粹的自然语言直接统御复杂系统和 Agent 的能力。

(4)基础提示技巧

  • 角色扮演 (Role-playing)通过在输入中明确定义模型所扮演的职业、身份或专家背景,能够有效约束并引导其回答的专业边界、行文语调及特定知识域,使其输出更加契合垂直业务场景。

# 案例你现在是一位资深的Python编程专家。请解释一下Python中的GIL(全局解释器锁)是什么,要让一个初学者也能听懂。

  • 上下文示例 (In-context Example)这完美继承了 Few-shot 提示的核心精髓。通过在提示词中嵌入高规范性的输入输出样本,“手把手”示范处理逻辑,尤其在处理复杂的 JSON 序列化输出、严格的文本抽取或定制化风格落地时威力巨大。

# 案例我需要你从产品评论中提取产品名称和用户情感。请严格按照下面的JSON格式输出。 评论:这款“星尘”笔记本电脑的屏幕显示效果惊人,但我不太喜欢它的键盘手感。 输出:{“product_name”: “星尘笔记本电脑”, “sentiment”: “混合”} 评论:我刚买的“声动”耳机音质很棒,续航也超出了我的预期! 输出:

(5)思维链

在面对涉及密集逻辑推理、数学计算或多步骤排查的重度任务时,如果逼迫模型“毕其功于一役”地直接抛出最终答案,模型极易产生计算偏差或逻辑断层。思维链 (Chain-of-Thought, CoT) 则是对抗这一缺陷的降维打击武器。它通过精心设计的策略引导模型将庞大的问题拆解,通过“一步一步输出中间思考过程”的形式,大幅拉高复杂推理的准确率。

激活 CoT 的秘诀往往非常简单,有时只需在提示词的末尾或显要位置注入诸如“请逐步思考并解答”或“Let’s think step by step”等具有魔力的启发式语句即可。

# 思维链提示
一个篮球队在一个赛季的80场比赛中赢了60%。在接下来的赛季中,他们打了15场比赛,赢了12场。两个赛季的总胜率是多少?请一步一步地思考并解答。

>>>

(模型可能会输出)好的,我们来一步步计算。
第一步:计算第一个赛季赢得的比赛数。80场 * 60% = 48场。
第二步:计算两个赛季的总比赛数和总胜利数。总比赛数 = 80 + 15 = 95场。总胜利数 = 48 + 12 = 60场。
第三步:计算总胜率。总胜率 = (总胜利数 / 总比赛数) * 100% = (60 / 95) * 100% ≈ 63.16%。
所以,两个赛季的总胜率约为63.16%。

通过把隐蔽的中间计算与逻辑推演过程“显式化”地打印出来,大模型不仅能极大地自我纠偏、锁定正确答案,还极高地增强了输出的可解释性,便于开发者进行调试与边界干预。

3.2.2 文本分词

众所周知,现代数字计算机在底层只能识别数字与二进制流。为了能够让大语言模型顺畅地吞吐自然语言文本,我们必须在前端架设一道转换桥梁,将连贯的文字序列重组为模型可以解析的离散数字序列,这一核心预处理技术即为**分词 (Tokenization)。而承担这一职责的组件被称为分词器 (Tokenizer),它依托一套既定的严密算法,负责将原始文本切分为一个个具备基本语义或结构特征的最小计算单元——词元 (Token)**。

3.2.2.1 为何需要分词

在自然语言处理(NLP)的早期演进阶段,研究人员曾尝试过几种较为朴素的分词策略,但它们在工程落地上面临着各自的软肋:

  • **按词分词 (Word-based)**:直接依靠天然的空格或各种标点符号作为切分标线。虽然符合人类阅读直觉,但在工程落地上面临两大死穴:
  • 词表爆炸与未登录词问题:人类语言的词汇总量庞大且在不断衍生新词,若将每一个独立单词都硬性塞入词表,会导致词表体积异常臃肿。更致命的是,一旦在实际输入中遭遇词表未涵盖的新词(即“未登录词”,Out-Of-Vocabulary, OOV,例如自定义组合词“DatawhaleAgent”),模型就会彻底抓瞎。
  • 语义关联被割裂:此类方法无法建立形态相似词汇之间的血缘映射。例如 "look""looks" 以及 "looking" 会被生硬地剥离为三个毫无相干的独立 Token,哪怕它们共享完全相同的心智内核;这也导致训练数据中的低频衍生词极难被充分喂饱。
  • **按字符分词 (Character-based)**:将文本彻底打碎为最基础的单字、字母或标点。这种做法的优势是词表极小(往往只需包含几十个英文字母或基础符号),能够天然杜绝 OOV 现象。然而,其反向代价是单个字母或笔画往往丧失了独立语义,迫使大模型在训练时必须额外消耗巨额的算力去从零学习如何将孤立字符拼凑成有意义的语义集团,导致模型收敛效率极为低下。

为了在词表可控性语义承载力之间斩获完美平衡,当代主流大语言模型不约而同地拥抱了子词分词 (Subword Tokenization) 算法。它的基本哲学是:将高频出现的常用词(如 "agent")原封不动地保留为单一词元,而对于那些不常碰到的长词或衍生词(如 "Tokenization"),则将其科学地拆解为若干个具备语义指向性的子词片段(如表示核心概念的 "Token" 与表示名词后缀的 "ization")。这种折中策略不仅完美遏制了词表的无限扩张,还赋予了模型通过灵活组合子词来无缝解读和创造陌生词汇的非凡能力。

3.2.2.2 字节对编码算法解析

字节对编码 (Byte-Pair Encoding, BPE) 是目前工业界大模型(如 GPT 家族)应用最为广泛的明星子词分词算法之一。其算法逻辑极为简明高效,本质上是一个基于全局统计的“贪心合并”流程:

  1. 初始化阶段:将整个预训练语料库中挖掘出的所有基础单字符,作为初始词元的种子注入初始词表。
  2. 迭代合并阶段:在庞大的语料库上,全量统计所有相邻词元两两组合的出现频次,捕获那个拥有最高热度的词元对,将其强力熔断合并为一个崭新的合并词元,并增补进词表中。
  3. 循环往复:持续滚动执行第二步,直到词表的总容量精准触及预先设定的规模阈值。

案例演示:设想我们的微型测试语料库由 {"hug": 1, "pug": 1, "pun": 1, "bun": 1} 构成,若期望锻造一个包含 10 个词元的紧凑词表,BPE 的实际演进轨迹正如表 3.1 所示:

当训练阶段圆满拉下帷幕,词表扩充至 10 个单位,新的切分法案便正式确立。此时若输入一个全新且未在语料中现身过的单词 "bug",分词器便会开启自顶向下的贪心检索:先找全词 "bug" 发现查无此项;接着试探 "bu" 依然落空;最后捕获到词表中现成的 "b" 与 "ug",于是果断将其肢解为 ['b', 'ug']

接下来,我们可以通过运行一段纯正的 Python 脚本来复现上述的核心流转逻辑:

import re, collections

def get_stats(vocab):
    """统计词元对频率"""
    pairs = collections.defaultdict(int)
    for word, freq in vocab.items():
        symbols = word.split()
        for i in range(len(symbols)-1):
            pairs[symbols[i],symbols[i+1]] += freq
    return pairs

def merge_vocab(pair, v_in):
    """合并词元对"""
    v_out = {}
    bigram = re.escape(' '.join(pair))
&nbsp; &nbsp; p = re.compile(r'(?<!\S)'&nbsp;+ bigram +&nbsp;r'(?!\S)')
&nbsp; &nbsp;&nbsp;for&nbsp;word&nbsp;in&nbsp;v_in:
&nbsp; &nbsp; &nbsp; &nbsp; w_out = p.sub(''.join(pair), word)
&nbsp; &nbsp; &nbsp; &nbsp; v_out[w_out] = v_in[word]
&nbsp; &nbsp;&nbsp;return&nbsp;v_out

# 准备语料库,每个词末尾加上</w>表示结束,并切分好字符
vocab = {'h u g </w>':&nbsp;1,&nbsp;'p u g </w>':&nbsp;1,&nbsp;'p u n </w>':&nbsp;1,&nbsp;'b u n </w>':&nbsp;1}
num_merges =&nbsp;4# 设置合并次数

for&nbsp;i&nbsp;in&nbsp;range(num_merges):
&nbsp; &nbsp; pairs = get_stats(vocab)
&nbsp; &nbsp;&nbsp;ifnot&nbsp;pairs:
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;break
&nbsp; &nbsp; best = max(pairs, key=pairs.get)
&nbsp; &nbsp; vocab = merge_vocab(best, vocab)
&nbsp; &nbsp; print(f"第{i+1}次合并:&nbsp;{best}&nbsp;->&nbsp;{''.join(best)}")
&nbsp; &nbsp; print(f"新词表(部分):&nbsp;{list(vocab.keys())}")
&nbsp; &nbsp; print("-"&nbsp;*&nbsp;20)
>>>
第1次合并: ('u', 'g') -> ug
新词表(部分): ['h ug </w>', 'p ug </w>', 'p u n </w>', 'b u n </w>']
--------------------
第2次合并: ('ug', '</w>') -> ug</w>
新词表(部分): ['h ug</w>', 'p ug</w>', 'p u n </w>', 'b u n </w>']
--------------------
第3次合并: ('u', 'n') -> un
新词表(部分): ['h ug</w>', 'p ug</w>', 'p un </w>', 'b un </w>']
--------------------
第4次合并: ('un', '</w>') -> un</w>
新词表(部分): ['h ug</w>', 'p ug</w>', 'p un</w>', 'b un</w>']
--------------------

这段精炼的脚本极为直观地披露了 BPE 算法如何通过周而复始地检索并合并最高热度的相邻字符对,一步步做大做强词表生态的演进原貌。

在 BPE 的伟大基石之上,后续的研究者们又因地制宜地迭代出了若干种优化变体。目前在开源界和产业界声望最高的莫过于 Google 旗下的 WordPiece 与 SentencePiece

  • WordPiece:此算法被大名鼎鼎的 Google BERT 模型选为御用分词引擎。尽管它在架构上与 BPE 有着异曲同工之妙,但它在决定是否合并两个相邻词元时,考量的不再是单纯的“绝对出现频次”,而是衡量合并后“能否最大化拉高整个训练语料库的语言模型似然概率”。直白点说,它更倾向于合并那些能让整个语料库的“通顺度”提升最大的黄金组合。
  • SentencePiece:这是 Google 奉献给开源社区的另一款神兵利器,大受 Llama 系列等模型的追捧。它最具革命性的颠覆在于:直接抹平了空格与普通字符的物理界限,将空格映射为一个有血有肉的普通可见符号(通常利用下划线 _ 代替)。这使得分词与文本还原(解码)变成了一个绝对可逆、毫无信息折损的数学镜像过程,且由于不再严重依赖空格作为分词的前置边界,它能自然且无缝地横跨中、日等不依赖空格分词的复杂东方语系。

3.2.2.3 分词器对开发者的意义

对于投身 Agent 开发的实战派工程师而言,深入探究分词算法绝非只是为了应付理论概念,因为分词器的底层表现将以极其直接的方式穿透并左右智能体的综合性能、调用成本以及运行稳定性:

  • 上下文视窗的隐形极限:任何大模型的上下文护城河(例如 8K、128K 等)在底层全部是以 Token 计数为铁律的,而非我们直观感知的汉字数或英文字数。相同的文字段落,在面对截然不同的语言类型或不同厂家的分词器时,其最终催生出的 Token 数量可能会有数倍的悬殊。在设计具备长期记忆(Long-term Memory)的 Agent 时,学会极其精准地度量并规划输入端 Token 的水位、防止突破视窗天花板,是一门必修课。
  • 高昂的 API 财务红线:市面上绝大多数商业大模型的云端 API 计费模型都死死锚定在 Token 的吞吐量上。深刻洞察你的业务文本在分词器层面的切分密度,是精准评估、平抑并管控 Agent 运营财务预算的重要抓手。
  • 不可思议的暗箱表现异常:有时大模型表现出的莫名其妙的智商掉线,其罪魁祸首往往隐藏在分词阶段。举例来说,某款模型在处理中间带有空格的算式 2 + 2 时能够给出满分答卷,但在遭遇紧凑型输入 2+2 时却可能频频翻车,原因就在于后者极其容易被分词器误判为一个冷门、罕见的复合 Token。同样的,一个单词仅仅因为首字母的大小写微变,就可能在分词阶段被南辕北辙地切碎为完全两组 Token 轨线,进而诱发模型产生理解偏差。在构筑精细的 Prompt 模板以及开发高鲁棒性的输出解析器时,必须时刻保持对这些“分词陷阱”的警惕。

3.2.3 调用开源大语言模型

在本书的开篇章节中,我们主要借助远程云端 API 这一极其外置、开箱即用的技术路线来驱动 Agent。尽管云端调用极具灵活性,但它显然无法满足所有的产业落地诉求。在大量涉及数据安全合规、隐私红线、绝对离线运行环境或需要极端平抑长线算力成本的深度企业级场景中,将大语言模型直接部署在本地就成了不容退让的必选项。

Hugging Face Transformers 库作为目前全球开源 AI 生态中最强大的事实标准工具链,提供了极高度统一、标准化的接口,供开发者自由加载和调度数以万计的预训练模型资源。在本次技术实践中,我们将依托这一利器展开探索。

环境整备与基座模型遴选:为了确保广大读者能够在一台常规配置的个人电脑上顺畅地跑通业务流,我们精心挑选了一款麻雀虽小、五脏俱全的轻量级明星模型:Qwen/Qwen1.5-0.5B-Chat。这是由阿里巴巴团队重磅开源的、拥有约 5 亿参数规模的对话模型。它以极低的硬件门槛、卓越的响应速率和优异的中文对齐表现,成为了新手入门本地部署实践的不二之选。

在正式起航前,请确保您的本地环境中已正确安装了核心依赖库:

pip install transformers torch

在 Transformers 库的规范下,我们最常调用 AutoModelForCausalLM(用于自动加载与之匹配的因果语言模型权重)和 AutoTokenizer(用于动态加载与之严格配套的分词器配置)这两个工厂类。下面这段初始脚本在首次执行时,会自动建立与 Hugging Face Hub 的握手,并将全部所需参数文件拉取至本地缓存:

import&nbsp;torch
from&nbsp;transformers&nbsp;import&nbsp;AutoModelForCausalLM, AutoTokenizer

# 指定模型ID
model_id =&nbsp;"Qwen/Qwen1.5-0.5B-Chat"

# 设置设备,优先使用GPU
device =&nbsp;"cuda"if&nbsp;torch.cuda.is_available()&nbsp;else"cpu"
print(f"Using device:&nbsp;{device}")

# 加载分词器
tokenizer = AutoTokenizer.from_pretrained(model_id)

# 加载模型,并将其移动到指定设备
model = AutoModelForCausalLM.from_pretrained(model_id).to(device)
print("模型和分词器加载完成!")

紧接着,我们来为模型构建一段结构化的对话提示词。由于 Qwen1.5-Chat 模型内部嵌入了特定的对话范式模板,我们必须调用分词器自带的 apply_chat_template 工具,将原本松散的 Python 字典列表转化为模型底层的特定标识符文本,进而将其编译为模型可直接吞吐的数字 ID(即 Token ID)。

# 准备对话输入
messages = [
&nbsp; &nbsp; {"role":&nbsp;"system",&nbsp;"content":&nbsp;"You are a helpful assistant."},
&nbsp; &nbsp; {"role":&nbsp;"user",&nbsp;"content":&nbsp;"你好,请介绍你自己。"}
]

# 使用分词器的模板格式化输入
text = tokenizer.apply_chat_template(
&nbsp; &nbsp; messages,
&nbsp; &nbsp; tokenize=False,
&nbsp; &nbsp; add_generation_prompt=True
)

# 编码输入文本
model_inputs = tokenizer([text], return_tensors="pt").to(device)
print("编码后的输入文本:")
print(model_inputs)
>>>
{'input_ids': tensor([[151644, &nbsp; 8948, &nbsp; &nbsp;198, &nbsp; 2610, &nbsp; &nbsp;525, &nbsp; &nbsp;264, &nbsp;10950, &nbsp;17847, &nbsp; &nbsp; 13,
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;151645, &nbsp; &nbsp;198, 151644, &nbsp; &nbsp;872, &nbsp; &nbsp;198, 108386, &nbsp;37945, 100157, 107828,
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1773, 151645, &nbsp; &nbsp;198, 151644, &nbsp;77091, &nbsp; &nbsp;198]], device='cuda:0'), 'attention_mask': tensor([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]],
&nbsp; &nbsp; &nbsp; &nbsp;device='cuda:0')}

现在,所有的箭都已搭在弦上,我们可以自信地调用模型的 generate() 核心方法来启动文本生成了。此时模型的输出将是一串代表新生成文本的 Token ID 洪流。最后,我们需要利用分词器的 decode() 工具逆向反转,将这串冰冷的数字 ID 还原为人类可读的流畅文字。

# 使用模型生成回答
# max_new_tokens 控制了模型最多能生成多少个新的Token
generated_ids = model.generate(
&nbsp; &nbsp; model_inputs.input_ids,
&nbsp; &nbsp; max_new_tokens=512
)

# 将生成的 Token ID 截取掉输入部分
# 这样我们只解码模型新生成的部分
generated_ids = [
&nbsp; &nbsp; output_ids[len(input_ids):]&nbsp;for&nbsp;input_ids, output_ids&nbsp;in&nbsp;zip(model_inputs.input_ids, generated_ids)
]

# 解码生成的 Token ID
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
print("\n模型的回答:")
print(response)
>>>
我叫通义千问,是由阿里云研发的预训练语言模型,可以回答问题、创作文字,还能表达观点、撰写代码。我主要的功能是在多个领域提供帮助,包括但不限于:语言理解、文本生成、机器翻译、问答系统等。有什么我可以帮到你的吗?

当控制台屏幕上成功跃出通义千问自我介绍的那一刹那,恭喜你,你已经亲手跨越了本地大模型调用的护城河,成功在本地环境上跑通并驱动了一个开源大语言模型!

3.2.4 模型的选择

在顺利攻克了本地运行小型开源模型的难关后,摆在所有 Agent 架构师面前最务实也最考验内功的战略问题便是:面对当前市场上百花齐放、百家争鸣的数千款模型,应当如何针对特定的具体任务,精准挑选出那款最契合的“基座大脑”?

模型选型从来都不是一场盲目推崇“参数量最大、跑分最高”的粗暴竞赛,本质上它是一个在核心性能、财务预算、响应延迟、视窗极限以及部署自主度等多个错综复杂的异质维度之间进行缜密博弈与动态平衡的决策流程。本节将为你抽丝剥茧地盘点模型选型所必须依循的考量矩阵,并对当前全球闭源与开源两大阵营的代表作品进行全景剖析。

💡 前置说明:全球大模型技术目前正处于日新月异、高速跃迁的深水期,新架构与新版本层出不穷。本节所提及的具体模型版本及各项基准数据均立足于当前的技术视窗,旨在提炼并交付底层那些沉淀下来的核心技术特征、演进趋势以及通用的 Agent 选型心法。

3.2.4.1 模型选型的关键考量

在评估并考核一款大模型是否适合承载你的 Agent 业务时,建议建立以下多维度的全方位评估矩阵:

  • 性能与核心禀赋:这是最动摇不得的底层根基。不同的模型往往身怀截然不同的“绝技”:有的在强逻辑推理、高级代码重构与硬核数学计算上表现惊艳,有的则在感性文本创作、跨语言高情商对话上独树一帜。在评估时,业界公认的客观天梯榜(如 LMSys Chatbot Arena 盲测排行榜)能够为你提供极佳的宏观参考。
  • 综合财务与算力成本:商业闭源模型按 Token 的吞吐量直接扣费,其成本与 Agent 调用频次呈线性绑定;而开源模型的开销则隐式转化为本地高昂的 GPU 硬件采购成本、机房带宽以及长期运维的人力资本。选型必须紧扣产品当前的预期用户规模与长期财务预算。
  • 响应延迟(Latency & TTFT):对于那些追求极佳实时交互体验的 Agent 场景(如智能在线客服、开放世界游戏中的 NPC),模型的首字输出时间(TTFT)与每秒 Token 生成速度具有一票否决权。部分轻量化或经过特殊蒸馏优化的模型往往在这方面建立起极大的延迟护城河。
  • 上下文视窗容量(Context Window):即模型单次吞吐 Token 的物理天花板。如果你的 Agent 定位于深度解析长篇财报、重构大型开源项目代码库或必须维系极其冗长的历史对话记忆,那么无条件选择一个支持超长上下文(如 128K Token 或更高)的模型便是技术上的刚需。
  • 私有化与部署策略:调用公共 API 能够极大缩短产品的研发周期,但数据必须上传,难以规避敏感信息泄露与服务商的风控限制;本地私有化部署则能给予企业绝对的数据主权与最高级别的安全掌控,但技术门槛与前期资本开支也会陡增。
  • 技术生态与工具链的亲和度:一款模型的流行程度直接决定了其周边技术生态的肥沃程度。主流模型往往能够获得 LangChain、LlamaIndex、Hugging Face Transformers 等顶流开发框架的无缝原生支持,社区中丰富的教程、现成的避坑指南能让 Agent 研发效率成倍飙升。
  • 定制化微调空间(Fine-tunability):当通用的基座模型在面对某些高度垂直、充满行业黑话的私有业务场景显得捉襟见肘时,模型本身是否开放高品质的微调接口或是否完整开源就显得至关重要。开源模型在这方面能够提供毫无保留的白盒操作空间,极大地便利了开发者通过 LoRA 等技术进行定向拔高。
  • 安全合规与伦理边界:伴随大模型应用逐渐步入深水区,其潜在的意识形态偏见、输出毒性以及幻觉泛滥等安全隐患已成为不可忽视的红线。选择模型时,必须对其在各国的政策法规合规性、事实核查机制上的严谨度进行深度审计。

3.2.4.2 闭源模型概览

商业闭源模型通常凝聚了全球头部 AI 巨头最前沿的科研结晶,并辅以极高可用性的云端托管服务,是追求顶尖性能 Agent 的首选方案。

  • OpenAI GPT 旗舰系列:从奠定划时代基石的 GPT-3,到首次引入人类反馈强化学习(RLHF)实现完美意图对齐的 ChatGPT,再到横空出世斩获多模态通用计算能力的 GPT-4,OpenAI 自始至终扮演着行业领航者的角色。其最新一代 GPT-5 旗舰模型更是全面实现了深度的原生多模态融合,能够极其流畅地对文本、音频、视觉画面进行跨模态协同理解与即时响应,特别是在超低延迟的自然语音实时对答中展现出了近乎人类的卓越交互质感。
  • Google Gemini 系列:由 Google DeepMind 实验室倾力打造的 Gemini 自诞生之日起便流淌着“原生多模态”的血液。它的一大杀手锏在于能够无缝解构并交织处理文本、底层代码、高帧率音视频及复杂图表,且依托长得惊人的上下文视窗在海量文档穿透任务中难逢敌手。整个家族阶梯分明:Gemini Ultra 主攻极限复杂的推演神坛,Gemini Pro 兼顾全能通用性与卓越性价比,Gemini Nano 则专门为移动端及边缘设备量身定制。最新的 Gemini 2.5 系列(如 2.5 Pro 与 2.5 Flash)在强化了核心逻辑链的同时,让 2.5 Flash 以极致的响应速率与极具竞争力的报价,成为了密集交互 Agent 的首选利器。
  • Anthropic Claude 系列:作为由一群极度死磕 AI 安全的顶尖科学家创立的明星公司,Claude 系列自始至终将“安全与负责任 AI”的理念烙印在骨子里。它以对超长文本的高维理解、极低的恶意输出概率以及对严苛企业级指令的卓越尊奉度而享誉业界。其 Claude 3 家族(Opus/Sonnet/Haiku)实现了对不同算力水位的精准覆盖;而最新一代的 Claude 4 旗舰版(如 Claude 4 Opus),更是在通用智能、高难度代码重构及多模态长上下文处理上取得了突破性进展。
  • 国内商业 Closed-source 力量:立足于本土产业土壤,国内大模型赛道同样呈现出百舸争流的壮丽景观。以百度文心一言(ERNIE Bot)、腾讯混元(Hunyuan)、华为盘古(Pangu-α)、科大讯飞星火(SparkDesk)以及月之暗面(Moonshot AI)等为核心代表的国产第一梯队模型,在中文特有的文化语境处理、本土化产业 API 生态适配上沉淀出了独特的天然竞争优势。

3.2.4.3 开源模型概览

开源模型阵营则毫无保留地赋予了全球开发者最高级别的定制自由度、技术透明性与战略安全感,是催生全球开发者生态繁荣的真正核心引擎。

  • Meta Llama 标志性系列:Meta 坚定捍卫的 Llama 开源路线是大模型普及史上的关键里程碑。该系列凭借卓越的普适性能、极度友好的开源商用协议以及排山倒海般的社区衍生生态,成为了全球无数垂直微调项目和学术研究的黄金基座。步入 2025 年 4 月发布的 Llama 4 世代,Meta 首次全面倒向了先进的混合专家(MoE)精细架构,通过在推理时动态激活局部最优参数网络,实现了效能的跃升。该系列三驾马车分工明确:Llama 4 Scout 凭借惊人的 1000 万 Token 超长视窗完美适配端侧及长文本分析;Llama 4 Maverick 聚焦全能多模态,在代码深度编写与多语言泛化上表现出众;而巨无霸 Llama 4 Behemoth 则在各项严苛的 STEM 理科基准测试中超越众多强敌。
  • Mistral AI 系列:源自法国的 AI 新贵 Mistral 团队始终秉持“小体积蕴含大能量”的极致设计美学。其在 2025 年 8 月重磅推出的 Mistral Medium 3.1,在高级编程、数理逻辑推演及跨学科复杂问答任务中展现出了极高的准确度与响应身手,在众多第三方权威盲测中甚至反超了同量级的商业闭源模型。该模型不仅具备天然的多模态混合输入处理能力,还非常精妙地在底层内置了“语调适配层(Tone Adaptation Layer)”,使得企业级用户能够以近乎零成本的方式让模型输出百分之百契合自身品牌的公关调性。
  • 国内开源大潮:中国的开源力量同样在全球舞台上扮演着举足轻重的硬核角色。诸如阿里巴巴倾力打造的通义千问(Qwen)系列以及清华团队与智谱 AI 联合孵化的 ChatGLM 矩阵,不仅在中文及多语言综合能力上雄踞国际前列,更围绕自身构建起了极其蓬勃、高黏性的开发者社区生态,为本土乃至全球的 Agent 创新提供了源源不断的技术支撑。

3.3 大语言模型的缩放法则与局限性

尽管大语言模型在过去数年间展现出了摧枯拉朽般的技术演进速度,其能力天花板被不断刷新。然而,所有这些耀眼成就的背后,均深刻遵循着一类关于模型体量、语料规模与算力投入之间精妙共生关系的底层物理定律——缩放法则(Scaling Laws)。与此同时,作为一项尚在全速狂奔的新兴技术,LLM 的底层机制也天然裹挟着诸多难以回避的物理瓶颈与逻辑盲区。本节将带你直面这些核心议题,帮助你在构建 Agent 时能够洞若观火,做到知己知彼、扬长避短。

3.3.1 缩放法则

缩放法则(Scaling Laws)堪称现代深度学习大模型领域的至高美学发现之一。它用极其纯粹的数理关系揭示了:大模型的最终性能,与其参数总量、吞吐的训练语料规模以及耗费的净算力资源(Compute)之间,存在着一种在宏观上高度可预测的幂律关系(Power-Law Correlation)。这一铁律的确立,直接为整个大模型工业界指明了通过源源不断充实资源来稳定换取智能跃升的底层科学路径。

大量严谨的实证研究表明,当我们将坐标系切换至对数-对数(Log-Log)视角时,模型的交叉熵损失(Loss)会随着参数规模、数据总量或计算开销的线性递增而呈现出一条极为平滑、完美的下降曲线。这意味着,只要在工程上能够按科学比例同步放大这三大核心要素,模型的表现就能够实现一种可以被精确外推的线性强化,而绝不会在短时间内撞上不可名状的智力瓶颈。

在行业探索的早期,人们普遍陷入了盲目堆砌模型参数体积的误区。直到 2022 年 DeepMind 实验室抛出著名的“Chinchilla 定律”,这一偏见才被彻底纠正。该研究指出:在有限且确定的算力预算框架下,为了达成最完美的性能回报,模型参数量与训练代币数(Tokens)之间必须要严密维系一种最优的黄金杠杆比例。简而言之,过去的模型往往“体型过于肥胖而书读得太少”;真正高性价比的模型应该适度收敛其参数身形,转而用成倍增加的、极度高精的语料对其进行高强度洗礼。这一伟大修正直接启发并催生了后续以 Llama 家族为代表的一大批主打“小参数、大语料、极度高精训练”的现代高效能大模型。

而缩放法则在推演过程中最让全球科技界为之惊叹的副产物,莫过于“能力的涌现(Emergence)”。所谓能力的涌现,是指当模型的参数规模或计算量越过某一个神秘的临界物理阈值(Tipping Point)时,原本在小型模型中表现得如同随机乱猜、毫无头绪的特定高维复杂技能,会突然呈现出爆发式的、断层式的惊人觉醒。诸如长程思维链推理(CoT)、严苛的复杂指令尊奉、跨领域的综合多步规划以及精密的底层代码自动生成等,无一例外都是在模型参数跨越数百亿甚至千亿门槛后才真正解封的。

这种现象有力地证明了大模型绝非简单的语料复读机,而是在庞大的多维概率空间压缩过程中,真正内化并孕育出了某种人类尚未完全探明的高阶抽象认知与逻辑表征能力。对于 Agent 架构师而言,这一现象给出的关键启示在于:选择一款跨越了涌现门槛、具备足够参数底蕴的模型,往往是构建高自主性、高规划力智能体不可动摇的技术前置条件。

3.3.2 模型幻觉

模型幻觉(Hallucination)是一个伴随大模型而生的标志性顽疾。它通常是指大语言模型在生成文本的过程中,输出了与客观现实风马牛不相及、与用户的输入产生逻辑断层、或与上下文线索直接掐架的错误内容,甚至以极其笃定、不容置疑的口吻凭空捏造不存在的事实、人物或文献。幻觉的核心根源在于:大模型在本质上是一套基于概率预测的黑盒,它在某些时刻展现出了某种“过度自信的概率编织”,而非真正意义上基于逻辑实证 Fact-Check 的事实检索。依据其在真实业务中的发作形态,幻觉通常被归纳为以下几大经典类型:

  • **事实性幻觉 (Factual Hallucinations)**:模型信口雌黄,凭空捏造出了完全偏离现实物理世界的荒谬信息。
  • **忠实性幻觉 (Faithfulness Hallucinations)**:在受到严苛源文本约束的摘要、文本提炼或跨语言翻译任务中,模型生成的文本悄然走样,未能忠实履行传达源文本核心主旨的职责。
  • **内在幻觉 (Intrinsic Hallucinations)**:模型在前后文的输出中自相矛盾,后文直接推翻了前文自己刚刚立下的事实设定。

幻觉的产生是由大模型底层的多重先天局限性共同交织决定的。首先,浩如烟海的原始训练数据中本身就不可避免地混杂着大量不实传闻、过时信息或逻辑相悖的噪音;其次,大模型自回归(Autoregressive)的逐字生成机制注定了其底层动作只是在不知疲倦地预测“下一个最合理的 Token 是谁”,它在核心架构中天生缺乏一个独立运行的、客观的事实审计裁判模块;最后,一旦遭遇涉及多级深层逻辑推演的极限任务,模型很容易在中间的某一个微小概率分叉上产生逻辑滑坡,进而“滚雪球”般地炮制出极其荒谬的最终结论。

⚠️ 设想一个工业场景:一个负责自动化差旅规划的 Agent,可能会极其丝滑地为你构思出一个现实中根本不存在的梦幻度假村,或者为你下单一张航班号完全由其随机拼凑的虚无机票。

除此之外,大模型还面临着知识时效性断层(Knowledge Cutoff)以及训练语料偏见内化等沉重枷锁。大模型的所有智慧完全被定格在它最后一次编译训练数据的那一历史瞬间。在这个截止日期之后发生的所有地缘政治巨变、新诞生的前沿技术或动态事实,模型在白盒状态下是完全处于“盲区”的。与此同时,由于互联网公开语料中天然裹挟着人类社会千百年来沉淀下来的各种刻板印象、地域及文化偏见,大模型在无差别的吞噬学习中,会极其自然地将这些偏见内化为自身的底层语言概率分布,并在特定场景下将其隐蔽地折射出来。

为了彻底驯服幻觉这头野兽,全球的顶尖学者与大模型开发者正在海空联动作战,从多个维度合力构筑幻觉防御干预体系:

  • 数据与对齐层面:在数据端进行极其严苛的高纯度知识清洗与去噪,并在对齐阶段引入带有强力事实性惩罚的强化学习(如 RLAIF 或定制化的 RLHF),从基因源头遏制幻觉的萌芽。
  • 模型架构演进层面:积极探索能够动态表达自身“不确定性得分(Uncertainty Scoring)”的全新网络架构,让模型在面对盲区时能够主动承认自己的无知。
  • 推理流与 Agent 架构层面
  1. **检索增强生成 (RAG)**:这是目前对抗幻觉最具实战统治力的王牌武器。RAG 的精髓在于“先查书,后作答”——在将指令丢给模型前,先从企业私有知识库或实时互联网搜索引擎中精准捞出最权威、最新的事实切片,作为硬核上下文死死锁住大模型的生成轨线,迫使其必须“按图索骥”。
  2. 多步自省与交叉验证机制:在 Agent 工作流中引入“自我批判(Self-Reflection)”或多智能体辩论机制,迫使模型在吐出最终结论前,先走一遍内部的逻辑审计与步骤复核。
  3. 深度外挂专业工具链:赋予 Agent 自由调用外部精准计算器、专业搜索引擎或沙盒代码解释器(Code Interpreter)的特权,将那些极易出错的数学算力与实时事实检索外包给百分之百准确的传统硬核程序。

3.4 本章小结

本章作为构建高阶智能体大厦的基石篇章,核心围绕作为 Agent “数字大脑”的大语言模型(LLM)展开了全方位的底层解构。我们共同见证了语言模型从早期的统计学源头一路狂奔至现代 Transformer 架构的波澜壮阔史,并通过“自顶向下”的原生代码重构深入拆解了自注意力机制在并行吞吐与长程依赖捕获上的不二法门。随后,本章深入剖析了提示工程与文本分词这两大构筑人机交互必经的底层枢纽,并配合开源轻量模型的本地私有化部署演练,实现了理论向实战的闭环。最后,我们全景审视了闭源与开源两大家族的战略生态,并客观理性地探讨了驱动大模型智能跃迁的缩放法则及其不可回避的幻觉与时效性局限。

📌 核心知识点高光回溯:

  • 模型演进与核心架构:系统性梳理了从传统的 N-gram 统计路径到 RNN、LSTM 的序列演进,乃至最终奠定大模型时代王座的 Transformer 架构。通过白盒化的代码重构,层层剥离出自注意力机制的核心运作法理。
  • 人机交互与预处理枢纽:深刻揭示了提示工程(Prompt Engineering)在统御模型行为方面的艺术,以及分词技术(Tokenization)作为文本向数字 ID 映射的底层逻辑。借助 Qwen 轻量模型的本地跑通,打通了本地化驱动的最后一公里。
  • 全球生态与工程选型矩阵:从性能、财务、延迟、视窗及自主性等多个工程维度,系统化构建了 Agent 选型决策矩阵,并全面梳理了以 OpenAI、Google、Meta、Mistral 及国内各大旗舰为代表的两大阵营的全景版图。
  • 铁律规律与生俱来的局限:深刻阐述了主导大模型智能演进的幂律缩放法则及能力涌现的奇点效应;同时冷峻地剖析了事实幻觉、知识时效断层与偏见内化等伴生顽疾,为后续的工程防御明确了靶向。

🚀 从大模型底座向 Agent 范式的跨越:

本章之所以耗费如此饱满的笔墨去夯实大模型的底层底蕴,绝非仅仅为了普及大模型的科普发展史,而是因为大模型底层的运行机理中,天然蕴含着构建高阶 Agent 架构的终极生存智慧。诸如:应当如何精雕细琢提示模板来最大化激活 Agent 的高级规划与多步拆解决策;应当如何审时度势地根据具体的业务财务红线选择最契合的基座模型;以及应当如何优雅地在 Agent 的工作流流水线中嵌入 RAG 检索与多级交叉验证机制,以此完美驯服模型的幻觉与不确定性——所有这些横亘在 Agent 实战前沿的解决方案,其技术根脉全部深深地扎在本章所筑就的大模型底座之中。

现在,我们已经圆满完成了全部理论与底层的战备整装。在即将到来的下一章,我们将正式告别漫长的岸边演练,扬帆切入智能体经典范式构建的浩瀚深水区,用双手亲自赋予 Agent 真正的灵魂!


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:AI+网络安全笔记 Yang Yang《三、大语言模型基础——如何更好地使用大语言模型及大语言模型的相关局限性》

评论:0   参与:  0