Transformers 文件

HerBERT

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

HerBERT

PyTorch TensorFlow Flax

概述

HerBERT 模型由 Piotr Rybak、Robert Mroczkowski、Janusz Tracz 和 Ireneusz Gawlik 在論文 KLEJ: 波蘭語理解綜合基準 中提出。它是一個基於 BERT 的語言模型,在波蘭語語料庫上訓練,僅使用 MLM 目標和動態全詞掩碼。

論文摘要如下:

近年來,一系列基於 Transformer 的模型在通用自然語言理解 (NLU) 任務中取得了重大進展。如果沒有通用的 NLU 基準測試,如此快的研究步伐是不可能實現的,因為這些基準測試可以對所提出的方法進行公平的比較。然而,這樣的基準測試僅適用於少數語言。為了緩解這個問題,我們引入了一個全面的多工波蘭語理解基準,並附有一個線上排行榜。它包含一系列多樣化的任務,這些任務改編自現有的命名實體識別、問答、文字蘊含等資料集。我們還為電子商務領域引入了一個新的情感分析任務,名為 Allegro Reviews (AR)。為確保共同的評估方案並推廣能夠泛化到不同 NLU 任務的模型,該基準包含了來自不同領域和應用的資料集。此外,我們釋出了 HerBERT,這是一個專門為波蘭語訓練的基於 Transformer 的模型,它具有最佳的平均效能,並在九個任務中的三個任務上取得了最佳結果。最後,我們提供了廣泛的評估,包括幾個標準基線和最近提出的多語言 Transformer 模型。

此模型由 rmroczkowski 貢獻。原始程式碼可以在此處找到。

用法示例

>>> from transformers import HerbertTokenizer, RobertaModel

>>> tokenizer = HerbertTokenizer.from_pretrained("allegro/herbert-klej-cased-tokenizer-v1")
>>> model = RobertaModel.from_pretrained("allegro/herbert-klej-cased-v1")

>>> encoded_input = tokenizer.encode("Kto ma lepszą sztukę, ma lepszy rząd – to jasne.", return_tensors="pt")
>>> outputs = model(encoded_input)

>>> # HerBERT can also be loaded using AutoTokenizer and AutoModel:
>>> import torch
>>> from transformers import AutoModel, AutoTokenizer

>>> tokenizer = AutoTokenizer.from_pretrained("allegro/herbert-klej-cased-tokenizer-v1")
>>> model = AutoModel.from_pretrained("allegro/herbert-klej-cased-v1")

Herbert 的實現與 BERT 相同,除了分詞方法。有關 API 參考和示例,請參閱 BERT 文件

HerbertTokenizer

class transformers.HerbertTokenizer

< >

( vocab_file merges_file tokenizer_file = None cls_token = '<s>' unk_token = '<unk>' pad_token = '<pad>' mask_token = '<mask>' sep_token = '</s>' bos_token = '<s>' do_lowercase_and_remove_accent = False additional_special_tokens = ['<special0>', '<special1>', '<special2>', '<special3>', '<special4>', '<special5>', '<special6>', '<special7>', '<special8>', '<special9>'] lang2id = None id2lang = None **kwargs )

為 HerBERT 構建一個 BPE 分詞器。

特點

  • 使用 BERT 的預分詞器:BaseTokenizer 在空格和標點符號上分割詞元。每個標點符號的出現都將被單獨處理。

  • 這種預分詞後的輸入會進行 BPE 子詞元化

該分詞器繼承自 XLMTokenizer,其中包含大部分方法。使用者應參考超類以獲取有關方法的更多資訊。

build_inputs_with_special_tokens

< >

( token_ids_0: list token_ids_1: typing.Optional[list[int]] = None ) List[int]

引數

  • token_ids_0 (List[int]) — 將要新增特殊詞元的 ID 列表。
  • token_ids_1 (List[int], 可選) — 序列對的可選第二個 ID 列表。

返回

List[int]

帶有適當特殊標記的輸入ID列表。

透過連線和新增特殊詞元,為序列分類任務從一個序列或一對序列構建模型輸入。XLM 序列具有以下格式

  • 單個序列:<s> X </s>
  • 序列對:<s> A </s> B </s>

convert_tokens_to_string

< >

( tokens )

將標記序列(字串)轉換為單個字串。

get_special_tokens_mask

< >

( token_ids_0: list token_ids_1: typing.Optional[list[int]] = None already_has_special_tokens: bool = False ) List[int]

引數

  • token_ids_0 (List[int]) — ID 列表。
  • token_ids_1 (List[int], 可選) — 序列對的可選第二個 ID 列表。
  • already_has_special_tokens (bool, 可選, 預設為 False) — 詞元列表是否已經為模型格式化了特殊詞元。

返回

List[int]

一個範圍為 [0, 1] 的整數列表:1 表示特殊標記,0 表示序列標記。

從沒有新增特殊標記的標記列表中檢索序列ID。此方法在使用分詞器prepare_for_model方法新增特殊標記時呼叫。

HerbertTokenizerFast

class transformers.HerbertTokenizerFast

< >

( vocab_file = None merges_file = None tokenizer_file = None cls_token = '<s>' unk_token = '<unk>' pad_token = '<pad>' mask_token = '<mask>' sep_token = '</s>' **kwargs )

引數

  • vocab_file (str) — 詞彙表文件的路徑。
  • merges_file (str) — 合併檔案的路徑。

為 HerBERT 構建一個“快速” BPE 分詞器 (由 HuggingFace 的 *tokenizers* 庫支援)。

特點

  • 使用 BERT 的預分詞器:BertPreTokenizer 在空格和標點符號上分割詞元。每個標點符號的出現都將被單獨處理。

該分詞器繼承自 PreTrainedTokenizer,其中包含大部分方法。使用者應參考超類以獲取有關方法的更多資訊。

build_inputs_with_special_tokens

< >

( token_ids_0: list token_ids_1: typing.Optional[list[int]] = None ) List[int]

引數

  • token_ids_0 (List[int]) — 將要新增特殊詞元的 ID 列表。
  • token_ids_1 (List[int], 可選) — 序列對的可選第二個 ID 列表。

返回

List[int]

帶有適當特殊標記的輸入ID列表。

透過連線和新增特殊詞元,為序列分類任務從一個序列或一對序列構建模型輸入。HerBERT,像 BERT 序列一樣,具有以下格式

  • 單個序列:<s> X </s>
  • 序列對:<s> A </s> B </s>

get_special_tokens_mask

< >

( token_ids_0: list token_ids_1: typing.Optional[list[int]] = None already_has_special_tokens: bool = False ) List[int]

引數

  • token_ids_0 (List[int]) — ID 列表。
  • token_ids_1 (List[int], 可選) — 序列對的可選第二個 ID 列表。
  • already_has_special_tokens (bool, 可選, 預設為 False) — 詞元列表是否已經為模型格式化了特殊詞元。

返回

List[int]

一個範圍為 [0, 1] 的整數列表:1 表示特殊標記,0 表示序列標記。

從沒有新增特殊標記的標記列表中檢索序列ID。此方法在使用分詞器prepare_for_model方法新增特殊標記時呼叫。

< > 在 GitHub 上更新

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