LLM in Production
LLM을 프로덕션 시스템에서 효율적으로 학습·서빙·평가하는 엔지니어링 패턴
개요
LLM이 프로토타입에서 프로덕션으로 넘어가면서, 추론 비용·지연·품질 보장·스케일링이 핵심 엔지니어링 과제로 부상했다. 프롬프트 엔지니어링 → SFT → RL의 점진적 성숙 경로와, RAG → Graph RAG → 에이전틱 검색의 검색 진화가 동시에 진행 중이다.
프롬프트 → SFT → RL: 점진적 성숙 경로
| 단계 | 장점 | 단점 | 적합 시점 |
|---|---|---|---|
| 프롬프트 엔지니어링 | 빠른 구축, 유연 | 외부 API 의존, 느린 추론, 프라이버시 | 프로토타이핑 |
| SFT (Supervised Fine-Tuning) | 데이터 내부 유지, 빠른 추론 | 레이블 데이터·학습 인프라 필요 | 민감 데이터 + 지연 요구 |
| RL (Reinforcement Learning) | 인간 레이블 없이 자기 개선 | 보상 설계 어려움, 불안정 | 대규모 스케일링 |
Booking.com — SFT 기반 여행 추천
- LLM Fine-Tuning — 7B 모델을 LoRA/QLoRA로 파인튜닝
- p99 추론 지연 67% 감소 (약 3배), Hit@5 8% 향상 (사용자 위치 컨텍스트)
- 레이블 설계: 예약 > 역순 클릭 > LLM-as-Judge 필터 조회
- K 제어: 학습 샘플에 정수 prepend → 정확히 K개 추천
Netflix — Post-Training 스케일링
- LLM Fine-Tuning — SFT + RL 통합 프레임워크
- On-the-fly 시퀀스 패킹(FFD 빈 패킹)으로 4.7x 토큰 처리량 향상 (92-97% 효율)
- 모델 개발자 40-60%의 시간이 데이터 준비 → 표준화된 데이터 추상화로 해결
LLM 서빙 최적화
LinkedIn — SGLang 기반 랭킹
- ML Ranking Systems — prefill-only 워크로드에 특화된 4단계 최적화
- 배치 토큰화 → 스코어링 전용 패스 → 인배치 프리픽스 캐싱 → Python 런타임 최적화
- 3x 처리량 향상 (750 → 2,200 items/s/GPU)
- GPU가 빨라지자 Python GC/GIL이 병목 →
gc.freeze()로 100-300ms 지연 제거
Spotify Wrapped — 14억 LLM 리포트
- LLM 호출은 쉬운 부분, 진짜 일은 용량 계획과 안전 시스템
- 디스틸레이션으로 비용 최적화
RAG의 진화
Vanilla RAG → Graph RAG → 에이전틱 검색
- RAG — 구조 파괴, 고정 Top-K, 교차 페이지 기억상실 문제를 단계적으로 해결
| 세대 | 접근 | 한계 |
|---|---|---|
| Vanilla RAG | 벡터 유사도 Top-K | 구조 파괴, 고정 K |
| Graph RAG | 지식 그래프 + 커뮤니티 요약 | $33K 인덱싱 비용 |
| LAD-RAG++ | 문서 그래프 + 에이전틱 루프 | 엔지니어링 복잡도 높음 |
핵심 기법
- Triple-hybrid 검색: BM25 + Dense + SPLADE + ColBERT 리랭킹
- 러닝 메모리: 인간 독자 시뮬레이션으로 교차 페이지 연결
- 결정론적 링킹: LLM은 시맨틱 판단만, 엣지 생성은 규칙 기반
- 메모리 토큰 75-80% 감소 (시간 기반 감쇠)
비용 최적화
- 선택적 그래프 구축으로 10~90% 비용 절감
- 하이브리드 벡터-그래프 아키텍처가 단일 방식 대비 최적
실전 RAG 구축 교훈
- 1TB 기술 문서 대상 로컬 RAG 구축에서 데이터 품질이 가장 중요한 요인
- 배치 처리 + 체크포인트 필수, ChromaDB(HNSW)로 벡터 저장
- GPU 투입으로 인덱싱 가속 (738K 벡터, 54GB 인덱스)
LLM 평가
자동화된 품질 보증
- LLM Evaluation — LangChain Deep Agent eval, DSPy 프롬프트 최적화
- LLM-as-Judge — Zalando 검색 품질 ($250), Dropbox 관련성 (45% 에러 감소)
평가 원칙
- 벤치마크 점수보다 프로덕션 실패 패턴 기반 eval
- 정확성 + 효율성(Ideal Trajectory) 이중 메트릭
- pytest 태그로 eval 서브셋 실행
- Booking.com처럼 LLM-as-Judge를 레이블링에도 활용
에이전트 메모리와 컨텍스트
큰 컨텍스트 윈도우보다 구조화된 메모리가 효과적이다.
- Context Engineering — 5대 패턴, Context Anchoring, 마크다운 메모리
- AI Agent — LangChain Agent Builder: 단기/장기/절차적 메모리
- 런북 기반 접근으로 반복 실행 시 토큰 90% 이상 절감
트레이드오프 테이블
| 선택 | 이점 | 비용 |
|---|---|---|
| 외부 API 프롬프트 | 빠른 시작 | 지연, 비용, 프라이버시 위험 |
| 내부 SFT | 빠른 추론, 데이터 보호 | 학습 인프라, 레이블 데이터 |
| Vanilla RAG | 간단한 구현 | 장문 문서에서 실패 |
| Graph RAG | 구조 보존, 교차 참조 | 인덱싱 비용, 엔지니어링 복잡도 |
| LLM-as-Judge | 대규모 자동 평가 | 평가자 자체의 편향 |
관련 위키
- LLM Fine-Tuning
- RAG
- LLM Evaluation
- LLM-as-Judge
- AI Agent
- Context Engineering
- ML Ranking Systems
- Knowledge Representation — RAG + 지식 그래프 연결
- Feature Store — 실시간 ML 피처 서빙
관련 이슈: DEW #256, #257, #258, #261, #262, #263, #264, #265