🚀 ByT5 - xxl
ByT5 是 Google 的 T5 無分詞器版本,總體遵循 MT5 的架構。它僅在 mC4 上進行預訓練,不進行任何監督訓練,平均跨度掩碼為 20 個 UTF - 8 字符。因此,該模型在下游任務中使用前需要進行微調。ByT5 在處理噪聲文本數據方面表現出色,例如,google/byt5-xxl
在 TweetQA 任務上顯著優於 mt5-xxl。
🚀 快速開始
ByT5 是 Google 的 T5 的無分詞器版本,總體上遵循 MT5 的架構。它僅在 mC4 上進行了預訓練,沒有進行任何監督訓練,平均跨度掩碼為 20 個 UTF - 8 字符。所以,這個模型在用於下游任務之前需要進行微調。
✨ 主要特性
- 無分詞器:ByT5 是無分詞器版本的模型,可直接處理原始 UTF - 8 字節。
- 多語言支持:支持多種語言,包括但不限於英語、中文、法語、德語等眾多語言。
- 處理噪聲文本能力強:在處理噪聲文本數據時表現出色,例如在 TweetQA 任務上顯著優於 mt5-xxl。
💻 使用示例
基礎用法
from transformers import T5ForConditionalGeneration
import torch
model = T5ForConditionalGeneration.from_pretrained('google/byt5-xxl')
input_ids = torch.tensor([list("Life is like a box of chocolates.".encode("utf-8"))]) + 3
labels = torch.tensor([list("La vie est comme une boîte de chocolat.".encode("utf-8"))]) + 3
loss = model(input_ids, labels=labels).loss
高級用法
from transformers import T5ForConditionalGeneration, AutoTokenizer
model = T5ForConditionalGeneration.from_pretrained('google/byt5-xxl')
tokenizer = AutoTokenizer.from_pretrained('google/byt5-xxl')
model_inputs = tokenizer(["Life is like a box of chocolates.", "Today is Monday."], padding="longest", return_tensors="pt")
labels = tokenizer(["La vie est comme une boîte de chocolat.", "Aujourd'hui c'est lundi."], padding="longest", return_tensors="pt").input_ids
loss = model(**model_inputs, labels=labels).loss
📚 詳細文檔
模型概述
大多數廣泛使用的預訓練語言模型處理的是與單詞或子詞單元對應的標記序列。將文本編碼為標記序列需要一個分詞器,而分詞器通常是獨立於模型創建的。無標記模型直接處理原始文本(字節或字符),具有許多優點:它們可以直接處理任何語言的文本,對噪聲更具魯棒性,並且通過去除複雜且容易出錯的文本預處理流程,減少了技術負擔。由於字節或字符序列比標記序列更長,過去關於無標記模型的工作通常引入了新的模型架構,以分攤直接處理原始文本的成本。在本文中,作者表明可以對標準的 Transformer 架構進行最小的修改來處理字節序列。作者仔細分析了在參數數量、訓練浮點運算次數和推理速度方面的權衡,並表明字節級模型與標記級模型具有競爭力。作者還證明了字節級模型對噪聲更具魯棒性,並且在對拼寫和發音敏感的任務上表現更好。作為貢獻的一部分,作者發佈了一組基於 T5 架構的新的預訓練字節級 Transformer 模型,以及實驗中使用的所有代碼和數據。
模型圖示

📄 許可證
本項目採用 Apache - 2.0 許可證。
📦 相關信息