ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [2023 Summer Lab Seminar] FLAN: FINETUNED LANGUAGE MODELS ARE ZERO-SHOT LEARNERS (ICLR, 2022)
    AI/NLP 2023. 9. 28. 14:49
    728x90

     

     

    [2023 Summer Lab Seminar] FINETUNED LANGUAGE MODELS ARE  ZERO-SHOT LEARNERS (ICLR, 2022)

     

     

     

     

    Flan : 커스터드 푸딩

     

     

     

     

    이 논문은 “Instruction Tuning이라는, in-context learningReinforcement Learning from Human Feedback (RLHF) 사이에 제시된, 다운스트림 태스크에 대한 학습 방식을 제시한 논문입니다.

     

    다음과 같은 순서로 소개해드리겠습니다.

     

     

    먼저 Introduction에서 최근 fine-tuning 외의 LLM을 학습하는 방식들에 대해서 설명을 드리고, 오늘 핵심적으로 말씀드릴 Instruction Tuning에 대해서 소개하고자 합니다.

     

    Instruction Tuning의 학습 방법을 말씀드리고 그에 따른 결과와 추가적인 분석들을 제시한 뒤,

     

    그 이후의 발전 과정이 어떻게 되었는지 후속 연구들까지 말씀드리고자 합니다

     

     

     

    Introduction : LLM & Instruction Tuning

     

     

    LLM이 다운 스트림 태스크를 학습하는 방식은 크게 4가지가 있습니다.

     

     

     

     

    저희가 흔히 아는 Fine-tuningLLM이 상대적으로 작을 때까지는 문제가 없었습니다.

    하지만 아래의 사진과 같이 LLM이 점점 발전하고 커짐에 따라 파인튜닝 방식으로

    전체 데이터셋에 대해,

    모델 전체를 업데이트하려면 많은 시간과 비용이 듭니다.

     

     

     

     

    이렇게 사전 훈련된 모델이 점점 커짐에 따라

    전체 모델을 업데이트 하지 않고 down stream task에 대해 잘 학습할 수 있는 방법들이 제시되었습니다.

    첫번째는 바로 in-context learning입니다.

    in-context learningfine-tuning과 달리 모델의 weight 업데이트 하지 않고, 모델 학습과정이 존재하지 않습니다.  

    그 대신, inference 시에 질문을 잘 해보자는 접근입니다.

    정보(Context) 주는 방식을 사용합니다. 그리고 질문할 때 예시를 몇개 주느냐에 따라 zero-shot인지 few-shot인지로 나뉩니다

     

     

    본격적으로 in-context learning이 제시된 것은 GPT-3 논문에서였습니다.

    GPT-3는 위 그림과 같이 풀고자 하는 문제를 제시하기 이전에 여러 예시를 제시하여 문제의 Task 특정합니다.

    이는 새로운 Task 배울 때 가중치 업데이트가 일어나지 않는 점에서 "in-context learning" 라고 부릅니다.

    이러한 "in-context learning"의 발견으로 인해 Prompt에 대한 중요성 또한 대두되었습니다.

    (이를 통해 잘 학습된 LLM 모델 하나로 모든 Task 할 수 있을지도 모른다! 라는 인사이트를 남기게 되었습니다. )

     

     

     

     

     

     

    하지만 prompting 방식의 한계점 또한 존재합니다.

    바로 여러 스텝을 거쳐야 풀 수 있는 문제들과 같이 Prompt만으로 배우기 어려운 문제들입니다.

    위의 예시를 보시면, 문제의 답을 단답형으로 구성한 기존의 프롬프트는 좌측처럼 오답을 내었습니다.

    이러한 한계점을 해결하기 위해,  Chain-of-Thought Prompting 방식이 등장합니다.

    Chain-of-Thought Prompting 방식대로, 예시의 우측처럼 문제를 풀이하는 과정을 예제로 넣었더니, 정답으로 귀결되었습니다.

    Model의 크기가 클 때 Chain-of-thought 적용하면 지도학습 성능을 따라가는 양상을 보여줍니다.

     

     

     

     

    여기서 한 발자국 더 나아간 방식이 "Zero-shot chain-of-thought prompting"입니다.

    Two-stage prompting 통해, LLM이 정답을 도출하기까지 문제를 추론하고 최종 정답을 내는 것이 바로 Zero-shot chain-of-thought prompting입니다.

    해당 실험을 통해 chain of thought을 할 수 있도록 prompt sentence 작성하면 모델의 성능이 향상됨을 알 수 있었습니다.

     

     

     

     

     

     

    이렇게 In-Context Learningfine-tuning 없이 Prompt Engineering 만으로도 성능을 향상시킬 수 있다는 장점이 있지만,

    아래 예시처럼, 달 착륙에 대해 설명해달라는 prompt 넣었을 GPT-3가 제대로 대답 못하는 것과 같이

    사용자가 원하는 맥락을 잘 파악하지 못하거나,

    복잡한 태스크에 대해서는 그라디언트 업데이트가 필요할 수 있는 등 여러 한계가 있습니다.

     

     

     

     

     

    모델이 사용자의 지시(instruction)를 더 잘 따르도록 하기 위해, 

    위의 fine-tuning과 in context learning 두 학습 방식을 잘 결합한 방식이 바로 instruction tuning입니다. 

     

     

     

     

     

    Instruction tuningprompt learningprompt 방식과 finetuning의 가중치 업데이트를 결합한 튜닝 방법입니다.

    모델에게 지시사항(instructions)으로 기술된 태스크를 supervised 방식으로 가르치는 것인데요,

    이렇게 가르친다면 모델이 지시사항을 따르는 방식을 학습하게 될 것이고,

    따라서 unseen task 마주했을 때도 지시사항을 따르는 방식을 이미 배웠기 때문에 unseen task의 지시사항에 따라 잘 추론할 수 있을 것이라는 아이디어에서 착안하였습니다.

    이는 위 그림과 같이 Instruction, outputpairs 데이터셋을 통해 학습을 진행합니다. 이 때 해당 데이터셋에는 다양한 종류의 Taskinstruction 형태로 들어 있습니다.

     

     

     

     

     

     

    그렇다면, instruction tuning은 구체적으로 어떻게 하는 것이며, 성능에 어떠한 영향을 미치게 될지 확인해보도록 하겠습니다.

     

     

     

     

    FLAN: INSTRUCTION TUNING IMPROVES ZERO-SHOT LEARNING

     

     

     

     

     

     

    먼저, 저자들은 기존에 존재하던 dataset(STS-B, NQ, SQuAQ...)들을 instructional format으로 변경합니다.

    figure 보면, dataset들이 task별로 묶여있는 것을 확인할 수 있습니다. 본 연구에서는 이렇게 task별로 dataset을 묶어 하나의 cluster으로 구성합니다.

    이렇게 12개의 task cluster 형성한 다음, 각각의 dataset에 대해서 instructional format으로 변경합니다.

    이때, 하나의 형태로 변경해 주는 것이 아닌,  Task에 맞춰 10개의 template으로 변경한다고 합니다.

     

     

     

     

     

     

    하나 예시를 가져왔습니다.

    FigureNLI task instructional format으로 변환하는 과정을 보여줍니다.

    원본 datapremisehypothesis가 주어지고, 이에 대해 entailment 하는지 여부를 산출하는 format이었지만, instructional formatting을 통해 지시문이 추가된 data로 변환됩니다.

     

     

     

     

    저자들은 FLANtraining에서 다루지 않은 taskunseen task 잘 수행하는지를 확인해보고자 했습니다.  

    이를 알아보기 위해, 본 연구에서는 어떠한 task에 대한 evaluation을 진행할 때, instruction tuning에서 사용하지 않은 taskevaluation을 진행했습니다.

    예를 들어, Summarization task에 대해 evaluation을 진행한다고 하면, instruction tuning때에는 summarization task 포함하지 않은 채로 tuning을 진행한 뒤에 evaluation을 진행하고,

    Closed-book QA에 대한 evaluation을 진행할 때는 마찬가지로 해당 taskinstruction tuning에서 사용하지 않고 evaluation을 진행합니다.

    실험을 위해 LaMDA-PT modelinstruction tuning을 진행했습니다.

    LaMDA에 대해서 잠깐 설명하자면 google에서 나온 decoder only modelBard의 기반 모델이기도 합니다.

     

    이러한 LaMDA-PTinstruction tuning을 진행할 때, evaluation을 할 task는 제외하고 모든 dataset을 섞은 뒤 각각의 dataset에서 random 하게 sample 하여 tuning을 진행합니다.

     

     

     

     

     

     

    모델은 task에 따라 여러 class(classification) 혹은 free text(generation)을 출력해야 하는데요.

    FLANdecoder-only 모델이므로, 자동적으로 free-text의 출력을 생성하기 때문에 generation task 위한 변환은 필요하지 않습니다.

    따라서 FLAN에서는 classification task 위해 instruction format"options"이라는 suffix 추가해줍니다.

    premisehypothesisentail 했는지 아닌지를 classification 하는 NLI task에서 yesno의 선택지를 주는 것처럼, Options 토큰을 삽입하고 그 이후에 보기 입력을 줌으로써 모델이 어떤 답변을 생성해야 하는지 안내해줍니다.

     

     

    Results & Further Analysis

     

     

    다음으로는 instruction tuning 적용했을 때의 성능을 말씀드리겠습니다.

     

     

     

     

    논문에서는 FLANGPT-3, LaMDA-T, GLaM제로샷 성능을 비교하였습니다.

    결과적으로 FLAN은 위의 task에서 같은 크기의 LaMDA-PT 모델을 큰 폭으로 능가했으며, 더 큰 모델인 GPT-3 모델과 비교했을 때도 한개의 데이터셋을 제외한 데이터셋에서 모두 능가하는 성능을 보여줍니다.

    종합적으로, 저자들은 instruction tuning을 통해 매우 효과적으로 성능을 끌어올릴 수 있었다고 합니다.

    하지만,

    NLI, QA와 같이 자연스럽게 instruction으로 변환되는 task에서는 효과적인 성능 향상을 보였던 것과는 반대로,

     불완전한 문장이나 문단을 완성하는 taskcommonsense reasoning이나 Coreference resolution과 같은 task에서는

    효과적인 성능 향상이 이루어지지 않았다고 합니다.

     

     

    *  Coreference resolution : 두 개 이상의 표현이 같은 사람이나 사물을 가리킬 때 발생한다. 그들은 동일한 지시 대상을 가지고 있다. 예를 들어 'Bill said Alice would arrive soon, and she did.'라는 문장에서 Aliceshe 는 같은 사람을 가리킨다.

     

     

     

     

    저자들은 성능 측정 실험 외에도, FLAN model 내부적인 요소들에 대해서도 비교 실험을 진행했습니다

    FLAN의 중요한 쟁점은 "얼마나 instruction-tuning을 진행해야 zero-shot 성능이 좋아질까?”이기 때문에,

    먼저, 저자들은 instruction tuning에 사용되는 cluster(같은 task로 묶인 dataset들의 집합)의 개수가 unseen task에서의 성능에 어떠한 영향을 미치는지를 측정하였습니다.

     

    이를 위해, instruction tuning에 사용되는 cluster의 수를 점진적으로 늘려가며, unseen task의 성능을 측정했을 때,  

    Instruction tuning에 사용되는 cluster의 수가 많아질수록, unseen task에 대한 성능이 증가하는 것을 확인할 수 있었습니다.

     

     

     

    다음으로, 저자들은 instruction tuning을 진행하는 base model의 크기가 tuning이 주는 성능 향상에 영향을 미치는지를 측정하였는데요,

    이를 위해 각각 다른 크기인 5개의 model에 각각 instrunction tuning을 진행한 뒤, 성능 측정을 진행하였습니다.

    결과를 살펴보면,

    8B 크기까지는 instruction tuning model이 오히려 저조한 성능을 보이지만,

    8B 이상의 크기를 가지는 순간, tuning을 통해 많은 성능 향상이 이루어지는 것을 확인할 수 있었습니다.

    저자들은 이러한 결과를 바탕으로, instruction tuning의 효과를 얻기 위해서는 일정 수준 이상의 크기를 가진 model에 적용되어야 한다고 주장합니다.

     

     

    저자들이 수행한 마지막 비교 실험은, FLAN의 성능 향상이 과연 fine-tuning으로부터 오는 것인지, instruction으로부터 오는 것인지에 대해서 측정이다.

    이를 측정하기 위해 instruction 없이 fine-tuning을 수행한 model을 만들고, FLAN과의 성능을 비교하였습니다.

    이때, 다음과 같은 두 가지의 setting으로 각각의 model을 만들었다고 합니다.

    첫번째로는 No template setting으로 template 없이 원본 datasetinput 그대로 model에 넣은 것이고,

    두번째는 taskdataset의 이름을 input과 함께 넣는 형태입니다.

    결과는,

    위에서부터 차례대로,

    no-template setting, dataset name (eval: instruction), dataset name (eval: dataset name), FLAN의 결과입니다.

    FLAN의 성능이 가장 좋은 것을 확인할 수 있고, 이와는 반대로, no-template setting은 매우 저조한 성능을 보이는 것을 확인할 수 있습니다.

    따라서, 위의 비교 실험을 통해 unseen taskzero-shot 성능은 단순한 fine-tuning이 아닌, instruction과 함께하는 fine-tuning이 중요하다는 것을 밝혔습니다.

     

     

    Conclusion & Follow-up Study

     

     

    결론적으로,

     

     

    instruction tuning은 간단하고 직관적이고, 보지 못했던 task에 대해서 일반화를 잘 한다는 장점이 있지만

    위와 같은 template들을 만들고 수집하는 데에 있어서 비용이 많이 든다는 한계가 있으며,

    LMobjective와 사람이 원하는 바가 맞지 않을 수 있다는 한계점이 있습니다.

     

     

     

     

     

     

    이 문제를 개선하기 위해서 instruction tuning에서 더 나아가, Reinforcement Learning from Human Feedback 이 제시가 되었습니다.

    GPT-3instruction tuning 기법을 적용한 것이 InstructGPT이고, 거기에 여러 번의 Supervised Instruction tuning을 통해 GPT-3.5의 기반 모델이 만들어지게 되었습니다.

     

    ChatGPT는 거기에 RLHF 적용하여 만들어진 모델입니다.

    Instruction tuning의 한계점에서 말한 것처럼, LMobjective와 사람이 원하는 바가 맞지 않을 수 있다는 것을 해결하기 위해

    HF(Human Feedback = 사람의 평가) 최대화 하고자 RL(강화 학습)을 사용합니다.

     

     

    Appendix 

     

     

     

    Reference

     

    CS224N: Natural Language Processing with Deep Learning (Winter, 2023)
    Wei, J., Bosma, M., Zhao, V., Guu, K., Yu, A. W., Lester, B., ... & Le, Q. V. (2021, October). Finetuned Language Models are Zero-Shot Learners. In International Conference on Learning Representations.
    Radford, A., Wu, J., Child, R., Luan, D., Amodei, D., & Sutskever, I. (2019). Language models are unsupervised multitask learners. OpenAI blog, 1(8), 9.
    Brown, T., Mann, B., Ryder, N., Subbiah, M., Kaplan, J. D., Dhariwal, P., ... & Amodei, D. (2020). Language models are few-shot learners. Advances in neural information processing systems, 33, 1877-1901.
    Ouyang, L., Wu, J., Jiang, X., Almeida, D., Wainwright, C., Mishkin, P., ... & Lowe, R. (2022). Training language models to follow instructions with human feedback. Advances in Neural Information Processing Systems, 35, 27730-27744.
    Wei, J., Wang, X., Schuurmans, D., Bosma, M., Xia, F., Chi, E., ... & Zhou, D. (2022). Chain-of-thought prompting elicits reasoning in large language models. Advances in Neural Information Processing Systems, 35, 24824-24837.
    Thoppilan, R., De Freitas, D., Hall, J., Shazeer, N., Kulshreshtha, A., Cheng, H. T., ... & Le, Q. (2022). Lamda: Language models for dialog applications. arXiv preprint arXiv:2201.08239.

     

    728x90
Designed by Tistory.