mindformers.generation.GenerationConfig

查看源文件
class mindformers.generation.GenerationConfig(**kwargs)[源代码]

保存生成任务配置的类。

某些参数有特定的功能,有关详细信息,请参见下表:

功能分类

配置参数

控制输出长度的参数

max_length

max_new_tokens

min_length

min_new_tokens

控制所用生成策略的参数

do_sample

use_past

模型输出逻辑操作参数

temperature

top_k

top_p

repetition_penalty

encoder_repetition_penalty

renormalize_logits

定义generate输出变量的参数

output_scores

output_logits

return_dict_in_generate

可在生成时使用的特殊词元

pad_token_id

bos_token_id

eos_token_id

参数:
  • max_length (int, 可选) - 生成的词元可以具有的最大长度。对应于输入提示符的长度 + max_new_tokens 。如果也设置了 max_new_tokens ,则其效果将被 max_new_tokens 覆盖。默认值: 20

  • max_new_tokens (int, 可选) - 要生成的词元的最大数目,忽略提示符中的词元数目。默认值: None

  • min_length (int, 可选) - 要生成的序列的最小长度。对应输入提示符的长度 + min_new_tokens 。如果也设置了 min_new_tokens ,则其效果将被 min_new_tokens 覆盖。默认值: 0

  • min_new_tokens (int, 可选) - 要生成的最小词元数,忽略提示符中的词元数。默认值: None

  • do_sample (bool, 可选) - 是否使用采样编码。 True 表示使用采样编码, False 代表使用贪婪解码。默认值: False

  • use_past (bool, 可选) - 模型是否应使用过去最后一个键/值注意(如果适用于模型)来加快解码速度。默认值: False

  • temperature (float, 可选) - 用于调节下一个词元概率的值。默认值: 1.0

  • top_k (int, 可选) - 为top-k筛选保留的最高概率词汇词元的数量。默认值: 50

  • top_p (float, 可选) - 如果设置为 float < 1 ,则仅保留概率加起来等于或更高的最小最可能标记集以供生成。默认值: 1.0

  • repetition_penalty (float, 可选) - 重复惩罚的参数。1.0表示没有处罚。参考 此内容 。默认值: 1.0

  • encoder_repetition_penalty (float, 可选) - encoder_repeation_ppenalty的参数。对不在原始输入中的序列的指数惩罚。1.0表示没有惩罚。默认值: 1.0

  • renormalize_logits (bool, 可选) - 是否在应用所有logits处理器或扭曲器(包括自定义处理器)后重新规范化logits。强烈建议将此标志设置为 True ,因为搜索算法假设分数logit是标准化的,但一些logit处理器或扭曲器会破坏标准化。默认值: False

  • output_scores (bool, 可选) - 是否在softmax之前返回预测分数。默认值: False

  • output_logits (bool, 可选) - 是否返回未处理的预测logit分数。默认值: False

  • return_dict_in_generate (bool, 可选) - 是否返回字典输出而不是具有output_ids的元组。默认值: False

  • pad_token_id (int, 可选) - padding词元的id。

  • bos_token_id (int, 可选) - beginning-of-sequence词元的id。

  • eos_token_id (Union[int, List[int]], 可选) - end-of-sequence词元的id。设置多个end-of-sequence词元。

返回:

GenerationConfig实例。

样例:

>>> from mindformers.generation import GenerationConfig
>>> config = GenerationConfig()
>>> print(config)
{'max_length': 20, 'max_new_tokens': None, 'min_length': 0, 'min_new_tokens': None, 'num_beams': 1,
'do_sample': False, 'use_past': False, 'temperature': 1.0, 'top_k': 50, 'top_p': 1.0, 'repetition_penalty':
1.0, 'encoder_repetition_penalty': 1.0, 'renormalize_logits': False, 'return_dict_in_generate': False,
'output_scores': False, 'output_logits': False, 'pad_token_id': None, 'bos_token_id': None, 'eos_token_id':
[], '_from_model_config': False}
>>> config = GenerationConfig(max_length=100, min_length=10, do_sample=True, top_k=5, top_p=0.8)
>>> print(config)
{'max_length': 100, 'max_new_tokens': None, 'min_length': 10, 'min_new_tokens': None, 'num_beams': 1,
'do_sample': True, 'use_past': False, 'temperature': 1.0, 'top_k': 5, 'top_p': 0.8, 'repetition_penalty':
1.0, 'encoder_repetition_penalty': 1.0, 'renormalize_logits': False, 'return_dict_in_generate': False,
'output_scores': False, 'output_logits': False, 'pad_token_id': None, 'bos_token_id': None, 'eos_token_id':
[], '_from_model_config': False}