피드로 돌아가기
Dev.toAI/ML
원문 읽기
XML Envelope와 JSON Payload 조합을 통한 LLM 출력 파싱 안정성 극대화
JSON or XML Tags for LLM Output: The Format That Holds Under Pressure
AI 요약
Context
LLM이 JSON 출력 외에 불필요한 서문이나 맺음말을 추가하여 Parser 에러를 유발하는 현상 발생. 데이터 포맷(JSON)과 구분자(Delimiter)의 역할을 혼동하여 발생하는 구조적 파싱 실패가 주요 병목 지점으로 작용함.
Technical Solution
- XML Tag를 외곽 Envelope로 활용하여 모델의 자유 텍스트 영역과 구조화 데이터 영역을 물리적으로 분리
- 정규표현식을 통한 XML Tag 추출 후 내부 JSON을 파싱하는 2단계 디코딩 전략 채택
- Constrained Decoding 지원 API의 경우 Wrapper 없이 Raw JSON과 Schema Validation을 직접 연결하여 오버헤드 제거
- Chain-of-Thought 구현 시 태그로 추론 과정을 분리하여 최종 데이터 결과물의 순도 유지
- 깊은 계층 구조나 반복 데이터의 경우 XML의 태그 누락 위험을 피하기 위해 내부 데이터 포맷은 JSON으로 단일화
실천 포인트
1. API가 Constrained Decoding을 지원하는지 확인하여 지원 시 Raw JSON 채택
2. 응답에 추론 과정이나 다중 섹션이 포함될 경우 XML Tag로 영역 구분
3. 계층 구조가 깊은 데이터는 반드시 JSON 포맷 사용
4. 정규표현식을 이용해 Tag 내부 콘텐츠만 추출하는 파이프라인 구축