File size: 3,873 Bytes
2714fb4 68fa2b2 2714fb4 f7ecbbe 6f0625d f7ecbbe 6f0625d f7ecbbe 6f0625d 2714fb4 f7ecbbe 6f0625d f7ecbbe 6f0625d 2714fb4 f7ecbbe 2714fb4 f7ecbbe 2714fb4 6f0625d f7ecbbe 6f0625d 2714fb4 f7ecbbe 2714fb4 f7ecbbe 2714fb4 f7ecbbe 2714fb4 f7ecbbe 2714fb4 6f0625d 2714fb4 f7ecbbe 2714fb4 f7ecbbe 2714fb4 f7ecbbe 2714fb4 f7ecbbe 2714fb4 f7ecbbe 2714fb4 f7ecbbe 2714fb4 f7ecbbe 2714fb4 f7ecbbe 2714fb4 f7ecbbe 2714fb4 f7ecbbe 2714fb4 f7ecbbe 2714fb4 f7ecbbe 2714fb4 f7ecbbe 2714fb4 f7ecbbe 2714fb4 6f0625d 2714fb4 f7ecbbe 2714fb4 f7ecbbe 2714fb4 f7ecbbe 2714fb4 f7ecbbe 6f0625d f7ecbbe 2714fb4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
---
base_model: Qwen/Qwen2.5-7B-Instruct
library_name: peft
datasets:
- gbharti/finance-alpaca
- sujet-ai/Sujet-Finance-Instruct-177k
tags:
- krx
---
# Qwen 2.5 7B Instruct 모델 파인튜닝
이 저장소는 Amazon SageMaker를 사용하여 Qwen 2.5 7B Instruct 모델을 파인튜닝하는 코드를 포함하고 있습니다. 이 프로젝트는 대규모 언어 모델의 효율적인 파인튜닝을 위해 QLoRA(Quantized Low-Rank Adaptation)를 사용합니다.
## 프로젝트 구조
```
.
├── scripts/
│ ├── train.py
│ ├── tokenization_qwen2.py
│ ├── requirements.txt
│ └── bootstrap.sh
├── sagemaker_train.py
└── README.md
```
## 사전 요구사항
- Amazon SageMaker 접근 권한
- Hugging Face 계정 및 접근 토큰
- AWS 자격 증명 구성
- Python 3.10+
## 환경 설정
프로젝트에서 사용하는 주요 의존성:
- PyTorch 2.1.0
- Transformers (main 브랜치의 최신 버전)
- Accelerate >= 0.27.0
- PEFT >= 0.6.0
- BitsAndBytes >= 0.41.0
## 모델 구성
- 기본 모델: `Qwen/Qwen2.5-7B-Instruct`
- 학습 방법: QLoRA (4비트 양자화)
- 인스턴스 유형: ml.p5.48xlarge
- 분산 전략: PyTorch DDP
## 학습 구성
### 하이퍼파라미터
```python
{
'epochs': 3,
'per_device_train_batch_size': 4,
'gradient_accumulation_steps': 8,
'learning_rate': 1e-5,
'max_steps': 1000,
'bf16': True,
'max_length': 2048,
'gradient_checkpointing': True,
'optim': 'adamw_torch',
'lr_scheduler_type': 'cosine',
'warmup_ratio': 0.1,
'weight_decay': 0.01,
'max_grad_norm': 0.3
}
```
### 환경 변수
학습 환경은 분산 학습 및 메모리 관리를 위한 최적화로 구성되어 있습니다:
- CUDA 장치 구성
- 메모리 최적화 설정
- 분산 학습을 위한 EFA(Elastic Fabric Adapter) 구성
- Hugging Face 토큰 및 캐시 설정
## 학습 프로세스
1. **환경 준비**:
- 필요한 의존성이 포함된 `requirements.txt` 생성
- Transformers 설치를 위한 `bootstrap.sh` 생성
- SageMaker 학습 구성 설정
2. **모델 로딩**:
- 4비트 양자화로 기본 Qwen 2.5 7B 모델 로드
- 양자화를 위한 BitsAndBytes 구성
- k-bit 학습을 위한 모델 준비
3. **데이터셋 처리**:
- Sujet Finance 데이터셋 사용
- Qwen2 형식으로 대화 포맷팅
- 최대 2048 토큰 길이로 토크나이징
- 병렬 처리를 통한 데이터 전처리 구현
4. **학습**:
- 메모리 효율성을 위한 gradient checkpointing 구현
- 웜업이 포함된 코사인 학습률 스케줄 사용
- 50 스텝마다 체크포인트 저장
- 10 스텝마다 학습 메트릭 로깅
## 모니터링 및 메트릭
학습 과정에서 다음 메트릭을 추적합니다:
- 학습 손실(Training loss)
- 평가 손실(Evaluation loss)
## 오류 처리
구현에는 포괄적인 오류 처리 및 로깅이 포함되어 있습니다:
- 환경 유효성 검사
- 데이터셋 준비 검증
- 학습 프로세스 모니터링
- 자세한 오류 메시지 및 스택 추적
## 사용 방법
1. AWS 자격 증명 및 SageMaker 역할 구성
2. Hugging Face 토큰 설정
3. 학습 스크립트 실행:
```bash
python sagemaker_train.py
```
## 커스텀 컴포넌트
### 커스텀 토크나이저
프로젝트는 다음 기능이 포함된 Qwen2 토크나이저의 커스텀 구현(`tokenization_qwen2.py`)을 포함합니다:
- 특수 토큰 처리
- 유니코드 정규화
- 어휘 관리
- 모델 학습을 위한 입력 준비
## 주의사항
- 학습 스크립트는 ml.p5.48xlarge 인스턴스 타입에 최적화되어 있습니다
- PyTorch Distributed Data Parallel을 사용한 학습
- 메모리 최적화를 위한 gradient checkpointing 구현
- 학습 실패에 대한 자동 재시도 메커니즘 포함
|