🚀 XLM-R Longformer模型 / XLM-Long
XLM-R Longformer(簡稱XLM-Long)是一個擴展後的XLM-R模型,它允許序列長度達到4096個標記,而非常規的512個。該模型是基於XLM-RoBERTa檢查點,使用Longformer的預訓練方案在英文WikiText - 103語料庫上進行預訓練的。
這樣做的目的是為了研究如何為低資源語言(如瑞典語)創建高效的Transformer模型,而無需在每種語言的長上下文數據集上進行預訓練。這個訓練好的模型是Peltarion一個碩士論文項目的成果,並在多語言問答任務上進行了微調,相關代碼可在此處獲取。
由於XLM - R模型和Longformer模型都是大型模型,建議使用NVIDIA Apex(16位精度)、大型GPU並進行多次梯度累積步驟來運行這些模型。
🚀 快速開始
模型介紹
XLM - R Longformer(或簡稱XLM - Long)是對XLM - R模型的擴展,它將序列長度從常規的512個標記提升到了4096個標記。該模型基於XLM - RoBERTa檢查點,採用Longformer的預訓練方案,在英文WikiText - 103語料庫上完成預訓練。其研發旨在探索為低資源語言(如瑞典語)創建高效Transformer模型的方法,無需針對每種語言的長上下文數據集進行預訓練。此模型是Peltarion碩士論文項目的成果,並在多語言問答任務上進行了微調,代碼可在這裡獲取。
運行建議
鑑於XLM - R模型和Longformer模型均為大型模型,建議使用NVIDIA Apex(16位精度)、大型GPU並結合多次梯度累積步驟來運行模型。
✨ 主要特性
- 長序列處理能力:支持最長達4096個標記的序列長度,突破了常規的512個標記限制。
- 多語言適應性:可用於多語言問答任務,適用於低資源語言。
- 預訓練方案:基於XLM - RoBERTa檢查點,採用Longformer預訓練方案。
💻 使用示例
基礎用法
import torch
from transformers import AutoModel, AutoTokenizer
MAX_SEQUENCE_LENGTH = 4096
MODEL_NAME_OR_PATH = "markussagen/xlm-roberta-longformer-base-4096"
tokenizer = AutoTokenizer.from_pretrained(
MODEL_NAME_OR_PATH,
max_length=MAX_SEQUENCE_LENGTH,
padding="max_length",
truncation=True,
)
model = AutoModelForQuestionAnswering.from_pretrained(
MODEL_NAME_OR_PATH,
max_length=MAX_SEQUENCE_LENGTH,
)
📦 安裝指南
文檔未提及具體安裝步驟,暫不提供。
📚 詳細文檔
訓練過程
該模型在WikiText - 103語料庫上進行訓練,使用了一個48GB的GPU,並採用了以下訓練腳本和參數。模型預訓練了6000次迭代,耗時約5天。完整的訓練腳本和Github倉庫可查看更多信息。
wget https://s3.amazonaws.com/research.metamind.io/wikitext/wikitext-103-raw-v1.zip
unzip wikitext-103-raw-v1.zip
export DATA_DIR=./wikitext-103-raw
scripts/run_long_lm.py \
--model_name_or_path xlm-roberta-base \
--model_name xlm-roberta-to-longformer \
--output_dir ./output \
--logging_dir ./logs \
--val_file_path $DATA_DIR/wiki.valid.raw \
--train_file_path $DATA_DIR/wiki.train.raw \
--seed 42 \
--max_pos 4096 \
--adam_epsilon 1e-8 \
--warmup_steps 500 \
--learning_rate 3e-5 \
--weight_decay 0.01 \
--max_steps 6000 \
--evaluate_during_training \
--logging_steps 50 \
--eval_steps 50 \
--save_steps 6000 \
--max_grad_norm 1.0 \
--per_device_eval_batch_size 2 \
--per_device_train_batch_size 1 \
--gradient_accumulation_steps 64 \
--overwrite_output_dir \
--fp16 \
--do_train \
--do_eval
📄 許可證
本項目採用Apache - 2.0許可證。
屬性 |
詳情 |
模型類型 |
XLM - R Longformer模型 |
訓練數據 |
英文WikiText - 103語料庫 |
⚠️ 重要提示
由於XLM - R模型和Longformer模型都是大型模型,建議使用NVIDIA Apex(16位精度)、大型GPU並進行多次梯度累積步驟來運行這些模型。
💡 使用建議
可參考訓練腳本和參數,在WikiText - 103語料庫上進行訓練。同時,可在多語言問答任務上對模型進行微調。