It's going to be one day 🍀

안녕하세요! 매일 매일 공부하려고 노력하는 백엔드 개발자 지망생의 공부 흔적입니다.

자연어/LLM

LLM 프로젝트 공부 - OpenAI의 ChatGPT를 Fine-tuning 해보기

2jin2 2023. 10. 4. 22:22
 

제1부: OpenAI의 ChatGPT를 Fine-tuning 하기

이 책의 제 1부에서는 OpenAI의 ChatGPT를 Fine-tuning 하는 방법에 대해 다룹니다. Fine-tuning은 ChatGPT와 같은 언어 모델을 특정한 용도에 맞…

wikidocs.net

01. OpenAI의 FIne-tuning

- 파인튜닝 : 특정 응용 프로그램에 맞게 언어 모델을 사용자 정의하는 기술임.

 

파인튜닝 과정 요약

 1) 훈련 데이터 준비 및 업로드 

훈련 데이터의 각 줄은 프롬프트-완성 쌍을 나타내야함.

 2) 새로운 파인튜닝 모델 훈련

OPenAI 명령줄 인터페이스(CLI)를 사용하여 훈련 데이터 파일과 시작할 기본 모델을 지정하여 파인튜닝 작업을 시작함.

 3) 파인튜닝된 모델 사용

파인튜닝 작업이 완료되면, 완성 요청에서 파인튜닝된 모델의 이름을 매개변수로 전달하여 파인튜닝된 모델을 사용함.

 

02. 데이터셋 준비하기 상세

- 모델을 파인튜닝하기 위해 각각 하나의 입력("prompt")과 해당하는 출력("completion")으로 구성된 학습 예제 세트가 필요.

- 각 프롬프트는 프롬프트의 끝과 완성의 시작을 모델에 알리기 위해 고정 구분자로 끝나야 함.(ex.  \n\n###\n\n )

 

파인튜닝의 일반적인 사용 사례

- 분류(Classification)

   - 모델이 사실이 아닌 주장을 하는 경우

   - 감성 분석

   - 이메일 분류를 위한 범주화

- 조건부 생성(Conditional generation)

   - 위키피디아 문서를 기반으로 매력적인 광고 작성

   - 개체 추출

   - 고객 지원 챗봇

   - 기술적인 속성 목록을 기반으로한 제품 설명


 

 

OpenAI GPT Fine-Tuning(파인튜닝) 방법 정리 - 나만의 GPT 모델 만들기

포스팅 개요 최근 OpenAI의 ChatGPT가 각광을 받으면서 대규모 언어 모델(LLM, Large Language Model)이 주목 받고 있습니다. 이전 포스팅에서는 이러한 LLM 모델, 그 중 chatgpt의 전신이 되는 gpt3.5를 활용하기

lsjsj92.tistory.com

 

 

[chatGPT] GPT 3버전 fine-tuning으로 데이터 학습 및 사용 방법

이전 글을 보시려면 아래 링크를 클릭해주세요. [chatGPT] 파이썬으로 chatGPT API 호출하기 [chatGPT] 파이썬으로 chatGPT API 호출하기 [chatGPT] 파이썬으로 chatGPT API 호출하기 1. 인증키 발급 chatGPT를 API로

domdom.tistory.com

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.csv 파일을 읽어서 fine-tuning을 위한 데이터 생성 준비를 함.

코드를 실행하고 폴더를 확인해보면 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 신청하는 법

 

Python OpenAI API를 활용해 GPT3(GPT3.5) 사용하기(Feat. ChatGPT)

포스팅 개요 최근 OpenAI chatGPT가 각광을 받으면서, 저도 ChatGPT에 대해서 관심이 많아졌습니다. 이미 OpenAI에서 GPT 계열의 모델들은 API를 제공해주고 있고 그 중 ChatGPT의 전신이 되는 GPT3.5의 버전의

lsjsj92.tistory.com

 

+) 교수님이 말하신 KoAlpaca 직접 사용해볼 수 있도록 설명이 자세히 나와있음.

 

[GPT] 한국어버전 GPT, beomi/KoAlpaca-Polyglot 사용해보기

chatGPT 데이터 학습 및 사용 방법은 아래 링크를 눌러주세요! [chatGPT] GPT 3버전 fine-tuning으로 데이터 학습 및 사용 방법 [chatGPT] GPT 3버전 fine-tuning으로 데이터 학습 및 사용 방법 이전 글을 보시려면

domdom.tistory.com