大模型应用落地实践与提示工程分层解析
本文旨在帮助产品与开发团队深入理解大语言模型(LLM)的核心机制,降低沟通阻力,推动技术在实际业务中的有效落地。
一、大模型并不神奇:压缩与泛化
很多人听到'大模型'这个词可能会觉得很神秘。其实,LLM 本质上是一个巨大的神经网络。与传统神经网络相比,'大'是其核心特征。我们可以用一个压缩算法的简单例子来帮助理解这个庞大的神经网络结构。
1. 原始压缩算法
首先,我们回顾一下传统的压缩算法。
- 原始数据:假设有一段原始数据
AAABBBB。在未压缩的情况下,这些数据占用一定的存储空间。 - 压缩过程:压缩算法使用固定规则寻找重复模式。例如,将连续的
A和B识别出来,压缩成3A4B。 - 压缩后:通过更短的字符表示原始数据,大大减少了存储需求。
- 解压:使用时遵循固定规则还原为
AAA BBBB。 - 特点:速度快但压缩率低,通常是无损的。
2. 大模型的压缩逻辑
大模型的训练过程与上述压缩过程类似,但更为复杂。
- 原始数据:包含海量文本,如书籍、网络语料等。假设总数据量高达 10TB 甚至更多(例如 Llama3 使用的预训练数据)。
- 压缩过程:模型通过训练迭代优化参数(权重和偏置),从数据中学习复杂的模式和规律。这相当于将海量数据中的信息密度提取并编码到模型参数中。
- 压缩后:最终得到一个经过训练的模型文件,可能仅需 10GB 左右的存储空间。这个'压缩版本'包含了所有重要的信息,以便模型进行推理和预测。
- 特点:训练过程慢且消耗大量计算资源,但压缩率极高。一个 10TB 的语料可能被压缩到一个 10GB 大小的稠密模型中。
3. 超越字符串:抽象规律学习
更重要的是,大模型能够学习字符串之间的相关性,即抽象规律,甚至推理出原始数据中不存在的事物。
- 抽象模式学习:输入数据包含'苏格拉底是人,人会死',模型能学习到'三段论'这样的逻辑关系。
- 推理能力:训练完成后,模型不仅能记忆内容,还能根据学到的模式推理新信息。例如输入'马顿是人,人会死',模型可推理出'马顿会死'。即使'马顿'是虚构的,模型也能基于模式推演。
- 注意:模型的理解与人类不一定相同。不要强行套用人类思维,否则容易失望;但也别忽略其特有能力。实用主义出发,结合提示工程解决问题是关键。
二、采样策略与不确定性
推理输出的结果是一个数学矩阵。理论上,输入数据相同、参数不变的情况下,中间数学输出应该是确定的。但最终转换成现实世界的文本时,涉及随机采样方法,导致每次生成的文本可能有所不同。
1. 常见采样算法
- 贪心算法 (Greedy):直接选择概率最高的词汇。保证输出一致,但缺乏多样性,文本可能单调。
- 波束搜索 (Beam Search):维护多个候选路径,效果优于贪心,但在长文本生成中可能陷入局部最优。
- 温度缩放 (Temperature Scaling):温度参数决定生成文本的多样性。温度越低,Logit 向量越尖锐,高概率词汇更容易被选中(接近贪心);温度越高,生成越随机,适合创意内容。
- Top-K 采样:限制词汇表选择范围,只从概率最高的 K 个词中选择。K 值越大,选择空间越多,不确定性增加。
2. 不确定性的来源
之前的其他算法如贪心算法、波束算法效果不佳,OpenAI 在 GPT-2 中使用随机采样获得了更好效果。这主要是为了文本流畅度的工程实践。模型的内在知识不存在不确定性,不确定性来源于输出矩阵转现实世界文本的最后环节,刻意设计了一个概率选词算法。


