024文本生成策略
文本生成策略¶
文本生成是许多自然语言处理任务的核心,例如开放式文本生成、摘要、翻译等。它还在各种混合模式应用中发挥作用,这些应用以文本作为输出,例如语音转文本和视觉转文本。一些可以生成文本的模型包括 GPT2、XLNet、OpenAI GPT、CTRL、TransformerXL、XLM、Bart、T5、GIT 和 Whisper。
查看一些使用 generate() 方法为不同任务生成文本输出的示例:
请注意,generate 方法的输入取决于模型的模态。它们由模型的预处理器类返回,例如 AutoTokenizer 或 AutoProcessor。如果一个模型的预处理器创建多种输入,请将所有输入传递给 generate()。你可以在相应的模型文档中了解更多关于单个模型预处理器的信息。
选择输出标记以生成文本的过程称为解码,你可以自定义 generate() 方法将使用的解码策略。修改解码策略不会改变任何可训练参数的值。然而,它可以对生成输出的质量产生显著影响。它可以帮助减少文本中的重复,并使其更加连贯。
本指南描述了:
- 默认生成配置
- 常见的解码策略及其主要参数
- 将自定义生成配置与你在 🤗 Hub 上微调的模型一起保存和共享
默认文本生成配置¶
模型的解码策略在其生成配置中定义。当在 pipeline() 内部使用预训练模型进行推理时,模型调用 PreTrainedModel.generate() 方法,该方法在幕后应用默认生成配置。当没有与模型一起保存自定义配置时,也使用默认配置。
当你显式加载模型时,可以通过 model.generation_config 检查其附带的生成配置: