🚀 マルチパーパス要約モデル (複数の要約データセットでファインチューニングされた11Bのgoogle/flan - t5 - xxl)
このモデルは、学術や一般的な用途での汎用要約器として使用できます。ソースドキュメントに先頭に付ける指示を変えることで、要約の種類を制御できます。最大ソース長が512トークン、最大要約長が150トークンで学習されていますが、多くのテキストに対して良好な結果を示します。
[google/flan - t5 - xxl](https://huggingface.co/google/flan - t5 - xxl) を様々な要約データセット (xsum、wikihow、cnn_dailymail/3.0.0、samsum、scitldr/AIC、billsum、TLDR、wikipedia - summary) でファインチューニングしたバージョンです。
70%のデータは、contriever を使用して、テキストと要約のコサイン類似度が0.6を閾値としてフィルタリングされています。
✨ 主な機能
- 学術や一般的な用途での汎用要約器として使用可能。
- ソースドキュメントに付ける指示を変えることで、要約の種類を制御できる。
- 多くのテキストに対して良好な要約結果を示す。
📦 インストール
pip install transformers
を実行して、必要なライブラリをインストールします。
💻 使用例
基本的な使用法
モデルの使用方法については、Colabノートブックを確認してください。モデルは要約の種類を示すプロンプトをソースドキュメントの前に付けることを期待しています。このモデルは、膨大な種類 (100種類以上) のプロンプトで学習されています。
example_prompts = {
"social": "Produce a short summary of the following social media post:",
"ten": "Summarize the following article in 10-20 words:",
"5": "Summarize the following article in 0-5 words:",
"100": "Summarize the following article in about 100 words:",
"summary": "Write a ~ 100 word summary of the following text:",
"short": "Provide a short summary of the following article:",
}
モデルは、要約の長さを「x - y words」または「~/approximately/about/ x words」といった範囲で指定することも学習しています。プロンプトは末尾にコロンを付けて、モデルへの入力を「Summarize the following: \n\n {input_text}」のようにフォーマットする必要があります。
pip install transformers
を実行した後、以下のコードを実行します。このパイプラインはColabよりも遅く動作し、一部のトークン化パラメータを持たない場合があります。
from transformers import pipeline
summarizer = pipeline("summarization", "jordiclive/flan-t5-11b-summarizer-filtered", torch_dtype=torch.bfloat16)
raw_document = 'You must be 18 years old to live or work in New York State...'
prompt = "Summarize the following article in 10-20 words:"
results = summarizer(
f"{prompt} \n\n {raw_document}",
num_beams=5,
min_length=5,
no_repeat_ngram_size=3,
truncation=True,
max_length=512,
)
🔧 技術詳細
学習手順
- 学習はBF16、deepspeed stage 2、CPUオフロードで1エポック行われ、検証損失が監視されました。
ハードウェア
- GPU数: 8 NVIDIA A100 - SXM4 - 80GB
- CPU数: 48
学習ハイパーパラメータ
学習中に使用されたハイパーパラメータは以下の通りです。
パラメータ |
値 |
learning_rate |
3e - 05 |
train_batch_size |
4 |
eval_batch_size |
4 |
seed |
42 |
distributed_type |
multi - GPU |
gradient_accumulation_steps |
2 |
effective_train_batch_size |
64 |
optimizer |
Adam (betas=(0.9, 0.999), epsilon = 1e - 08) |
lr_scheduler_type |
linear |
warmup_steps |
2000 |
num_epochs |
4 |
フレームワークバージョン
- Transformers 4.24.0
- Pytorch 1.9.1+cu111
- Deepspeed 0.7.4
- Pytorch - lightning 1.8.1
📄 ライセンス
- apache - 2.0
- bsd - 3 - clause