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 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.