🚀 多目的要約器 (複数の要約データセットでFine-tuningされた3Bのgoogle/flan-t5-xl)
このモデルは、様々な要約データセット(xsum、wikihow、cnn_dailymail/3.0.0、samsum、scitldr/AIC、billsum、TLDR)でFine-tuningされたgoogle/flan-t5-xlのバージョンです。目的は、学術や一般的な使用に適した汎用的な要約器として機能するモデルを作成することです。ソース文書に付加する指示を変えることで、要約の種類を制御できます。最大ソース長は512トークン、最大要約長は150トークンで学習されていますが、多くのテキストで良好な結果が得られます。
🚀 クイックスタート
使い方
目的の使用方法については、Colabノートブックを確認してください。
このモデルは、要約の種類を示すプロンプトをソース文書の前に付けることを想定しています。ここでモデルを学習させるために使用されたプロンプトの例を示します。
プロンプトは末尾にコロンを付けてフォーマットする必要があり、モデルへの入力は例えば「Summarize the following: {input_text}」のようになります。このモデルは jordiclive/flan-t5-11b-summarizer-filtered
のようなモデルよりもはるかに少ないプロンプトで学習されているため、新しいプロンプトの汎化性能はそれほど高くない場合があります。
prompts = {
"article": "Produce an article summary of the following news article:",
"one_sentence": "Given the following news article, summarize the article in one sentence:",
"conversation": "Briefly summarize in third person the following conversation:",
"scitldr": "Given the following scientific article, provide a TL;DR summary:",
"bill": "Summarize the following proposed legislation (bill):",
"outlines": "Produce an article summary including outlines of each paragraph of the following article:",
}
pip install transformers
を実行した後、以下のコードを実行します。
このパイプラインは、Colabと比べて実行速度が遅く、一部のトークナイゼーションパラメータがない場合があります。
from transformers import pipeline
summarizer = pipeline("summarization", "jordiclive/flan-t5-3b-summarizer", torch_dtype=torch.bfloat16)
raw_document = 'You must be 18 years old to live or work in New York State...'
prompt = "Produce an article summary of the following news article:"
results = summarizer(
f"{prompt} {raw_document}",
num_beams=5,
min_length=5,
no_repeat_ngram_size=3,
truncation=True,
max_length=512,
)
🔧 技術詳細
学習手順
- 学習はBF16、deepspeed stage 2で6エポック行われ、検証セットでROUGE-2が監視されました。
ハードウェア
- GPU数: 8 NVIDIA A100-SXM4-40GB
- CPU数: 48
学習ハイパーパラメータ
以下のハイパーパラメータが学習中に使用されました。
パラメータ |
値 |
learning_rate |
3e-05 |
train_batch_size |
5 |
eval_batch_size |
8 |
seed |
42 |
distributed_type |
multi-GPU |
gradient_accumulation_steps |
2 |
effective_train_batch_size |
80 |
optimizer |
Adam with betas=(0.9,0.999) and epsilon=1e-08 |
lr_scheduler_type |
linear |
warmup_steps |
2000 |
num_epochs |
10 |
フレームワークバージョン
- Transformers 4.24.0
- Pytorch 1.9.1+cu111
- Deepspeed 0.7.4
- Pytorch-lightning 1.8.1
引用
@misc{jordiclive_flan_t5_3b_summarizer_2023,
title={{Multi-purpose Summarizer (Fine-tuned google/flan-t5-xl on several Summarization datasets)}},
author={{Jordan Clive}},
howpublished={\url{https://huggingface.co/jordiclive/flan-t5-3b-summarizer}},
year={2023},
note={Apache 2.0 and BSD-3-Clause License. Fine-tuned on various summarization datasets including xsum, wikihow, cnn_dailymail/3.0.0, samsum, scitldr/AIC, billsum, TLDR. Designed for academic and general usage with control over summary type by varying the instruction prepended to the source document.},
url={https://huggingface.co/jordiclive/flan-t5-3b-summarizer},
}
📄 ライセンス