LLM

LLM 모델 만들기(1)

won-ian 2024. 8. 15. 09:46

※ 'LLM을 활용한 실전 AI 애플리케이션 개발' 책을 정리한 내용입니다.

 

어떻게 GPT-3은 CHAT GPT가 될 수 있었을까?!

OPENAI는 두 단계를 거쳤는데, 요청(또는 질문)과 답변 형식으로 된 지시 데이터셋(insturction dataset)을 통해 GPT-3가 사용자의 요청에 응답할 수 있도록 학습시켰다. 그리고 사용자가 더 좋아하고 사용자에게 더 도움이 되는 답변을 생성할 수 있도록 추가 학습을 시켰다.

 

LLM은 사용자의 요청에 적절히 응답하기 위해서 추가 학습하는 것을 지도 미세 조정(supervised fine-tuning)이라고 한다. 지도(supervised)란 학습 데이터에 정답이 포함되어 있다는 의미이다. 지도 미세 조정에 사용하는 데이터셋을 지시 데이터셋(unstruction dataset)이라고 한다.

 

그렇다면 지시 데이터셋은 어떠한 형태일까?

지시사항(instruction)은 사용자의 요구사항을 표현한 문장이다. 입력(input)에는 답변을 하는 데 필요한 데이터가 들어가고 출력(output)은 지시사항과 입력을 바탕으로 한 정답 응답이다. 텍스트(text)는 지시사항, 입력, 출력을 정해진 포맷으로 묶은 데이터이다.

 

좋은 지시 데이터셋을 위해서는 데이터의 양, 품질, 질문의 형식, 답변의 형식 등 다양한 측면에서 고민해 봐야한다. 지시 데이터셋은 지시사항이 다양한 형태로 되어 있고 응답 데이터의 품질이 높을수록 정렬한 모델의 답변 품질이 높아진다. 

 

피상적인 정렬 가설(superficial alignment hypothesis)

위의 결과를 바탕으로 나타낸 가설로 모델의 지식이나 능력은 사전 학습 단계에서 대부분 학습하고 정렬 데이터를 통해서는 답변의 형식이나 모델이 능력과 지식을 어떻게 나옇라지 정도만 추가로 배우기 때문에 적은 정렬 데이터로도 사용자가 원하는 형태의 답변을 생성할 수 있다는 가설이다. 이 가설이 정확이 옳은지는 판단할 수 없지만, 기초 모델(foundation model)을 잘 선택한다면 작은 지시 데이터셋으로도 정렬이 가능하다는 결과를 얻을 수 있다.

 

데이터셋의 품질을 높이기 위해서 선별작업을 진행하였는데 그 이유는

  • 외부 모듈이나 파일을 사용하기 때문에 하나의 코드 파일 자체에서 의미를 이해하기 어려운 경우가 많았다.
  • 대부분의 파일은 의미 있는 연산보다는 보일러플레이트(boilerplate) 코드나 설정 파일이었다.
  • 알고리즘 로직을 담고 있는 코드도 복잡하거나 제대로 문서화되지 않은 함수들 사이에 있어 의미를 파악하기 어려웠다.
  • 특정 주제나 사례에 관련된 코드가 많아 특정 개념이나 스킬에 불균형한 데이터셋분포를 보였다.

 

좋은 지시 데이터셋이 갖춰야 하는 조건

  • 지시 데이터셋을 작은 규모로 구축하더라도 모델이 지시사항의 형식을 인식하고 답변하도록 만들 수 있다.
  • 지시사항이 다양한 형태이고 답변의 품질이 높을수록 모델의 답변 품질도 높아진다.
  • 학습 데이터의 품질을 높이기 위해 모델의 목적에 맞춰 학습 데이터의 교육적 가치를 판단하고 교육적 가치가 낮은 데이터를 필터링하는 방법을 사용할 수 있다.
  • 교재의 예재 데이터와 같은 고품질의 데이터를 학습 데이터에 추가하면 성능을 크게 높일 수 있다.

 

'LLM' 카테고리의 다른 글

LLM 모델 만들기(3)  (0) 2024.08.17
LLM 모델 만들기(2)  (0) 2024.08.16
허깅페이스 트랜스포머 라이브러리(1)  (0) 2024.08.14
트랜스포머 아키텍처(6)  (0) 2024.08.13
트랜스포머 아키텍처(5)  (0) 2024.08.12