주제: 6.5-7 LLMOps (Prompt Versioning / RAG Evaluation / Guardrails)
분류: rag_agent
타입: concept
난이도: 중상
선수지식: 있음 — RAG Pipeline, Model Serving, Monitoring
문제 설정
기존 ML 시스템은 모델 중심으로 운영되었습니다. 그러나 LLM 시스템에서는 다음 요소들이 추가로 중요해집니다.
- Prompt
- Retrieval
- LLM Output
- Safety / Guardrails
이 전체 운영 체계를 LLMOps라고 합니다.
User Query
↓
Prompt Construction
↓
Retrieval
↓
LLM Generation
↓
Guardrails
↓
Response
1. Prompt Versioning
LLM 시스템에서는 prompt 자체가 모델 행동을 결정합니다.
즉 prompt는 사실상 프로그램 코드와 같은 역할을 합니다.
Prompt_v1
Prompt_v2
Prompt_v3
LLM 출력 확률:
기호 의미
- x : 사용자 입력
- prompt : 시스템 프롬프트
- y : 모델 출력
왜 필요한가
prompt 변경만으로 모델 동작이 크게 달라질 수 있습니다.
주의점
prompt 변경은 모델 성능에 직접적인 영향을 줍니다.
Prompt Versioning 예
| Version | 변경 내용 |
|---|---|
| v1 | 기본 QA prompt |
| v2 | RAG context 추가 |
| v3 | citation 출력 추가 |
2. RAG Evaluation
RAG 시스템은 다음 두 단계 성능을 모두 평가해야 합니다.
- retrieval quality
- generation quality
retrieval metric:
기호 의미
- k : retrieval 결과 개수
왜 필요한가
retrieval 성능이 generation 성능을 결정합니다.
generation 평가:
평가 방법
- human evaluation
- LLM-as-judge
- automated metric
3. End-to-End RAG 평가
전체 시스템 평가는 다음 확률로 볼 수 있습니다.
왜 중요한가
retrieval과 generation을 함께 평가해야 합니다.
4. Guardrails
Guardrails는 LLM 출력이 안전한지 검사하는 시스템입니다.
목표:
- hallucination 감소
- unsafe content 차단
- policy enforcement
Guardrail 구조
LLM Output
↓
Safety Check
↓
Filtered Output
5. Guardrail 유형
| 유형 | 설명 |
|---|---|
| Input filter | 유해 입력 차단 |
| Output moderation | 출력 검열 |
| Fact verification | 사실 검증 |
예:
if unsafe(output):
block_response()
6. LLM Evaluation Loop
Prompt update
↓
Run evaluation
↓
Compare metrics
↓
Deploy
LLM 시스템은 반복적으로 개선됩니다.
7. LangSmith
LangSmith는 LLM 애플리케이션 observability 도구입니다.
기능:
- prompt tracing
- RAG pipeline debugging
- evaluation dataset 관리
8. TruLens
TruLens는 LLM evaluation 프레임워크입니다.
평가 항목:
- groundedness
- relevance
- answer quality
9. PromptLayer
PromptLayer는 prompt version 관리 도구입니다.
기능:
- prompt logging
- version control
- prompt analytics
코드-수식 연결
| 개념 | 코드 | 설명 |
|---|---|---|
| prompt 기록 | promptlayer.log_prompt() |
prompt 버전 기록 |
| RAG 평가 | trulens.evaluate() |
RAG 품질 평가 |
| trace 분석 | langsmith.trace() |
pipeline 디버깅 |
자주 하는 오해 5개
- LLM 시스템은 모델만 관리하면 된다고 생각한다
- prompt는 실험 없이 수정해도 된다고 생각한다
- RAG 시스템은 retrieval만 평가하면 된다고 생각한다
- guardrails는 optional 기능이라고 생각한다
- LLM evaluation은 자동 metric만 사용하면 된다고 생각한다
체크리스트 (스스로 설명 가능해야 하는 질문)
- LLMOps는 기존 MLOps와 무엇이 다른가?
- Prompt versioning이 중요한 이유는 무엇인가?
- RAG evaluation은 어떤 두 단계를 평가해야 하는가?
- Guardrails는 어떤 문제를 해결하는가?
- LangSmith, TruLens, PromptLayer는 각각 어떤 역할을 하는가?