Transformers.js 文档

generation/logits_process

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

并获得增强的文档体验

开始使用

generation/logits_process


generation/logits_process.LogitsProcessor

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

类型generation/logits_process 的静态类


logitsProcessor._call(input_ids, logits)

将处理器应用于输入 logits。

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

  • Error 如果子类中未实现 `_call`,则抛出错误。
参数类型描述
input_idsArray.<Array<bigint>>

输入 ids。

logitsTensor

要处理的 logits。


generation/logits_process.LogitsWarper

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

类型generation/logits_process 的静态类


logitsWarper._call(input_ids, logits)

将处理器应用于输入 logits。

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

  • Error 如果子类中未实现 `_call`,则抛出错误。
参数类型描述
input_idsArray.<Array<bigint>>

输入 ids。

logitsTensor

要处理的 logits。


generation/logits_process.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_idsArray.<Array<bigint>>

语言模型的输入 IDs。

logitsTensor

generation/logits_process.ForcedBOSTokenLogitsProcessor

一个 LogitsProcessor,它强制在生成的序列的开头使用 BOS 令牌。

类型generation/logits_process 的静态类


new ForcedBOSTokenLogitsProcessor(bos_token_id)

创建一个 ForcedBOSTokenLogitsProcessor。

参数类型描述
bos_token_idnumber

要强制使用的序列开始令牌的 ID。


forcedBOSTokenLogitsProcessor._call(input_ids, logits) ⇒ Tensor

将 BOS 令牌强制应用于 logits。

类型:ForcedBOSTokenLogitsProcessor 的实例方法
返回Tensor - 具有 BOS 令牌强制的 logits。

参数类型描述
input_idsArray.<Array<bigint>>

输入 IDs。

logitsTensor

logits。


generation/logits_process.ForcedEOSTokenLogitsProcessor

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

类型generation/logits_process 的静态类


new ForcedEOSTokenLogitsProcessor(max_length, eos_token_id)

创建一个 ForcedEOSTokenLogitsProcessor。

参数类型描述
max_lengthnumber

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

eos_token_idnumber | Array<number>

序列结束令牌的 id(s)。


forcedEOSTokenLogitsProcessor._call(input_ids, logits)

将处理器应用于 input_ids 和 logits。

类型:ForcedEOSTokenLogitsProcessor 的实例方法

参数类型描述
input_idsArray.<Array<bigint>>

输入 ids。

logitsTensor

logits 张量。


generation/logits_process.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_indexnumber

在抑制令牌之前要生成的令牌数。


suppressTokensAtBeginLogitsProcessor._call(input_ids, logits) ⇒ Tensor

将 BOS 令牌强制应用于 logits。

类型:SuppressTokensAtBeginLogitsProcessor 的实例方法
返回Tensor - 具有 BOS 令牌强制的 logits。

参数类型描述
input_idsArray.<Array<bigint>>

输入 IDs。

logitsTensor

logits。


generation/logits_process.WhisperTimeStampLogitsProcessor

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

类型generation/logits_process 的静态类


new WhisperTimeStampLogitsProcessor(generate_config, init_tokens)

构造一个新的 WhisperTimeStampLogitsProcessor。

参数类型描述
generate_config*

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

init_tokensArray.<number>

输入序列的初始 tokens。


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

修改 logits 以处理时间戳 tokens。

Kind: WhisperTimeStampLogitsProcessor 的实例方法
Returns: Tensor - 修改后的 logits。

参数类型描述
input_idsArray.<Array<bigint>>

tokens 的输入序列。

logitsTensor

模型输出的 logits。


generation/logits_process.NoRepeatNGramLogitsProcessor

一个 logits processor,用于禁止重复出现特定大小的 n-gram。

类型generation/logits_process 的静态类


new NoRepeatNGramLogitsProcessor(no_repeat_ngram_size)

创建一个 NoRepeatNGramLogitsProcessor。

参数类型描述
no_repeat_ngram_sizenumber

no-repeat-ngram 大小。此大小的所有 n-gram 只能出现一次。


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

从 token id 序列生成 n-gram。

Kind: NoRepeatNGramLogitsProcessor 的实例方法
Returns: Map.<string, Array<number>> - 生成的 n-gram 的 Map

参数类型描述
prevInputIdsArray.<bigint>

先前的输入 id 列表


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

从 token id 序列生成 n-gram。

Kind: NoRepeatNGramLogitsProcessor 的实例方法
Returns: Array.<number> - 生成的 n-gram 的 Map

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

被禁止的 n-gram 的 Map

prevInputIdsArray.<bigint>

先前的输入 id 列表


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

计算被禁止的 n-gram tokens

Kind: NoRepeatNGramLogitsProcessor 的实例方法
Returns: Array.<number> - 生成的 n-gram 的 Map

参数类型描述
prevInputIdsArray.<bigint>

先前的输入 id 列表


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

将 no-repeat-ngram processor 应用于 logits。

Kind: NoRepeatNGramLogitsProcessor 的实例方法
Returns: Tensor - 经过 no-repeat-ngram 处理的 logits。

参数类型描述
input_idsArray.<Array<bigint>>

输入 IDs。

logitsTensor

logits。


generation/logits_process.RepetitionPenaltyLogitsProcessor

一个 logits processor,通过惩罚来防止重复先前的 tokens。此惩罚最多对每个 token 应用一次。请注意,对于仅解码器模型(如大多数 LLM),所考虑的 tokens 包括提示。

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

类型generation/logits_process 的静态类


new RepetitionPenaltyLogitsProcessor(penalty)

创建一个 RepetitionPenaltyLogitsProcessor。

参数类型描述
penaltynumber

重复惩罚的参数。

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

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

将重复惩罚应用于 logits。

Kind: RepetitionPenaltyLogitsProcessor 的实例方法
Returns: Tensor - 经过重复惩罚处理的 logits。

参数类型描述
input_idsArray.<Array<bigint>>

输入 IDs。

logitsTensor

logits。


generation/logits_process.MinLengthLogitsProcessor

一个 logits processor,用于强制执行最小 token 数。

类型generation/logits_process 的静态类


new MinLengthLogitsProcessor(min_length, eos_token_id)

创建一个 MinLengthLogitsProcessor。

参数类型描述
min_lengthnumber

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

eos_token_idnumber | Array<number>

eos_token_id


序列结束 token 的 ID/IDs。

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

应用 logit processor。
Kind: MinLengthLogitsProcessor 的实例方法

参数类型描述
input_idsArray.<Array<bigint>>

输入 IDs。

logitsTensor

logits。


Returns: Tensor - 处理后的 logits。

generation/logits_process.MinNewTokensLengthLogitsProcessor

类型generation/logits_process 的静态类


一个 logits processor,用于强制执行最小的新 token 数。

new MinNewTokensLengthLogitsProcessor(prompt_length_to_skip, min_new_tokens, eos_token_id)

参数类型描述
prompt_length_to_skipnumber

输入 tokens 长度。

min_new_tokensnumber

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

eos_token_idnumber | Array<number>

eos_token_id


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

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

Kind: MinNewTokensLengthLogitsProcessor 的实例方法
Kind: MinLengthLogitsProcessor 的实例方法

参数类型描述
input_idsArray.<Array<bigint>>

输入 IDs。

logitsTensor

logits。


generation/logits_process.NoBadWordsLogitsProcessor

类型generation/logits_process 的静态类


new NoBadWordsLogitsProcessor(bad_words_ids, eos_token_id)

创建一个 NoBadWordsLogitsProcessor

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

不允许生成的 token id 列表的列表。

eos_token_idnumber | Array<number>

eos_token_id


序列结束 token 的 id。 可选地,使用列表来设置多个序列结束 token。

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

noBadWordsLogitsProcessor._call(input_ids, logits) ⇒ <code> Tensor </code>
Kind: MinLengthLogitsProcessor 的实例方法

参数类型描述
input_idsArray.<Array<bigint>>

输入 IDs。

logitsTensor

logits。


Kind: NoBadWordsLogitsProcessor 的实例方法

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

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

类型generation/logits_process 的静态类


new ClassifierFreeGuidanceLogitsProcessor(guidance_scale)

创建一个 ClassifierFreeGuidanceLogitsProcessor

参数类型描述
guidance_scalenumber

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


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

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

Kind: ClassifierFreeGuidanceLogitsProcessor 的实例方法
Kind: MinLengthLogitsProcessor 的实例方法

参数类型描述
input_idsArray.<Array<bigint>>

输入 IDs。

logitsTensor

logits。


generation/logits_process.TemperatureLogitsWarper

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

类型generation/logits_process 的静态类


new TemperatureLogitsWarper(temperature)

创建一个 TemperatureLogitsWarper

参数类型描述
temperaturenumber

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


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

应用 logit warper。

Kind: TemperatureLogitsWarper 的实例方法
Kind: MinLengthLogitsProcessor 的实例方法

参数类型描述
input_idsArray.<Array<bigint>>

输入 IDs。

logitsTensor

logits。


generation/logits_process.TopPLogitsWarper

[LogitsWarper],执行 top-p,即限制为概率总和 <= prob_cut_off 的 top tokens。通常与 [TemperatureLogitsWarper] 和 [TopKLogitsWarper] 一起使用。

类型generation/logits_process 的静态类


new TopPLogitsWarper(top_p, options)

创建一个 TopPLogitsWarper

参数类型默认描述
top_pnumber

如果设置为 < 1,则仅保留概率总和达到 top_p 或更高的最小概率 token 集合,用于生成。

optionsObject

top-p 采样的附加选项。

[options.filter_value]number-Infinity

所有被过滤的值将被设置为这个浮点数值。

[options.min_tokens_to_keep]number1

不能被过滤的最小 token 数量。


generation/logits_process.TopKLogitsWarper

[LogitsWarper],执行 top-k 运算,即限制为 k 个最高概率的元素。 常与 [TemperatureLogitsWarper] 和 [TopPLogitsWarper] 一起使用。

类型generation/logits_process 的静态类


new TopKLogitsWarper(top_k, options)

创建一个 TopKLogitsWarper

参数类型默认描述
top_knumber

如果设置为 > 0,则仅保留前 top_k 个 token 用于生成。

optionsObject

top-k 采样的附加选项。

[options.filter_value]number-Infinity

所有被过滤的值将被设置为这个浮点数值。

[options.min_tokens_to_keep]number1

不能被过滤的最小 token 数量。


< > GitHub 上更新