
더 쉬운 번식을 위해 포옹 얼굴에 검문소를 추가했습니다!
소프트 마스킹 시나리오의 자체 포함 예로 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 |
|---|---|---|---|---|---|---|
| 옐프 레스토랑 | 758MB | 식당 | ASC) | 3,452 | 1,120 | 3 |
| 아마존 전화 | 724MB | 핸드폰 | ASC) | 239 | 553 | 2 |
| 아마존 카메라 | 319MB | 카메라 | ASC) | 230 | 626 | 2 |
| ACL 용지 | 867MB | ACL | 인용 의도 분류 | 1,520 | 421 | 6 |
| AI 종이 | 507MB | 일체 포함 | 관계 분류 | 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 ) model = AutoModel.from_pretrained({PATH TO THE DOWNLOAD MODEL})
지속적인 사전 훈련 시퀀스는 ./sequences/posttrain posttrain ( 레스토랑에서 카메라로 )의 첫 번째 시퀀스 이며, 다운로드 된 가중치를 사용하여 해당 엔드 타스크를 미세 조정할 수 있습니다.
중요도 파일에 관심이 있으시면 before_distill0 및 after_mlm{domain_id} 를 참조하십시오. before 사전 훈련 전에 계산 된 중요성을 나타냅니다. 이는 일반적인 미리 훈련 된 지식에 대한 첫 번째 영역 전에 한 번만 수행됩니다. after 도메인 _id의 사전 훈련 후 계산 된 중요성을 나타냅니다.
우리는 당신의 쳐다보고 인용하는 행동에 감사드립니다. 세부 사항과 인식에 대한 관심은 크게 가치가 있습니다.
@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에 대한 감사를 표하고 싶습니다.