티스토리 뷰
Fine-Tuning
-사전 훈련된 모델을 특정 작업이나 데이터셋에 맞게 미세 조정하는 과정
파인튜닝 수행 절차
- 사전 훈련된 모델 선택
- 데이터 준비
- 모델 수정
- 추가 학습
1. 데이터 준비
특정 작업에 사용할 데이터 준비
사전 훈련된 모델과 호환되는 형태로 전처리
NLP: 텍스트 토큰화
컴퓨터 비전: 이미지를 적절한 크기로 resize
1) Dataset 만들기: train, val
데이터셋 만들기
2) 토크나이징
토크나이징 결과:
- input_ids: 토큰화 된 입력 시퀀스를 숫자 ID로 변환한 것
- attention_mask: 모델이 패딩 된 부분을 무시하고 실제 유용한 데이터만 집중
2. 파인튜닝
사전 훈련된 모델을 특정 작업이나 데이터셋에 맞게 미세조정하는 과정
1) 사전학습 모델 준비
AutoModel: 사전 훈련된 모델의 이름이나 경로 제공 -> 가중치를 자동으로 로드
SquenceClassification: 시퀀스 분류 => 다중 분류
num_labels: output_layer의 노드 수(다중분류 클래스 수)
2) 학습
- TrainingArguments 설정
Hugging face trainer의 학습 세부 설정을 컨트롤
- Trainer 설정
모델 학습과 평가를 쉽게 할 수 있도록 도와주는 클래스, API
- 모델학습
- 모델평가
3. 허깅페이스에 모델등록
1) 구글 드라이브에 모델 저장하기
- 구글드라이브에 fine_tuned 폴더 생성
2) 허깅페이스에 모델 등록
- API 파일을 Hub에 푸시
- 웹사이트를 통해 파일을 Hub로 업로드(모델 저장소 만들고 파일 업로드)
3) 허깅페이스에 모델 사용
- 모델 다운로드: pipeline 함수를 이용해서 모델을 다운로드
- 모델 사용: 입력(문장), 출력(감정분류 결과)
4. LoRA 기반 파인튜닝
기존에 학습된 내용은 유지하면서 새로운 데이터에만 필요한 변화만 살짝 추가하는 방식
기존 가중치와 다른 차이만 반영
작업 유형: 시퀀스 분류 (SEQ_CLS)
랭크 (r): 8 → 적은 수의 파라미터로 학습
스케일 계수 (lora_alpha): 32 → 학습 효과 조절
드롭아웃 (lora_dropout): 0.1 → 과적합 방지
적용 레이어: q_lin, v_lin → attention 레이어에만 적용
Bias 학습: 하지 않음 ("none")
즉, attention 레이어의 일부만 가볍게 학습하도록 최적화한 효율적인 파인튜닝 구성
'Data science > Langchain' 카테고리의 다른 글
[Langchain] 5. 메모리와 체인 (1) | 2025.05.03 |
---|---|
[Langchain] 4. Prompt와 OutputParser (0) | 2025.05.03 |
[Langchain] 3. LangChain 모델 (0) | 2025.05.03 |
[Langchain] 1. 모델 그대로 사용하기 (1) | 2025.05.01 |