VAIV-2023/RLHF-Korean-Friendly-LLM

Developing a Korean LLM model : Hate Speech Filtering, Improving conversational skills, Finetuning with the RLHF method

20

stars

174

commits

Python

primary language

May 27, 2025

updated

README

2023 성균관대 하계집중 산학협력프로젝트 VAIV
KCC 2024 논문 게재 - 🏅 우수발표 논문상

GPT 기반의 자연스럽고(Friendly) 윤리적인(Harmless) 일상 대화형 챗봇 모델

연구 배경 및 목적

GPT-NEOX(Polyglot-ko) 기반 자연스럽고 윤리적인 한국어 기반 일상 대화형 챗봇 모델 구현

image

개발 내용

  • Self-Instruct: GPT4를 이용한 데이터 증강

  • RLHF(Reinforcement Learning from Human Feedback): 사람의 선호도를 반영한 강화학습

  • DeepSpeed: 대규모 분산 딥러닝을 위한 새로운 메모리 최적화 기술

    • Task 1: 강화학습 단계별 데이터셋 구축
    • Task 2: SFT 모델 Instruction-tuning
    • Task 3: Reward 모델 ver1,2,3 구현
    • Task 4: RLHF와 DeepSpeedChat을 통한 최종 모델 구현 (https://huggingface.co/Trofish/KULLM-RLHF)

Task1. 강화학습 단계별 데이터셋 구축

image Screenshot 2024-06-18 at 11 05 55 AM Screenshot 2024-06-18 at 11 06 08 AM

Task2. SFT 모델 Fine-tuning

Baseline Model

- 고려대학교 NLP & AI 연구실과 HIAI 연구소가 개발한 한국어 LLM "KULLM" 사용

Datasets

image

SFT Model Finetuning

image

  • 모델학습에는 Google Colab에서 제공하는 A100 40GB GPU 사용

SFT Model Evaluation

image image

Task3-1. Reward Model ver1 구현

Baseline Model

  • EleutherAI에서 개발한 초거대 한국어 언어 모델 Polyglot-Ko 사용
  • 1.3b 모델과 5.8b 모델을 각각 실험

Datasets

image

  • InstructGPT의 데이터셋 구축 방법
    • Reward 모델 학습 데이터셋으로 SFT 학습에 사용한 prompt(1,500개 - 일상대화:혐오표현=2:1)와 새로운 prompt(1,000개 - DeepSpeedChat 번역 데이터셋) 사용
    • SFT 모델에서 한개의 prompt당 K개의 Response를 생성하고, 순위를 Labeling
  • 데이터셋 라벨링
    • Instruct GPT의 경우 사람이 직접 Labeling을 하엿지만, 일관된 평가와 시간 단축을 위해 GPt-4와 G-Eval을 이용
    • SFT에서 생성한 두 Response 중 G-Eval 평가 점수 합이 높은 것을 Chosen response로 결정
    • 데이터셋 유형별로 G-Eval 평가 Prompt에 차이를 두었음
    • image

Reward v1 Model Finetuning

image

  • InstructGPT 논문에 따르면, Reward 모델은 overfitting되면 성능이 크게 저하된다고 함 --> epoch 수를 1로 설정
  • batch size나 learning rate 등 다른 hyper-parameter는 성능에 큰 영향이 없다고 함
  • Colab A100 40GB 기준 총 학습 시간 4분

Reward v1 Model Evaluation

image

  • Reward Model Template
    • "아래는 작업을 설명하는 명령어입니다. 요청을 적절히 완료하는 응답을 작성하세요. \n\n ### 명령어:\n{prompt}\n\n ### 응답:\n"

Task3-2. Reward Model ver2 구현

Reward Model ver1 Issues

  • 구현된 Reward Model의 성능이 좋지 않음 (Accuracy 0.65)
  • Reward Model ver1을 사용하여 Step3 학습시 혐오표현이 아닌데도 혐오표현이라고 인식하고 답변하는 문제 발생

Issue 해결방안

image

  • SFT 모델로 답변을 2개 생성하였을 때(Ver1), Chosen, Rejected 답변의 차이가 크게 없어 모델이 학습되지 않는 현상을 방지하기 위하여 2개의 모델 **(ChatGPT, SFT)**를 사용하여 답변을 생성(Ver2)
  • General Task 답변에 대한 평가 성능을 높이기 위해 Evol-instruct 데이터 추가
  • 학습에 사용한 모든 데이터셋은 15 token 이하, cosine 유사도 0.5 이상일 경우 제거하는 Filtering 작업 수행
  • 혐오표현 학습시(Ver1) Step3 강화학습 이후에 답변이 이상하게 생성되는 Issue가 있어, 혐오표현을 데이터를 제거하고 학습(Ver2)
  • RM-ver1은 GPT4가 Chosen, Rejected 레이블링을 진행하였지만, Resource 이슈로 인해 일부만 사람이 라벨링 진행
    • 일상대화 데이터셋
      • ChatGPT와 SFT 모두 일관되게 높은 퀄리티의 답변을 생성하지 않아, 사람이 직접 라벨링 진행
    • RLHF 한국어 번역, Evol-Instruct 데이터셋
      • ChatGPT가 일관되게 높은 퀄리티의 답변을 생성하여 ChatGPT를 Chosen, SFT를 Rejected로 라벨링 진행

Reward Model ver2 Evaluation

image

Task4. RLHF와 DeepSpeedChat을 통한 최종 모델 구현

  • Microsoft에서 만든 대규모 분산 딥러닝을 위한 새로운 메모리 최적화 기술(DeepSpeed)을 RLHF Process에 적용한 DeepSpeedChat 사용
  • Human preference로 학습을 시킨 Reward 모델과 강화학습을 통해 SFT 모델에 사람의 선호도를 반영하여 자연스럽고(FRIENDLY), 윤리적인 (HARMLESS) 챗봇 생성

Baseline Models

  • Actor Model: KULLM-SFT-V2
  • Reward Model: Polyglot-Ko-Reward-V3

Training Options

image

RLHF Training

image

  • 학습 결과, SFT 모델의 답변에 대한 퀄리티인 Reward가 상승하는 것을 확인 (사람의 선호도가 높은 답변을 생성)

RLFH Model Evaluation

image image

Final RLHF Model

Contributors 🙌

Contributors

shbin05

116 commits

Tro-fish

42 commits

ryeowon

14 commits

yuminHeo

2 commits

VAIV-2023/RLHF-Korean-Friendly-LLM

Developing a Korean LLM model : Hate Speech Filtering, Improving conversational skills, Finetuning with the RLHF method

20

stars

174

commits

Python

primary language

May 27, 2025

updated

README

2023 성균관대 하계집중 산학협력프로젝트 VAIV
KCC 2024 논문 게재 - 🏅 우수발표 논문상

GPT 기반의 자연스럽고(Friendly) 윤리적인(Harmless) 일상 대화형 챗봇 모델

연구 배경 및 목적

GPT-NEOX(Polyglot-ko) 기반 자연스럽고 윤리적인 한국어 기반 일상 대화형 챗봇 모델 구현

image

개발 내용

  • Self-Instruct: GPT4를 이용한 데이터 증강

  • RLHF(Reinforcement Learning from Human Feedback): 사람의 선호도를 반영한 강화학습

  • DeepSpeed: 대규모 분산 딥러닝을 위한 새로운 메모리 최적화 기술

    • Task 1: 강화학습 단계별 데이터셋 구축
    • Task 2: SFT 모델 Instruction-tuning
    • Task 3: Reward 모델 ver1,2,3 구현
    • Task 4: RLHF와 DeepSpeedChat을 통한 최종 모델 구현 (https://huggingface.co/Trofish/KULLM-RLHF)

Task1. 강화학습 단계별 데이터셋 구축

image Screenshot 2024-06-18 at 11 05 55 AM Screenshot 2024-06-18 at 11 06 08 AM

Task2. SFT 모델 Fine-tuning

Baseline Model

- 고려대학교 NLP & AI 연구실과 HIAI 연구소가 개발한 한국어 LLM "KULLM" 사용

Datasets

image

SFT Model Finetuning

image

  • 모델학습에는 Google Colab에서 제공하는 A100 40GB GPU 사용

SFT Model Evaluation

image image

Task3-1. Reward Model ver1 구현

Baseline Model

  • EleutherAI에서 개발한 초거대 한국어 언어 모델 Polyglot-Ko 사용
  • 1.3b 모델과 5.8b 모델을 각각 실험

Datasets

image

  • InstructGPT의 데이터셋 구축 방법
    • Reward 모델 학습 데이터셋으로 SFT 학습에 사용한 prompt(1,500개 - 일상대화:혐오표현=2:1)와 새로운 prompt(1,000개 - DeepSpeedChat 번역 데이터셋) 사용
    • SFT 모델에서 한개의 prompt당 K개의 Response를 생성하고, 순위를 Labeling
  • 데이터셋 라벨링
    • Instruct GPT의 경우 사람이 직접 Labeling을 하엿지만, 일관된 평가와 시간 단축을 위해 GPt-4와 G-Eval을 이용
    • SFT에서 생성한 두 Response 중 G-Eval 평가 점수 합이 높은 것을 Chosen response로 결정
    • 데이터셋 유형별로 G-Eval 평가 Prompt에 차이를 두었음
    • image

Reward v1 Model Finetuning

image

  • InstructGPT 논문에 따르면, Reward 모델은 overfitting되면 성능이 크게 저하된다고 함 --> epoch 수를 1로 설정
  • batch size나 learning rate 등 다른 hyper-parameter는 성능에 큰 영향이 없다고 함
  • Colab A100 40GB 기준 총 학습 시간 4분

Reward v1 Model Evaluation

image

  • Reward Model Template
    • "아래는 작업을 설명하는 명령어입니다. 요청을 적절히 완료하는 응답을 작성하세요. \n\n ### 명령어:\n{prompt}\n\n ### 응답:\n"

Task3-2. Reward Model ver2 구현

Reward Model ver1 Issues

  • 구현된 Reward Model의 성능이 좋지 않음 (Accuracy 0.65)
  • Reward Model ver1을 사용하여 Step3 학습시 혐오표현이 아닌데도 혐오표현이라고 인식하고 답변하는 문제 발생

Issue 해결방안

image

  • SFT 모델로 답변을 2개 생성하였을 때(Ver1), Chosen, Rejected 답변의 차이가 크게 없어 모델이 학습되지 않는 현상을 방지하기 위하여 2개의 모델 **(ChatGPT, SFT)**를 사용하여 답변을 생성(Ver2)
  • General Task 답변에 대한 평가 성능을 높이기 위해 Evol-instruct 데이터 추가
  • 학습에 사용한 모든 데이터셋은 15 token 이하, cosine 유사도 0.5 이상일 경우 제거하는 Filtering 작업 수행
  • 혐오표현 학습시(Ver1) Step3 강화학습 이후에 답변이 이상하게 생성되는 Issue가 있어, 혐오표현을 데이터를 제거하고 학습(Ver2)
  • RM-ver1은 GPT4가 Chosen, Rejected 레이블링을 진행하였지만, Resource 이슈로 인해 일부만 사람이 라벨링 진행
    • 일상대화 데이터셋
      • ChatGPT와 SFT 모두 일관되게 높은 퀄리티의 답변을 생성하지 않아, 사람이 직접 라벨링 진행
    • RLHF 한국어 번역, Evol-Instruct 데이터셋
      • ChatGPT가 일관되게 높은 퀄리티의 답변을 생성하여 ChatGPT를 Chosen, SFT를 Rejected로 라벨링 진행

Reward Model ver2 Evaluation

image

Task4. RLHF와 DeepSpeedChat을 통한 최종 모델 구현

  • Microsoft에서 만든 대규모 분산 딥러닝을 위한 새로운 메모리 최적화 기술(DeepSpeed)을 RLHF Process에 적용한 DeepSpeedChat 사용
  • Human preference로 학습을 시킨 Reward 모델과 강화학습을 통해 SFT 모델에 사람의 선호도를 반영하여 자연스럽고(FRIENDLY), 윤리적인 (HARMLESS) 챗봇 생성

Baseline Models

  • Actor Model: KULLM-SFT-V2
  • Reward Model: Polyglot-Ko-Reward-V3

Training Options

image

RLHF Training

image

  • 학습 결과, SFT 모델의 답변에 대한 퀄리티인 Reward가 상승하는 것을 확인 (사람의 선호도가 높은 답변을 생성)

RLFH Model Evaluation

image image

Final RLHF Model

Contributors 🙌

Contributors

shbin05

116 commits

Tro-fish

42 commits

ryeowon

14 commits

yuminHeo

2 commits

Languages

Python

98.8%