🚀 XLM - R Longformer模型
XLM - R Longformer是一個XLM - R模型,它經過擴展,允許序列長度達到4096個標記,而非常規的512個。該模型是從XLM - RoBERTa檢查點開始,使用Longformer的預訓練方案在英文WikiText - 103語料庫上進行預訓練的。其目的是研究為低資源語言(如瑞典語)創建高效Transformer的方法,而無需在每種語言的長上下文數據集上進行預訓練。該訓練模型是Peltarion一個碩士論文項目的成果,並在多語言問答任務上進行了微調,代碼可在此處獲取。
✨ 主要特性
- 支持序列長度達到4096個標記,突破了常規限制。
- 可用於多語言問答任務。
- 基於XLM - RoBERTa檢查點預訓練,適用於低資源語言研究。
🚀 快速開始
由於XLM - R模型和Longformer模型都是大型模型,建議使用NVIDIA Apex(16位精度)、大型GPU和多個梯度累積步驟來運行這些模型。
📦 安裝指南
文檔未提及具體安裝步驟,可參考相關依賴庫的官方文檔進行安裝,如transformers
庫等。
💻 使用示例
基礎用法
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和多個梯度累積步驟來運行這些模型。
💡 使用建議
可參考完整的訓練腳本和Github倉庫進行模型訓練和微調。