Large Model
2026-03-12
比起两年前,NLG任务已经得到了非常有效的发展,transformers模块的使用广泛程度也达到前所未有的程度。在模型推理预测时,一个核心的语句就是 model.generate() ,本文就来详细介绍一下generate方法是如何运作的。在生成的过程中,包含了诸多生成策略,本文将以最常用的beam search为例,尽可能详细地展开介绍。 随着各种LLM的出现,transformers中与generate相关的代码发生了一些变化,主要区别在于: generate的源码位置发生了改变; generate方法中,采用一个 generation_config 参数来管理生成相关的各种配置,并优化了逻辑,使得逻辑更加清晰。 generate的代码位置 在之前版本的transformers中(transformers~=4.9),generate方法位于 transformers.generation_utils.py ,这个方法是 GenerationMixin 类的一个方法。 而在新版本的transformers中(transformers~=4.42),generate方法被转移到了...