12.3 골든 데이터셋(Golden Dataset)과 정답지 구축
자연어를 SQL로 변환하는 Text-to-SQL 인공지능 모델을 검증하기 위한 오라클 시스템은 다른 어떤 도메인보다도 까다로운 조건의 골든 데이터셋(Golden Dataset)을 요구한다. SQL 쿼리는 단순한 문자열이 아니라 데이터베이스의 상태(State)와 결합하여 작동하는 ’실행 가능한 코드(Executable Code)’이기 때문이다.
본 절에서는 쿼리 문자열에 대한 피상적인 비교를 넘어, 실행 결과 비교(Execution-based Comparison) 오라클을 구동하기 위해 반드시 갖춰야 하는 다차원적 골든 데이터셋의 구축 원칙과 구조를 논의한다.
1. 다차원적 정답지(Multi-dimensional Ground Truth) 구조 설계
SQL 생성 AI를 평가하는 골든 데이터셋의 개별 레코드는 반드시 다음 세 가지 핵심 요소를 모두 포함하는 다차원 구조로 엮여 있어야 한다.
- 질의(Input Query): 발화자의 의도가 담긴 자연어 입력이다. (예: “가장 최근에 입사한 직원의 이름과 부서를 알려줘”)
- 참조 쿼리(Reference SQL): 인간 데이터베이스 관리자(DBA)가 직접 작성하고 검증한, 결점 없는 완벽한 정답 SQL 쿼리문이다.
- 결과 집합(Expected Result Set): 참조 쿼리를 특정 테스트 데이터베이스에서 실행했을 때 도출되는 2차원 배열(행과 열) 형태의 정확한 반환 데이터 리스트다.
오라클 시스템은 AI가 생성한 SQL(Generated_SQL)을 문자열 수준에서 Reference_SQL과 비교하는 것이 아니라, Generated_SQL을 샌드박스 DB에서 런타임으로 실행하여 도출된 결과가 미리 저장된 Expected Result Set과 스키마 레벨에서 일치하는지를 검증한다.
2. 동결된 상태의 샌드박스 데이터베이스 (Frozen Sandbox DB) 구축
실행 기반 평가를 수행하기 위한 가장 치명적인 전제조건은 **‘데이터의 결정론성(Data Determinism)’**이다. 오라클이 수만 개의 쿼리를 검증하는 동안, 검증의 무대가 되는 데이터베이스의 데이터는 단 1바이트도 변경되어서는 안 된다.
- 정적 시드 데이터(Static Seed Data) 주입: প্রো덕션(Production) DB를 그대로 복사하여 사용하는 것은 지양해야 한다. 대신, 관계형 스키마 구조(테이블, 외래키, 인덱스)는 동일하게 유지하되, 개인정보(PII)가 마스킹되고 엣지 케이스(예: Null 값, 극단적인 날짜 값)가 의도적으로 설계된 정적인 소규모
Seed Data를 덤프(Dump) 파일 형태로 만들어야 한다. - 상태의 영속성(Immutability) 통제: 골든 데이터셋이 실행되는 환경인 샌드박스 DB(주로 SQLite이나 메모리 내 Docker 기반 PostgreSQL)는 읽기 전용(Read-only) 모드로 프로비저닝(Provisioning) 되어야 하며, 만약 AI가 실수로
UPDATE나DELETE문을 생성하더라도 DB의 상태 변이를 원천 차단하거나 매 테스트 케이스가 끝날 때마다 상태를 롤백(Rollback)하는 트랜잭션 단위의 격리(Isolation)가 보장되어야 한다.
3. 스파이더(Spider) 방식의 커스텀 데이터셋 구축 전략
학계에서 표준으로 사용되는 Text-to-SQL 벤치마크인 Spider나 WikiSQL의 구조론적 장점을 엔터프라이즈 환경에 커스텀 적용해야 한다.
- 도메인 복잡도(Domain Complexity) 분류: 정답지 데이터셋은 쿼리의 난이도에 따라 엄격하게 태깅(Tagging)되어야 한다. 단순한
SELECT와WHERE만 존재하는 난이도(Easy)부터, 3개 이상의 다중 조인(Join), 서브쿼리(Subquery), 그리고 윈도우 함수(Window Function)가 포함된 다단 난이도(Hard/Extra Hard)까지 피라미드 구조로 균형 있게 구축해야 한다. - 스키마 텐딩(Schema Tending): 단순히 SQL 쿼리만 골든 데이터셋으로 관리하는 것이 아니다. 테스트의 타겟이 되는 데이터베이스의 DDL(Data Definition Language), 테이블과 컬럼의 한글 명세서(Schema Description) 자체도 프롬프트 인젝션 재활용을 위해 골든 데이터셋의 자산으로 함께 형상 관리(VCS) 되어야 한다.
SQL 오라클을 위한 골든 데이터셋은 단순한 Q&A 모음집이 아니다. 이것은 ‘입력 자연어’, ‘중간 추론 코드(SQL)’, 그리고 ’불변하는 데이터베이스의 결괏값’이라는 삼위일체가 완벽하게 결합된, 가장 무겁고도 강력한 소프트웨어 자산(Assets)이다. 이 삼각 편대가 구축되지 않는다면, 오라클의 실행 기반 비교 엔진은 구동 자체를 시작할 수 없다.