Transformers.js 文档

生成/logits_处理

您正在查看的是需要从源码安装。如果您希望进行常规的 npm 安装,请查看最新的稳定版本 (v3.0.0)。
Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

生成/logits_处理


生成/logits_处理.LogitsProcessor

所有在生成过程中可应用的 logit 处理器抽象基类。

类型generation/logits_process 的静态类


logitsProcessor._call(input_ids, logits)

将处理器应用于输入 logits。

类型LogitsProcessor 的实例抽象方法
抛出:

  • Error 如果子类中未实现 `_call`,则抛出错误。
参数量类型描述
input_ids数组.<数组<大整数>>

输入 ID。

logits张量

要处理的 logits。


生成/logits_处理.LogitsWarper

所有 logit warper 的抽象基类,可在生成过程中通过多项式采样应用。

类型generation/logits_process 的静态类


logitsWarper._call(input_ids, logits)

将处理器应用于输入 logits。

类型LogitsWarper 的实例抽象方法
抛出:

  • Error 如果子类中未实现 `_call`,则抛出错误。
参数量类型描述
input_ids数组.<数组<大整数>>

输入 ID。

logits张量

要处理的 logits。


生成/logits_处理.LogitsProcessorList

表示 logits 处理器列表的类。logits 处理器是修改语言模型 logits 输出的函数。此课程提供添加新处理器并将所有处理器应用于一批 logits 的方法。

类型generation/logits_process 的静态类


new LogitsProcessorList()

构造 LogitsProcessorList 的新实例。


logitsProcessorList.push(item)

将新的 logits 处理器添加到列表中。

类型LogitsProcessorList 的实例方法

参数量类型描述
itemLogitsProcessor

要添加的 logits 处理器函数。


logitsProcessorList.extend(items)

将多个 logits 处理器添加到列表中。

类型LogitsProcessorList 的实例方法

参数量类型描述
itemsArray.<LogitsProcessor>

要添加的 logits 处理器函数。


logitsProcessorList._call(input_ids, logits)

将列表中所有 logits 处理器应用于一批 logits,并就地修改它们。

类型LogitsProcessorList 的实例方法

参数量类型描述
input_ids数组.<数组<大整数>>

语言模型的输入 ID。

logits张量

生成/logits_处理.ForcedBOSTokenLogitsProcessor

一个 LogitsProcessor,强制在生成序列的开头使用 BOS 标记。

类型generation/logits_process 的静态类


new ForcedBOSTokenLogitsProcessor(bos_token_id)

创建一个 ForcedBOSTokenLogitsProcessor。

参数量类型描述
bos_token_id数字

要强制的序列开头标记的 ID。


forcedBOSTokenLogitsProcessor._call(input_ids, logits) ⇒ <code> Tensor </code>

将 BOS 标记强制应用于 logits。

类型ForcedBOSTokenLogitsProcessor 的实例方法
返回Tensor - 带有 BOS 标记强制的 logits。

参数量类型描述
input_ids数组.<数组<大整数>>

输入 ID。

logits张量

logits。


生成/logits_处理.ForcedEOSTokenLogitsProcessor

一个 logits 处理器,当达到 max_length 时,强制将指定标记作为最后一个生成的标记。

类型generation/logits_process 的静态类


new ForcedEOSTokenLogitsProcessor(max_length, eos_token_id)

创建一个 ForcedEOSTokenLogitsProcessor。

参数量类型描述
max_length数字

要生成的序列的最大长度。

eos_token_idnumber | Array<number>

序列结束标记的 ID。


forcedEOSTokenLogitsProcessor._call(input_ids, logits)

将处理器应用于 input_ids 和 logits。

类型ForcedEOSTokenLogitsProcessor 的实例方法

参数量类型描述
input_ids数组.<数组<大整数>>

输入 ID。

logits张量

logits 张量。


生成/logits_处理.SuppressTokensAtBeginLogitsProcessor

一个 LogitsProcessor,它在 `generate` 函数开始使用 `begin_index` 标记生成时,立即抑制标记列表。这应确保在生成开始时不会采样 `begin_suppress_tokens` 定义的标记。

类型generation/logits_process 的静态类


new SuppressTokensAtBeginLogitsProcessor(begin_suppress_tokens, begin_index)

创建一个 SuppressTokensAtBeginLogitsProcessor。

参数量类型描述
begin_suppress_tokensArray.<number>

要抑制的标记 ID。

begin_index数字

在抑制标记之前要生成的标记数量。


suppressTokensAtBeginLogitsProcessor._call(input_ids, logits) ⇒ <code> Tensor </code>

将 BOS 标记强制应用于 logits。

类型SuppressTokensAtBeginLogitsProcessor 的实例方法
返回Tensor - 带有 BOS 标记强制的 logits。

参数量类型描述
input_ids数组.<数组<大整数>>

输入 ID。

logits张量

logits。


生成/logits_处理.WhisperTimeStampLogitsProcessor

一个 LogitsProcessor,用于处理向生成的文本添加时间戳。

类型generation/logits_process 的静态类


new WhisperTimeStampLogitsProcessor(generate_config, init_tokens)

构造一个新的 WhisperTimeStampLogitsProcessor。

参数量类型描述
generate_config*

传递给 transformer 模型 generate() 方法的配置对象。

init_tokensArray.<number>

输入序列的初始标记。


whisperTimeStampLogitsProcessor._call(input_ids, logits) ⇒ <code> Tensor </code>

修改 logits 以处理时间戳标记。

类型WhisperTimeStampLogitsProcessor 的实例方法
返回Tensor - 修改后的 logits。

参数量类型描述
input_ids数组.<数组<大整数>>

输入标记序列。

logits张量

模型输出的 logits。


生成/logits_处理.NoRepeatNGramLogitsProcessor

一个 logits 处理器,禁止重复某个大小的 n-gram。

类型generation/logits_process 的静态类


new NoRepeatNGramLogitsProcessor(no_repeat_ngram_size)

创建一个 NoRepeatNGramLogitsProcessor。

参数量类型描述
no_repeat_ngram_size数字

不重复 n-gram 的大小。此大小的所有 n-gram 只能出现一次。


noRepeatNGramLogitsProcessor.getNgrams(prevInputIds) ⇒ <code> Map. < string, Array < number > > </code>

从标记 ID 序列生成 n-gram。

类型NoRepeatNGramLogitsProcessor 的实例方法
返回Map.<string, Array<number>> - 生成的 n-gram 映射

参数量类型描述
prevInputIdsArray.<bigint>

之前的输入 ID 列表


noRepeatNGramLogitsProcessor.getGeneratedNgrams(bannedNgrams, prevInputIds) ⇒ <code> Array. < number > </code>

从标记 ID 序列生成 n-gram。

类型NoRepeatNGramLogitsProcessor 的实例方法
返回Array.<number> - 生成的 n-gram 映射

参数量类型描述
bannedNgramsMap.<string, Array<number>>

被禁止的 n-gram 映射

prevInputIdsArray.<bigint>

之前的输入 ID 列表


noRepeatNGramLogitsProcessor.calcBannedNgramTokens(prevInputIds) ⇒ <code> Array. < number > </code>

计算被禁止的 n-gram 标记

类型NoRepeatNGramLogitsProcessor 的实例方法
返回Array.<number> - 生成的 n-gram 映射

参数量类型描述
prevInputIdsArray.<bigint>

之前的输入 ID 列表


noRepeatNGramLogitsProcessor._call(input_ids, logits) ⇒ <code> Tensor </code>

将不重复 n-gram 处理器应用于 logits。

类型NoRepeatNGramLogitsProcessor 的实例方法
返回Tensor - 经过不重复 n-gram 处理的 logits。

参数量类型描述
input_ids数组.<数组<大整数>>

输入 ID。

logits张量

logits。


生成/logits_处理.RepetitionPenaltyLogitsProcessor

一个 logits 处理器,通过惩罚来防止重复之前的标记。这种惩罚每个标记最多应用一次。请注意,对于像大多数 LLM 这样的仅解码器模型,考虑的标记包括提示。

在原始论文中,作者建议使用大约 1.2 的惩罚,以在真实生成和缺乏重复之间取得良好平衡。为了惩罚和减少重复,请使用大于 1.0 的 penalty 值,其中值越高,惩罚越强。为了奖励和鼓励重复,请使用 0.0 到 1.0 之间的 penalty 值,其中值越低,奖励越强。

类型generation/logits_process 的静态类


new RepetitionPenaltyLogitsProcessor(penalty)

创建一个 RepetitionPenaltyLogitsProcessor。

参数量类型描述
penalty数字

重复惩罚的参数。

  • 1.0 表示没有惩罚。高于 1.0 的值会惩罚之前生成的标记。
  • 介于 0.0 和 1.0 之间的值会奖励之前生成的标记。

repetitionPenaltyLogitsProcessor._call(input_ids, logits) ⇒ <code> Tensor </code>

将重复惩罚应用于 logits。

类型RepetitionPenaltyLogitsProcessor 的实例方法
返回Tensor - 经过重复惩罚处理的 logits。

参数量类型描述
input_ids数组.<数组<大整数>>

输入 ID。

logits张量

logits。


生成/logits_处理.MinLengthLogitsProcessor

强制最小标记数量的 logits 处理器。

类型generation/logits_process 的静态类


new MinLengthLogitsProcessor(min_length, eos_token_id)

创建一个 MinLengthLogitsProcessor。

参数量类型描述
min_length数字

低于此最小长度时,eos_token_id 的分数将设置为负无穷大。

eos_token_idnumber | Array<number>

序列结束标记的 ID。


minLengthLogitsProcessor._call(input_ids, logits) ⇒ <code> Tensor </code>

应用 logit 处理器。

类型MinLengthLogitsProcessor 的实例方法
返回Tensor - 处理后的 logits。

参数量类型描述
input_ids数组.<数组<大整数>>

输入 ID。

logits张量

logits。


生成/logits_处理.MinNewTokensLengthLogitsProcessor

强制最小新标记数量的 logits 处理器。

类型generation/logits_process 的静态类


new MinNewTokensLengthLogitsProcessor(prompt_length_to_skip, min_new_tokens, eos_token_id)

创建一个 MinNewTokensLengthLogitsProcessor。

参数量类型描述
prompt_length_to_skip数字

输入标记的长度。

min_new_tokens数字

低于此最小“新”标记长度时,eos_token_id 的分数将设置为负无穷大。

eos_token_idnumber | Array<number>

序列结束标记的 ID。


minNewTokensLengthLogitsProcessor._call(input_ids, logits) ⇒ <code> Tensor </code>

应用 logit 处理器。

类型MinNewTokensLengthLogitsProcessor 的实例方法
返回Tensor - 处理后的 logits。

参数量类型描述
input_ids数组.<数组<大整数>>

输入 ID。

logits张量

logits。


生成/logits_处理.NoBadWordsLogitsProcessor

类型generation/logits_process 的静态类


new NoBadWordsLogitsProcessor(bad_words_ids, eos_token_id)

创建一个 NoBadWordsLogitsProcessor

参数量类型描述
bad_words_idsArray.<Array<number>>

不允许生成的标记 ID 列表。

eos_token_idnumber | Array<number>

“序列结束”标记的 ID。可选地,使用列表来设置多个“序列结束”标记。


noBadWordsLogitsProcessor._call(input_ids, logits) ⇒ <code> Tensor </code>

应用 logit 处理器。

类型NoBadWordsLogitsProcessor 的实例方法
返回Tensor - 处理后的 logits。

参数量类型描述
input_ids数组.<数组<大整数>>

输入 ID。

logits张量

logits。


生成/logits_处理.ClassifierFreeGuidanceLogitsProcessor

[LogitsProcessor] 用于无分类器指导 (CFG)。分数在批次维度上分割,其中前半部分对应于条件 logits (从输入提示预测),后半部分对应于无条件 logits (从空或“空”提示预测)。处理器计算条件和无条件 logits 的加权平均值,由 guidance_scale 参数化。

有关更多信息,请参阅论文

类型generation/logits_process 的静态类


new ClassifierFreeGuidanceLogitsProcessor(guidance_scale)

创建一个 ClassifierFreeGuidanceLogitsProcessor

参数量类型描述
guidance_scale数字

无分类器指导 (CFG) 的指导尺度。通过设置 guidance_scale > 1 启用 CFG。更高的指导尺度鼓励模型生成与输入提示更紧密相关的样本,通常以牺牲较差的质量为代价。


classifierFreeGuidanceLogitsProcessor._call(input_ids, logits) ⇒ <code> Tensor </code>

应用 logit 处理器。

类型ClassifierFreeGuidanceLogitsProcessor 的实例方法
返回Tensor - 处理后的 logits。

参数量类型描述
input_ids数组.<数组<大整数>>

输入 ID。

logits张量

logits。


生成/logits_处理.TemperatureLogitsWarper

[LogitsWarper] 用于温度(指数缩放输出概率分布),这实际上意味着它可以控制预测标记的随机性。通常与 [TopPLogitsWarper] 和 [TopKLogitsWarper] 一起使用。

类型generation/logits_process 的静态类


new TemperatureLogitsWarper(temperature)

创建一个 TemperatureLogitsWarper

参数量类型描述
temperature数字

严格正浮点值,用于调制 logits 分布。小于 1 的值会降低随机性(反之亦然),0 等同于将所有概率质量转移到最可能的标记。


temperatureLogitsWarper._call(input_ids, logits) ⇒ <code> Tensor </code>

应用 logit warper。

类型TemperatureLogitsWarper 的实例方法
返回Tensor - 处理后的 logits。

参数量类型描述
input_ids数组.<数组<大整数>>

输入 ID。

logits张量

logits。


生成/logits_处理.TopPLogitsWarper

[LogitsWarper] 执行 top-p,即限制到概率和小于等于 prob_cut_off 的顶部标记。通常与 [TemperatureLogitsWarper] 和 [TopKLogitsWarper] 一起使用。

类型generation/logits_process 的静态类


new TopPLogitsWarper(top_p, options)

创建一个 TopPLogitsWarper

参数量类型默认描述
top_p数字

如果设置为 < 1,则仅保留概率总和为 top_p 或更高的最小最可能标记集用于生成。

选项对象

top-p 采样的附加选项。

[options.filter_value]数字-无穷大

所有过滤后的值都将设置为此浮点值。

[options.min_tokens_to_keep]数字1

不能被过滤的最小标记数量。


generation/logits_process.TopKLogitsWarper

[LogitsWarper] 执行 Top-K 采样,即将范围限制到概率最高的 k 个元素。常与 [TemperatureLogitsWarper] 和 [TopPLogitsWarper] 一起使用。

类型generation/logits_process 的静态类


new TopKLogitsWarper(top_k, options)

创建一个 TopKLogitsWarper

参数量类型默认描述
top_k数字

如果设置为 > 0,则仅保留 top top_k 个 token 进行生成。

选项对象

Top-K 采样的附加选项。

[options.filter_value]数字-无穷大

所有过滤后的值都将设置为此浮点值。

[options.min_tokens_to_keep]数字1

不能被过滤的最小标记数量。


< > 在 GitHub 上更新