# generate函数说明
"""
类用于保存生成任务的配置。调用generate支持以下对于text-decoder、text-to-text、speech-to-text和vision-to-text模型的生成方法:
如果num_beams=1且do_sample=False,则使用贪婪搜索,调用~generation.GenerationMixin.greedy_search。
如果penalty_alpha>0且top_k>1,则使用对比搜索,调用~generation.GenerationMixin.contrastive_search。
如果num_beams=1且do_sample=True,则使用多概率采样,调用~generation.GenerationMixin.sample。
如果num_beams>1且do_sample=False,则使用beam搜索,调用~generation.GenerationMixin.beam_search。
如果num_beams>1且do_sample=True,则使用beam搜索多概率采样,调用~generation.GenerationMixin.beam_sample。
如果num_beams>1且num_beam_groups>1,则使用分群束搜索,调用~generation.GenerationMixin.group_beam_search。
如果num_beams>1且constraints!=None或force_words_ids!=None,则使用约束束搜索,调用~generation.GenerationMixin.constrained_beam_search。
在使用这个模型进行文本生成时,您也可以不直接调用上述方法。而是将自定义参数值传递给'generate'方法。
参数说明:
max_length:控制生成输出的长度,默认为 20。它的值对应于输入提示的长度加上max_new_tokens。如果同时设置了max_new_tokens,则它的效果将被覆盖。
max_new_tokens:控制要生成的令牌数量,忽略提示中的令牌数量。它的值默认为 0。
min_length:控制生成序列的最小长度,默认为 0。它的值对应于输入提示的长度加上min_new_tokens。如果同时设置了min_new_tokens,则它的效果将被覆盖。
min_new_tokens:控制要生成的令牌数量,忽略提示中的令牌数量。它的值默认为 0。
early_stopping:控制基于 beam 的方法(如 beam-search)的停止条件。它接受以下值:True,表示生成在有num_beams个完整候选项时停止;False,表示应用启发式方法,在找到更好候选项的可能性很小时停止;"never",表示 beam 搜索过程仅在无法找到更好候选项时停止(经典 beam 搜索算法)。
max_time:允许计算运行的最大时间,单位为秒。如果分配的时间已过,生成过程仍会完成当前迭代。
这个注释是用于控制生成策略的参数。它包含了以下几个参数:
do_sample(可选,默认为False):是否使用采样;否则使用贪婪解码。
num_beams(可选,默认为1):束搜索的束数。1表示不使用束搜索。
num_beam_groups(可选,默认为1):将num_beams分成若干组,以确保不同束组的多样性。更多详细信息请参考这篇论文(This Paper)。
penalty_alpha(可选):在对比搜索解码中,平衡模型置信度和退化惩罚的值。
use_cache(可选,默认为True):模型是否应使用过去的最后一个键/值注意力(如果适用于模型)来加速解码。
"""