采样参数#

class vllm.SamplingParams(n: int = 1, best_of: int | None = None, _real_n: int | None = None, presence_penalty: float = 0.0, frequency_penalty: float = 0.0, repetition_penalty: float = 1.0, temperature: float = 1.0, top_p: float = 1.0, top_k: int = -1, min_p: float = 0.0, seed: int | None = None, stop: str | ~typing.List[str] | None = None, stop_token_ids: ~typing.List[int] | None = None, ignore_eos: bool = False, max_tokens: int | None = 16, min_tokens: int = 0, logprobs: int | None = None, prompt_logprobs: int | None = None, detokenize: bool = True, skip_special_tokens: bool = True, spaces_between_special_tokens: bool = True, logits_processors: ~typing.Any | None = None, include_stop_str_in_output: bool = False, truncate_prompt_tokens: int | None = None, output_kind: ~vllm.sampling_params.RequestOutputKind = RequestOutputKind.CUMULATIVE, output_text_buffer_length: int = 0, _all_stop_token_ids: ~typing.Set[int] = <factory>, guided_decoding: ~vllm.sampling_params.GuidedDecodingParams | None = None, logit_bias: ~typing.Dict[int, float] | None = None, allowed_token_ids: ~typing.List[int] | None = None)[源代码]#

文本生成的采样参数。

总的来说,我们遵循 OpenAI 文本完成 API 的采样参数(https://platform.openai.com/docs/api-reference/completions/create)。此外,我们还支持 OpenAI 不支持的束搜索。

参数:
  • n – 为给定提示返回的输出序列数量。

  • best_of – 从提示生成的输出序列的数量。从这些 best_of 序列中,返回前 n 个序列。best_of 必须大于或等于 n。默认情况下,best_of 设置为 n

  • presence_penalty – 基于新标记是否出现在目前为止生成的文本中来惩罚新标记的浮点数。值 > 0 鼓励模型使用新标记,而值 < 0 鼓励模型重复标记。

  • frequency_penalty – 基于到目前为止生成的文本中标记的频率来惩罚新标记的浮点数。值 > 0 鼓励模型使用新标记,而值 < 0 鼓励模型重复标记。

  • repetition_penalty – 基于新标记是否出现在提示和到目前为止生成的文本中,对新标记进行惩罚的浮点数。值 > 1 鼓励模型使用新标记,而值 < 1 鼓励模型重复标记。

  • temperature – 控制采样随机性的浮点数。较低的值使模型更具确定性,而较高的值使模型更具随机性。零意味着贪婪采样。

  • top_p – 控制要考虑的顶部标记的累积概率的浮点数。必须在 (0, 1] 范围内。设置为 1 以考虑所有标记。

  • top_k – 控制要考虑的顶部标记数量的整数。设置为 -1 以考虑所有标记。

  • min_p – 表示一个标记被考虑的最小概率,相对于最可能标记的概率。必须在 [0, 1] 范围内。设置为 0 以禁用此功能。

  • seed – 用于生成的随机种子。

  • stop – 当生成这些字符串时,停止生成操作的列表。返回的输出将不包含这些停止字符串。

  • stop_token_ids – 生成时停止的令牌列表。除非停止令牌是特殊令牌,否则返回的输出将包含停止令牌。

  • include_stop_str_in_output – 是否在输出文本中包含停止字符串。默认为 False。

  • ignore_eos – 是否忽略 EOS 标记并在生成 EOS 标记后继续生成标记。

  • max_tokens – 每个输出序列生成的最大令牌数。

  • min_tokens – 每个输出序列在生成EOS或stop_token_ids之前所需生成的最小token数量

  • logprobs – 每个输出token返回的log概率数量。当设置为None时,不返回概率。如果设置为非None值,结果将包括指定数量的最可能token的log概率,以及选定的token。请注意,实现遵循OpenAI API:API将始终返回采样token的log概率,因此响应中可能最多有`logprobs+1`个元素。

  • prompt_logprobs – 每个提示词返回的日志概率数量。

  • detokenize – 是否对输出进行去标记化。默认为 True。

  • skip_special_tokens – 是否在输出中跳过特殊标记。

  • spaces_between_special_tokens – 是否在输出中的特殊标记之间添加空格。默认为 True。

  • logits_processors – 基于先前生成的token修改logits的函数列表,可选地将提示token作为第一个参数。

  • truncate_prompt_tokens – 如果设置为一个整数 k,将仅使用提示中的最后 k 个标记(即左截断)。默认为 None(即不截断)。

  • guided_decoding – 如果提供,引擎将根据这些参数构建一个引导解码的对数处理器。默认为 None。

  • logit_bias – 如果提供,引擎将构建一个应用这些logit偏差的logits处理器。默认为None。

  • allowed_token_ids – 如果提供,引擎将构建一个仅保留给定令牌ID分数的logits处理器。默认为None。

clone() SamplingParams[源代码]#

深度复制,排除 LogitsProcessor 对象。

LogitsProcessor 对象被排除在外,因为它们可能包含任意且大量的数据。参见 vllm-project/vllm#3087

update_from_generation_config(generation_config: Dict[str, Any], model_eos_token_id: int | None = None) None[源代码]#

如果存在非默认值,请更新 generation_config