TopPSampler

[源代码]

TopPSampler

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

Top-P 采样器类。

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

参数

  • p: float,top-p 的 p 值。
  • k: int。如果设置了此参数,它将定义在执行 "top-p" 采样之前应用的 "top-k" 启发式截断。不在前 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"])