[21′ IJCNLP] Prefix-Tuning: Optimizing Continuous Prompts for Generation

This entry is part 7 of 13 in the series Language Model

1. 들어가며

대규모 언어 모델(LLM)의 발전은 인공지능 분야에서 주목할 만한 혁신을 이루어왔습니다. 특히, GPT-3와 같은 모델들은 인간과 유사한 방식으로 다양한 자연어 처리 작업을 수행할 수 있는 능력을 보여주었습니다. 그러나 이러한 모델들을 특정 작업에 최적화하기 위한 기존의 fine-tuning 방법론은 많은 리소스를 요구하며, 이는 실용적인 적용에 있어서 큰 장벽이 되어왔습니다. 이번 블로그 포스팅에서는 2021년에 발표된 Prefix Tuning 논문에 대해 리뷰하며, 기존 PEFT(Pre-trained Embeddings Fine-Tuning) 방식과 GPT-3에서 제안하는 In Context Learning 및 Prompting 방식의 효율성에 대해 탐구하고, 특히 prefix tuning이라는 새로운 방법론에 주목하고자 합니다.

Prompting의 중요성은 LLM의 성능을 극대화하는 데 있어서 핵심적인 요소입니다. ‘이차전지 관련 뉴스’에 대한 질문과 답변을 예시로 들며, 어떻게 적절한 prompt가 모델의 출력 품질을 크게 향상시킬 수 있는지 실제 GPT-4 사용 사례를 통해 살펴보겠습니다. 이어서, prefix tuning 방법론을 소개하며, 이 방법이 어떻게 MLP를 사용하여 최적의 prompt를 찾는 과정을 간소화하는지 설명합니다.

실험 부분에서는 prefix tuning의 효과를 검증하기 위해 수행된 네 가지 실험 결과를 공유합니다. 이 실험들은 prefix tuning이 다양한 자연어 처리 작업에서 어떻게 데이터가 적을수록, 그리고 문제에 따라 full fine-tuning보다 우수한 성능을 보이는지를 입증합니다.

마지막으로, 이 논문의 의의를 다시 한번 강조하며, prefix tuning이 인공지능 연구와 응용 분야에 어떤 새로운 가능성을 열어주는지에 대해 논의하겠습니다. 이번 글을 통해, prefix tuning이 LLM을 보다 효율적으로 fine-tune하는 방법론으로서 어떤 중요한 역할을 할 수 있는지에 대한 통찰을 제공하고자 합니다.

2. 기존 방법의 문제점

Prefix Tuning 논문이 발표된 2021년에는 다양한 방식의 PEFT (Parameter Efficient Fine Tuning) 방법들이 경쟁적으로 발표되던 시기였습니다. 그도 그럴것이 당시에는 LLM이 한장 Scale Up 하던 시기였고, 따라서 이렇게 거대한 모델을 매번 Task에 맞게 Full Fine Tuning 하는 작업은 매우 비효율적이고 부담스러운 작업이었죠. 이러한 배경에서 활발하게 연구가 진행된 주제가 바로 PEFT 였습니다.

Prefix Tuning 논문이 발표된 당시 PEFT의 대표적인 방법으로는 Adapter를 들 수 있는데요. Adapter 방법을 한마디로 요약하자면 Transformer의 Self Attention Layer와 Feed Forward Layer 앞에 Adapter라는 모듈을 추가하여, 이 모듈만 Fine Tuning을 수행하자는 것입니다. 이렇게 하면 기존 LLM 파라미터는 학습하지 않기에 아주 적은 파라미터만 사용하여 Task별 성능을 올릴 수 있었죠.

Prefix Tuning 논문에서는 이러한 PEFT 방법론 자체에 문제가 있다기 보다는 Prompting 방식이 중요하며 효과적이라고 주장합니다. 이러한 주장을 한 대표적인 논문으로는 GPT3를 들 수 있는데요. GPT3는 Task Specific Tuning 없이도 In Context Learning과 적절한 Prompting만으로도 아주 훌륭한 성능을 보였습니다. 그렇다면 Prompting을 아주 잘 만들어주면 성능을 더 끌어 올릴 수 있지 않을까요?

3. Prompting의 중요성

이를 검증해보기 위해 Prompting에 따라 LLM의 대답이 얼마나 달라지는지 정성적으로 확인해보겠습니다. GPT4를 사용해서 동일한 입력을 넣어줄 건데요, Prompting이 수정되면 답변 퀄리티가 얼마나 달라지는지 보겠습니다.

먼저 Prompting을 신경 안 쓴 GPT4의 입출력 예시입니다.

그림1. 안 좋은 Prompt 예시
그림1. 안 좋은 Prompt 예시

이차전지 관련 뉴스를 알려달라는 입력에 대해 GPT4가 답변을 한 모습인데요. 질문자의 의도와는 달리 적절한 대답을 못하는 모습을 볼 수 있습니다.

이번에는 동일한 입력을 유지하면서 앞 부분에 구체적인 설명을 추가해보겠습니다.

그림2. 좋은 Prompt 예시
그림2. 좋은 Prompt 예시

위 그림은 동일한 GPT4에게 동일한 질문을 했을때 GPT4의 대답을 보여주고 있습니다. 정확히는 동일한 질문은 아니고, 동일한 질문 앞에 구체적인 상황 설명을 추가해주었죠. 즉 일종의 Prompt Engineering을 해주었습니다. 그리고 그 결과는 아주 크게 개선된 모습을 볼 수 있습니다. 질문자의 의도에 맞게 2024년 1월 기사 중 이차전지 관련 기사들을 주제별로 나누어 잘 요약해주는 모습을 볼 수 있습니다.

따라서 Prefix Tuning 논문에서의 주장처럼 Prompt만 아주 잘 구성해주어도 LLM의 성능을 크게 개선할 수 있다는 주장은 일리가 있습니다. 특히 Prefix Tuning에서는 Prompt 중에서도 Prefix만을 학습하는 방법을 제안하는데요. 위 GPT4를 사용한 예시에서 ‘이차전지 관련 뉴스를 알려줘.’ 를 입력이라고 한다면, 그 앞 형광색 부분은 Prefix에 해당합니다. Prefix Tuning은 이렇게 입력은 그대로 놔두고 접두사 (Prefix)만 잘 바꿔주면 충분히 좋은 Prompt로 바꿔줄 수 있고, 그럼 LLM의 성능을 올릴 수 있다는겁니다.

4. Prefix Tuning

그럼 이제 다음으로 생각해볼 문제는 이겁니다. Prefix를 잘 찾아주면 좋은 Prompt가 되고, 이렇게 좋은 Prompt를 찾을 수 있다면 LLM 대답의 퀄리티가 좋아진다는건 알겠는데요. 이 ‘좋은 Prefix’는 그럼 어떻게 찾을까요? 역시 다양한 방법이 존재할텐데요. Prefix Tuning에서는 ‘학습’ 방법을 사용합니다. Fine Tuning이 모델 파라미터를 학습을 통해 찾는 방법이잖아요. Prefix Tuning은 마찬가지로 Prefix를 학습을 통해 찾는 방법이라고 볼 수 있습니다. 기존 역전파 방식을 그대로 사용하되, Gradient를 받는 주체가 모델 파라미터가 아닌 Prefix가 된다는 차이만 있는거죠.

이를 위해 입력 구성을 어떻게 할 지 생각해보겠습니다. 기존에는 X,Y를 사용하여 학습했는데요. 이제 X 앞에 Prefix를 붙여줘야겠죠. 따라서 GPT처럼 Autoregressive Model인 경우 다음과 같이 구성될겁니다.

그림3. Autoregressive Model에서의 입출력 구성
그림3. Autoregressive Model에서의 입출력 구성

반면 BART 처럼 Encoder-Decoder 모델이라면 Y 앞에도 Prefix가 있어야 하니, 다음과 같이 구성될겁니다.

그림4. Encoder-Decoder Model에서의 입출력 구성
그림4. Encoder-Decoder Model에서의 입출력 구성

이제 입출력을 구성해주었으니, 그대로 LLM을 사용해서 Prefix를 학습해주면 됩니다. LLM의 모든 파라미터는 고정해놓고, 추가된 Prefix만 학습 가능한 파라미터로 구성한 뒤 Y를 출력하도록 학습을 진행해주는겁니다. 이렇게 구성하면 각 Task별 가장 적합한 Prefix를 찾을 수 있겠죠. Prefix Tuning 논문에서는 이렇게 학습을 통해 찾은 Prefix를 사람의 언어로 표현한 Discrete Vector와 구분하여 Continuous Vector라고 표현합니다.

그런데 이렇게 곧바로 Prefix Vector를 학습하는건 실험적으로 성능이 좋지 않았다고 합니다. 그래서 Parametrization을 사용하는데요. MLP를 사용하여 Prefix를 찾아주는겁니다. 그림으로 표현하면 다음과 같습니다.

그림5. Prefix Tuning Parametrization
그림5. Prefix Tuning Parametrization

P를 직접 찾는게 아닌, MLP를 학습하여 나온 Feature를 사용하겠다는 의도입니다.

지금까지 Prefix Tuning 논문의 주요 내용을 살펴봤는데요. 여기까지 정리해보겠습니다. 먼저 2021년 당시 PEFT의 중요성이 대두되는 상황에 대해 설명했습니다. LLM 사이즈는 계속해서 커지고 있었고 따라서 Task별로 모든 파라미터를 Fine Tuning 하는 방법은 한계가 있었죠. 이에 Prefix Tuning에서는 모델을 재학습하지 말고 Prompt를 잘 활용하자는 주장을 했구요. 특히 입력은 그대로 두고, 접두어 (Prefix)만 잘 찾으면 좋은 Prompt가 될 수 있음에 착안했죠. 그리고 이 좋은 Prefix는 학습을 통해 찾는것이구요.

그림6. Fine Tuning vs Prefix Tuning
그림6. Fine Tuning vs Prefix Tuning

위 그림은 Fine Tuning과 Prefix Tuning 방법의 학습 파라미터를 비교하고 있는데요. 위쪽의 Fine Tuning을 보면 각 Task별로 Transformer 전체를 재학습 하는 모습을 표현하고 있습니다. 엄청 많은 학습 파라미터가 표현된 모습이죠. 반면 아래쪽의 Prefix Tuning에서는 앞쪽 Prefix만 학습해주고 있습니다. Task별로 아주 적은 Prefix 파라미터만 학습하면 되기에 매우 효율적임을 알 수 있습니다.

5. Experiment

이제 실험 결과를 통해 Prefix Tuning 방법의 효과를 살펴보겠습니다.

먼저 Table to Text Generation 실험 결과입니다. Prefix Tuning에서는 이 Table to Text Generation Task를 메인 문제로 풀고 있는데요. 입력으로는 Table을 받아 이를 Text로 잘 설명하는 문제입니다.

그림7. Table to Text Generation 실험 결과
그림7. Table to Text Generation 실험 결과

위 표는 다양한 방법을 사용한 Table to Text 성능을 비교하고 있습니다. 우선 Adapter와 비교해봐야 하는데요. 동일한 수준의 파라미터만을 학습했을때 거의 대부분 Adapter보다 좋은 성능을 볼 수 있습니다. 재미있는건 Full Fine Tuning 방식보다도 많은 문제에서 더 좋은 성능을 보이고 있네요.

두 번째는 Summarization 실험 결과입니다.

그림8. Summarization 실험 결과
그림8. Summarization 실험 결과

Prefix Tuning 방식은 파라미터 개수를 더 늘렸을때 성능이 좋아지는 모습을 보이지만, Full Fine Tuning 방식에 비해서는 좋지 못한 성능을 보여주고 있습니다. 앞선 Table to Text 문제에서는 Full Fine Tuning 방식보다 더 좋은 성능을 보였는데, 왜 Summarization 문제에서는 기대만큼 성능이 좋지 못했을까요?

저자들은 이에 대해 데이터셋의 차이라고 주장합니다.
첫 번째로 Summarization 데이터셋인 XSUM은 Table to Text 데이터셋보다 Example이 4배 더 많습니다.
두 번째로 Table Input 보다 Summarization에서 입력으로 사용되는 Article의 길이가 평균적으로 17배 더 깁니다.
세 번째로 Summarization 문제는 상대적으로 Table to Text 문제보다 ‘독해 능력’ 이 중요합니다.
아무래도 LLM은 글을 읽고, 이해하고, 대답하는 능력에 특화되어 있는데요. 따라서 LLM이 딱 좋아하는 유형의 문제를, 가장 유리한 방식으로 학습했으니 더 유리한 조건이었다는 주장입니다.

세 번째로 볼 실험은 Low Data Setting입니다. 위의 두 번째 실험 결과를 보면 ‘그럼 Prefix Tuning은 Example 개수가 적을 때 Full Fine Tuning 보다 효과적인가?’ 라는 생각이 드는데요.

그림9. Low Data Setting 실험 결과
그림9. Low Data Setting 실험 결과

위 그림은 Example 개수에 따른 Fine Tuning과 Prefix Tuning의 성능을 비교하고 있습니다.
우선 첫 번째로 확실히 Example 개수가 적을 때 Prefix Tuning이 Fine Tuning 보다 효과적인 모습을 볼 수 있습니다.
두 번째로 Example 개수가 많아질 수록 성능 차이가 줄어드는 모습을 볼 수 있습니다.

네 번째로 Extrapolation 실험 결과를 살펴보겠습니다. Unseen Topic에 대해서는 어떻게 반응할까요?

그림10. Extrapolation 실험 결과
그림10. Extrapolation 실험 결과

위 그림은 Table to Text와 Summarization 문제에서 Unseen Topic에 대한 성능을 비교하는 표 입니다. 위 실험 결과를 통해 Prefix 방식이 Fine Tuning 방식보다 Unseen Topic에 대해 더 성능이 좋음을 알 수 있습니다. 재미있는건 Adapter로 실험을 해봐도 Fine Tuning보다 성능이 좋다는겁니다. 이를 통해 LLM의 파라미터를 보존하는 PEFT 방식이 Extrapolation에 대해 Fine Tuning 보다 강건하다는 결론을 내릴 수 있는데요. 저자들은 이 원인에 대해서는 아직 모르겠다고 언급하고 있습니다.

6. 의의

지금까지 Prefix Tuning 논문의 주요 내용들을 모두 살펴봤습니다. 이를 바탕으로 Prefix Tuning 논문의 의의를 정리해보겠습니다.

첫 번째 의의는 계산 효율성의 향상입니다. Prefix tuning은 대규모 언어 모델을 특정 작업에 맞게 조정할 때 필요한 계산 비용과 메모리 사용량을 크게 줄입니다. 이는 리소스가 제한된 환경에서도 고성능의 모델을 효율적으로 fine-tune할 수 있는 가능성을 열어줍니다.

두 번째 의의는 모델 적응성의 증가입니다. 다양한 자연어 처리 작업에 대한 모델의 적응성을 높이는 방법을 제시함으로써, 하나의 모델로 여러 다른 작업을 수행할 수 있는 범용성을 강화합니다. 이는 모델의 활용도를 높이고, 다양한 응용 분야에서의 적용 가능성을 확장합니다.

세 번째 의의는 새로운 fine-tuning 패러다임을 제시했다는 점입니다. Prefix tuning은 전통적인 fine-tuning 방법과는 다른 새로운 접근 방식을 제시함으로써, 대규모 언어 모델의 fine-tuning 연구에 새로운 방향을 제공합니다. 이는 향후 모델 fine-tuning 방법론의 발전에 중요한 기여를 할 것으로 기대됩니다.

네 번째 의의는 연구 및 응용 분야에의 시사점을 준다는 것입니다. Prefix tuning의 접근 방식은 인공지능 연구자들에게 모델의 효율적인 조정 방법에 대한 새로운 통찰을 제공하며, 실제 응용 분야에서의 모델 배포와 활용에 있어서도 중요한 시사점을 제공합니다. 특히, 리소스가 제한된 환경이나 실시간 처리가 필요한 응용 분야에서의 모델 성능 최적화에 큰 도움이 될 수 있습니다.

이러한 의의를 통해, Prefix tuning 논문은 대규모 언어 모델의 fine-tuning 연구 및 응용 분야에 중요한 발전을 이끌어낼 수 있는 기반이 됩니다.

7. 마치며

이번 글을 통해 2021년에 발표된 Prefix Tuning 논문을 깊이 있게 탐구해보았습니다. 이 논문은 대규모 언어 모델을 더 효율적으로 fine-tune할 수 있는 새로운 방법론을 제시함으로써, 인공지능 연구와 응용 분야에 중요한 기여를 하고 있습니다. Prefix Tuning의 접근 방식은 기존의 fine-tuning 방법론에 비해 리소스 사용량을 크게 줄이면서도, 모델의 성능을 향상시킬 수 있는 강력한 도구임을 보여줍니다.

본문에서 살펴본 바와 같이, Prefix Tuning은 다양한 자연어 처리 작업에서 그 효과를 입증하였습니다. 특히, 데이터가 적을수록 그리고 문제에 따라 full fine-tuning보다 우수한 성능을 보이는 것으로 나타났습니다. 이러한 실험 결과는 Prefix Tuning이 실제 응용 분야에서도 매우 유용할 수 있음을 시사합니다.

또한, 이 논문의 의의는 단순히 기술적인 발전을 넘어서, 인공지능 모델의 개발과 배포 과정에서의 접근성과 효율성을 크게 향상시킬 수 있는 새로운 패러다임을 제시한다는 데 있습니다. 이는 특히 리소스가 제한된 환경에서의 모델 사용과 배포에 큰 도움이 될 것입니다.

이번 리뷰를 통해, Prefix Tuning이 어떻게 대규모 언어 모델의 fine-tuning 문제를 해결하고, 인공지능 연구와 응용에 새로운 방향을 제시하는지에 대한 통찰을 얻을 수 있었습니다. 앞으로 이 방법론이 어떻게 발전하고, 인공지능 분야에 어떤 새로운 가능성을 열어줄지 기대가 됩니다. 이 논문이 제시하는 새로운 접근 방식은 앞으로의 인공지능 연구와 응용에 있어 중요한 영감을 제공할 것입니다.

8. 참고 자료

  1. Prefix Tuning 논문
  2. GPT1 논문 리뷰
  3. GPT3 논문 리뷰
  4. LoRA 논문 리뷰
Series Navigation<< [21′ ICLR] LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS[22′ NeurIPS] Chain-of-Thought Prompting Elicits Reasoning in Large Language Models >>
0 0 votes
Article Rating
Subscribe
Notify of
guest

4 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
binance
binance
1 year ago

Thank you for your sharing. I am worried that I lack creative ideas. It is your article that makes me full of hope. Thank you. But, I have a question, can you help me?

b^onus de registro na binance
b^onus de registro na binance
1 year ago

Thanks for sharing. I read many of your blog posts, cool, your blog is very good.

4
0
Would love your thoughts, please comment.x
()
x
Scroll to Top