모델이 변경되었습니다. 당신의 AI 앱은 퇴보했나요?
요약
모델 업데이트나 설정 변경이 서비스의 성능 저하(AI Regression)를 유발할 수 있음을 경고합니다. 단순한 응답 여부를 넘어 RAG, 에이전트, 데이터 추출 등 실제 제품 워크플로우를 중심으로 한 체계적인 테스트 구축 방법을 제안합니다.
핵심 포인트
- 모델 변경은 API 성공 여부와 상관없이 성능 퇴보를 일으킬 수 있음
- AI 퇴보는 답변 근거 부족, 잘못된 도구 호출, 비용 증가 등 다양한 형태로 나타남
- 단순 프롬프트가 아닌 실제 제품의 워크플로우를 반영한 테스트 세트 구축 필요
- RAG, 에이전트, 구조화된 추출 등 각 기능별 특화된 평가 지표 적용 권장
모델 변경이 항상 서비스 중단(outage)을 일으키는 것은 아닙니다.
때로는 API가 여전히 200을 반환하기도 합니다.
챗봇은 여전히 답변을 합니다.
RAG 시스템은 여전히 답변을 생성합니다.
에이전트(agent)는 여전히 도구(tool)를 호출합니다.
하지만 제품은 이미 퇴보(regressed)했을 수 있습니다.
아마도 RAG 답변이 더 이상 검색된 컨텍스트(context)에 근거(grounded)하지 않을 수도 있습니다.
아마도 도구 호출(tool call)은 유효한 JSON이지만 잘못된 인자(argument)를 사용할 수도 있습니다.
아마도 추출(extraction) 워크플로우가 이제 필수 필드를 누락할 수도 있습니다.
아마도 영어 테스트 프롬프트는 여전히 괜찮아 보이지만 중국어 품질은 떨어질 수도 있습니다.
아마도 동일한 작업에 더 많은 재시도(retries), 더 많은 토큰, 또는 더 비용이 많이 드는 폴백(fallback)이 필요할 수도 있습니다.
이것이 바로 모든 모델 업데이트를 소프트웨어 릴리스(software release)처럼 취급해야 하는 이유입니다.
AI 퇴보(AI regression)란 무엇인가?
AI 퇴보란 변경 이후 워크플로우 동작이 저하되는 것을 의미합니다.
변경 사항은 다음과 같을 수 있습니다:
- 새로운 모델 버전
- 새로운 제공자 경로(provider route)
- 프롬프트(prompt) 업데이트
- 온도(temperature) 변경
- 검색(retrieval) 변경
- 도구 스키마(tool-schema) 변경
- 폴백 정책(fallback-policy) 변경
- 멀티 모델 경로(multi-model route)에 새로 추가된 모델
어려운 점은 AI 퇴보가 항상 이진적(binary)이지 않다는 것입니다.
전통적인 테스트는 "함수가 예상된 값을 반환했는가?"라고 물을 수 있습니다.
AI 테스트는 종종 다음과 같이 물어야 합니다:
- 답변이 제공된 컨텍스트에 근거하였는가?
- JSON이 유효하고 완전했는가?
- 에이전트가 올바른 도구를 선택했는가?
- 워크플로우가 성공적으로 완료되었는가?
- 지연 시간(latency)이 허용 가능한 수준으로 유지되었는가?
- 성공적인 작업당 비용이 증가했는가?
응답이 존재한다는 것이 워크플로우가 성공했다는 것과 같지는 않습니다.
제품 작업(product tasks)을 중심으로 테스트 구축하기
다음과 같은 일반적인 프롬프트로 퇴보 테스트 세트(regression suite)를 구축하지 마십시오:
인공지능에 대해 설명해줘.
당신의 제품이 실제로 수행하는 작업들로부터 구축하십시오.
RAG 애플리케이션의 경우, 다음을 포함하십시오:
- 하나의 명확한 소스가 있는 질문
- 여러 개의 검색된 문서가 필요한 질문
- 명확화(clarification)를 유도해야 하는 모호한 질문
- 뒷받침하는 컨텍스트가 없는 질문
- 긴 문서
- 관련이 있는 경우 중국어 및 다국어 문서
도구를 사용하는 에이전트의 경우, 다음을 포함하십시오:
- 하나의 도구가 필요한 요청
- 여러 도구를 순차적으로 사용해야 하는 요청
- 정보가 누락된 경우
- 잘못된 입력 (invalid-input) 사례
- 에이전트가 추측하는 대신 중단해야 하는 작업
구조화된 추출 (structured extraction)의 경우, 다음을 포함하십시오:
- 필수 필드 검증 (required-field validation)
- 선택적 필드 처리 (optional-field handling)
- 형식이 잘못된 소스 문서 (malformed source documents)
- 중첩된 JSON 출력 (nested JSON output)
- 다국어 엔티티 (multilingual entities) 및 날짜
평가 세트는 실제 사용자와 워크플로우(workflow)가 실패할 수 있는 지점을 반영해야 합니다.
정확한 문구가 아닌 속성을 테스트하십시오
정확한 문자열 일치 (Exact string matching)는 AI 출력에 대해 너무 엄격한 경우가 많습니다.
더 나은 접근 방식은 관찰 가능한 속성 (observable properties)을 정의하는 것입니다.
const testCase = {
...
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기