다양한 구성원을 하나로 모으고 싶다면 - 리더가 가져야 할 모순
네이버 블로그 | HSG 휴먼솔루션그룹
이번 주에는 GPT 외의 LLM을 학습하는 방법에 대해 학습하였다.
[7주차 학습한 내용: 클라우드 환경 배포 및 파인튜닝(2)]
1.fine-tuning이 필요한 경우
GPT나 Gemini와 같은 closed LLM은 일반적인 텍스트 질의응답에는 뛰어난 성능을 보이지만 특정 도메인 지식을 요구하는 task는 잘 하지 못할 수 있다.
또한, closed LLM은 사용하는 만큼 비용이 발생하기 때문에 open LLM을 파인튜닝해서 사용하면 비용을 절약할 수 있다.
다음과 같은 과정을 거쳐 파인 튜닝이 필요한지 테스트할 수 있다.
테스트를 위한 instruction data를 준비한다.
GPT나 huggin face에 있는 모델들로 평가한다.
평가 결과에 따라 평가 결과가 안좋거나 비용이 많이 든다면 테스트 데이터의 크기를 늘려 파인튜닝을 진행한다. 이 때, 충분히 많은 instruction data를 만드는 것이 중요하다.
파인튜닝에 사용하기 좋은 Python Logging Library
-Logger
파이썬에 기본적으로 내장되어있는 Logging Library이다.
debug, info, warning, error과 같이 log의 level을 설정할 수 있다.
logging.debug('DEBUG')
logging.info('INFO')
logging.warning('WARNING')
logging.error('error')
파일에 저장할 수 있다.
formatting 기능을 활용해 원하는 형식으로 출력할 수 있다.
-Wandb
Wandb는 Weights and Biases의 약자로, 모델 학습 과정을 시각화하고 추적하는 라이브러리이다.
머신러닝 모델을 학습하는 경우 실험이 중간에 멈추거나 loss가 제대로 떨어지지 않는 등 여러 가지 이슈가 발생하기 때문에, Wandb와 같은 모니터링 툴을 활용해 지속적으로 모니터링이 필요하다.
wandb를 사용하면 x/y축의 스케일을 조정하거나 범례의 위치를 조정하는 등 원하는 형식으로 출력할 수 있다.
2.LLM Pre-training
LLM pre-training은 LLM의 기본적인 text 이해도를 높이는 작업이다.
GPT와 유사하게 next token prediction을 통해 모델을 학습한다.
1) Text corpus 준비
여러 개의 독립적인 문장, 문서들을 하나의 거대한 text 더미로 만든다.
2) 일정한 단위로 자르기
하나의 거대한 corpus를 hyper-parameter에 따라 일정한 단위로 잘라서 여러 개의 문장 더미로 만든다.
3) 모델 학습
next token prediction을 통해 모델을 학습한다.
일반적으로 LLM pre-training은 대규모 데이터가 필요하기 때문에 개인이 하기는 어렵다.
공개된 pre-trained 모델을 가져와 instruction data를 통해 파인튜닝을 진행하는 경우가 많다.
Aligning LLMs
LLM의 다양한 지식 및 능력들에서 특정 task에 요구되는 능력만을 활용하도록 하는 것을 LLM을 align한다고 표현한다.
-preference data
LLM이 특정 능력만을 활용하도록 preference data를 사용하여 학습한다.
preference data는 instruction data와 유사하지만 답변 두 가지 중 더 선호되는 답변을 labeling한다.
-Reinforcement learning with human feedbacks(RLHF)
instruction-tuning이 완료된 LLM에 preference data를 활용하여 학습하는 방법이다.
1) Reward model 학습
binary classification을 진행하는 reward model로 preference data을 학습한다.
2) LLM align
reward model을 가지고 강화학습을 통해 LLM이 선호되는 답변을 내놓도록 align한다.
RLHF를 거친 LLM은 좀 더 정확한 답변을 하고(correctness), 프롬프팅을 통해 주어진 조건들을 잘 지키고(controllable), hallucination이 줄어든다.
RLHF는 human feedbacks에서 알 수 있듯이 초기에는 사람이 직접 모든 데이터를 처리하였으나,
최근에는 LLM이나 다른 알고리즘으로 1차 평가를 수행하고, 사람이 2차 평가를 하는 방식으로 human resource를 줄이는 방식으로 진행하고 있다.
AI로만 평가를 진행하는 RLAIF(Reinforcement learning with AI feedback)도 최근 주목받고 있다.
-Direct preference optimization(DPO)
RLHF와 달리 preference data로 다음 loss로 LLM을 학습하여 reward model 없이 align하는 방법이다.
3.Llama3 학습 방법
Llama3는 코드와 checkpoint가 공개된 open LLM 중 하나로, 크기는 405B이다.
openLLM 중에 드물게 GPT-4보다 나은 성능을 보인다.
Llama3는 논문을 통해 어떻게 학습했는지 공개하였다.
Model architecture
Llama3는 Transformer를 기반으로 하는 Llama2 모델에 몇 가지 변경점을 적용하였다.
inference 속도와 메모리 사용량을 개선하기 위해 grouped query attention을 사용한다.
영어가 아닌 언어에 대응하기 위해 tokenizer 사전을 추가한다.
긴 context를 처리하기 위해 positional encoding 방법으로 사용하는 RoPE의 hyper-parameter를 조정한다.
Pre-training
pre-training에 필요한 데이터는 다양한 웹 사이트를 크롤링하여 만든다.
다양한 필터링 방법을 활용하여 데이터를 정제한다.
필터링을 통해 General knowledge, Mathmetical and reasoning, Code, Multilingual 데이터를 얻고, 테스트를 통해 어떠한 비율로 섞어서 pre-training data를 완성할지 결정하였다.
scaling law를 통해 모델을 학습하기 위한 데이터 크기를 결정하였다.
Post-training
pre-training 모델을 가지고 instruction-tuning을 진행하였다.
preference data를 사용하여 reward model을 학습하고, instruction-tuning data에서 선호도가 낮은 data를 걸러낸 rejection sampling을 거친 data로 SFT를 진행한다.
SFT를 거친 모델을 preference data로 다시 DPO를 진행한다.
이 과정을 6번 반복하여 모델을 학습하였다.
[과제]
이번 주 과제는 corpus data를 가지고 LLM을 fine tuning을 하는 과제였다.
wandb를 처음 사용해봤는데, 설정하기도 쉽고 시도한 케이스별로 그래프를 확인할 수 있어서 좋았다.
프로젝트 마감이 얼마 남지 않았는데 프로젝트를 많이 진행하지 못하였다.🫠
벌써 마지막 주차가 다가오고 있다.
다음 내용이 궁금하다면?
이미 회원이신가요?
2025년 5월 18일 오후 12:33
하나부터 열까지 리더가 상세히 설명해 주기를 바라는 구성원이 있습니다. 반대로 큰 얼개만 듣고 나머지는 자율적으로 하고 싶어 하는 경우도 있죠. 회식에 참여하는 것을 너무나 힘겨워 하는 구성원이 있는 반면, 동료들과 함께 시간을 보내며 가까워지는 것을 원하는 구성원도 있습니다.
... 더 보기한
... 더 보기6
... 더 보기