프롬프트는 조용히 썩어
프롬프트도 코드야. 버그가 있지. 밑에 있는 모델이 바뀌면 이탈이 생겨. 하나의 사용 사례를 위해 조금 고쳤는데 다른 곳이 깨지기도 해. 프롬프트 회귀 테스트는 프롬프트의 단위 테스트야.
프롬프트 회귀 테스트 묶음의 모양
각 테스트는 이렇게 생겼어:
- 이미 아는 입력으로 실제 서비스 프롬프트를 호출해.
- 출력값의 속성을 단언해. 예를 들어 '사용자 이름 포함', 'JSON 파싱 가능', '금지 문구 X 미포함', '소스 최소 하나 인용' 같은 거지.
- 정확한 문구를 단언하지는 않아. LLM은 변동성이 있으니까. 대신 구조적이거나 의미적인 불변 조건을 단언해.
흔한 회귀 패턴
- JSON 스키마 — 프롬프트가 JSON을 반환해야 해. 테스트는 스키마에 맞는지 검증하지.
- 금지 문구 — 명시적으로 지원하는 주제에 대해서는 'I cannot help with that'이라고 답하면 안 돼.
- 인용 밀도 — 답변이 문맥에서 최소 N개의 소스를 참조해야 해.
- 톤 / 페르소나 — 답변이 합의된 목소리를 띠어야 해. 피파의 당당한 말투든, 브랜드의 전문적인 톤이든 말이야.
- 거부 정확성 — 진짜 주제를 벗어났거나 안전하지 않은 입력에는 모델이 거부해야 해.