🚀 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语料库上进行训练。同时,可在多语言问答任务上对模型进行微调。