《DEEPSEEK原生应用与智能体开发实践 图书》【摘要 书评 试读】- 京东图书
在上一节(自回归生成模型中的资源计算-优快云博客)中,我们详细讲解了自回归生成模型的原理与训练过程,揭示了训练环节的核心重要性。然而,在生成模型的全面实践中,更加关键的一步在于如何精妙地运用这些训练成熟的模型去执行实际的推理任务。而在此过程中,一个至关重要的考量因素,便是如何高效利用现有的设备和资源,以最优化的方式进行模型推理。
在本节中,我们将聚焦于生成模型中的推理加速内容,深入探讨如何通过技术手段提升模型推理的速度与效率。我们将介绍一系列策略和技巧,包括模型压缩、并行计算、硬件优化等,旨在帮助大家充分利用计算资源,减少推理时间,从而实现更快速、更高效的生成模型应用。通过本节的学习,你将能够掌握提升生成模型推理性能的关键方法,为你的实际项目注入更强大的动力。
8.2.1 模型推理中的“贪心生成”与“采样生成”
前面我们在最后讲解了模型生成时的参数temperature与采样个数Top_k,这实际上是我们在使用时默认使用了采样生成策略。在深度学习中,特别是在自然语言处理领域,文本生成是一个重要的任务。在这个过程中,贪心生成(Greedy Generation)和采样生成(Sampling Generation)是两种常用的策略。下面我们将详细讲解这两种策略及其特点。
1. 贪心生成
原理:贪心生成的核心思想是,在每一步生成过程中,都选择当前概率最大的token(即最可能的词或字符)作为预测值。这种方法简单直观,计算效率高。
优点:由于每次都选择最有可能的词,贪心生成往往能生成语法正确、语义通顺的文本。
缺点:然而,贪心策略也容易导致生成的文本缺乏多样性。因为每次都选择概率最大的词,所以生成的文本往往比较单一,缺乏创新和变化。
贪心生成的简单示例如下:
import torch
import torch.nn.functional as F
# 假设我们有一个训练好的模型model,和一个初始的输入序列input_seq
# model应该是一个PyTorch模型,其输出是词汇表大小的logits
# input_seq是一个张量,表示输入的序列
# 使用模型得到下一个token的预测分布
logits = model(input_seq)
# 使用Softmax函数得到概率分布
probs = F.softmax(logits, dim=-1)
# 选择概率最大的token作为下一个词
next_token = torch.argmax(probs, dim=-1)
print("Greedy generated token:", next_token.item())
2. 采样生成
为了增加生成的多样性,人们提出了采样生成的方法。这种方法通过采样的方式,使得非最大概率值的token也有机会被选中。
原理:在采样生成中,每个token被选中的概率与其在模型输出的概率分布中的值成正比。这样,即使某个token的概率不是最大的,也有可能被选

最低0.47元/天 解锁文章
585

被折叠的 条评论
为什么被折叠?



