
再現を容易にするために、顔を抱き締めるチェックポイントを追加しました!
ソフトマスキングシナリオの自己完結型の例として、Continual_pretrain.ipynbを追加しました。 GPUなしでうまく動作します!
ソフトマスキングは、従来の継続的な微調整でも機能します。最新のEMNLP23ペーパーをご覧ください!
パラメーターの更新を心配することなく、ブラックボックスLLMを適応できるかどうか疑問に思いますか?検索の高等世代(RAG)に関する最新の論文をこちらをご覧ください!
2021年に、継続的な学習のための簡単で柔軟なフレームワークであるPycontinualを紹介しました。私たちの研究は、このフレームワークから大きな恩恵を受けています。今日、私たちは、この分野で継続的な学習(CL)の利点を維持するために設計された言語モデル(LMS)に焦点を当てた拡張可能な継続的な学習フレームワークであるContinuallmを共有できることを楽しみにしています。
LMSの継続的な学習は、従来のCLとは異なります
当社のリポジトリには、同じトレーニングと評価パイプラインを使用して、最先端(SOTA)メソッドのコレクションのPytorch実装が含まれています。このリポジトリは、LMSの継続的な学習分野を進めることに取り組んでいます。含まれる方法は次のとおりです。
私たちのグループから:
他のグループから(今後はもっと) :
継続的な学習のために広く採用されているベースライン:
ソフトマスキングシナリオの自己完結型の例として、 continual_pretrain.ipynbを追加しました。 GPUなしでうまく動作します!
言語モデル(LMS)の継続的な学習に関しては、適切なデータセットを見つけることが重要です。私たちが提供するデータセットは、次の原則を順守します。
6つの異なるドメインを含むデータセットをリリースし、それぞれに対応するエンドタスクを伴います。データセットはここにあります。以下は、各ドメインのいくつかの統計です。
| ドメインコーパス | サイズ | エンドタスク | タスク | #トレーニング | #testing | #classes |
|---|---|---|---|---|---|---|
| Yelp Restaurant | 758MB | レストラン | アスペクトセンチメント分類(ASC) | 3,452 | 1,120 | 3 |
| Amazon電話 | 724MB | 電話 | アスペクトセンチメント分類(ASC) | 239 | 553 | 2 |
| Amazonカメラ | 319MB | カメラ | アスペクトセンチメント分類(ASC) | 230 | 626 | 2 |
| ACLペーパー | 867MB | ACL | 引用意図分類 | 1,520 | 421 | 6 |
| AIペーパー | 507MB | ai | 関係分類 | 2,260 | 2,388 | 7 |
| PubMed論文 | 989MB | PubMed | 化学タンパク質相互作用予測 | 2,667 | 7,398 | 13 |
Continuallmのアーキテクチャは、主にPycontinual、CPT、およびDGAのアーキテクチャに従っています。
conda create --name continuallm --file requirements.txt
transformers==4.17.0およびadapter-transformers==3.0.1に基づいています。これらの特定のバージョンを使用することをお勧めします。他のバージョンを使用すると、予期しないバグが発生する可能性があるためです。
これは、継続的な学習が行われる場所です。ドメインの四角を学びます。
max_samples=640000
for idrandom in 0
do
for pt_task in 0 1 2 3 4 5
do
python -m torch.distributed.launch --nproc_per_node 4 --use_env posttrain.py
--per_device_train_batch_size 62
--fp16
--max_seq_length 164
--max_samples ${max_samples}
--idrandom ${idrandom}
--ntasks 6
--pt_task ${pt_task}
--baseline ' das '
done
done --idrandom :タスクシーケンスを選択します。詳細については、 ./sequencesを参照してください。--baseline :利用可能なベースラインモデルの紹介を参照してください( config.pyのchoicesを参照)。 LMSの円錐形の学習の後、エンドタスクを個別に微調整することにより、パフォーマンスを評価することができます。
max_samples=640000
seed=(2021 111 222 333 444 555 666 777 888 999)
for round in 0 ; do
for idrandom in 0 ;
do
for pt_task in 0 1 2 3 4 5
do
for ft_task in $( seq 0 ${pt_task} ) ;
do
python finetune.py
--max_seq_length 164
--pt_task ${pt_task}
--ft_task ${ft_task}
--idrandom ${idrandom}
--ntasks 6
--max_samples ${max_samples}
--seed ${seed[$round]}
--baseline ' das '
done
done
done
done 結果のモデルのみに興味がある人や、モデルを独自のデータでトレーニングごとに継続したい人には、良いニュースがあります!顔を抱きしめてチェックポイントを提供しています。
Huggingfaceのtransformersを使用して、継続的に訓練後のモデルを簡単にインポートできます!
import torch
from transformers import AutoTokenizer , AutoModelForSequenceClassification
# Import our model. The package will take care of downloading the models automatically
tokenizer = AutoTokenizer . from_pretrained ( "UIC-Liu-Lab/DAS-Rest2Cam" )
model = AutoModelForSequenceClassification . from_pretrained ( "UIC-Liu-Lab/DAS-Rest2Cam" , trust_remote_code = True )
# Tokenize input texts
texts = [
"There's a kid on a skateboard." ,
"A kid is skateboarding." ,
"A kid is inside the house."
]
inputs = tokenizer ( texts , padding = True , truncation = True , return_tensors = "pt" )
# Get the model output!
res = model ( ** inputs ) HuggingfaceのAPIでモデルを直接読み込むときに問題が発生した場合、モデルをリポジトリから手動でダウンロードして、 model = AutoModel.from_pretrained({PATH TO THE DOWNLOAD MODEL})を使用することもできます。
継続的なトレーニング前シーケンスは、 ./sequences/posttrain seadences/Posttrain(レストランからカメラまで)の最初のシーケンスです。ダウンロードしたウェイトを使用して、対応するエンドタスクを微調整できます。
重要なファイルに興味がある場合は、 before_distill0およびafter_mlm{domain_id}を参照してください。事前トレーニングの前に計算された重要性を意味するbefore 、これは一般的な事前訓練の知識の最初のドメインの前に1回しか行われません。 domain_idの事前トレーニング後に計算された重要性を示したafter 。
凝視して引用するというあなたの行為に感謝します。細部と認識へのあなたの注意は大きく評価されています。
@inproceedings { ke2022dgs ,
title = { Continual Learning of Language Models } , author = { Ke, Zixuan and Shao, Yijia and Lin, Haowei and Konishi, Tatsuya and Kim, Gyuhak and Liu, Bing } , booktitle = { International Conference on Learning Representations (ICLR) } , year = { 2023 } }
@inproceedings { ke2022dga ,
title = { Adapting a Language Model While Preserving its General Knowledge } , author = { Ke, Zixuan and Shao, Yijia and Lin, Haowei and Xu, Hu and Shu, Lei, and Liu, Bing } , booktitle = { Empirical Methods in Natural Language Processing (EMNLP) } , year = { 2022 } }
@inproceedings { ke2022continual ,
title = { Continual Training of Language Models for Few-Shot Learning } , author = { Ke, Zixuan and Lin, Haowei and Shao, Yijia and Xu, Hu and Shu, Lei, and Liu, Bing } , booktitle = { Empirical Methods in Natural Language Processing (EMNLP) } , year = { 2022 } } コードに関するご質問がある場合は、Zixuan Ke、Yijia Shao、またはHaowei Linにメールを送信してください。または、問題を開くことができます。貴重なコメントや意見に、Bing Liu、Hu Xu、およびLei Shuに感謝の気持ちを表明したいと思います。