개념 기반 커리큘럼 마스킹 (CCM)은 효율적인 언어 모델 사전 훈련을위한 교육 전략입니다. 컴퓨팅 비용이 상대적으로 낮은 트랜스포머를 사전 훈련하는 데 사용할 수 있습니다. 우리의 프레임 워크는 문장 내의 개념을 눈에 띄기 쉬운 순서로 마스크합니다. CCM은 접착제 벤치 마크에서 1/2 컴퓨팅 비용 만 사용하여 원래 Bert와 비교 성능을 달성합니다.
이 저장소에는 EMNLP 2022 용지에 대한 코드가 포함되어 있습니다. 개념 기반 커리큘럼 마스킹을 통한 마스킹 언어 모델의 효율적인 사전 훈련. 자세한 설명과 실험 결과는 논문을 참조하십시오.
접착제 개발자 세트의 결과
| 모델 | 콜라 | SST | MRPC | STS | RTE |
|---|---|---|---|---|---|
| 버트 (작은, 14m) | 38.0 | 88.7 | 82.8 | 82.0 | 59.2 |
| CCM (작은, 14m) | 42.8 | 89.1 | 84.1 | 83.3 | 61.3 |
| 버트 (중간, 26m) | 44.9 | 89.6 | 85.4 | 82.7 | 60.3 |
| CCM (중간, 26m) | 48.0 | 90.9 | 86.7 | 83.6 | 61.4 |
| 버트 (베이스, 110m) | 49.7 | 90.8 | 87.8 | 85.4 | 67.8 |
| CCM (베이스, 110m) | 60.3 | 93.1 | 88.3 | 85.5 | 65.0 |
| 모델 | mnli | QQP | qnli |
|---|---|---|---|
| 버트 (작은, 14m) | 76.8 | 88.4 | 85.8 |
| CCM (작은, 14m) | 77.5 | 88.6 | 86.3 |
| 버트 (중간, 26m) | 78.9 | 89.4 | 87.6 |
| CCM (중간, 26m) | 80.0 | 89.2 | 87.6 |
| 버트 (베이스, 110m) | 81.7 | 90.4 | 89.5 |
| CCM (베이스, 110m) | 84.1 | 91.0 | 91.4 |
Conceptnet Assertions를 다운로드하십시오.
# Download assertions in the data folder.
$ wget ./data/assertions.csv https://s3.amazonaws.com/conceptnet/precomputed-data/2016/assertions/conceptnet-assertions-5.5.0.csv.gz
# run concept_extraction.py
$ python ./script/concept_extraction.py
./script/basicconcept_selection.py 사용하여 지식 그래프의 다른 많은 개념과 연결되어 있으며 사전 훈련 코퍼스에서 자주 발생하는 기본 개념으로 커리큘럼의 첫 단계를 만듭니다.
--conceptnet_path : 전달 된 ConceptNet 파일의 경로.--topk_connected_concepts : 지식 그래프의 다른 많은 개념에 연결된 상위 K 개념.--corpus_dir : 원시 텍스트 파일이 포함 된 디렉토리로 MLM 사전 훈련 예제로 바뀝니다.--delete_threshold : 드문 개념을 필터링하는 주파수 임계 값.--basicConcepts_num : 커리큘럼에 사용되는 기본 개념의 수를 설정합니다.--save_path : 기본 개념 세트를 저장하는 경로. ./script/curriculum_construction.py 사용하여 기본 개념을 가진 개념 기반 커리큘럼을 구성하십시오.
--conceptnet_path : 전달 된 ConceptNet 파일의 경로.--num_of_hops : 다음 단계 개념 세트에 관련 개념을 추가하기위한 홉 수를 설정합니다.--basic_concept_path : 기본 개념 세트를로드하는 경로.--save_dir : 커리큘럼의 각 단계에 대한 개념 세트를 저장하는 경로.--num_of_stages : 커리큘럼의 단계 수를 설정합니다. ./script/curriculum_construction.py 사용하여 코퍼스의 개념을 식별하고 커리큘럼과 함께 준비하십시오.
--corpus_dir : 원시 텍스트 파일이 포함 된 디렉토리로 MLM 사전 훈련 예제로 바뀝니다.--save_dir : 사전 처리 된 코퍼스를 저장하는 경로.--curriculum_dir : 개념 기반 커리큘럼이 포함 된 디렉토리.--process_num : 사전 처리를위한 CPU 프로세서 수를 설정합니다. 마지막으로, ./script/pre-training.py 사용하여 개념 기반 커리큘럼 마스킹으로 모델을 사전 훈련하십시오.
--curriculum_dir : 개념 기반 커리큘럼이 포함 된 디렉토리.--lr : 학습 속도를 설정하십시오.--epochs : 에포크 수를 설정하십시오.--batch_size : 한 번에 전도를 위해 배치 크기를 설정하십시오.--step_batch_size : 각 단계마다 업데이트 할 배치 크기를 설정하십시오 (GPU의 메모리가 충분한 경우 Batch_size 및 step_batch_size를 동일하게 설정하십시오.--data_path : 사전 처리 된 예제를 포함하는 디렉토리.--warmup_steps : 원래 MLM으로 모델을 데우기위한 단계 수를 설정하십시오.--model_size : 모델의 크기를 선택하여 사전 훈련을합니다. CCM을 사용하는 도움이나 문제는 Github 문제를 제출하십시오.
CCM과 관련된 개인 커뮤니케이션은 mingyu lee <[email protected]> 또는 Jun-Hyung Park <[email protected]> 에 문의하십시오.