🚀 芬蘭語T5-base-nl36模型
這是一個基於芬蘭語的預訓練T5模型,採用基於跨度的掩碼語言建模(MLM)目標進行訓練。T5模型最早在 這篇論文 中被提出,並在 此頁面 首次發佈。
⚠️ 重要提示
Hugging Face推理小部件已停用,因為該模型需要在特定下游任務上進行文本到文本的微調才能在實際中發揮作用。作為微調後的芬蘭語T5模型示例,你可以查看 Finnish-NLP/t5-small-nl24-casing-punctuation-correction,該模型經過微調,可糾正芬蘭語文本中缺失的大小寫和標點符號。
✨ 主要特性
- 自監督預訓練:在大量芬蘭語數據上以自監督方式進行預訓練,無需人工標註。
- 基於跨度的掩碼語言建模:採用基於跨度的掩碼語言建模(MLM)目標進行訓練,學習芬蘭語的內在表示。
- 高效架構:使用 T5 v1.1 改進和 高效架構,具有更好的下游性能。
📦 安裝指南
暫未提供安裝相關內容。
💻 使用示例
基礎用法
from transformers import T5Tokenizer, T5ForConditionalGeneration
tokenizer = T5Tokenizer.from_pretrained("Finnish-NLP/t5-base-nl36-finnish")
model = T5ForConditionalGeneration.from_pretrained("Finnish-NLP/t5-base-nl36-finnish")
高級用法
from transformers import T5Tokenizer, TFT5ForConditionalGeneration
tokenizer = T5Tokenizer.from_pretrained("Finnish-NLP/t5-base-nl36-finnish")
model = T5ForConditionalGeneration.from_pretrained("Finnish-NLP/t5-base-nl36-finnish", from_pt=True)
📚 詳細文檔
模型描述
T5是一種編碼器 - 解碼器模型,以文本到文本的格式處理所有自然語言處理問題。
芬蘭語T5是一個以自監督方式在大量芬蘭語數據語料庫上進行預訓練的Transformer模型。這意味著它僅在原始文本上進行預訓練,沒有人工進行任何標註(因此可以使用大量公開可用的數據),並通過自動過程從這些文本中生成輸入和輸出。
更準確地說,它是使用基於跨度的掩碼語言建模(MLM)目標進行預訓練的。輸入序列的跨度被所謂的哨兵標記(即唯一的掩碼標記)掩蓋,輸出序列由相同的哨兵標記和實際被掩蓋的標記拼接而成。通過這種方式,模型學習到芬蘭語的內在表示。
與原始T5模型相比,該模型在預訓練期間使用了 T5 v1.1 的改進:
- 前饋隱藏層使用GEGLU激活函數,而不是ReLU - 詳見 此處
- 預訓練期間關閉了Dropout(提高了質量)。微調期間應重新啟用Dropout
- 僅在基於跨度的掩碼語言建模(MLM)目標上進行預訓練,不混合下游任務
- 嵌入層和分類器層之間不共享參數
該模型還採用了 這篇論文 中提出的“高效”T5架構。簡而言之,該論文指出,與參數數量相似的其他模型架構相比,深度 - 窄化的模型架構在下游任務中表現更優。更準確地說,模型深度定義為依次堆疊的Transformer塊的數量。
該模型使用 t5-efficient-base-nl36 架構的層深度,這意味著編碼器和解碼器都有36個Transformer層,而原始T5“基礎”模型架構只有12個Transformer層。
該模型總共有8.14億個參數。
預期用途和侷限性
該模型僅以自監督方式進行預訓練,不包括任何有監督訓練。因此,與谷歌的原始T5模型不同,該模型必須在下游任務(如文本分類)上進行微調才能使用。
⚠️ 重要提示
你很可能需要以全fp32精度對這些T5模型進行微調,而不是混合精度。例如,你還可以從 這裡 找到更多微調技巧。
侷限性和偏差
該模型使用的訓練數據包含大量來自互聯網的未過濾內容,遠非中立。因此,模型的預測可能存在偏差。這種偏差也會影響該模型的所有微調版本。
訓練數據
這個芬蘭語T5模型是在六個數據集的組合上進行預訓練的:
原始數據集經過自動清理,以過濾掉質量不佳和非芬蘭語的示例。此外,使用僅用非常乾淨的芬蘭語文本訓練的KenLM模型為所有文本計算了 困惑度 分數。這個困惑度分數可以用來確定文本中包含的芬蘭語的“乾淨”程度。最後,將所有數據集拼接起來,並使用前90%的困惑度分數作為過濾閾值,過濾掉質量最差的10%的文本。這些清理後的數據集總共約76GB文本。
訓練過程
預處理
使用WordPiece對文本進行分詞,詞彙表大小為32000。輸入和輸出是由512個連續標記組成的序列。文本不進行小寫處理,因此該模型區分大小寫:“finnish”和“Finnish”是不同的。
預訓練
該模型在由 Google TPU Research Cloud 贊助的TPUv3 - 8虛擬機上進行了100萬步的訓練,批次大小為64(總共330億個標記)。使用的優化器是AdaFactor,學習率在10000步內進行預熱,恆定學習率為1e - 2,然後學習率進行逆平方根衰減(指數衰減)。
訓練代碼來自基於Google的Jax/Flax的 t5x框架,並且一些t5x任務定義改編自 Per的t5x工作。
評估結果
通過在兩個不同的帶標籤芬蘭語數據集 Yle News 和 Eduskunta 上對模型進行下游文本分類任務的微調來進行評估。分類微調使用的序列長度為128個標記。
當在這些數據集上進行微調時,該模型(表格中的第六行)與我們的其他T5模型及其參數數量相比,取得了以下準確率結果:
模型名稱 |
模型參數 |
Yle News準確率 |
Eduskunta準確率 |
Finnish - NLP/t5 - tiny - nl6 - finnish |
3100萬 |
92.80 |
69.07 |
Finnish - NLP/t5 - mini - nl8 - finnish |
7200萬 |
93.89 |
71.43 |
Finnish - NLP/t5 - small - nl16 - finnish |
1.84億 |
94.46 |
74.00 |
Finnish - NLP/t5 - small - nl24 - finnish |
2.6億 |
94.68 |
74.90 |
Finnish - NLP/byt5 - base - finnish |
5.82億 |
92.33 |
73.13 |
Finnish - NLP/t5 - base - nl36 - finnish |
8.14億 |
94.40 |
75.97 |
Finnish - NLP/t5 - large - nl36 - finnish |
14.25億 |
94.17 |
73.50 |
在相同數據集上對谷歌的多語言mT5模型進行微調,我們可以清楚地看到,我們的單語言芬蘭語T5模型在芬蘭語文本分類上取得了更好的結果:
模型名稱 |
模型參數 |
Yle News準確率 |
Eduskunta準確率 |
google/mt5 - small |
3.01億 |
91.51 |
64.10 |
google/mt5 - base |
5.83億 |
92.71 |
68.40 |
🔧 技術細節
該模型使用了基於跨度的掩碼語言建模(MLM)目標進行預訓練,在預訓練過程中採用了T5 v1.1的改進和高效架構,並且在TPUv3 - 8虛擬機上進行訓練,使用AdaFactor優化器和特定的學習率策略。
📄 許可證
本項目採用Apache - 2.0許可證。
致謝
如果沒有谷歌通過 TPU Research Cloud 慷慨提供的計算資源,這個項目是不可能完成的。
團隊成員
如有更多詳情,請隨時聯繫我們 🤗