PEFT
Safetensors
krx
South-Korea-Shuan commited on
Commit
f7ecbbe
1 Parent(s): 96e08bb

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +68 -72
README.md CHANGED
@@ -8,12 +8,11 @@ tags:
8
  - krx
9
  ---
10
 
 
11
 
12
- # Qwen 2.5 7B Instruct Model Fine-tuning
13
 
14
- This repository contains code for fine-tuning the Qwen 2.5 7B Instruct model using Amazon SageMaker. The project uses QLoRA (Quantized Low-Rank Adaptation) for efficient fine-tuning of large language models.
15
-
16
- ## Project Structure
17
 
18
  ```
19
  .
@@ -26,33 +25,33 @@ This repository contains code for fine-tuning the Qwen 2.5 7B Instruct model usi
26
  └── README.md
27
  ```
28
 
29
- ## Prerequisites
30
 
31
- - Amazon SageMaker access
32
- - Hugging Face account and access token
33
- - AWS credentials configured
34
  - Python 3.10+
35
 
36
- ## Environment Setup
37
 
38
- The project uses the following key dependencies:
39
 
40
  - PyTorch 2.1.0
41
- - Transformers (latest from main branch)
42
  - Accelerate >= 0.27.0
43
  - PEFT >= 0.6.0
44
  - BitsAndBytes >= 0.41.0
45
 
46
- ## Model Configuration
47
 
48
- - Base Model: `Qwen/Qwen2.5-7B-Instruct`
49
- - Training Method: QLoRA (4-bit quantization)
50
- - Instance Type: ml.p5.48xlarge
51
- - Distribution Strategy: PyTorch DDP
52
 
53
- ## Training Configuration
54
 
55
- ### Hyperparameters
56
 
57
  ```python
58
  {
@@ -72,80 +71,77 @@ The project uses the following key dependencies:
72
  }
73
  ```
74
 
75
- ### Environment Variables
76
 
77
- The training environment is configured with optimizations for distributed training and memory management:
78
 
79
- - CUDA device configuration
80
- - Memory optimization settings
81
- - EFA (Elastic Fabric Adapter) configuration for distributed training
82
- - Hugging Face token and cache settings
83
 
84
- ## Training Process
85
 
86
- 1. **Environment Preparation**:
87
- - Creates `requirements.txt` with necessary dependencies
88
- - Generates `bootstrap.sh` for Transformers installation
89
- - Sets up SageMaker training configuration
90
 
91
- 2. **Model Loading**:
92
- - Loads the base Qwen 2.5 7B model with 4-bit quantization
93
- - Configures BitsAndBytes for quantization
94
- - Prepares model for k-bit training
95
 
96
- 3. **Dataset Processing**:
97
- - Uses the Sujet Finance dataset
98
- - Formats conversations in Qwen2 format
99
- - Applies tokenization with maximum length of 2048 tokens
100
- - Implements data preprocessing with parallel processing
101
 
102
- 4. **Training**:
103
- - Implements gradient checkpointing for memory efficiency
104
- - Uses cosine learning rate schedule with warmup
105
- - Saves checkpoints every 50 steps
106
- - Logs training metrics every 10 steps
107
 
108
- ## Monitoring and Metrics
109
 
110
- The training process tracks the following metrics:
111
- - Training loss
112
- - Evaluation loss
113
 
114
- ## Error Handling
115
 
116
- The implementation includes comprehensive error handling and logging:
117
- - Environment validation
118
- - Dataset preparation verification
119
- - Training process monitoring
120
- - Detailed error messages and stack traces
121
 
122
- ## Usage
123
 
124
- 1. Configure AWS credentials and SageMaker role
125
- 2. Set up Hugging Face token
126
- 3. Run the training script:
127
 
128
  ```bash
129
  python sagemaker_train.py
130
  ```
131
 
132
- ## Custom Components
133
-
134
- ### Custom Tokenizer
135
 
136
- The project includes a custom implementation of the Qwen2 tokenizer (`tokenization_qwen2.py`) with:
137
- - Special token handling
138
- - Unicode normalization
139
- - Vocabulary management
140
- - Input preparation for model training
141
 
142
- ## Notes
 
 
 
 
143
 
144
- - The training script is optimized for the ml.p5.48xlarge instance type
145
- - Uses PyTorch Distributed Data Parallel for training
146
- - Implements gradient checkpointing for memory optimization
147
- - Includes automatic retry mechanism for training failures
148
 
149
- ## License
 
 
 
150
 
151
- [Add License Information]
 
8
  - krx
9
  ---
10
 
11
+ # Qwen 2.5 7B Instruct 모델 파인튜닝
12
 
13
+ 저장소는 Amazon SageMaker를 사용하여 Qwen 2.5 7B Instruct 모델을 파인튜닝하는 코드를 포함하고 있습니다. 이 프로젝트는 대규모 언어 모델의 효율적인 파인튜닝을 위해 QLoRA(Quantized Low-Rank Adaptation)를 사용합니다.
14
 
15
+ ## 프로젝트 구조
 
 
16
 
17
  ```
18
  .
 
25
  └── README.md
26
  ```
27
 
28
+ ## 사전 요구사항
29
 
30
+ - Amazon SageMaker 접근 권한
31
+ - Hugging Face 계정 접근 토큰
32
+ - AWS 자격 증명 구성
33
  - Python 3.10+
34
 
35
+ ## 환경 설정
36
 
37
+ 프로젝트에서 사용하는 주요 의존성:
38
 
39
  - PyTorch 2.1.0
40
+ - Transformers (main 브랜치의 최신 버전)
41
  - Accelerate >= 0.27.0
42
  - PEFT >= 0.6.0
43
  - BitsAndBytes >= 0.41.0
44
 
45
+ ## 모델 구성
46
 
47
+ - 기본 모델: `Qwen/Qwen2.5-7B-Instruct`
48
+ - 학습 방법: QLoRA (4비트 양자화)
49
+ - 인스턴스 유형: ml.p5.48xlarge
50
+ - 분산 전략: PyTorch DDP
51
 
52
+ ## 학습 구성
53
 
54
+ ### 하이퍼파라미터
55
 
56
  ```python
57
  {
 
71
  }
72
  ```
73
 
74
+ ### 환경 변수
75
 
76
+ 학습 환경은 분산 학습 메모리 관리를 위한 최적화로 구성되어 있습니다:
77
 
78
+ - CUDA 장치 구성
79
+ - 메모리 최적화 설정
80
+ - 분산 학습을 위한 EFA(Elastic Fabric Adapter) 구성
81
+ - Hugging Face 토큰 캐시 설정
82
 
83
+ ## 학습 프로세스
84
 
85
+ 1. **환경 준비**:
86
+ - 필요한 의존성이 포함된 `requirements.txt` 생성
87
+ - Transformers 설치를 위한 `bootstrap.sh` 생성
88
+ - SageMaker 학습 구성 설정
89
 
90
+ 2. **모델 로딩**:
91
+ - 4비트 양자화로 기본 Qwen 2.5 7B 모델 로드
92
+ - 양자화를 위한 BitsAndBytes 구성
93
+ - k-bit 학습을 위한 모델 준비
94
 
95
+ 3. **데이터셋 처리**:
96
+ - Sujet Finance 데이터셋 사용
97
+ - Qwen2 형식으로 대화 포맷팅
98
+ - 최대 2048 토큰 길이로 토크나이징
99
+ - 병렬 처리를 통한 데이터 전처리 구현
100
 
101
+ 4. **학습**:
102
+ - 메모리 효율성을 위한 gradient checkpointing 구현
103
+ - 웜업이 포함된 코사인 학습률 스케줄 사용
104
+ - 50 스텝마다 체크포인트 저장
105
+ - 10 스텝마다 학습 메트릭 로깅
106
 
107
+ ## 모니터링 메트릭
108
 
109
+ 학습 과정에서 다음 메트릭을 추적합니다:
110
+ - 학습 손실(Training loss)
111
+ - 평가 손실(Evaluation loss)
112
 
113
+ ## 오류 처리
114
 
115
+ 구현에는 포괄적인 오류 처리 로깅이 포함되어 있습니다:
116
+ - 환경 유효성 검사
117
+ - 데이터셋 준비 검증
118
+ - 학습 프로세스 모니터링
119
+ - 자세한 오류 메시지 스택 추적
120
 
121
+ ## 사용 방법
122
 
123
+ 1. AWS 자격 ��명 SageMaker 역할 구성
124
+ 2. Hugging Face 토큰 설정
125
+ 3. 학습 스크립트 실행:
126
 
127
  ```bash
128
  python sagemaker_train.py
129
  ```
130
 
131
+ ## 커스텀 컴포넌트
 
 
132
 
133
+ ### 커스텀 토크나이저
 
 
 
 
134
 
135
+ 프로젝트는 다음 기능이 포함된 Qwen2 토크나이저의 커스텀 구현(`tokenization_qwen2.py`)을 포함합니다:
136
+ - 특수 토큰 처리
137
+ - 유니코드 정규화
138
+ - 어휘 관리
139
+ - 모델 학습을 위한 입력 준비
140
 
141
+ ## 주의사항
 
 
 
142
 
143
+ - 학습 스크립트는 ml.p5.48xlarge 인스턴스 타입에 최적화되어 있습니다
144
+ - PyTorch Distributed Data Parallel을 사용한 학습
145
+ - 메모리 최적화를 위한 gradient checkpointing 구현
146
+ - 학습 실패에 대한 자동 재시도 메커니즘 포함
147