수동 QA의 한계와 Nova Sonic Test Harness의 등장

음성 AI 서비스 품질 검증에는 많은 인건비와 시간이 소요된다. 지금까지 개발팀은 시스템에 직접 말을 걸고 응답을 귀로 듣는 수동 테스트 방식에 의존해 왔다. 아마존은 이러한 마이크 기반의 수동 QA 체계를 자동화하기 위해 노바 소닉(Nova Sonic) 전용 오픈소스 프레임워크인 'Nova Sonic Test Harness'([https://github.com/aws-samples/nova-sonic-test-harness])를 공개했다. 사람이 물리적으로 개입하지 않고도 음성 에이전트의 성능을 검증하는 환경을 구축하여 테스트의 물리적 제약을 없앴다.

수동 테스트의 한계는 시나리오가 늘어날수록 커진다. 50개의 대화 시나리오에 3명의 사용자 페르소나를 적용하면 총 150회의 수동 테스트가 필요하며, 각 테스트는 실시간 상호작용을 위해 수 분의 시간이 소요된다. 특히 음성 AI는 동일한 질문에도 매번 다른 단어와 타이밍으로 응답하는 비결정적 특성이 있어, 한 번의 테스트만으로는 신뢰하기 어렵다. 프롬프트를 한 번 수정할 때마다 이 과정을 반복하면 QA 단계에서만 수일의 시간이 낭비되는 병목 현상이 발생한다.

JSON 설정과 3단계 메트릭 기반의 자동 평가 구조

이번 프레임워크의 핵심은 정해진 텍스트를 찾는 것이 아니라 루브릭 기반의 판정 모델을 사용하는 점이다. 전체 작동 순서는 JSON 설정 파일 정의에서 시작해 노바 소닉의 대화 수행, LLM 판정, 리포트 생성 순으로 이어진다. 개발자는 JSON 파일에 노바 소닉이 연기할 역할과 발신자 정보, 사용 가능한 도구, 그리고 성공의 정의를 구체적으로 기술한다. 모델이 매번 다르게 응답하는 특성을 고려해 정답 문자열을 대조하는 대신, 루브릭을 통해 응답의 합격 여부를 수치화한다.

연결 유지라는 기술적 제약은 세션컨티뉴에이션매니저(SessionContinuationManager)가 해결한다. 노바 소닉의 연결 제한 시간인 8분이 되기 전, 기본 설정값인 6분 시점에 자동으로 새 세션을 생성하고 이전 대화 이력을 재생해 끊김 없는 테스트를 구현했다. 모델 버전 변경에 따른 설정 오류를 막기 위해 모델 레지스트리(models.yaml)를 도입했다. 여기서 claude-haiku 같은 별칭을 실제 아마존 베드락(Amazon Bedrock) 모델 ID에 매핑하여, 인프라 설정 변경 없이 모델 버전만 교체하며 대응할 수 있게 했다.

최종 평가는 클로드 오퍼스(Claude Opus) 같은 별도의 LLM 판정 모델이 수행한다. 판정 모델은 테스트 설정 내용을 모르는 상태에서 대화 내용과 평가 기준만으로 독립적인 판정을 내리며, 이를 통해 평가 과정의 편향을 방지한다. 메트릭 체계는 세 단계로 구분된다. 필수 통과 항목인 크리티컬(Critical), 통과율 점수에 영향을 주는 임포턴트(Important), 단순 참고용인 어드바이저리(Advisory)가 그것이다. 각 메트릭은 엄격한 예/아니오(YES/NO) 답변을 요구하는 여러 루브릭 질문으로 구성되며, 크리티컬 항목을 모두 통과해야만 최종 합격(PASS) 판정을 받는다.

이러한 평가 구조는 특히 음성 AI 특유의 치명적인 오류인 '오디오 환각'을 잡아내는 데 핵심적인 역할을 한다.

오디오 환각(Divergence) 감지와 대규모 배치 검증

아마존 노바 소닉(Nova Sonic)은 텍스트와 오디오를 동시에 생성하는데, 이때 두 출력값이 서로 일치하지 않는 오디오-텍스트 발산(Audio-text divergence) 현상이 발생한다. 텍스트 로그에는 '다음 주 화요일'이라고 기록되었지만, 실제 오디오로는 '다음 주 월요일'이라고 말하는 사례가 대표적이다. 예약 시간, 가격, 전화번호, 약물 이름, 확인 코드처럼 정확한 팩트 전달이 필수적인 서비스에서 이러한 오디오 환각은 사용자에게 직접적인 피해를 줄 수 있으며, 텍스트 로그만으로는 포착할 수 없는 위험 요소다.

배치 실행기(Batch runner)는 수십 개의 시나리오와 페르소나를 병렬로 테스트한다. 프레임워크는 헬스케어 12종(예약, 보험 청구, 리퍼럴), 뱅킹 8종(이체, 잔액 조회, 분쟁), 고객 서비스 5종(분노, 차분, 혼란 상태의 호출자 포함)의 기본 시나리오 팩을 제공한다. 개발자는 다양한 감정 상태의 페르소나와 엣지 케이스를 반복 검증하며 모델의 응답 일관성을 확보한다.

분석 대시보드는 시나리오별 통과율과 메트릭별 세부 분석 결과를 시각화하여 제공한다. 특히 프롬프트를 변경하기 전과 후의 결과를 나란히 비교하는 회귀 테스트 기능을 통해 어떤 부분이 개선되었고 어떤 기능이 퇴보했는지 즉각적으로 확인한다. 특정 메트릭들이 함께 실패하는 공동 실패 상관관계(co-failure correlations)까지 분석해 문제의 근본 원인을 빠르게 좁히는 것이 가능하다.

실무 도입을 위한 4가지 입력 모드와 배포 환경

보통 음성 AI를 테스트하려면 실제 마이크와 스피커가 갖춰진 물리적 환경이 필수라고 생각한다. 하지만 아마존은 텍스트 기반의 가상 입력만으로도 검증의 상당 부분을 끝낼 수 있음을 보여준다. 개발자가 마주하는 가장 큰 병목인 물리적 인터랙션을 소프트웨어 레이어로 완전히 옮긴 결과다.

테스트 목적에 따라 선택 가능한 입력 모드는 총 4가지다. 가장 빠른 속도와 높은 병렬 처리가 필요한 초기 튜닝 단계에서는 텍스트(Text) 모드를 사용한다. 수십 개의 시나리오를 동시에 돌려 빠르게 응답을 확인하는 작업에 최적화되어 있다. 실제 오디오 입력 시 발생하는 ASR(Automatic Speech Recognition, 자동 음성 인식) 오인식 사례까지 정밀하게 잡아내야 한다면 아마존 폴리(Amazon Polly) 모드를 적용한다. 기계가 생성한 음성을 다시 입력값으로 넣어 인식률을 검증하는 방식이다. 매번 동일한 입력값으로 모델의 응답 변화를 확인하는 회귀 테스트에는 스크립트(Scripted) 모드가 쓰인다.

운용 인프라는 아마존 베드락(Amazon Bedrock) 모델 호출 기반으로 설계되었다. 대규모 인프라를 미리 구축하거나 고가의 테스트 장비를 도입할 필요 없이, 사용한 만큼만 지불하는 종량제(Pay-per-use) 비용 구조를 따른다. 이는 다양한 페르소나와 시나리오를 반복적으로 실험해야 하는 실무 팀의 비용 부담과 리소스 낭비를 줄이는 실질적인 장치다.

실제 도입 장벽은 매우 낮다. Nova Sonic Test Harness GitHub 저장소를 통해 환경을 설정하면 5분 이내에 첫 번째 자동 대화를 실행할 수 있다. 복잡한 하드웨어 세팅이나 수동 QA 인력의 대기 시간 없이, 코드 레벨에서 음성 에이전트의 배포 신뢰도를 즉각적으로 측정하는 환경이 마련된 셈이다.

음성 AI 개발 과정에서 사람이 직접 말하고 들어야 했던 수동 QA는 가장 큰 병목 구간이었다. 아마존의 노바 소닉 테스트 하네스는 마이크를 제거한 자동 테스트 환경을 구축하고, 텍스트 로그와 실제 오디오 출력을 대조해 서로 다른 내용을 말하는 오디오-텍스트 발산까지 잡아낸다. 며칠씩 걸리던 수동 검증을 자동화된 배치 테스트와 루브릭 기반 평가로 전환해 배포 전 검증 주기를 획기적으로 압축한다. 결국 음성 AI의 완성도는 개발자의 청각적 경험이 아닌, 정량적인 테스트 데이터의 양과 정확도로 결정된다.