ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [논문리뷰] Finetuned Language Models Are Zero-Shot Learners(2022, Instruction following)
    카테고리 없음 2024. 1. 12. 12:55

    # 요약

    - Language Model의 Zero-shot 학습 능력을 향상시키는 간단한 방법을 연구

    - 명령어를 통해 설명된 Dataset에서 Instruction tuninig이 Zero-shot 성능을 크게 향상 시키는것을 입증

    - 137B의 Pre-trained LM을 명령어 템플릿을 통해 변형된 60개 이상의 NLP 데이터 세트에 대해 Instruction Tuninig 수행

    - FLAN(Instruction Tuned Model)을 평가한 결과, FLAN은 수정하지 않은 모델보다 성능이 크게 향상되었으며 평가한 25개 데이터 세트 중 20개에서 제로 샷 175B GPT-3를 능가

     

    # 서론

    - GPT-3(Brown et al., 2020)와 같은 대규모 언어 모델(LM)은 다양한 Task를 매우 잘 수행

    - 그러나 Zero-shot 학습에서는 좋지 못하며 Few-shot 대비 성능이 많이 떨어짐

    - 이유는 Few-shot의 예시가 없으면 사전 학습 데이터의 형식과 유사하지 않은 Prompt에서 모델은 잘 수행하지 못함

    - 본 논문에서는 자연어 명령을 통해 NLP 작업을 설명할 수 있다는 직관을 활용한 간단한 방법으로 대규모 언어 모델의 Zero-shot 성능을 개선할 수 있음을 입증

    - 60개 이상의 NLP Dataset에서 평가한 결과 Zero-shot 성능을 크게 개선함을 확인

    - 또한 Instruction-tuning에서 작업 클러스터 수를 늘리면 보이지 않는 작업의 성능이 향상되며, 모델 규모가 충분할 때만 Instrution-tuning의 이점이 생긴다는 사실을 발견
    - 인스트럭션 튜닝은 언어 모델이 순전히 지시를 통해 설명된 작업을 수행할 수 있는 유망한 능력을 보여줌

     

     

    # FLAN: Instruction Tuning Improves Zero-Shot Learning

    Unseen Task에 대한 성능을 평가하기 위해 데이터 세트를 작업 유형별로 클러스터링 하고 각 작업 클러스터를 평가할 수 있도록 유지하면서 나머지 모든 클러스터에 대한 Instruction Tuning을 수행

     

    ## Task & Templates 

    - 연구계에서 쓰이는 기존의 Dataset를 변환하여 새 Dataset을 구축

    - Tensorflow 데이터 세트에서 공개적으로 사용 가능한 62개의 텍스트 데이터 세트를 수집

    - 각 데이터 세트는 12개의 작업 클러스터 중 하나로 분류됨(Figure 3 참고)

    - 각 데이터 세트에 대해 Instruction을 사용해 해당 데이터 세트의 작업을 설명하는 10개의 고유 템플릿을 작성

    - 템플릿 대부분은 원래의 Task를 설명하지만, 다양성을 높이기 위해 각 데이터 세트 마다 최대 3개의 'Turned the task around' 템플릿도 포함시킴(예: 감정 분류의 경우 영화 리뷰를 생성하도록 요청하는 템플릿 포함)

     

    ## Evaluation Splits

    - Unseen Task에 대한 성능 평가를 위해 'Unseen Task'에 대한 정의가 필요

    - A 클러스터에 속하는 Dataset으로 테스트 하기 위해 A 클러스터 외 다른 클러스터들을 Instruction Tuninng한 모델로 테스트 하는 방법을 적용

     

    ## Classificaiton with Options 

    - Dataset Test시 Output 형태는 분류 또는 텍스트 생성

    - FLAN은 Decoder 기반 LM의 Instruction Tuning 버전 이므로 텍스트 생성 Output을 출력하는 것은 문제가 없음

    - 분류의 경우, 'Yes', 'No', 'It is not possible to tell' 등의 옵션을 제시하여 해당 옵션 중 응답을 선택하도록 변환함

     

    ## Training Detail

    ① Model

      - LaMDA-PT(Transformer Decoder 기반, 137B),  BPE 토큰 적용

      - 웹문서/대화 Data/Wikipedia가 포함된 32,000개의 어휘가 포함된 Data로 Pre-training 됨

    ② Instruction Tunining

      - FLAN은 LaMDA-PT를 Instruction Tuning 버전

      - 각 Dataset에서 무작위로 각 3만개의 샘플을 추출. 

      - AdafactorOptimizer, Learning rate 3e-5, Batch Size 8,192, Gradient Step 30k 적용

      - TPUv3(128 Core)에서 60시간 소요

     

    # 결과

    - 자연어 추론, 독해, QA, 번역, 상식적 추론 등의 Task에 FLAN을 평가

    - Dataset을 Task Cluster로 그룹화 하고 평가 대상 Cluster외 나머지 모든 Cluster에서 Instruction Tuning 하여 실시

    - FLAN과 Instruction Tuning을 하지 않은 LaMDA-PT, LaMDA-PT의 Few-shot learning 비교 결과, 대부분의 Dataset에서 FLAN이 크게 나음  

    - FLAN과 GPT-3, GLaM의 Zero-shot과 비교 결과, 25개 Dataset 중 20개 Dataset에서 FLAN이 우수함

    - 종합적으로, Instruction Tunining은 Instruction으로 자연스럽게 언어화된 작업(예: 자연어추론, QA, 번역 등)에 효과적

    - 언어 모델링으로 직접 공식화된 작업(예: 불완전한 문장이나 단락을 마무리하는 형식의 상식 추론 등)에는 덜 효과적

    - Downstream Task가 원래의 언어 모델링 사전 학습 목표와 동일한 경우(즉, 명령어가 대부분 중복되는 경우) Instruction Tunining이 유용하지 않음을 의미

     

     

    # 분석

    ## Instruction Tuning Cluster의 수 

    - Instruction Tuning Cluster와 작업을 추가할수록(감정 분석 클러스터 제외) 성능이 향상

    - 이는 새로운 작업에 대한 제로샷 성능에 대한 제안된 Instruction Tuning 접근법의 이점을 증명

     

    ## Scaling Law 

    -  68B이상의 큰 모델에서는 Instruction Tuning이 성능을 크게 향상 시킴

    - 8B 이하에서는 Instruction Tuning이 오히려 성능을 약화 시킴

    - 작은 모델의 경우, Instruction Tuning에 사용된 40개의 Task 학습 시 모델 용량에 과부하가 발생하여 새로운 Task에 성능이 저하

     

    ## Instruction Tuning의 역할

    - Instruction의 Tuning 이 없는 단순한 Fine-Tuning 보다 Instruction with Fin-tuning(FLAN)이 성응이 더 좋음

    - Unseen Task에 대한 Zero-shot 성능에 Instruction Tuning이 중요함

     

    ## Instruction with Few-shot examples

    - 추론 시점에 Few-shot 적용시 Zero-shot FLAN 대비 모든 Task에서 성능이 향상 됨.

    - 특히 구조체에서 텍스트로의 변환, 번역, Closed-QA와 같이 Output space가 크고 복잡한 작업에 효과적

    - 이는 예제가 모델이 출력 형식을 더 잘 이해하는 데 도움이 되기 때문

     

    ## 한계점

    - Cluster에 Task를 할당할때 주관성이 개입됨

    - 일반적으로 한 문장으로 구성된 비교적 짧은 Instruction만을 사용

    - FLAN 137B의 규모 때문에 서비스 비용이 많이 듬

     

    # 결론

    - Instruction으로 대규모 언어모델의 Task 적용 성능을 향상 시킬 수 있는 간단한 방법을 제시

    - FLAN은 GPT-3 대비 다양한 Task에서 좋은 성능을 보이며, 대규모 언어 모델이 Instrution을 따를 수 있는 능력을 보여줌

     

     

    # 참고한 자료

    https://arxiv.org/abs/2109.01652

     

     

Designed by Tistory.