- Authors
- Name

문제 정의
QLoRA 파인튜닝과 speculative decoding은 비용 절감 기술이지만, 품질 회귀와 운영 복잡도를 동시에 키울 수 있다.
아키텍처/원리
- QLoRA는 저비트 양자화 + 어댑터 학습으로 비용을 줄이되 데이터 품질이 성능을 좌우한다.
- Speculative decoding은 draft/target 모델 정합성이 낮으면 오히려 느려질 수 있다.
- 배포는 오프라인 점수보다 온라인 latency tail 개선으로 판단한다.
구현 예시 1
finetune:
method: qlora
bits: 4
lora_r: 64
target_modules: [q_proj, k_proj, v_proj, o_proj]
max_seq_len: 4096
구현 예시 2
def accept_ratio(accepted,total):
return 0 if total==0 else accepted/total
구현 예시 3
SELECT model_version, avg(win_rate) win, avg(p95_ms) p95
FROM llm_online_ab
GROUP BY model_version ORDER BY win DESC;
구현 예시 4
name: llm-serving-gate
on: [push]
jobs:
bench:
runs-on: ubuntu-latest
steps:
- run: python bench/spec_decode.py --target target --draft draft
- run: python bench/check.py --min-accept-ratio 0.55 --max-p95 700
운영 팁
- 파인튜닝 데이터셋은 라이선스·PII 검증을 먼저 통과시킨다.
- speculative decoding은 request class별로 on/off 라우팅한다.
- drift 감지를 위해 주간 고정 평가셋을 유지한다.
트러블슈팅
- 학습은 성공했는데 품질 하락: instruction format mismatch, data contamination 점검.
- accept ratio 저하: draft 모델 재학습 또는 temperature 조정.
- 서빙 메모리 부족: tensor parallel과 paged attention 파라미터 재조정.
체크리스트
- 데이터 거버넌스 점검
- 오프라인+온라인 동시 평가
- accept ratio 모니터링
- fallback 단일 디코딩 준비
- 모델 카드 업데이트
결론
LLM 최적화의 성패는 알고리즘 선택보다 “평가-배포-롤백 루프”를 얼마나 촘촘히 설계했는지에 달려 있다.