22. Lab: 한국어 금융 Copilot
난이도: 중급 | GPU: RTX 3090~5090 (VRAM 24GB+) | 소요 시간: 8~16시간
목표
Qwen3.5-4B를 한국어 금융 도메인에 특화시킵니다. 179K 한국어 금융 데이터(Won-Instruct, KorfinQA, Financial MMLU 등 5개 데이터셋 통합)로 Dense LoRA SFT를 수행합니다.
왜 Qwen3.5-4B인가?
- Post-training 완료 모델: 이미 고품질 instruction-following이 학습됨
- 한국어 성능 우수: Qwen3.5 시리즈는 한국어 처리 능력이 뛰어남
- 4B 크기: 24GB GPU에서 int4 양자화로 훈련 가능
- 한국어 + 금융 도메인 지식을 추가하는 것이 비교적 쉬운 조합
사전 준비
데이터
19_data_collection.md의 섹션 3 (한국어 금융 데이터) 를 실행하여 다음을 준비합니다:
data/finance/finance_ko_sft_179k_raw.jsonl # 훈련 (~179K rows)
data/finance/finance_ko_sft_1k_raw.jsonl # 벤치 (1K rows)
데이터 구성
| 소스 | 규모 | 내용 |
|---|---|---|
| Won-Instruct (KRX) | ~100K | 한국 금융 instruction 데이터 |
| KorfinQA | ~10K | 한국 금융 QA |
| Financial MMLU KO | ~2K | 금융 지식 평가 |
| FLARE ConvFinQA KO | ~2K | 대화형 금융 QA |
| QA_Instruction (6 configs) | ~65K | 수치 추론/추출/비교 등 다양한 금융 태스크 |
Config 설명
훈련 프리셋 (configs/presets/qwen3.5_4b_dense_lora_sft.yml)
backbone: qwen3
model_name: Qwen/Qwen3.5-4B
injection:
strategy: dense_lora
lora_r: 96 # 큰 r -> 금융 도메인 표현력 확보
lora_alpha: 96
lora_dropout: 0.05
target_keywords: [gate_proj, up_proj, down_proj, o_proj]
attn_lora:
enabled: true
keywords: [q_proj, k_proj, v_proj]
training:
lr: 8.0e-5
max_train_steps: 32000 # ~179K / (4*4) = ~2.8 epochs
batch_size: 4
grad_accum_steps: 4 # effective batch 16
벤치 프리셋 (configs/bench/finance_copilot.yml)
Judge 모델로 금융 응답 품질을 평가합니다. Baseline은 원본 Qwen3.5-4B (튜닝 전).
실행
��련
nohup eulerforge train \
--preset configs/presets/qwen3.5_4b_dense_lora_sft.yml \
--set model_name=Qwen/Qwen3.5-4B \
--set data.format=raw \
--set data.task=sft \
--set data.path=data/finance/finance_ko_sft_179k_raw.jsonl \
--set data.max_length=1024 \
--set training.max_train_steps=60000 \
--set training.batch_size=3 \
--set training.grad_accum_steps=8 \
--output-dir outputs/ko_finance_copilot_sft \
> finance_qwen3.5_4b_dense_lora_sft.out &
훈련 모니터링:
tail -f finance_qwen3.5_4b_dense_lora_sft.out
벤치마크
훈련 완료 후:
nohup eulerforge bench \
--preset configs/bench/finance_copilot.yml \
> bench_finance_copilot.out &
벤치마크는 다음을 비교합니다:
- Target: 금융 SFT 훈련된 모델 (outputs/ko_finance_copilot_sft/final)
- Baseline: 원본 Qwen3.5-4B (튜닝 전)
- Judge: Ollama judge 모델 (pointwise 1~10점)
결과 해석
기대 패턴
- 금융 용어, 한국 금융 제도(KRX, 예금보호 등)에 대한 답변 품질 향상
- 수치 추론 (Financial Reasoning) 능력 향상
- 일반 한국어 대화 능력은 유지 (Qwen3.5가 이미 강하므로)
개선 포인트
max_train_steps를 줄이면 과적합 방지 (30K에서 먼저 시도)data.max_length=2048로 늘리면 긴 금융 문서 처리 향상 (VRAM 주의)- DPO 추가: 금융 선호 데이터가 있다면 SFT 이후 DPO로 답변 스타일 정렬
관련 문서
- 01_dense_lora.md -- Dense LoRA 기초
- 11_bench.md -- 벤치마크 가이드
- 19_data_collection.md -- 데이터 수집