🚀 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仓库进行模型训练和微调。