이 리포지토리에는 ACL 2023 문서인 ContraCLM: 인과 언어 모델을 위한 대조 학습에 대한 코드가 포함되어 있습니다.
작업 수행자: Nihal Jain*, Dejiao Zhang*, Wasi Uddin Ahmad*, Zijian Wang, Feng Nan, Xiaopeng Li, Ming Tan, Ramesh Nallapati, Baishakhi Ray, Parminder Bhatia, Xiaofei Ma, Bing Xiang. (*는 균등 기여를 나타냄 )
우리는 토큰 수준과 시퀀스 수준 모두에서 작동하는 새로운 대조 학습 프레임워크인 ContraCLM을 제시합니다. ContraCLM은 디코더 전용 언어 모델의 표현 차별성을 강화하고 인코더 전용 모델과의 격차를 해소하여 인과 언어 모델을 언어 생성 이상의 작업에 더 적합하게 만듭니다. 자세한 내용은 당사의 논문을 확인해 보시기 바랍니다.
설정에는 환경에 필요한 종속성을 설치하고 데이터 세트를 필수 디렉터리에 배치하는 작업이 포함됩니다.
다음 명령을 실행하여 새 Conda 환경을 생성하고 이 리포지토리에 필요한 패키지를 설치합니다.
# create a new conda environment with python >= 3.8
conda create -n contraclm python=3.8.12
# install dependencies within the environment
conda activate contraclm
pip install -r requirements.txt
여기를 참조하세요.
이 섹션에서는 이 저장소를 사용하여 (i) 자연어(NL) 데이터에 대한 GPT2
및 (ii) 프로그래밍 언어(PL) 데이터에 대한 CodeGen-350M-Mono
사전 학습하는 방법을 보여줍니다.
이 섹션에서는 열차 및 검증 데이터가 각각 TRAIN_DIR
및 VALID_DIR
에 저장되어 있고 위의 모든 종속성이 설치된 환경 내에 있다고 가정합니다(설정 참조).
다음을 실행하여 사전 훈련과 관련된 모든 플래그의 개요를 얻을 수 있습니다.
python pl_trainer.py --help
GPT2
유지 bash runscripts/run_wikitext.sh
CL_Config=$(eval echo ${options[1]})
설정하여 MLE 손실이 있는 코드만 실행하는 것이 좋습니다.CodeGen-350M-Mono
사전 학습 runscripts/run_code.sh
상단에서 변수를 구성합니다. 많은 옵션이 있지만 여기서는 드롭아웃 옵션만 설명합니다(다른 옵션은 자체적으로 설명됩니다).
dropout_p
: torch.nn.Dropout
에서 사용되는 드롭아웃 확률 값
dropout_layers
: 0보다 크면 dropout_p
확률로 마지막 dropout_layers
활성화됩니다.
functional_dropout
: 지정된 경우 CodeGen 모델의 토큰 표현 출력 위에 기능적 드롭아웃 레이어를 사용합니다.
원하는 모델 구성에 따라 변수 CL
설정합니다. TRAIN_DIR, VALID_DIR
경로가 원하는 대로 설정되어 있는지 확인하세요.
다음 명령을 실행하세요: bash runscripts/run_code.sh
여기에서 관련 작업별 디렉터리를 참조하세요.
연구에 우리 코드를 사용하는 경우 우리 작업을 다음과 같이 인용하십시오.
@inproceedings{jain-etal-2023-contraclm,
title = "{C}ontra{CLM}: Contrastive Learning For Causal Language Model",
author = "Jain, Nihal and
Zhang, Dejiao and
Ahmad, Wasi Uddin and
Wang, Zijian and
Nan, Feng and
Li, Xiaopeng and
Tan, Ming and
Nallapati, Ramesh and
Ray, Baishakhi and
Bhatia, Parminder and
Ma, Xiaofei and
Xiang, Bing",
booktitle = "Proceedings of the 61st Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers)",
month = jul,
year = "2023",
address = "Toronto, Canada",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2023.acl-long.355",
pages = "6436--6459"
}
자세한 내용은 기여를 참조하세요.
이 프로젝트는 Apache-2.0 라이선스에 따라 라이선스가 부여됩니다.