🚀 XLM-R Longformerモデル / XLM-Long
XLM-R Longformer(略称XLM-Long)は、拡張されたXLM-Rモデルです。このモデルでは、通常の512トークンではなく、最大4096トークンのシーケンス長をサポートします。このモデルは、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コーパスで学習を行うことができます。また、多言語質問応答タスクでモデルを微調整することもできます。