[Llama] Llama 2: Open Foundation and Fine-Tuned Chat Models

임혜림·2024년 1월 5일
0

자연어처리

목록 보기
4/7

SFT and RLHF

Large Language Model

  • GPT1 이후의 모든 Decoder-only 기반의 LLM은 동일한 Pretrain Task 공유
    - Langauge Modeling(LM): t 시점까지의 단어를 기반으로 t+1 시점의 단어가 나올 확률을 예측
  • LLM: 간단한 LM Pretrain Task를 이용하되, 학습 데이터와 모델 파라미터의 크기를 대폭 늘림
    - 모델 구조 및 pretrain task의 변경 없이도 매우 높은 Zero-Shot Perforamnce 및 언어 능력을 보임
  • 다양한 Task에 대한 일반화 성능 및 챗봇으로서의 가능성을 보임

Pretrain Task 단순 다음단어 예측
ChatBot 사용자의 다양한 요청에 대해 안전하고 도움이 되는 응답을 산출해야함
=> pretrain task가 chatbot으로 동작하기 위한 bottle neck이 존재

bottleneck 해결법: SFT&RLHF
LLM을 chatBot 환경에 맞추어 동작하도록 Finetuning하는 방법론
1. SFT: 사용자의 각 입력에 적절히 대응할 수 있는 응답을 직접 학습하는 방법론
2. RLHF: 모델이 생성한 문장의 사용자 선호도를 높일 수 있도록 학습하는 방법론

Reinforcement Learning with Human Feedback

step1 supervised Finetuning
Dataset: SFT Dataset
Model: GPT-3
step2 Reward Model Training
Dataset: RM Dataset
Model: SFT Model
step3 RLHF
Dataset: PPO Dataset
Model: GPT-3
RM: Reward Model

  • Aligned Model: SFT 및 RLHF의 학습 대상이 되는 모델, 실제 chatBot으로 사용
  • Reward Model: RLHF 훈련 과정에서 사용되는 모델, 학습 과정에서만 사용

SFT Dataset Construction & Evaluation

Self Instruct

  • SFT dataset: 다양한 요청이 담긴 사용자 요청(prompt)와 적절한 응답(response)으로 구성
    - 실제 ChatBot 서비스 환경에서 사용자 요청 및 Annotation 등으로 구축 -> 높은 구축 비용 소모
  • Prompt: 저자들이 초기 175개 작성 -> ChatGPT를 이용하여 추가 Prompt 작성
  • Response: ChatGPT가 Prompt를 입력으로 생성
    - 100달러 이하의 비용으로 SFT 학습 데이터셋 구축
    => ChatGPT를 이용해 모든 dataset을 생성할 수 있다.
    => Prompt 및 Response를 ChatGPT를 통해 생성하여도 SFT 학습을 통한 성능 향상 기대 가능

LIMA: Less Is More for Alignment

  • SFT 용 데이터에서 중요한 점은 양이 아닌 질임을 강조
  • 데이터 추출 기준
    1. 다양성: 다양한 프롬프트를 구성할 수 있도록 도메인과 출처를 다양화
    1. 양질의 응답: 각 출처 별 높은 품질 지표 사용
    2. 저자들의 임의 선택: 주관적인 판단에 따라 높은 품질의 데이터 추가 선택
  • 기존 SFT 데이터와 달리 ChatGPT가 아닌 사람이 생성한 데이터 활용
  • Alpaca와 동일한 베이스 모델(LLaMA) 및 모델 크기 활용
    - Alpaca: Self Instruct 방식으로 생성된 5,2000개의 SFT 데이터셋 활용
    • LIMA: 고품질의 1,000개의 SFT 데이터셋 사용
  • 데이터 크기가 동일할 때, 고품질의 데이터를 활용하는 것이 더 높은 성능 달성
  • 데이터의 품질이 동일할 때, 학습 데이터 수가 늘어나더라도 성능 향상x

정리

  • SFT 학습은 모델에 새로운 지식을 주입하지 않음
  • 입력 및 출력 스타일에 대한 학습이 진행됨
  • SFT 데이터셋은 고품질의 데이터로 구축하는 것이 중요

Instruction Mining

  • SFT 데이터셋의 품질 척도 제시
  • 평가 지표
    8개중 제일 중요한 것 2개
    2. Reward Score: 공개된 Reward Model을 이용한 평균 Score
    5. KNN-I:SBERT의 임베딩 벡터의 KNN 거리 평균, 임베딩 공간 상 다양성=> 얼마나 다양한 input과 output으로 구성되어 있는지
  • 다변량 회귀 분석 결과
    - Reward Model, 길이, KNN 지표만 유의미한 변수
    • Reward 값이 크수록, 길이가 짧을수록, KNN 상 거리가 클수록 SFT 학습 데이터로서 좋은 품질을 지니고 있음

LLAMA2

Overall pipeline

RLHF와 SFT 적용방법을 논문에서 주로 다루고 있음.
3가지 과정을 통해 학습을 진행
1. pretrain: 공개된 pretrain Corpus를 이용
2. SFT: 자체 구축한 SFT 데이터셋을 이용한 SFT 학습
3. Reward Model: 자체 구축한 Reward 데이터셋을 이용한 Reward Model 학습
4. Rejection Sampling: Reward Model을 이용한 SFT 데이터셋 생성 및 필터링
5. PPO(RLHF): Rejection Sampling 및 Reward Model을 이용한 최종 모델 RLHF 훈련

Pretrain

  • LLAMA1에 비해 더 긴 입력 및 많은 데이터로 학습 진행
  • Meta 내부 데이터를 활용하지 않고, 공개된 데이터만 확보하여 진행 => 개인 정보 누출 우려 최소화
  • 별도의 pretrain Corpus에 대한 필터링 작업을 수행하지 않음
    - 유해 컨텐츠 그대로 학습
    • Fine-Tune 단계에서 유해 컨텐츠 생성을 억제하도록 학습
    • 필터링 과정에서 pretrain corpus의 품질 하락 가능

Dataset 수집 절차 - SFT

  • 고품질의 소량 데이터셋 확보
  • Helpfulness와 Safety 두가지 측면의 데이터 별도 구축
    - 두 문장을 주고 더 도움이 된 문장, 더 안전한 문장 선택하는 방식으로 annotation
    - Helpfulness: 매우 창의적인 생성을 요구하는 입력
    • Safety: 유해한 응답을 생성할 수 있는 Prompt에 대해서는 응답 거부

Reward Model 훈련

  • 수집된 Human Perference Data를 이용하여 학습을 진행
  • Loss 함수는 Ranking Loss를 사용하되, Margin 도입
    - annotatior가 선택한 문장이 안전할 거 같으면 margin을 넓게
    • 두 분장이 비슷했으면 margin을 좁게
      => model이 Perference를 좀 더 확실하게 가져갈 수 있게 학습
  • Reward Model은 Aligned Model의 생성문이 safe/Helpful 여부를 분류하는 이진분류 태스크 학습
    - 서로 다른 모델 사용: safety와 helfpul이 반대되는 경향을 가지고 있기 때문
    유용성과 안전성은 서로 trade-off 관계에 있기 때문입니다. 유용성을 높이기 위해 안전성을 희생하거나, 안전성을 높이기 위해 유용성을 희생할 수 있습니다. 따라서 단일 보상 모델로 유용성과 안전성을 모두 높이는 것은 어렵습니다.
    Safety와 Helpfulness는 서로 다른 특성을 가진 성질이기 때문입니다. Safety는 응답이 사실적이고 타당하며 유해하지 않은지를 평가하는 성질입니다. 반면, Helpfulness는 응답이 사용자의 질문이나 요청에 유익한지를 평가하는 성질입니다. 따라서 이러한 두 가지 성질을 하나의 보상 모델로 학습하기는 쉽지 않습니다.

Interative Fine-Tuning

  • 기존 RLHF 훈련 파이프라인은 선형적 진행 방식을 다름
    1. SFT 모델 훈련
    1. 훈련된 SFT 모델을 기반으로 Human Preference Data 구축 및 Reward Model 훈련
    2. 2에서 훈련된 Reward Model을 이용하여 1의 SFT 모델 PPO 훈련
      => 3의 과정에서 변화하는 SFT 모델의 분포를 Reward Model이 반영하지 못함
  • SFT 훈련 및 Reward Model 훈련을 반복적으로 진행하는 iterative fine-tuning 프레임워크 제안
    - SFT 모델 훈련 -> Human Preference Data 구축 -> Reward Model 훈련 -> SFT 데이터 구축 -> SFT 모델 훈련
  • Aligned Model을 이용하여 동일한 prompt에 대해 k개의 문장을 생성해서 reward model을 통해 좋은 문장을 거름
  • 새롭게 aligned Model이 훈련되면서 생성문의 분포가 변화
    - 변화된 분포를 반영하고, 추가 Human Perference Data를 확보하기 위해 매 반복마다 Human Annotation 진행
  • 이전 시점까지 확보된 Human Prefernce Data와 함께 새로운 Reward Model 훈련
    - 변화된 생성 분포에 대응하여 더욱 적절한 Reward 부여 가능
    • safety, helpfulness 예측 정확도 상승

PPO: 최종 훈련

모델이 생성한 문장의 사용자 선호도를 높일 수 있도록 학습하는 방법론

  • ppo 훈련시 reward model의 점수는 safety와 helpfulness 중 하나로 학습되도록 설계
    - 안전한 답변이라면 더 유용한 답변을 생성하도록 학습
    • 안전하지 못한 답변이라면, 더 안전한 답변을 생성하도록 학습

Ghost Attention

chatbot으로 쓰기 위한 추가적인 fine tuning 방법

  • chatnot 사용시 user들은 instruction을 통해 다양한 스타일에 맞춘 생성을 요구
  • Instruction은 초기에만 입력 => 해당 요청 사항은 이후 대화에서도 유지되어야 함
    - 모델은 대화가 진행되면서 초기에 입력된 instruction에 맞추어 생성x
  • Ghost Attention: data 구축 방식
    - 매 input마다 앞에 instruction을 삽입해서 model이 instruction을 생성해서 답변을 생성하도록 유도
    • model은 초기 instruction을 바탕으로 생성하도록 학습
  • Ghost Attention은 학습 후 대화 전반에 걸쳐 instruction에 더 많은 Attention을 부여

Result & Analysis

  • 기존 큰 모델(70B) 모든 테스크에서 기존 Open-Source LLM 대비 가장 좋은 성능을 보임 => 가장 많은 데이터로 pretrain 되었기 때문

iterative fine tuning

  • iterative fine tuning을 진행할수록 모델이 생성한 문장의 길이가 길어짐
    - 사실 기반의 생성은 정해진 내용을 생성해야 함
    • 창의적 글쓰기는 생성문의 자유도가 높음

Reward Model

  • RLHF 학습 시 Reward Score는 Helpfulness Score와 Safety Score의 단순 평균으로 계산
    - Safety Score의 비중을 높이더라도, Helpfulness Score의 변화는 거의 발생하지 않음
    • Safety Score의 비중을 높일 경우, Safety Score가 낮은 생성이 감소하는 현상 관찰 가능

Fina Model 성능

ChatGPT보다 매우 좋은 Safety 성능

Conclusion

Pretrain

  • Pretrain Corpus 내 임의의 filtering 작업을 수행하지 않고 Bias 등을 직접 학습
  • Pretrain Corpus 내 Bias 및 contamination에 대한 깊은 분석 수행
  • 기존 Open-Source LLM 대비 높은 param : token 비를 통한 높은 성능 달성
    Iterative Fine-Tune
  • Reward Model과 Aligned Model이 반복적으로 변화하는 분포를 학습할 수 있는 방법론 제안
  • Reward Model을 Safety/Helpfulness로 분리하여 학습해야 함
  • Aligned Model의 지속적 Finetuning을 위한 Gold Response를 직접 생성하는 Rejection Sampling 방법론 제안
  • Human Preference Data 및 SFT Data 구축을 위한 Annotation 고도화
    모델 성능
  • 기존 Open-Source LLM 및 ChatGPT 대비 높은 Safety/Helpfulness 성능 달성
  • 기존 Open-Source LLM 및 ChatGPT 대비 높은 DownStream Few-shot 성능 달성
profile
hello world

0개의 댓글