8.2.5 QA 쌍(Question-Context-Answer Triplets) 합성 데이터 생성 및 정제
엔터프라이즈 환경에서 RAG 오라클의 무자비한 평가 엔진을 돌리고 메트릭을 도출하기 위해 필요한 가장 핵심적인 백엔드 연료는, 바로 **(Question, Context, Answer) 구조로 엄격하게 직렬화(Serialization)된 단위 개체, 즉 트리플릿 데이터셋(Triplet Dataset)**이다.
이 트리플릿은 마치 단위 테스트의 Assert 구문과도 같은 역할을 수행한다. 시스템에 던져질 예상 사용자 질의(Question), 그 질의를 완벽히 해결하기 위해 Vector DB 망에서 의도적으로 인출된 신뢰할 수 있는 단일 사내 문서 조각(Context), 그리고 그 컨텍스트 논리기호만을 100% 사용하여 도출된 무결점 모범 정답(Answer)을 하나의 강력한 JSON 트랜잭션 패키지로 결속시킨 것이다.
그러나 수천 건의 테스트 노드를 인간 도메인 노무자가 수작업으로 타이핑하는 것은 MLOps 시대에 극심한 비효율이다. 따라서 현대 딥러닝 아키텍처는 가장 뇌 구조가 뛰어난 프론티어 급의 교사 모델(Teacher Model, 예: GPT-4o, Claude Opus)을 데이터 제너레이터(Generator)로 배치하여, 이 트리플릿 평가 셋 자체를 대규모로 합성 배양(Synthetic Generation)해 내는 고도의 적대적 생성 파이프라인(Adversarial Generation Pipeline)을 자동화하여 구축한다.
1. LLM-Driven 자가 징발(Elicitation)과 역방향 데이터 엔지니어링
기계적인 오토 오토-그레이딩(Auto-grading) 생성 파이프라인의 핵심 무기는 인간 엔지니어가 미처 상상하기조차 힘든 기괴하고 극단적인 엣지 케이스(Edge Case) 질문들을 무한 루프로 찍어낼 수 있다는 압도적인 연산량의 장점이다. 백엔드 스크립트는 사전에 클렌징이 완료된 골든 문서(Golden Document) 풀(Pool)에서 무작위로 텍스트 청크(Context)를 랜덤 샘플링한 뒤, 교사 모델의 프롬프트 메모리에 다음과 같은 정교한 역산 알고리즘을 강제 주입하여 트리플릿을 짜낸다.
- 1단계 파이프라인 (Question-Generation): “System: 당신은 까다로운 출제 위원입니다. 입력된 사내 문서
블록만을 읽어 내려가십시오. 이 문맥의 행간(Implicit Meaning)까지 완벽하게 파싱해야만 간신히 정답을 유추할 수 있는, 극도로 까다롭고 비합리적인 질문 3가지를 역으로 합성하십시오. 단순한 표면적 키워드 매칭 질문은 단호히 거부하며, 타겟 모델이 두 번 이상 생각(Reasoning)해야 하는 복잡한 인과관계 질문 구조로 배열을 구성하십시오.” - 2단계 파이프라인 (Answer-Generation): 교사 모델 스스로가 방금 생성해 낸 복잡한 질문(Question) 텍스트를 다시 자신이 읽은 맥락(Context)과 대조 연산하여, 냉혹한 오라클 판사 서버가 만점을 줄 수밖에 없는 깔끔하고 방어적인 모범 정답(Answer) 문자열 텐서를 기계적으로 생성하여 JSON Array에 마운트(Mount)한다.
2. 진화 알고리즘(Evolutionary Algorithm) 기반의 난이도 증폭 (Complexity Amplification)
평이하고 1차원적인 (Q, C, A) 쌍 페이로드만으로는, 나날이 지능이 발전하는 타겟 LLM의 추론 성능 궤적을 억압하고 진단할 수 없다. 오라클 시스템을 폭주 한계선(Limit)까지 몰아붙이기 위해, 생성 파이프라인 스크립트에는 고의적으로 혼돈 변수(Chaos Variable)를 섞어 넣는 난이도 증폭(Complexity Amplification) 기법이 배치 작업으로 동원된다.
- 다중 홉 추론 (Multi-hop Reasoning) 결합: 문서 A(예: 보안 접근 권한표)와 문서 B(예: 비밀번호 만료 정책) 두 개 이상의 물리적으로 완전히 분리된 청크 문서를 하나의
[Context]배열에 욱여넣고, 타겟 모델이 양쪽 문서를 동시에 크로스 조인(Cross-Join) 대조해야만 비로소 정답이 튀어나오는 극악의 추론 유도 질문을 합성한다. - 적대적 노이즈 주입 (Adversarial Noise Injection): 완벽하게 정제된 컨텍스트 문장의 허리 중간에 일부러 오답을 교묘하게 유도하는 헷갈리는 방해 문장(Distractor Token)을 랜덤 삽입하여, 타겟 렌더링 모델이 노이즈에 낚여 환각에 빠지지 않고 정직하게 팩트 노드만 발라내는지를 무자비하게 테스트하는 강건성(Robustness) 오라클 데이터셋을 공장처럼 찍어낸다.
3. 오염된 합성 데이터의 잔인한 자가 정제 (Self-Correction & Pruning)
아키텍트가 마주하는 가장 깊은 구렁텅이의 딜레마는, 이 데이터 제너레이터 역할을 맡은 위대한 교사 모델조차도 맹목적 합성 연산 과정에서 스스로 환각을 일으켜, 질문과 컨텍스트의 논리 규격이 어긋나거나 모범 정답 자체가 수학적으로 틀려먹은 ’불량 톡신(Toxin) 트리플릿’을 양산할 수 있다는 점이다.
단 하나의 불량 데이터라도 오라클의 평가 기준선(Baseline) 인프라로 편입되면, 그 위에서 채점받는 모든 RAG 테스트 파이프라인 지표가 썩어 문드러지는 대참사가 벌어진다.
따라서 램(RAM)에서 합성된 트리플릿 객체들은 영구 데이터베이스에 커밋(Commit DB) 되기 직전, 또 다른 혹독하고 독립적인 비판적 에이전트(Critic Model) 파서 루프를 거쳐 이중 크로스 체크(Cross-check)를 통과해야 한다.
비판적 에이전트는 교사 모델이 생성해 낸 트리플릿 덩어리의 논리적 모순율을 검증하고, 전체 데이터의 10~20% 분량을 *“질문(Q)과 컨텍스트(C) 파라미터 간의 필연적인 논리적 연결 고리(Entailment Vector)가 끊어졌다”*는 차가운 에러 메시지를 던지며 잔인하게 쳐내버린다(Pruning & Drop).
오직 이 가혹한 자가 정제(Self-Filtering) 루프를 뚫고 살아남은 순도 99.9%의 무결점 트리플릿만이, 엔터프라이즈 오라클 파이프라인의 영구적인 골든 데이터셋 풀장으로 이동할 마스터 자격을 획득한다.