SELF-INSTRUCT: Aligning Language Models with Self-Generated Instructions (ACL, 2023)

Migyeong Kang·2024년 8월 4일
0

Abstract

  • Large "instruction-tuned" language model은 Zero-shot learning에 대한 놀라운 성능을 보여주었음.
  • 그럼에도 불구하고, 그들은 human-written instruction data에 의존하고 있으며, 이것은 종종 양적(quantity)으로도, 다양성(versity)에서도, 창의성(creativity) 측면에서 부족함. - 이는 곧 모델의 일반화 가능성을 저해함.
  • 우리는 사전 학습된 언어모델의 instruction-following 능력을 향상시키기 위한 SELF-INSTRUCT 프레임워크를 제안함.
  • 우리의 파이프라인은 instructions, input, output samples를 언어모델로부터 생성하며, 그 다음 유효하지 않거나 유사한 것들은 finetune 하기 전에 필터링함.
  • 우리의 방법론을 vanilla GPT3에 적용함으로써, 우리는 Original model보다 33%의 성능 향상을 보였음.
  • Further evaluation에서 우리는 새로운 테스크에 대한 expert-witten instruction 셋을 만들어 실험하였음.
  • 실험 결과는 SELF-INSTRUCT가 기존의 public instruction dataset을 사용한 모델을 능가한다는 것을 보여줌.
  • SELF-INSTRUCT는 사전학습된 언어모델을 instructions과 align 하는 데 있어 거의 annotation-free method임. (추가적인 어노테이션이 "거의" 필요하지 않음.)
  • 우리는 향후 연구를 위해 large synthetic dataset을 공개하였음. (https://github.com/yizhongw/self-instruct)

1. INTRODUCTION

Challenges of Instruction tuning

  • 최근 NLP 연구들은 자연어 지침(Natural Language Instructions)를 따르는 모델을 개발하는 것에 집중하고 있음.
  • 이러한 발전들은 두 가지 주요 요소로 인해 가능했음.
    1. 대규모 사전학습된 언어모델 (Lage pretrained language models)
    2. 인간 작성 지침 데이터 (Human-written instruction data)
  • 그러나, 이러한 instruction 데이터를 모우는 것은 매우 비싸고 종종 diversity의 부족으로 인해 고통받음. (대부분의 human generations이 주요 NLP 테스크에 집중되어 있기 때문)
  • 지속적으로 instruction-tuned models의 적용범위와 퀄리티를 향상시키려면, Supervising the instruction tuning process를 개발해야함.

In this paper

  • 이 연구에서 우리는 SELF-INSTRUCT를 소개함. 이는 사전학습된 언어모델의 instruction tuning을 위한 semi-automated process이며, 이를 위해 모델 자체에서 나오는 instructional signal을 사용함.
  • 전체 프로세스는 Interative bootstrapping algorithm임.

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 개수에 도달할 때까지 계속 반복됨.

Evaluation of SELF-INSTRUCT

  • SELF-INSTRUCT를 empirically 평가하기 위해, 우리는 이 프레임워크를 GPT-3 (vanilla LM)에 대해 적용시켰음.
  • iterative SELF-INSTRUCT 프로세스는 52k 개의 instruction과 그에 대한 82K 개의 input-target output 페어를 생성하였음.
  • 우리는 생성된 데이터가 diverse range of creative tasks를 제공한다는 것을 발견하였음.

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와 상당히 조금만 겹침.

  • 이러한 데이터들을 바탕으로 우리는 GPT3SELFINSTGPT3_{SELF-INST}를 GPT3을 fine-tuning해 구축하였음. (이 GPT-3은 instruction data생성할 때 사용한 것과 같은 모델로, 데이터 생성도 모델 능력 평가도 같은 모델로 한 것을 언급한 것)

  • 우리는 GPT3SELFINSTGPT3_{SELF-INST}를 전형적인 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을 제작하고 공개한 프로젝트 (참고)

  • 실험 결과는 GPT3SELFINSTGPT3_{SELF-INST}가 GPT-3(the original model)을 큰 격차(large margin +33.1%)으로 능가하였으며, InstructGPT001InstructGPT_{001}와도 거의 유사한 성능을 보임을 나타냄.

  • 게다가, 새롭게 생성된 instruction set에 대한 Human evaluationGPT3SELFINSTGPT3_{SELF-INST}가 넓은 범위의 instruction following ability를 가지고 있으며, 다른 publicly available instruction 데이터셋에 훈련된 모델을 능가하며, InstructGPT001InstructGPT_{001}와도 단 5%의 차이밖에 나지 않는다는 것을 보여줌.

InstructGPT-001과의 비교를 통해 얻을 수 있는 Implication은?

  • InstructGPT는 OpenAI에서 많은 만든 instruction 데이터셋을 통해 fine-tuning된 GPT 모델로, 우리가 아는 ChatGPT는 이 모델에 추가적인 대화 데이터셋을 학습한 모델이므로, 인간의 지시사항을 이해하고 이에 맞는 결과값을 도출해내는 능력이 아주 우수하다고 볼 수 있음.
  • 이러한 InstructGPT는 human-created dataset을 구축하고 평가된 반면, 제안하는 접근법은 적은 비용으로 자동으로 instruction dataset을 생성하였음에도 isntructGPT에 필적하는 성능을 냄.
  • 제안된 프레임워크를 통해 생성된 데이터셋은 적은 비용으로 좋은 품질의 Instruction 데이터를 생성할 수 있을뿐만 아니라, 기존 인간이 생성하던 데이터셋의 문제인 다양성, 창의성과 같은 문제를 해결할 수 있다는 점에서 의의가 있음.

Contributions

  1. 최소한의 Human-label 데이터로 instruction following capability를 유도하기(inducing) 위한 SELF-INSTRUCT를 제안
  2. 이 논문은 extensive instructing-tuning experiments를 통해 이 프레임워크의 effectiveness를입증함.
  3. 이 논문은 large synthetic dataset (52k)와 수동으로 작성된 새로운 테스크를 publicly 공개함. (이것들은 instruction-following 모델들에 대한 평가 또는 구축에 활용될 수 있음)

2. METHOD

  • large-scale instruction 데이터를 구축하는 것은 다음과 같은 이유로 인간에게 어려울 수 있음.

    1. 새로운 테스크를 떠올리는 것에 대한 어려움 (Creativity)
    2. 각각의 테스크를 해결하는 데 있어 필요한 전문지식의 부족 (Expertise)

  • 우리는 이 문제를 해결할 수 있는 SELF-INSTRUCT를 소개함.

    1. 이는 vanilla pretrained language model를 활용해 데이터를 생성하고,
    2. 생성된 데이터를 필터링하고,
    3. LM을 instruction에 보다 align시키기 위해 생성된 데이터를 통해 instruction tuning을 수행함.

2.1 Defining Instruction Data

  • 우리가 생성하기 원하는 instruction data의 셋은 다음과 같이 표현 {ItI_t}, 각각의 task는 tt.

  • Task ttnt>=1n_t >= 1 개의 input-output instance를 가짐 (Xt,i,Yt,i)i=1nt{(X_{t,i}, Y_{t,i})}_{i=1}^{n_t}.

  • 모델 MM은 주어진 task instruction과 이에 상응하는 input에대해 output을 생성함. M(It,Xt,i)=Yt,i, for i1,,ntM(I_t, X_{t,i}) = Y_{t,i}, \text{ for } i \in {1,\ldots, n_t}

  • instruction과 instance input은 대부분의 경우에서 엄격한 경계가 없음. (strict boundary)

    • “write an essay about school safety"
    • "write an essay about the following topic" - "school safety"
  • 우리는 이러한 다양성을 지원하기 위해 X가 empty인 경우를 허용함.

2.2 Automatic Instruction Data Generation

  • 우리의 파이프라인은 네 가지 스텝으로 구성되어 있음.

    1. Task instruction 생성
    2. 해당 instruction이 classification task를 나타내는지 확인
    3. input-first 또는 output-first 접근방식을 통한 instance generation
    4. low-quality data의 Filtering

Instruction Generation

  • 첫 번째 스텝으로 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임 (다양성 확보)

Classification Task Identification

  • 우리는 classification과 non-classification task에 대해 서로 다른 두 가지 접근방식을 취함.
  • 때문에 우리는 생성된 instruction이 classificiaton 테스크인지 아닌지 분류함.
  • 우리는 언어 모델에게 few-shot 학습을 통해 이것을 분류하라고 지시. - 12개의 classification instruction과 19개의 non-classification instruction을 seed task로부터 추출하여 예시로 사용

Instacne Generation

  • instructions과 their task type이 주어지면, 우리는 각각의 instruction에 대해서 독립적으로 instance를 생성함.
  • 이것은 model이 target task가 무엇인지 instruction으로부터 이해하고, input이 필요한지에 확인하고, 그것들을 생성한 다음에 output까지 생성하는 과정을 포함하기 때문에 어려움.
  • 우리는 사전학습된 LM이 이것에게 instruction-input-output으로 구성된 in-context examples를 제공함으로써 이를 달성할수 있음을 확인함. (few-shot learning)

Input-first Approach

  • 우리는 LM에게 instruction에 따른 input fields를 먼저 떠올릴 것을 지시하고, 이후 이에 상응하는 output을 생성하도록 지시함.
  • 이러한 생성은 how models are used to respond to instruction and input과 유사함. 그러나 여기에서 우리는 other task에서 in-context examples를 준다는 것이 좀 다름.

    한 마디로, 우리가 기본적으로 우리 테스크 예제 준 다음에 LM보고 이런 식일 때, 이건 뭐게? 하면서 하는거랑 똑같은데 차이점은 얘네는 예시로 다른 task의 것을 준다는 것.

  • 그러나, 우리는 inputs이 하나의 라벨에 편향되어 생성될 수 있음을 발견하였음. 특히 classificaiton task에서 심하게 나타났음.
    • 예를 들어 grammer error detection 테스크에서 이것은 주로 grammatical input을 생성함.

Output-first Approach

  • 그래서 우리는 추가로 output-first 접근법을 제시함. 여기서 우리는 possible class label을 먼저 생성한 뒤, 그 다음 각각의 class label에 대한 input generation을 요청함. (classification task에 대해서만 적용)
  • Classification task -> output-first approach / Non-classification task -> input-first approach

Filtering and Postprocessing

LM에 의해 생성된 insturction과 이에 대한 instance들의 quality를 평가하고 적절히 필터링하는 과정

  • diversity를 끌어올리기 위해 새로운 instruction을 task pool에 추가함. 그런데 이때 이것이 ROUGE-L 유사도가 이미 task pool에 존재하는 것들보다 0.7 이하인 것들만 추가함.
  • 우리는 또한 몇 가지 특정 키워드들을 포함하는 instruction을 제외하였음. (e.g., image, picture, graph) 이것들을 주로 LM에 의해 처리되지 않기 때문.
  • 각각의 instruction에 대한 새로운 instances를 생성할 때에는, 우리는 정확하게 동일하거나, 입력은 같지만 출력이 다른 instance를 필터링함.
  • 또한 추가적인 휴리스틱을 통해 명령이 너무 길거나, 너무 짧거나, output이 input의 반복이거나하는 intance도 추가적으로 거름.

Finetuning the LM to Follow Instructions

  • large-scale instruction 데이터를 생성한 후에, 우리는 이것을 original LM을 파인튜닝하는 데 사용함.
  • 이를 위해 우리는 instruction과 instance input을 prompt로 합치고, 그 다음 모델이 instance output을 생성하도록 학습함 (in a standard supervised way)
  • 이때 모델이 different formats에 대해 강건하게(robust) 동작하도록 만들기 위해 우리는 multiple templates를 만들어서 학습진행

    예를들어, instruction은 "Task:"로 prefix되거나 그렇지 않을 수도 있으며 Input도 마찬가지. "Output:"은 프롬프트의 끝에 추가되거나 그렇지 않을수 있음. -> 이러한 변칙을 주어 강건한 모델 구축


3. SELF-INSTRUCT Data from GPT3

  • 우리는 우리의 데이터 생성 방식을 GPT3에 적용하였음. 우리는 가장 큰 GPT3 모델인 "davinci"를 활용함.
  • 우리는 여기에서 생성된 데이터에 대한 몇 가지 개요를 보여주고자 함.

3.1 Statistics

  • Table 1은 생성된 데이터에 대한 통계임. 우리는 52K개의 인스트럭션과 82K개의 인스턴스를 포함하고 있음 (필터링 다 적용된 후)

3.2 Diversity

  • 어떤 타입의 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들이 많이 생성되었음을 나타냄. 또한 다음 그림은 길이에 대한 다양성을 나타냄.

3.3 Quality

  • 여기까지, 우리는 양적인 통계와 다양성을 확인했지만, 여전히 이것의 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를 제공할 수 있다고 주장함.


4. Experimental Results

  • 우리는 다양한 instruction tuning setup하에 모델 간 성능을 비교하기 위해 실험을 수행하였음.
  • 이때 사용된 베이스라인들은 다음과 같음.

4.1 GPT3SELF_INST_{SELF\_INST} : finetuning GPT3 on its own instruction data

  • instruction-generated instruction data가 주어졌을 때 우리는 GPT3 모델을 instruction tuning을 진행함.
  • OpenAI finetuning API에서 2epoch 학습시켰음 (default hyper-parameter 셋팅)
  • 결과적으로 학습된 이 모델을 GPT3SELF_INST_{SELF\_INST} 이라고 부름.

4.2 Baselines

Off-the-shelf LMs

  • T5-LM과 GPT3을 vanilla LM 베이스라인으로 활용 (only pre-training, no additional finetuning)

Publicly available instruction-tuned models

  • T0와 TkINSTRUCTk-INSTRUCT는 instruction-tuned models임. (둘 다 2022년에 제안됨)
  • 그리고 이것들은 많은 NLP 테스크의 instruction을 따라 적절한 결과를 생성할 수 있는 것이 입증되었음.
  • 이들 모델 둘 다 T5로부터 fine-tune되었으며, checkpoint가 공개되어 있음. -> 우리는 largest version인 11B 모델 사용

Instruction-tuned GPT3 models

  • 우리는 OpenAI로부터 개발된 GPT3 기반의 InstructGPT를 활용함.

  • 이것은 human instruction을 더 잘 따르며 zero-shot abilities가 매우 상당한 것으로 알려져 있음.

  • various generation of these models들이 있음.

    • SUPERNI 실험에서 우리는 그들의 text-davince-001 엔진만 비교, 새로운 엔진들(002, 003) SUPERNI 테스트 세트를 이미 접했을 수 있기 때문.
    • Human evaluation에서는 우리는 001, 002, 003 엔진들을 모두 포함해 비교하였음.
  • 추가적으로 우리는 SELF-INSTRUCT를 다른 publicly available instruction tuning data와 비교하기 위해, GPT3 모델을 PROMPTSOURCESUPERNI로 fine-tuning했음. (원래는 이 데이터셋들 T5 모델에 튜닝됨)

  • 우리는 이것들을 T0 training, SUPERNI training이라고 부를 것임.

  • 훈련 budge 절약하기 위해 우리는 50K 인스턴스를 샘플링하였음 (우리의 제안된 데이터 풀과 유사한 크기로 유지)

  • 이전 연구결과와 우리 연구결과에 따르면 the number of instances per training task를 줄이는 것이 model's generalization performance to unseen task를 감소시키지 않는 것으로 나타났음.

4.3 Experiment1: Zero-Shot Generalzation on SUPERNI benchmark

  • 우리는 typical NLP 테스크에 대한 모델의 능력을 zero-shot 방식으로 먼저 평가하였음.
  • 우리는 SUPERNI 의 평가 셋을 활용하였으며 여기에는 199개의 테스크와 100개의 인스턴스 (각 테스크에 대한)이 포함되어 있음.

Results

Evaluation Metric이 ROUGE-L만 있는데, 왜 BERTScore같은 semantic기반 유사도 메트릭은 안 썼을까?

  • SELF-INSTRUCT는 GPT3의 instruction-following ability를 크게 향상시킴.
    • vanilla GPT3 모델은 기본적으로 human instructions을 그렇게 잘 따르지는 못하는 것으로 나타났음.
    • 추가적인 분석에서 이것은 보통 반복적이고 관련없는 답변을 생성하는 것을 발견하였으며 시퀀스를 언제 멈출지 몰라하는 모습을 보였음.
  • T0 training으로 학습한 다른 모델과의 비교에서도 우리 모델이 우수한 성능을 달성하였음. - 이 데이터셋은 엄청난 양의 human labeling efforts가 들어간다는 점을 비교했을 때 우리건 자동생성인데 이것보다 좋음.
  • 주목할점은, 우리 모델이 InstructGPT001_{001}에 필적하는 성능으 낸다는 것임. (which is trained with private user data and human-annotated labels)
  • SUPERNI traninig set에 대해 훈련된 모델도 여전히 좋은 성능보이지만, 우리 데이터세트와 합쳤을 때 성능이 더 오르는 것을 볼 수 있음.

4.4 Experiment 2: Generalization to User-oriented Instructions on Novel Tasks

  • 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라고 생각함.

Human evaluation setup

  • 이러한 데이터셋에서 모델을 평가하는 것은 서로 다른 전문지식을 요구하기 때문에 어려움. 실제로 이러한 테스크 중 상당수는 automatic metric으로 측정하기 어려우며, 일반적인 crowdworker로도 불가능함 (코드 작성에 대한 테스크인데, 크라우드워커가 코딩 모른다면?)

  • 신뢰가능한 평가르 위해 우리는 authors에게 model predictions을 적어달라고 요청하고 evaluators에게 아래 항목을 제시한 뒤 평가 요청함.

    Instruction, Instance Input, Target Output(Reference), Model Ouput

  • 4가지 rating을 통해 퀄리티를 평가하도록 요청함.

    1. RATING-A: response is valid and satisfying
    2. RATING-B: The response is acceptable but has minor errors or imperfections.
    3. RATING-C: The response is relevant and responds to the instruction, but it has significant errors in the content.
    4. RATING-D: The response is irrelevant or completely invalid.

Results

  • GPT3 모델과 이것의 instruction-tuned counterparts와의 비교 (on this newrly written instruction set)

  • 예상했듯이, vanilla GPT3은 대응을 거의 못하는 모습을 보였음.

  • 모든 instruction-tuned models은 상당한 성능을 보였는데, 그럼에도 불구하고 GPT3SELF_INST_{SELF\_INST}은 T0 training/SUPERNI training보다 훨씬 우수한 성능을 보였음. (SELF-INSTRUCT데이터가 noise에도 불구하고 학습에 큰 도움을 준다는 것을 보여줌)

  • InstructGPT001_{001} 과 비교했을 때 GPT3SELF_INST_{SELF\_INST}은 매우 유사한 성능을 보여줌.

    • 만약 RATING-B까지를 맞다라고 친다면, GPT3SELF_INST_{SELF\_INST}는 InstructGPT001_{001}와 오직 5%의 차이밖에 안남.
  • 마지막으로, InstructGPT002_{002}, InstructGPT003_{003}에 대한 성능 향상은, human annotator를 사용하여 데이터의 품질을 높이는 것이 중요함을 시사함.

4.5 Effect of Data Size and Quality

Data Size

  • SELF-INSTRUCt는 instruction data를 low cost와 almost no human labeling으로 확장시키는 방법을 제공함.

  • 더 많은 generated data가 더 나은 instruction-follwing ability로 이어질 수 있을까?

  • 이를 위해 우리는 generated data의 사이즈에 따른 실험을 수행하였음.

    1. 생성된 데이터셋에서 서로 다른 수의 instruction을 subsampling한 후
    2. GPT3을 이에 대해 fine-tuning시킴.
    3. 그리고 그것이 얼마나 252 user-oriented instruction set에 대해 잘 동작하는지 확인

  • 전체적으로, 우리는 data사이즈에 따른 성능 향상을 관찰할 수 있었음. 그러나, 이 향상은 거의 16K 이후로 정체됨.
  • SUPERNI로 했을 때는 더 일찍 정체에 돌입하는 것을 발견했으며, 이는 향후 instruction dataset의 테스크, 포맷 등의 다양성을 높이는 것이 성능향상에 도움을 줄 수 있음을 시사함.

Data quality

  • 모델의 성능을 향상시키는 방법은 우리의 generated data가 better supervision을 받아 less noise되도록 하는 것임. (데이터 품질 향상)
  • 이를 위해 우리는 available general-purpose model 중 가장 best로 알려진 InstructGPT003_{003}을 사용하여 output field of all our instances를 regenerate시킴.
  • 이는 플롯에서 주황색에 해당됨. original data로 학습한 것보다 10%의 성능향상을 보였음.
  • 이는 our generation pipeline을 사용하여 initial data를 얻고, data quality를 human experts나 distillation from better models로부터 향상시킴으로써 모델을 개선할 수 있음을 시사함.

5. Conclusion

  • 언어모델의 instruction-following ability를 그것의 own generation of instruction data를 통해 향상시킬 수 있는 SELF-INSTRUCT 제안
  • vanilla GPT3을 사용해 large-scale dataset of 52K instructions를 생성하였으며, GPT3을 이를 바탕으로 학습시켜 original GPT에 SUPERNI를 학습시킨 것보다 33% 더 큰 성능 향상을 이루어냈음
  • Human Evaluation에서도 public instruction dataset으로 학습시킨 것을 능가하며 거의 InstructGPT001_{001}와 유사한 성능을 보였음.
  • 우리는 SELF-INSTRUCT가 pre-trained LMs을 human instructions과 align하는 첫 번째 스텝이라을 제공함.

Limitations

Tail Phenomena

  • SELF-INSTRUCT는 언어모델에 의존하므로, 그것의 한계를 그대로 상속받음.
  • SELF-INSTRUCT에 의한 gain의 대부분이 사전학습 corpus에 더 자주 나타나는 task나 instruction에 치우쳐져 있음.
  • 해결하려고는 했지만, 여전히 uncommon and creative instructions을 생성하는 데 있어 취약함.

Dependence on large models

  • SELF-INSTRUCT는 LM에서 추출한 귀납적 편향에 의존하므로 더 큰 모델에서 가장 잘 작동할 수 있음.
  • 이는 대규모 컴퓨팅 리소스가 없는 사람들에게는 접근성에 대한 장벽을 만들 수 있음.

    Inductive Bias (귀납적 편향)
    모델이 학습과정에서 본 적이 없는 분포의 데이터를 입력 받았을 때, 해당 데이터에 대한 판단을 내리기 위해 가지고 있는, 학습과정에서 습득된 Bias(편향) - 출처

Reinforcing LM biases

  • Iterative algorithm으로 인해 성별, 인종 등에 대한 steroypes이 강화된 결과가 생성될 수 있음.
  • 제안하는 알고리즘이 모델의 prior biases를 반영하는 balanced labels를 생성하기 어렵다는 것.

주요 질문

  1. 초기 175개의 data pool은 누가 생성한건지? 초기 pool의 퀄리티는 생성에 어느정도의 영향을 미치는것인지?
  2. Domain-specific에도 잘 적용될 지? (애초에 근데 데이터 생성에 어려움이 있지 않을까?)
  3. 어째서 ROUGE-L만 성능 지표로 보고하였는가..

Writing the Seed Task

  • 다양한 seed instruction 작성 위해 기존 데이터 세트나 특정 작업에 대한 참조 없이 저자와 연구실 동료들이 작성
  • classificaiton / non-classification으로 분리 (각각 25개, 150개) -> 이 데이터 또한 github repo에 공개
profile
SKKU DSAIL 석박통합과정 n학기 / 정신건강과 인공지능의 융합을 연구합니다.

0개의 댓글