Transformers 文件
myt5
並獲得增強的文件體驗
開始使用
myt5
概述
myt5 模型是在 MYTE: Morphology-Driven Byte Encoding for Better and Fairer Multilingual Language Modeling 論文中提出的,作者是 Tomasz Limisiewicz、Terra Blevins、Hila Gonen、Orevaoghene Ahia 和 Luke Zettlemoyer。MyT5 (Myte T5) 是一個基於 T5 架構的多語言模型。該模型使用了我們論文中描述的 **m**orphologically-driven **byte** (MYTE,即形態驅動的位元組) 表示法。與 UTF-8 編碼中使用的字元不同,MYTE 使用與語素對應的碼點。作為先決條件,我們使用了無監督形態學分割(Morfessor)來獲取 99 種語言的語素庫。然而,當使用 Hub 上預定義的語素庫時,不需要進行形態學分割步驟(參見:Tomli/myt5-base)。
論文摘要如下:
多語言模型的一個主要考慮因素是如何最好地表示具有不同詞彙和文字的語言。儘管當代的文字編碼方法涵蓋了世界上大多數的書寫系統,但它們對全球西方的資源豐富型語言存在偏見。結果,代表性不足語言的文字往往被分割成一長串沒有語言學意義的單位。為了解決這種差異,我們引入了一種新的正規化,該正規化使用大小一致的片段來編碼不同語言中的相同資訊。我們的編碼約定 (MYTE) 基於語素,因為語素庫在不同語言間的平衡性比以往方法中使用的字元更好。我們證明 MYTE 對所有 99 種被分析的語言都能產生更短的編碼,對非歐洲語言和非拉丁文字的改進最為顯著。這反過來又提高了多語言語言模型的效能,並減少了不同語言之間的困惑度差距。
該模型由 Tomasz Limisiewicz 貢獻。原始程式碼可以在這裡找到。
MyT5Tokenizer
class transformers.MyT5Tokenizer
< 原始碼 >( vocab_file eos_token = '</s>' unk_token = '<unk>' pad_token = '<pad>' extra_ids = 125 additional_special_tokens = None **kwargs )
引數
- vocab_file (
str
) — 包含位元組重寫規則的檔案。 - eos_token (
str
, 可選, 預設為"</s>"
) — 序列結束標記。 - unk_token (
str
, 可選, 預設為"<unk>"
) — 未知標記。不在詞彙表中的標記無法轉換為 ID,將被設定為此標記。 - pad_token (
str
, 可選, 預設為"<pad>"
) — 用於填充的標記,例如在批處理不同長度的序列時使用。 - extra_ids (
int
, 可選, 預設為 125) — 在詞彙表末尾新增的額外 ID 的數量,用作哨兵標記。這些標記可以作為“id{%d}>”訪問,其中“{%d}”是介於 0 和 extra_ids-1 之間的數字。額外標記從詞彙表末尾向前索引(“ ”是詞彙表中的最後一個標記,類似於 ByT5 預處理,請參閱這裡)。 - additional_special_tokens (
list[str]
, 可選) — 分詞器使用的其他特殊標記。
構建一個 MyT5 分詞器。
此分詞器繼承自 PreTrainedTokenizer,其中包含大多數主要方法。使用者應參考此超類以獲取有關這些方法的更多資訊。
build_inputs_with_special_tokens
< 原始碼 >( token_ids_0: list token_ids_1: typing.Optional[list[int]] = None ) → list[int]
透過連線和新增特殊標記,從序列或序列對構建用於序列分類任務的模型輸入。序列格式如下:
- 單個序列:
X </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]
從沒有新增特殊標記的標記列表中檢索序列ID。此方法在使用分詞器prepare_for_model
方法新增特殊標記時呼叫。
create_token_type_ids_from_sequences
< 原始碼 >( token_ids_0: list token_ids_1: typing.Optional[list[int]] = None ) → list[int]
根據傳入的兩個序列建立一個掩碼,用於序列對分類任務。MyT5 不使用標記型別 ID,因此返回一個全零列表。
MyT5Tokenizer
class transformers.MyT5Tokenizer
< 原始碼 >( vocab_file eos_token = '</s>' unk_token = '<unk>' pad_token = '<pad>' extra_ids = 125 additional_special_tokens = None **kwargs )
引數
- vocab_file (
str
) — 包含位元組重寫規則的檔案。 - eos_token (
str
, 可選, 預設為"</s>"
) — 序列結束標記。 - unk_token (
str
, 可選, 預設為"<unk>"
) — 未知標記。不在詞彙表中的標記無法轉換為 ID,將被設定為此標記。 - pad_token (
str
, 可選, 預設為"<pad>"
) — 用於填充的標記,例如在批處理不同長度的序列時使用。 - extra_ids (
int
, 可選, 預設為 125) — 在詞彙表末尾新增的額外 ID 的數量,用作哨兵標記。這些標記可以作為“id{%d}>”訪問,其中“{%d}”是介於 0 和 extra_ids-1 之間的數字。額外標記從詞彙表末尾向前索引(“ ”是詞彙表中的最後一個標記,類似於 ByT5 預處理,請參閱這裡)。 - additional_special_tokens (
list[str]
, 可選) — 分詞器使用的其他特殊標記。
構建一個 MyT5 分詞器。
此分詞器繼承自 PreTrainedTokenizer,其中包含大多數主要方法。使用者應參考此超類以獲取有關這些方法的更多資訊。
build_inputs_with_special_tokens
< 原始碼 >( token_ids_0: list token_ids_1: typing.Optional[list[int]] = None ) → list[int]
透過連線和新增特殊標記,從序列或序列對構建用於序列分類任務的模型輸入。序列格式如下:
- 單個序列:
X </s>
- 序列對:
A </s> B </s>
將標記序列(字串)轉換為單個字串。
create_token_type_ids_from_sequences
< 原始碼 >( token_ids_0: list token_ids_1: typing.Optional[list[int]] = None ) → list[int]
根據傳入的兩個序列建立一個掩碼,用於序列對分類任務。MyT5 不使用標記型別 ID,因此返回一個全零列表。
get_special_tokens_mask
< 原始碼 >( token_ids_0: list token_ids_1: typing.Optional[list[int]] = None already_has_special_tokens: bool = False ) → list[int]
從沒有新增特殊標記的標記列表中檢索序列ID。此方法在使用分詞器prepare_for_model
方法新增特殊標記時呼叫。