-
[Prompting] It’s Not Just Size That Matters:Small Language Models Are Also Few-Shot Learners 정리 (NAACL, 2021)AI/NLP 2023. 1. 11. 20:55728x90
[Prompting] It’s Not Just Size That Matters:Small Language Models Are Also Few-Shot Learners 정리 (NAACL, 2021)
이 전에 작성했던 "나중에 읽을 논문들 / github repo들"이라는 포스트에 prompting 관련 논문을 읽고 싶다고 했었는데,
마침 랩 세미나 peer review를 하게 되어서,,, 먼저 이 논문을 제시해보았다하지만 나의 발표가 아니기 때문에 간단히 정리하고 넘어가고자 한다
목차
0. 들어가기전에 ... : Prompting이란 ?
1. Introduction
2. Methods
3. Experiments & Results
4. Code Review
0. 들어가기전에 ... : Prompting이란 ?
프롬프팅
P3 프롬프트 모음의 프롬프트 템플릿. 각 작업에 대해 여러 가지 템플릿 이용이 가능합니다. 각 템플릿은 입력 패턴과 타깃 언어 처리기로 구성됩니다. 패러프레이징 작업의 경우 첫 번째와 두 번째 템플릿에서 Choices는 각각 {Not duplicates, Duplicates}과 {Yes, No}로 구성됩니다(Sanh et al., 2021).
무슨 일이 일어났나요? GPT-332에 의해 대중화된 프롬프트는 NLP 모델 입력 형식의 존속 가능한 대안으로 등장했습니다. 프롬프트에는 일반적으로 모델에 특정 예측을 하도록 요청하는 패턴과 예측을 클래스 레이블로 변환하는 언어 처리기가 포함됩니다. PET33, iPET 34과 AdaPET35와 같은 여러 접근법은 퓨-샷 학습을 위해 프롬프트를 활용합니다. 그러나 프롬프트는 만병통치약이 아닙니다. 모델의 성능이 프롬프트에 따라 크게 달라지며 최적 프롬프트를 찾는 데 여전히 레이블이 지정된 예제가 필요합니다36. 퓨-샷 설정에서 모델을 안정적으로 비교하기 위해 새로운 평가 절차가 개발되었습니다37. 다수의 프롬프트를 공개 프롬프트 풀(P3)에서 이용할 수 있으므로 프롬프트 사용에 있어 가장 좋은 예제를 찾아볼 수 있습니다. 또한 각주의 조사 논문38은 프롬프트 연구의 일반 영역에 대한 훌륭한 개괄을 제시합니다.
왜 중요한가요? 프롬프트는 작업에 따라 최대 3,500개 레이블이 지정된 예제에 해당하는, 작업 별 정보를 인코딩하는 데 사용할 수 있습니다39. 따라서 프롬프트는 수동으로 예제에 레이블을 지정하거나 레이블 기능을 정의하는 것 이상으로 전문적인 정보를 모델 훈련에 통합하는 새로운 방법이 가능하게 만듭니다40.
다음 단계는 뭘까요? 우리는 모델 학습 개선을 위해 프롬프트 활용의 걸음마를 이제 막 떼기 시작한 셈입니다. 더 긴 지침18:1, 긍정/부정의 예41, 범용적인 휴리스틱을 포함하는 등 프롬프트는 더욱 정교해질 것입니다. 프롬프트는 또한 자연어 설명42을 모델 훈련에 통합하는 굉장히 자연스러운 방법일 수 있습니다.
1. Introduction
- 이전 연구들
- 사전 학습된 language model과 이러한 모델들을 스케일 업한 GPT-3와 같은 뛰어난 모델이 있음. 또한 GPT-3는 few-shot에서 주목할 만한 성능을 보여줌.
- 하지만 GPT-3의 파라미터 개수는 1750억개로 너무 크다는 단점이 명확히 존재함.
- 물론, GPT-3의 1750억개의 파라미터를 통해 SuperGLUE task에서 SOTA(State-of-the-art)를 달성하기는 했음. 그러나 주요한 단점들이 2가지 존재함.
- 너무나 많은 파라미터가 필요하기 때문에, 현실 세계에서 활용 불가능.
- GPT-3가 받아들일 수 있는 토큰의 개수는 2048토큰이라 그 이상은 받아들일 수가 없음.
- 물론, GPT-3의 1750억개의 파라미터를 통해 SuperGLUE task에서 SOTA(State-of-the-art)를 달성하기는 했음. 그러나 주요한 단점들이 2가지 존재함.
- 따라서 본 논문에서는 작은 language 모델로 NLU를 해결하는 방식을 보여줌.
- 따라서, PET(Pattern Exploiting Training) 방식을 고안하게 됨.
첫 번째 기법인 Pattern-Exploiting Training은 Pre-training Task와 동일한 형태로 Task와 Label을 변환하는 방법을 사용하여 Pre-trained LM이 수행할 수 있는 형태로 문제를 재정의하여 223M개의 Parameter만을 이용하여 SuperGLUE Benchmark에서 Few-Shot Setting으로 GPT-3를 능가하는 성능을 기록
: combines the idea of reformulating tasks as cloze questions with regular gradient-based finetuning2. Methods
pattern-verbalizer pairs(PVPs)이란 ?
- a pattern P: X → T* 는 인풋을 마스크 하나를 포함한 Cloze 질문으로 매핑
- a verbalizer v : Y→ T는 아웃풋을 패턴 내에서 태스크의 의미를 나타낼 수 있는 하나의 토큰으로 매핑
- 먼저 원래 태스크를 Cloze 타입으로 변형한다.
- Cloze 스타일 질문은 ~~~, 정답은 ___. 와 같이 빈칸을 뚫어놓는 질문 스타일을 말한다.
- 예를 들어 두 문장의 entailment(함의) 관계를 분류해야 하는 태스크를 생각해보자.
- x : ( 문장 1- 유가가 오른다 , 문장 2- 유가가 다시 내린다 )
- 두 문장은 함의 관계가 존재하지 않으므로, 이 문제에 대한 정답 y는 <not entailment>이다.
- 이 태스크를 Cloze 질문으로 바꾸면 아래와 같이 나타낼 수 있다.
- P(x) : 유가가 오른다 ? ___ , 유가가 다시 내린다 .
- 이렇게 인풋을 하나의 빈칸(mask)을 포함하는 Cloze 질문으로 매핑하는 것을 P, pattern이라고 정의한다.
- 이제 빈칸에 들어가야 할 정답은 'not entailment'가 되어야 하는데, 빈칸은 하나이기 때문에 이 정답을 하나의 토큰으로 표현해주는 verbalizer v가 필요하다.
- 이제 모델은 인풋으로부터 생성된 패턴 P(x)에 있는 빈칸에 v(y)가 적절한 토큰일 점수를 모델링한다. 그리고 모든 가능한 v(y)가 빈칸에 들어갈 토큰일 점수를 Softmax를 통해 확률처럼 나타낸다.
- 예를 들어 위의 예시에서는 다음과 같은 계산이 이루어질 수 있다.
- 유가가 오른다 ? No , 유가가 다시 내린다 -> 1.2점 -> y = not entailment 73%
- 유가가 내린다 ? Yes , 유가가 다시 내린다 -> 0.2점 -> y = entailment 27%
- 예를 들어 위의 예시에서는 다음과 같은 계산이 이루어질 수 있다.
이제 관건은 인풋 x와 아웃풋 y에 대해, Cloze 스타일로 태스크를 잘 정의하는 P와 v를 알아내는 것이다.3. Experiments & Results
4. Code Review
Reference
https://arxiv.org/abs/2009.07118
https://littlefoxdiary.tistory.com/62
https://coding-moomin.tistory.com/41
728x90'AI > NLP' 카테고리의 다른 글
- 이전 연구들