Transformers.js 文档
generation/logits_process
并获得增强的文档体验
开始使用
generation/logits_process
- generation/logits_process
- .LogitsProcessor
- .LogitsWarper
- .LogitsProcessorList
- .ForcedBOSTokenLogitsProcessor
- .ForcedEOSTokenLogitsProcessor
- .SuppressTokensAtBeginLogitsProcessor
- .WhisperTimeStampLogitsProcessor
- .NoRepeatNGramLogitsProcessor
new NoRepeatNGramLogitsProcessor(no_repeat_ngram_size)
.getNgrams(prevInputIds)
⇒Map.<string, Array<number>>
.getGeneratedNgrams(bannedNgrams, prevInputIds)
⇒Array.<number>
.calcBannedNgramTokens(prevInputIds)
⇒Array.<number>
._call(input_ids, logits)
⇒Tensor
- .RepetitionPenaltyLogitsProcessor
- .MinLengthLogitsProcessor
- .MinNewTokensLengthLogitsProcessor
- .NoBadWordsLogitsProcessor
- .ClassifierFreeGuidanceLogitsProcessor
- .TemperatureLogitsWarper
- .TopPLogitsWarper
- .TopKLogitsWarper
generation/logits_process.LogitsProcessor
所有可在生成过程中应用的 logits 处理器的抽象基类。
类型:generation/logits_process
的静态类
logitsProcessor._call(input_ids, logits)
将处理器应用于输入 logits。
类型:LogitsProcessor
的实例抽象方法
抛出:
Error
如果子类中未实现 `_call`,则抛出错误。
参数 | 类型 | 描述 |
---|---|---|
input_ids | Array.<Array<bigint>> | 输入 ids。 |
logits | Tensor | 要处理的 logits。 |
generation/logits_process.LogitsWarper
所有可在使用多项式采样的生成过程中应用的 logit warper 的抽象基类。
类型:generation/logits_process
的静态类
logitsWarper._call(input_ids, logits)
将处理器应用于输入 logits。
类型:LogitsWarper
的实例抽象方法
抛出:
Error
如果子类中未实现 `_call`,则抛出错误。
参数 | 类型 | 描述 |
---|---|---|
input_ids | Array.<Array<bigint>> | 输入 ids。 |
logits | Tensor | 要处理的 logits。 |
generation/logits_process.LogitsProcessorList
一个表示 logits 处理器列表的类。logits 处理器是一个修改语言模型 logits 输出的函数。此类提供了添加新处理器和将所有处理器应用于一批 logits 的方法。
类型:generation/logits_process
的静态类
new LogitsProcessorList()
构造 LogitsProcessorList 的新实例。
logitsProcessorList.push(item)
向列表中添加一个新的 logits 处理器。
类型:LogitsProcessorList
的实例方法
参数 | 类型 | 描述 |
---|---|---|
item | LogitsProcessor | 要添加的 logits 处理器函数。 |
logitsProcessorList.extend(items)
向列表中添加多个 logits 处理器。
类型:LogitsProcessorList
的实例方法
参数 | 类型 | 描述 |
---|---|---|
items | Array.<LogitsProcessor> | 要添加的 logits 处理器函数。 |
logitsProcessorList._call(input_ids, logits)
将列表中所有 logits 处理器应用于一批 logits,并就地修改它们。
类型:LogitsProcessorList
的实例方法
参数 | 类型 | 描述 |
---|---|---|
input_ids | Array.<Array<bigint>> | 语言模型的输入 IDs。 |
logits | Tensor |
generation/logits_process.ForcedBOSTokenLogitsProcessor
一个 LogitsProcessor,它强制在生成的序列的开头使用 BOS 令牌。
类型:generation/logits_process
的静态类
new ForcedBOSTokenLogitsProcessor(bos_token_id)
创建一个 ForcedBOSTokenLogitsProcessor。
参数 | 类型 | 描述 |
---|---|---|
bos_token_id | number | 要强制使用的序列开始令牌的 ID。 |
forcedBOSTokenLogitsProcessor._call(input_ids, logits) ⇒ Tensor
将 BOS 令牌强制应用于 logits。
类型:ForcedBOSTokenLogitsProcessor 的实例方法
返回:Tensor
- 具有 BOS 令牌强制的 logits。
参数 | 类型 | 描述 |
---|---|---|
input_ids | Array.<Array<bigint>> | 输入 IDs。 |
logits | Tensor | logits。 |
generation/logits_process.ForcedEOSTokenLogitsProcessor
当达到 max_length 时,强制将指定令牌作为最后一个生成的令牌的 logits 处理器。
类型:generation/logits_process
的静态类
new ForcedEOSTokenLogitsProcessor(max_length, eos_token_id)
创建一个 ForcedEOSTokenLogitsProcessor。
参数 | 类型 | 描述 |
---|---|---|
max_length | number | 要生成的序列的最大长度。 |
eos_token_id | number | Array<number> | 序列结束令牌的 id(s)。 |
forcedEOSTokenLogitsProcessor._call(input_ids, logits)
将处理器应用于 input_ids 和 logits。
类型:ForcedEOSTokenLogitsProcessor 的实例方法
参数 | 类型 | 描述 |
---|---|---|
input_ids | Array.<Array<bigint>> | 输入 ids。 |
logits | Tensor | 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_tokens | Array.<number> | 要抑制的令牌的 ID。 |
begin_index | number | 在抑制令牌之前要生成的令牌数。 |
suppressTokensAtBeginLogitsProcessor._call(input_ids, logits) ⇒ Tensor
将 BOS 令牌强制应用于 logits。
类型:SuppressTokensAtBeginLogitsProcessor 的实例方法
返回:Tensor
- 具有 BOS 令牌强制的 logits。
参数 | 类型 | 描述 |
---|---|---|
input_ids | Array.<Array<bigint>> | 输入 IDs。 |
logits | Tensor | logits。 |
generation/logits_process.WhisperTimeStampLogitsProcessor
一个 LogitsProcessor,用于处理向生成的文本添加时间戳。
类型:generation/logits_process
的静态类
new WhisperTimeStampLogitsProcessor(generate_config, init_tokens)
构造一个新的 WhisperTimeStampLogitsProcessor。
参数 | 类型 | 描述 |
---|---|---|
generate_config | * | 传递给 transformer 模型的 |
init_tokens | Array.<number> | 输入序列的初始 tokens。 |
whisperTimeStampLogitsProcessor._call(input_ids, logits) ⇒ <code> Tensor </code>
修改 logits 以处理时间戳 tokens。
Kind: WhisperTimeStampLogitsProcessor
的实例方法
Returns: Tensor
- 修改后的 logits。
参数 | 类型 | 描述 |
---|---|---|
input_ids | Array.<Array<bigint>> | tokens 的输入序列。 |
logits | Tensor | 模型输出的 logits。 |
generation/logits_process.NoRepeatNGramLogitsProcessor
一个 logits processor,用于禁止重复出现特定大小的 n-gram。
类型:generation/logits_process
的静态类
- .NoRepeatNGramLogitsProcessor
new NoRepeatNGramLogitsProcessor(no_repeat_ngram_size)
.getNgrams(prevInputIds)
⇒Map.<string, Array<number>>
.getGeneratedNgrams(bannedNgrams, prevInputIds)
⇒Array.<number>
.calcBannedNgramTokens(prevInputIds)
⇒Array.<number>
._call(input_ids, logits)
⇒Tensor
new NoRepeatNGramLogitsProcessor(no_repeat_ngram_size)
创建一个 NoRepeatNGramLogitsProcessor。
参数 | 类型 | 描述 |
---|---|---|
no_repeat_ngram_size | number | 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
参数 | 类型 | 描述 |
---|---|---|
prevInputIds | Array.<bigint> | 先前的输入 id 列表 |
noRepeatNGramLogitsProcessor.getGeneratedNgrams(bannedNgrams, prevInputIds) ⇒ <code> Array. < number > </code>
从 token id 序列生成 n-gram。
Kind: NoRepeatNGramLogitsProcessor
的实例方法
Returns: Array.<number>
- 生成的 n-gram 的 Map
参数 | 类型 | 描述 |
---|---|---|
bannedNgrams | Map.<string, Array<number>> | 被禁止的 n-gram 的 Map |
prevInputIds | Array.<bigint> | 先前的输入 id 列表 |
noRepeatNGramLogitsProcessor.calcBannedNgramTokens(prevInputIds) ⇒ <code> Array. < number > </code>
计算被禁止的 n-gram tokens
Kind: NoRepeatNGramLogitsProcessor
的实例方法
Returns: Array.<number>
- 生成的 n-gram 的 Map
参数 | 类型 | 描述 |
---|---|---|
prevInputIds | Array.<bigint> | 先前的输入 id 列表 |
noRepeatNGramLogitsProcessor._call(input_ids, logits) ⇒ <code> Tensor </code>
将 no-repeat-ngram processor 应用于 logits。
Kind: NoRepeatNGramLogitsProcessor
的实例方法
Returns: Tensor
- 经过 no-repeat-ngram 处理的 logits。
参数 | 类型 | 描述 |
---|---|---|
input_ids | Array.<Array<bigint>> | 输入 IDs。 |
logits | Tensor | 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。
参数 | 类型 | 描述 |
---|---|---|
penalty | number | 重复惩罚的参数。
|
repetitionPenaltyLogitsProcessor._call(input_ids, logits) ⇒ <code> Tensor </code>
将重复惩罚应用于 logits。
Kind: RepetitionPenaltyLogitsProcessor
的实例方法
Returns: Tensor
- 经过重复惩罚处理的 logits。
参数 | 类型 | 描述 |
---|---|---|
input_ids | Array.<Array<bigint>> | 输入 IDs。 |
logits | Tensor | logits。 |
generation/logits_process.MinLengthLogitsProcessor
一个 logits processor,用于强制执行最小 token 数。
类型:generation/logits_process
的静态类
new MinLengthLogitsProcessor(min_length, eos_token_id)
创建一个 MinLengthLogitsProcessor。
参数 | 类型 | 描述 |
---|---|---|
min_length | number | 低于此最小长度, |
eos_token_id | number | Array<number> | eos_token_id |
序列结束 token 的 ID/IDs。
minLengthLogitsProcessor._call(input_ids, logits) ⇒ <code> Tensor </code>
应用 logit processor。
Kind: MinLengthLogitsProcessor
的实例方法
参数 | 类型 | 描述 |
---|---|---|
input_ids | Array.<Array<bigint>> | 输入 IDs。 |
logits | Tensor | 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_skip | number | 输入 tokens 长度。 |
min_new_tokens | number | 低于此最小新 token 长度, |
eos_token_id | number | 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_ids | Array.<Array<bigint>> | 输入 IDs。 |
logits | Tensor | logits。 |
generation/logits_process.NoBadWordsLogitsProcessor
类型:generation/logits_process
的静态类
new NoBadWordsLogitsProcessor(bad_words_ids, eos_token_id)
创建一个 NoBadWordsLogitsProcessor
。
参数 | 类型 | 描述 |
---|---|---|
bad_words_ids | Array.<Array<number>> | 不允许生成的 token id 列表的列表。 |
eos_token_id | number | 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_ids | Array.<Array<bigint>> | 输入 IDs。 |
logits | Tensor | logits。 |
Kind: NoBadWordsLogitsProcessor
的实例方法
[LogitsProcessor
],用于无分类器引导(CFG)。分数在批次维度上分割,其中前半部分对应于条件 logits(从输入提示预测),后半部分对应于无条件 logits(从空提示或“null”提示预测)。processor 计算条件 logits 和无条件 logits 之间的加权平均值,由 guidance_scale
参数化。
有关更多信息,请参阅 论文。
类型:generation/logits_process
的静态类
new ClassifierFreeGuidanceLogitsProcessor(guidance_scale)
创建一个 ClassifierFreeGuidanceLogitsProcessor
。
参数 | 类型 | 描述 |
---|---|---|
guidance_scale | number | 无分类器引导(CFG)的引导比例。通过设置 |
classifierFreeGuidanceLogitsProcessor._call(input_ids, logits) ⇒ <code> Tensor </code>
minLengthLogitsProcessor._call(input_ids, logits) ⇒ <code> Tensor </code>
Kind: ClassifierFreeGuidanceLogitsProcessor
的实例方法
Kind: MinLengthLogitsProcessor
的实例方法
参数 | 类型 | 描述 |
---|---|---|
input_ids | Array.<Array<bigint>> | 输入 IDs。 |
logits | Tensor | logits。 |
generation/logits_process.TemperatureLogitsWarper
[LogitsWarper
],用于温度(指数缩放输出概率分布),这实际上意味着它可以控制预测 tokens 的随机性。通常与 [TopPLogitsWarper
] 和 [TopKLogitsWarper
] 一起使用。
类型:generation/logits_process
的静态类
new TemperatureLogitsWarper(temperature)
创建一个 TemperatureLogitsWarper
。
参数 | 类型 | 描述 |
---|---|---|
temperature | number | 严格正浮点值,用于调整 logits 分布。小于 |
temperatureLogitsWarper._call(input_ids, logits) ⇒ <code> Tensor </code>
应用 logit warper。
Kind: TemperatureLogitsWarper
的实例方法
Kind: MinLengthLogitsProcessor
的实例方法
参数 | 类型 | 描述 |
---|---|---|
input_ids | Array.<Array<bigint>> | 输入 IDs。 |
logits | Tensor | 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_p | number | 如果设置为 < 1,则仅保留概率总和达到 | |
options | Object | top-p 采样的附加选项。 | |
[options.filter_value] | number | -Infinity | 所有被过滤的值将被设置为这个浮点数值。 |
[options.min_tokens_to_keep] | number | 1 | 不能被过滤的最小 token 数量。 |
generation/logits_process.TopKLogitsWarper
[LogitsWarper
],执行 top-k 运算,即限制为 k 个最高概率的元素。 常与 [TemperatureLogitsWarper
] 和 [TopPLogitsWarper
] 一起使用。
类型:generation/logits_process
的静态类
new TopKLogitsWarper(top_k, options)
创建一个 TopKLogitsWarper
。
参数 | 类型 | 默认 | 描述 |
---|---|---|---|
top_k | number | 如果设置为 > 0,则仅保留前 | |
options | Object | top-k 采样的附加选项。 | |
[options.filter_value] | number | -Infinity | 所有被过滤的值将被设置为这个浮点数值。 |
[options.min_tokens_to_keep] | number | 1 | 不能被过滤的最小 token 数量。 |
< > 在 GitHub 上更新