01. OpenAI의 FIne-tuning
- 파인튜닝 : 특정 응용 프로그램에 맞게 언어 모델을 사용자 정의하는 기술임.
파인튜닝 과정 요약
1) 훈련 데이터 준비 및 업로드
훈련 데이터의 각 줄은 프롬프트-완성 쌍을 나타내야함.
2) 새로운 파인튜닝 모델 훈련
OPenAI 명령줄 인터페이스(CLI)를 사용하여 훈련 데이터 파일과 시작할 기본 모델을 지정하여 파인튜닝 작업을 시작함.
3) 파인튜닝된 모델 사용
파인튜닝 작업이 완료되면, 완성 요청에서 파인튜닝된 모델의 이름을 매개변수로 전달하여 파인튜닝된 모델을 사용함.
02. 데이터셋 준비하기 상세
- 모델을 파인튜닝하기 위해 각각 하나의 입력("prompt")과 해당하는 출력("completion")으로 구성된 학습 예제 세트가 필요.
- 각 프롬프트는 프롬프트의 끝과 완성의 시작을 모델에 알리기 위해 고정 구분자로 끝나야 함.(ex. \n\n###\n\n )
파인튜닝의 일반적인 사용 사례
- 분류(Classification)
- 모델이 사실이 아닌 주장을 하는 경우
- 감성 분석
- 이메일 분류를 위한 범주화
- 조건부 생성(Conditional generation)
- 위키피디아 문서를 기반으로 매력적인 광고 작성
- 개체 추출
- 고객 지원 챗봇
- 기술적인 속성 목록을 기반으로한 제품 설명
03. 실제 데이터셋 준비하기
1. 데이터 준비 (format 맞추기)
2. 모델 생성
3. 모델 활용
데이터 준비
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
prompt,completion
"Feel: Smile \n: 내 이름은 이수진이라고 해.",":) ㅎㅎ 이수진!"
"Feel: Smile \n: 내 이름은 홍길동이라고 해.",":) ㅎㅎ 홍길동!"
"Feel: Smile \n: 내 이름은 철수라고 해.",":) ㅎㅎ 철수!"
"Feel: Smile \n: 내 이름은 오옹이라고 해.",":) ㅎㅎ 오옹!"
"Feel: Sad \n: 내 이름은 이수진이라고 해.",":) ㅠ_ㅠ 이수진"
"Feel: Sad \n: 내 이름은 홍길동이라고 해.",":) ㅠ_ㅠ 홍길동"
"Feel: Sad \n: 내 이름은 철수라고 해.",":) ㅠ_ㅠ 철수"
"Feel: Sad \n: 내 이름은 오옹이라고 해.",":) ㅠ_ㅠ 오옹"
prompt, completion 쌍으로 이루어진 csv 예시 데이터를 만들어주었음.
코드를 실행하고 폴더를 확인해보면 example_prepared.jsonl 파일이 만들어져 있음.
이것은 fine-tuning에 활용할 수 있도록 준비된 데이터임.
04. Fine-tuning 모델 생성하기
- base model : ada, babbage, curie, davinci
Fine-tuning을 할 수 있는 모델은 openai에서 제공하는 base model을 활용할 수 있음.
- key setting
Fine-tuning은 OpenAI의 Key를 이용해서 진행해야 하고 Fine-tuning과정을 거치면 요금이 부과됨. 따라서, 시스템적으로 OpenAI Key를 셋팅해야함.
>openai --api-key MY_KEY api fine_tunes.create -t example_prepared.jsonl -m davinci
MY_KEY에 OpenAI 에서 발급받은 api Key를 넣어주고 코드를 돌리면 파인튜닝 완료.
05. Fine-tuning 모델 사용하기
(Open api를 아직 발급받지 않았기 때문에 예시 사진만 가져왔음.)
제작한 fine-tuning 모델을 사용하면 훈련을 시켰던 상태로 잘 나온다!
KoAlpaca에도 이러한 Fine-tuning을 사용해보면 어떨까 해서 공부해본 방법입니다.
KoAlpaca 코드도 직접 실행 해보려 했는데 RAM 에러가 계속 나서 ㅠㅠ 혹시 돌려보신 분 있으시면 어떻게 하셨는지 방법 공유해주시면 감사하겠습니다!
↓ open api 신청하는 법
+) 교수님이 말하신 KoAlpaca 직접 사용해볼 수 있도록 설명이 자세히 나와있음.
'자연어 > LLM' 카테고리의 다른 글
LLM 프로젝트 공부 - 섹션 3.Llama 2 논문 리뷰 (2) | 2023.10.10 |
---|---|
LLM 프로젝트 공부 - 섹션 2. Llama 1 모델 리뷰 (2) | 2023.10.10 |
LLM 프로젝트 공부 - 섹션 1. LLM 개요 (4) | 2023.10.10 |
LLM 프로젝트 공부 - 용어 공부 (2) | 2023.10.02 |
챗GPT 러닝데이 | 한국어 LLM 민주화의 시작 KoAlpaca (0) | 2023.10.02 |