SELF-INSTRUCT 프로세스
1. 맨 처음 제한된 개수의 (이 연구에서는 175개) manually-written task의 seed set으로 시작함. 이는 overall generation을 가이드하는 역할을 함.
2. 첫 번째 단계에서, 모델은 새로운 테스크에 대한 instructions을 생성하도록 요청받음. 이 단계는 새로운 테스크를 정의하는 broad-coverage instruction들을 생성하기 위해 이미 존재하는 instruction collection을 이용함.
3. 새롭게 생성된 instructions의 집합이 주어졌을 때, 프레임워크는 그것에 대한 input-output instances를 생성함. 그리고 이것들은 이후에 instruction tuning단계에서 활용될 수 있음.
4. 마지막으로, 많은 heuristics가 이것들을 task pool에 valid task로 투입하기 전 자동으로 low-quality 또는 repeated instructions들을 필터링하는데 활용됨.
- 이러한 프로세스는 일정 task 개수에 도달할 때까지 계속 반복됨.
Existing dataset for instruction tuning
- PROMPTSOURCE (PromptSource: An Integrated
Development Environment and Repository for Natural Language Prompts, ACL, 2022)
➡️ 특정 Task에 대한 Instruction을 작성하도록 지시하고, 모든 데이터에 대해 해당 Instruction에 대한 input/output pair를 도출하는 방향으로 데이터 생성. (인간이 수행할 특정 테스크를 정의하는 과정 필요)
이렇게 생성된 테스크들은 기존의 전형적인 NLP 테스크의 분포에서 멀어져 있으며, Seed task와 상당히 조금만 겹침.
이러한 데이터들을 바탕으로 우리는 를 GPT3을 fine-tuning해 구축하였음. (이 GPT-3은 instruction data생성할 때 사용한 것과 같은 모델로, 데이터 생성도 모델 능력 평가도 같은 모델로 한 것을 언급한 것)
우리는 를 전형적인 NLP 테스크 (SUPERNI 데이터에 포함) 그리고 Novel usage of instruction-following models를 위해 생성된 new instruction의 조합에서 평가하였음. (섹션 4에서 자세히 설명)
SUPERNI - Super-naturalinstructions: Generalization via declarative instructions on 1600+ tasks. (EMNLP 2022) - 총 21개 기관 연구자들이 참여하여 1,600여개의 NLP instruction을 제작하고 공개한 프로젝트 (참고)
실험 결과는 가 GPT-3(the original model)을 큰 격차(large margin +33.1%)으로 능가하였으며, 와도 거의 유사한 성능을 보임을 나타냄.
게다가, 새롭게 생성된 instruction set에 대한 Human evaluation은 가 넓은 범위의 instruction following ability를 가지고 있으며, 다른 publicly available instruction 데이터셋에 훈련된 모델을 능가하며, 와도 단 5%의 차이밖에 나지 않는다는 것을 보여줌.
InstructGPT-001과의 비교를 통해 얻을 수 있는 Implication은?
- InstructGPT는 OpenAI에서 많은 만든 instruction 데이터셋을 통해 fine-tuning된 GPT 모델로, 우리가 아는 ChatGPT는 이 모델에 추가적인 대화 데이터셋을 학습한 모델이므로, 인간의 지시사항을 이해하고 이에 맞는 결과값을 도출해내는 능력이 아주 우수하다고 볼 수 있음.
- 이러한 InstructGPT는 human-created dataset을 구축하고 평가된 반면, 제안하는 접근법은 적은 비용으로 자동으로 instruction dataset을 생성하였음에도 isntructGPT에 필적하는 성능을 냄.
- 제안된 프레임워크를 통해 생성된 데이터셋은 적은 비용으로 좋은 품질의 Instruction 데이터를 생성할 수 있을뿐만 아니라, 기존 인간이 생성하던 데이터셋의 문제인 다양성, 창의성과 같은 문제를 해결할 수 있다는 점에서 의의가 있음.
large-scale instruction 데이터를 구축하는 것은 다음과 같은 이유로 인간에게 어려울 수 있음.
1. 새로운 테스크를 떠올리는 것에 대한 어려움 (Creativity)
2. 각각의 테스크를 해결하는 데 있어 필요한 전문지식의 부족 (Expertise)
우리는 이 문제를 해결할 수 있는 SELF-INSTRUCT를 소개함.
우리가 생성하기 원하는 instruction data의 셋은 다음과 같이 표현 {}, 각각의 task는 .
Task 는 개의 input-output instance를 가짐 .
모델 은 주어진 task instruction과 이에 상응하는 input에대해 output을 생성함.
instruction과 instance input은 대부분의 경우에서 엄격한 경계가 없음. (strict boundary)
우리는 이러한 다양성을 지원하기 위해 X가 empty인 경우를 허용함.
우리의 파이프라인은 네 가지 스텝으로 구성되어 있음.
첫 번째 스텝으로 SELF-INSTRUCT는 small sef of seed human-written instructions 에서 bootstrapping 방식을 활용해 새로운 instruction을 생성함.
머신러닝에서 부트스트랩은 표본 데이터에서 복원추출하여 여러 데이터셋을 만들어 내는 과정을 의미 (참고)
우리는 task pool을 175개의 테스크로 초기화하였으며, 하나의 instruction에는 하나의 instance가 포함되어 있음.
모든 스텝에서, 우리는 8개의 task instruction을 이 pool로부터 in-context example로 사용함.
8개의 instruction의 6개는 human-written task이며 2개는 이전 스텝의 model-generated task임 (다양성 확보)
한 마디로, 우리가 기본적으로 우리 테스크 예제 준 다음에 LM보고 이런 식일 때, 이건 뭐게? 하면서 하는거랑 똑같은데 차이점은 얘네는 예시로 다른 task의 것을 준다는 것.
LM에 의해 생성된 insturction과 이에 대한 instance들의 quality를 평가하고 적절히 필터링하는 과정
예를들어, instruction은 "Task:"로 prefix되거나 그렇지 않을 수도 있으며 Input도 마찬가지. "Output:"은 프롬프트의 끝에 추가되거나 그렇지 않을수 있음. -> 이러한 변칙을 주어 강건한 모델 구축
어떤 타입의 instruction이 생성되었는지, 그것들이 얼마나 다양한지 확인하기 위해 우리는 생성된 instruction에 대한 verb-noun structure를 확인하였음.
우리는 Berkeley Neural Parser (2018)를 활용하여 instruction를 parse함.
그리고 root와 가장 가까운 동사와 그것의 직접목적어 명사를 추출함.
"Write an essay about climate change"
(동사: "Write", 명사(직접 목적어): "essay")
절반 이상의 26,559개가 이러한 정형화된 구조를 포함.
다른 형태의 instruction은 주로 복잡한 조항을 포하거나, qustion 형태를 가짐.
“Classify whether this tweet contains political content or not"
"Which of these statements are true?”
우리는 top 20개의 가장 흔한 verbs와 그들에 대한 4개의 direct noun objects를 시각화함. (이것들이 전체 셋의 14%를 차지함)
우리는 더 나아가 어떻게 생성된 instruction이 seed instruction과 다른지 분석하였음.
각각의 생성된 instruction에 대해, 우리는 이것과 175 seed instruction과의 highest ROUGE-L를 계산함.
우리는 ROUGE-L 스코어의 분포를 아래와 같이 시각화할 수 있었음.
이러한 결과는 seed와 겹치지 않은 새로운 instruction들이 많이 생성되었음을 나타냄. 또한 다음 그림은 길이에 대한 다양성을 나타냄.
여기까지, 우리는 양적인 통계와 다양성을 확인했지만, 여전히 이것의 quality가 실제로 좋은지는 모름.
이것을 조사하기 위해 우리는 랜덤으로 200개의 instruction을 샘플링하고, 그 중 하나의 instance를 랜덤으로 골랐음.
우리는 expert annotator (author of this work)에게 "Whether each instance is correct or not"을 라벨링해줄 것을 요청함.
왜 당신이 expert인거죠??
여기서 대부분의 생성된 instructions들은 어느정도 meaningful했지만, generated instances들은 아마 많은 노이즈를 갖고 있는 것으로 나타남.
저자는 이런 에러를 가지고 있다해도 대부분의 것들은 여전히 correct format을 유지하고 있으며, 모델 학습할 시에 유용한 guidance를 제공할 수 있다고 주장함.
우리는 OpenAI로부터 개발된 GPT3 기반의 InstructGPT를 활용함.
이것은 human instruction을 더 잘 따르며 zero-shot abilities가 매우 상당한 것으로 알려져 있음.
various generation of these models들이 있음.
추가적으로 우리는 SELF-INSTRUCT를 다른 publicly available instruction tuning data와 비교하기 위해, GPT3 모델을 PROMPTSOURCE와 SUPERNI로 fine-tuning했음. (원래는 이 데이터셋들 T5 모델에 튜닝됨)
우리는 이것들을 T0 training, SUPERNI training이라고 부를 것임.
훈련 budge 절약하기 위해 우리는 50K 인스턴스를 샘플링하였음 (우리의 제안된 데이터 풀과 유사한 크기로 유지)
이전 연구결과와 우리 연구결과에 따르면 the number of instances per training task를 줄이는 것이 model's generalization performance to unseen task를 감소시키지 않는 것으로 나타났음.
Evaluation Metric이 ROUGE-L만 있는데, 왜 BERTScore같은 semantic기반 유사도 메트릭은 안 썼을까?
SUPERNI 데이터셋은 대부분 Classification에 치우처져 있음.
이러한 모델들이 보다 실용적으로 사용될 수 있는지에 대한 평가를 위해 저자는 새로운 user-oriented application에 영감을 받은 new set of instruction을 생성함.
이를 위해 LM이 아마 유용하게 사용될 수 있는 email writing, social media, productivity tools, entertainment, programming과 같은 도메인을 선발하고, 각각의 도메인과 관련된 instruction과 그에 따른 input-output instance를 생성함.
이 과정에서 다양성 확보를 위한 프롬프트 포맷, 길이 등의 변칙도 주었음. (bullet points, table,s codes, equations, etc.)
최종적으로 우리는 252개의 instruction과 그에 따른 하나의 instance를 생성하였음
제일 실험이 잘 됐던 조합에 포함된 게 252개는 아니겠죠?
우리는 이것이 how instruction-based models handle diverse and unfamilar instruction을 잘 처리하는 데 대한 testbed라고 생각함.
이러한 데이터셋에서 모델을 평가하는 것은 서로 다른 전문지식을 요구하기 때문에 어려움. 실제로 이러한 테스크 중 상당수는 automatic metric으로 측정하기 어려우며, 일반적인 crowdworker로도 불가능함 (코드 작성에 대한 테스크인데, 크라우드워커가 코딩 모른다면?)
신뢰가능한 평가르 위해 우리는 authors에게 model predictions을 적어달라고 요청하고 evaluators에게 아래 항목을 제시한 뒤 평가 요청함.
Instruction, Instance Input, Target Output(Reference), Model Ouput
4가지 rating을 통해 퀄리티를 평가하도록 요청함.
GPT3 모델과 이것의 instruction-tuned counterparts와의 비교 (on this newrly written instruction set)
예상했듯이, vanilla GPT3은 대응을 거의 못하는 모습을 보였음.
모든 instruction-tuned models은 상당한 성능을 보였는데, 그럼에도 불구하고 GPT3은 T0 training/SUPERNI training보다 훨씬 우수한 성능을 보였음. (SELF-INSTRUCT데이터가 noise에도 불구하고 학습에 큰 도움을 준다는 것을 보여줌)
InstructGPT 과 비교했을 때 GPT3은 매우 유사한 성능을 보여줌.
마지막으로, InstructGPT, InstructGPT에 대한 성능 향상은, human annotator를 사용하여 데이터의 품질을 높이는 것이 중요함을 시사함.
SELF-INSTRUCt는 instruction data를 low cost와 almost no human labeling으로 확장시키는 방법을 제공함.
더 많은 generated data가 더 나은 instruction-follwing ability로 이어질 수 있을까?
이를 위해 우리는 generated data의 사이즈에 따른 실험을 수행하였음.
Inductive Bias (귀납적 편향)
모델이 학습과정에서 본 적이 없는 분포의 데이터를 입력 받았을 때, 해당 데이터에 대한 판단을 내리기 위해 가지고 있는, 학습과정에서 습득된 Bias(편향) - 출처
- 초기 175개의 data pool은 누가 생성한건지? 초기 pool의 퀄리티는 생성에 어느정도의 영향을 미치는것인지?
- Domain-specific에도 잘 적용될 지? (애초에 근데 데이터 생성에 어려움이 있지 않을까?)
- 어째서 ROUGE-L만 성능 지표로 보고하였는가..