🚀 FrALBERT Base Cased
FrALBERT Base Cased是一個基於法語的預訓練模型,採用掩碼語言建模(MLM)目標進行訓練。該模型與其他ALBERT模型不同,它區分大小寫,能夠區分“french”和“French”。更多關於該模型的詳細信息請參考此處。
🚀 快速開始
FrALBERT是一個以自監督方式在16GB法語維基百科數據上進行預訓練的Transformer模型。這意味著它僅在原始文本上進行預訓練,沒有人工進行任何標註(這也是它可以使用大量公開可用數據的原因),並通過自動流程從這些文本中生成輸入和標籤。具體來說,它通過兩個目標進行預訓練:
- 掩碼語言建模(MLM):對於一個句子,模型會隨機掩碼輸入中15%的單詞,然後將整個掩碼後的句子輸入模型,並預測被掩碼的單詞。這與傳統的循環神經網絡(RNN)不同,RNN通常是逐個處理單詞,也與像GPT這樣的自迴歸模型不同,GPT會在內部掩碼未來的標記。這種方式使模型能夠學習句子的雙向表示。
- 句子順序預測(SOP):FrALBERT使用基於預測兩個連續文本片段順序的預訓練損失。
通過這種方式,模型學習到法語的內部表示,可用於提取對下游任務有用的特徵。例如,如果您有一個帶標籤的句子數據集,可以使用FrALBERT模型生成的特徵作為輸入,訓練一個標準分類器。
✨ 主要特性
FrALBERT的特別之處在於它在Transformer中共享層,因此所有層具有相同的權重。使用重複層可以減少內存佔用,但計算成本與具有相同隱藏層數的BERT架構相似,因為它需要遍歷相同數量的(重複)層。
這是基礎模型的第二個版本,該模型具有以下配置:
屬性 |
詳情 |
重複層數 |
12 |
嵌入維度 |
128 |
隱藏維度 |
768 |
注意力頭數 |
12 |
參數數量 |
11M |
💻 使用示例
基礎用法
您可以直接使用該模型進行掩碼語言建模:
>>> from transformers import pipeline
>>> unmasker = pipeline('fill-mask', model='cservan/french-albert-base-cased')
>>> unmasker("Paris est la capitale de la [MASK] .")
[
{
"sequence": "paris est la capitale de la france.",
"score": 0.6231236457824707,
"token": 3043,
"token_str": "france"
},
{
"sequence": "paris est la capitale de la region.",
"score": 0.2993471622467041,
"token": 10531,
"token_str": "region"
},
{
"sequence": "paris est la capitale de la societe.",
"score": 0.02028230018913746,
"token": 24622,
"token_str": "societe"
},
{
"sequence": "paris est la capitale de la bretagne.",
"score": 0.012089950032532215,
"token": 24987,
"token_str": "bretagne"
},
{
"sequence": "paris est la capitale de la chine.",
"score": 0.010002839379012585,
"token": 14860,
"token_str": "chine"
}
]
高級用法
以下是如何在PyTorch中使用該模型獲取給定文本的特徵:
from transformers import AlbertTokenizer, AlbertModel
tokenizer = AlbertTokenizer.from_pretrained('cservan/french-albert-base-cased')
model = AlbertModel.from_pretrained("cservan/french-albert-base-cased")
text = "Remplacez-moi par le texte en français que vous souhaitez."
encoded_input = tokenizer(text, return_tensors='pt')
output = model(**encoded_input)
在TensorFlow中使用:
from transformers import AlbertTokenizer, TFAlbertModel
tokenizer = AlbertTokenizer.from_pretrained('cservan/french-albert-base-cased')
model = TFAlbertModel.from_pretrained("cservan/french-albert-base-cased")
text = "Remplacez-moi par le texte en français que vous souhaitez."
encoded_input = tokenizer(text, return_tensors='tf')
output = model(encoded_input)
📚 詳細文檔
預期用途與限制
您可以將原始模型用於掩碼語言建模或下一句預測,但它主要用於在下游任務上進行微調。您可以在模型中心查找針對您感興趣的任務進行微調的版本。
請注意,該模型主要旨在針對使用整個句子(可能是掩碼後的句子)進行決策的任務進行微調,例如序列分類、標記分類或問答任務。對於文本生成等任務,您應該考慮使用像GPT2這樣的模型。
訓練數據
FrALBERT模型在4GB的法語維基百科(不包括列表、表格和標題)上進行預訓練。
訓練過程
預處理
文本先轉換為小寫,然後使用SentencePiece進行分詞,詞彙表大小為32,000。模型的輸入形式如下:
[CLS] Sentence A [SEP] Sentence B [SEP]
訓練
FrALBERT的訓練過程遵循BERT的設置。
每個句子的掩碼過程細節如下:
- 15%的標記被掩碼。
- 80%的情況下,被掩碼的標記被替換為
[MASK]
。
- 10%的情況下,被掩碼的標記被替換為一個與原標記不同的隨機標記。
- 10%的情況下,被掩碼的標記保持不變。
評估結果
在下游任務上進行微調時,ALBERT模型取得了以下結果:
槽填充:
|
FrALBERT-base |
FrALBERT-base-cased |
MEDIA |
81.76 (0.59) |
85.09 (0.14) |
BibTeX引用和引用信息
@inproceedings{cattan2021fralbert,
author = {Oralie Cattan and
Christophe Servan and
Sophie Rosset},
booktitle = {Recent Advances in Natural Language Processing, RANLP 2021},
title = {{On the Usability of Transformers-based models for a French Question-Answering task}},
year = {2021},
address = {Online},
month = sep,
}
論文鏈接:PDF
📄 許可證
本項目採用Apache-2.0許可證。