33차시. Modular RAG 최적화
3. 최적화 ① — 모델 티어링
출처: 원본 PDF 33차시_ModularRAG최적화.pdf 7~8쪽 · 쪽 그림 7쪽 8쪽
모든 작업에 같은 모델을 쓸 필요가 없습니다. 난이도에 맞게 나눕니다.
3-1) 작업별 난이도
| 작업 | 난이도 | 필요한 능력 |
|---|---|---|
| 분류 | 낮음 | 4개 중 하나 고르기. 작은 모델로 충분 |
| 검증 | 중간 | 대조와 판정. 중간 모델 가능 |
| 재작성 | 중간 | 표현 변환. 중간 모델 가능 |
| 생성 | 높음 | 자연스러운 문장 작성. 좋은 모델 필요 |
📝 config.py 수정
# ── 모델 티어링 ──
LLM_MODEL = "gpt-4o-mini" # 생성 — 품질 우선
VERIFY_MODEL = "gpt-4o-mini" # 검증 — 필요시 더 작은 것으로
CLASSIFY_MODEL = "gpt-4o-mini" # 분류 — 가장 작은 것으로
REWRITE_MODEL = "gpt-4o-mini" # 재작성
# 각 노드에서
_llm = ChatOpenAI(model=config.CLASSIFY_MODEL,
temperature=0, max_tokens=10,
timeout=config.CLASSIFY_TIMEOUT)💡 max_tokens 제한도 중요합니다
분류는 단어 하나만 나오면 됩니다.
max_tokens=10
이걸 안 걸면 모델이 설명을 덧붙이려다
불필요한 토큰을 씁니다.
· 분류 → 10
· 재작성 → 60
· 검증 → 150 (JSON + reason)
· 생성 → 500 이상
3-2) 티어링 효과 측정
출처: 원본 PDF 8쪽
■ 변경 전 (전부 같은 모델, max_tokens 무제한)
합계 160회 120.2s
■ 변경 후 (티어링 + max_tokens 제한)
합계 160회 94.7s ← 21% 단축