LLM을 활용한 실전 AI 애플리케이션 개발
- 허정준
다시 정리여
사전 학습 (Pre-training)
모델이 대규모 데이터셋을 기반으로 일반적인 패턴, 언어 구조 및 지식을 학습하는 초기 단계
파운데이션 모델(Foundation Model)을 만드는 과정!
바디 + 헤드 중에 바디 부분 모델!
미세 조정 (Fine-tuning)
사전 학습된 모델을 특정 작업이나 도메인에 맞게 최적화하는 과정
바디 + 헤드 중에 헤드 부분 레이어 생성!
강화 학습 (Reinforcement Learning)
모델이 보상을 통해 올바른 행동을 배우도록 학습시키는 방법
예시 ) 강화 학습 알고리즘 (예: Proximal Policy Optimization, PPO), RLHF, Reinforcement Learning with Human Feedback)
굿굿이여
🔬말 잘 듣는 모델 만들기
GPT-3 (사용자의 말 다음에 올 말 생성)은 어떻게 챗 GPT(사용자의 요청에 답변 생성)가 될 수 있었을까?
- Instruction dataset 지시 데이터셋( 요청과 답변 형식) 으로 응답하기 학습
- PPO(proximal policy optimization), RLHF(reinforcement Learning from Human Feedback) 등으로 사용자의 선호를 학습
모델을 조정하는 방법
- 강화 학습(reinforcement learning) 사용하는 방법
- 강화 학습(reinforcement learning) 사용하지 않는 방법
예시
- 강화 학습 : PPO(proximal policy optimization), RLHF(reinforcement Learning from Human Feedback)
- non 강화 학습 : 기각 샘플링(rejective sampling), 직접 선호 최적화 ( Direct Preference Optimizatiuon, DPO)
🍄 코딩 테스트 통과하기 : 사전 학습과 지도 미세 조정
사전 학습하며 파운데이션 모델을 만들 때는 특정 태스크가 아닌, 언어에 대한 전체적인 이해도를 높이는 과정임.
언어 모델 : 다음에 올 단어의 확률을 예측하는 모델
언어 모델을 만들 때에는 일부 토큰을 넣고 다음에 올 토큰 중에서 정답 토큰의 확률을 높이는 방식으로 학습
🍯 연습 문제 풀어보기 : 지도 미세 조정
"지도" : 학습 데이터에 정답이 포함되어 있음
정렬 alignment : 사용자의 요청에 맞춰 응답
지시 데이터셋 : 사용자의 요청 / 적절한 형식의 대답 세트 데이터셋
=> 사전 학습 데이터보다 현저하게 적은 양
=> openai 는 데이터 레이블러를 고용하여 13000개 가량의 지시 데이터셋을 만들어서 학습 이용
llama 모델의 학습에 쓰인 alpaca 지시 데이터셋 예시
{
"instruction" : 사용자의 요구사항
"input" : 답변에 필요한 데이터
"output" : 정답 답변
"text" : 상단 세 개 변수의 내용을 정해진 포맷으로 묶은 데이터
}
학습 방법
- 사전 학습 때와 같이, 다음 단어를 예측하는 '인과적 언어 모델링(causal language modeling)' 을 사용해 학습
- 사전 학습과 미세 조정은 데이터셋의 차이로 구분됨
🍯 좋은 지시 데이터셋이 갖춰야 할 조건
데이터의 양? 품질? 형식?
🍮 데이터의 양
=> Meta. [Less is better than for Alignment] : 정렬을 위해서는 적은 데이터가 더 낫다.
- LIMA : llaMa 모델을 정렬하는 데 1000개 정도의 지시 데이터셋을 쓴 모델
- 52000개 학습 alpaca 지시 모델보다 성능이 좋음
- google-Bard, OpenAi-GPT-4보다 4-50퍼센트 가량의 데이터를 이기거나 맞먹음.
🍮 데이터의 형식
=> 다양할수록 좋음
=> Meta : 피상적인 정렬 가설 suparficial aliognment hypothesis : 모델의 지식과 능력은 사전 학습 단계에서 대부분 완성되기 때문에 답변의 형식/나열 방법만 새로 익히면 되므로 적은 데이터가 필요한 것이다.
🍮 데이터의 품질
=> 높을수록 좋음! ^^
=> microsoft : [Textbooks are all you need] : 데이터셋 품질을 높이면 더 작은 데이터셋, 더 작은 모델로도 모델의 성능을 높일 수 있다.
- 1.3B microsoft-pi 모델 > 16B 베이징대학교-wizardCoder 모델
- 데이터셋에서 고품질의 데이터만 선별해서 학습시키면 더 성능이 좋음 ( 저품질의 데이터는 있으면 오히려 악영향)
- 교육적 가치가 낮은 데이터를 필터링하는 과정을 사용하여 품질을 높일 수 있음
It's
lunch time
고품질의 음식을 넣어야
내 성능도 높아진다고 할 수 있겠다.
'🤖 AI > AI' 카테고리의 다른 글
📬️ OpenAI Capabilities : Function calling (2) | 2025.01.13 |
---|---|
🔬말 잘 듣는 모델 만들기 2 : 강화 학습(PPO/RLHF), 기각 샘플링/DPO (0) | 2025.01.10 |
✍️ OpenAI Cookbook : Prompting libraries & tools & guides 구경 (0) | 2025.01.09 |
✍️ OpenAI 공식 프롬프트 엔지니어링 가이드 (0) | 2025.01.09 |
🔣 openai api 인자 : logprobs (0) | 2025.01.09 |