TopPSampler

[源]

TopPSampler

keras_hub.samplers.TopPSampler(p=0.1, k=None, seed=None, **kwargs)

Top-P 采样器类。

此采样器实现了 Top-P 搜索算法。Top-P 搜索从输出概率的最小子集中选择 token,这些子集的概率总和大于 p。换句话说,Top-P 会首先按可能性对 token 预测进行排序,并在所选 token 的累积概率超过 p 后忽略所有 token,然后从剩余 token 中选择一个。

参数

  • p:float,Top-P 的 p 值。
  • k:int。如果设置,此参数定义在 Top-P 采样之前应用的启发式“Top-K”截止。不在 Top k 中的所有 logits 都将被丢弃,然后对剩余的 logits 进行排序以找到 p 的截止点。设置此参数可以显著减少需要排序的 token 数量,从而加快采样速度。默认为 None
  • seed:int。随机种子。默认为 None

调用参数

{{call_args}}

示例

causal_lm = keras_hub.models.GPT2CausalLM.from_preset("gpt2_base_en")

# Pass by name to compile.
causal_lm.compile(sampler="top_p")
causal_lm.generate(["Keras is a"])

# Pass by object to compile.
sampler = keras_hub.samplers.TopPSampler(p=0.1, k=1_000)
causal_lm.compile(sampler=sampler)
causal_lm.generate(["Keras is a"])