본문으로 건너뛰기

70B 모델로 엄격한 JSON 스키마 유효성 확보한 운영 경험

작성자는 JSON 모드와 스키마 검증, 재시도 루프를 조합해 70B 모델의 유효 JSON 비율을 40%에서 99.5%로 끌어올린 경험을 공유한다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

작성자는 70B 모델에서 엄격한 JSON 스키마를 일관되게 맞추는 것이 과제였고, 아무 제약 없이 호출했을 때 유효성은 40%에 불과했으나 프롬프트에 상세 스키마를 넣고 JSON 모드를 사용하자 유효성이 92% 수준으로 향상되었고, 여기에 Zod 기반 검증과 재시도 루프를 더하자 최종적으로 99.5% 유효성을 달성했다고 보고했다. 운영 과정에서 이모지 삽입과 지나치게 긴 필드가 파싱 실패를 유발했고 모델이 완전히 JSON을 반환하지 않는 희귀 실패가 약 0.5% 남아 있어 원시 출력 로깅과 단일 재시도 및 정적 페일백 전략으로 실무적 균형을 맞추었다. 이 경험은 모델 용량보다 입력 설계와 검증 파이프라인의 역할이 더 크며, 추가 개선으로는 출력 유도 도구나 세밀한 전처리·포스트프로세싱 적용이 논의될 여지가 있음을 보여준다.

실용적 조언

  • LLM을 JSON으로 안정화하려면 출력 규격을 호출 시점에 명확히 고정하고 런타임에서 엄격한 스키마 검증을 실행하는 것이 우선이다. 구체적으로는 JSON 모드로 모델을 호출해 디코딩 단계의 불확실성을 줄이고, 파싱 실패 시 원시 출력을 로그로 보존해 오류 패턴을 분석해야 한다. 이 흐름은 장애 원인 파악과 장기적 품질 개선에 필수적이다.
  • 검증 실패 처리로는 검증 에러를 프롬프트에 포함해 한 번만 재시도하는 정책이 실무에서는 균형점으로 작동했다. 재시도 시에는 어떤 필드에서 어떤 타입 오류가 났는지 명시적으로 전달해 모델이 동일한 실수를 반복할 확률을 낮춰야 한다. 반복 재시도를 무제한으로 늘리면 지연과 비용이 급증하므로 고정된 재시도 횟수와 정적 페일백 조합이 현실적인 선택이다.
  • 이모지와 과도하게 긴 텍스트 필드는 별도 전처리 규칙이나 포스트프로세싱을 적용해 처리해야 한다. 예컨대 이모지는 유니코드 제거 또는 이스케이프 규칙을 적용하고, 긴 필드는 요약해서 넣거나 외부 스토리지 레퍼런스로 교체하는 방식으로 파싱 실패를 예방할 수 있다. 이러한 전처리 규칙은 스키마 설계 단계에서 필드별 허용 범위를 명문화해 자동화해야 실무적 안정성이 확보된다.

섹션별 상세

01
대규모 모델로 엄격한 JSON 스키마를 항상 맞추는 문제가 핵심이었다. 작성자는 프롬프트에서 아무 제약을 주지 않았을 때의 유효성 비율이 40%에 불과했고, 상세한 스키마를 프롬프트에 넣으면 75%로 상승했다고 보고했다. 이후 모델 제공자가 제공하는 JSON 모드를 사용하자 92%까지 올라갔고, 여기에 런타임 스키마 검증과 재시도 로직을 추가하자 최종적으로 99.5% 유효성을 달성했다고 수치로 제시했다. 이 경험은 단계별 개입이 출력 일관성에 미치는 효과를 정량적으로 보여준다.
02
실패 모드는 구체적인 운영 리스크로 연결되었다. 이모지 포함 필드가 JSON 파서를 무력화하거나 생성된 필드가 지나치게 길어 컨텍스트 길이 제한에 걸리는 사례가 자주 발생했고, 모델이 아예 JSON을 반환하지 않는 희귀한 케이스가 약 0.5%의 잔여 실패율로 남았다. 작성자는 이러한 실패를 로그에 그대로 남기고 스키마 에러를 프롬프트로 되돌려 한 번만 재시도하는 방식으로 운영했다. 이 접근은 반복 오류의 원인을 현장 로그로 추적하고 재현 가능한 방식으로 보완하는 운영적 이점을 제공한다.
03
프로덕션 흐름은 호출 단계에서부터 페일백까지 명확하게 설계되었다. 우선 JSON 모드와 명시적 스키마를 포함해 모델을 호출하고, 생성된 문자열을 파싱한 뒤 Zod로 구조와 타입을 검증하고, 검증 실패 시 원시 출력을 로그로 남기고 검증 에러 메시지를 프롬프트에 포함해 한 번만 재시도하며 그마저 실패하면 정적 페일백을 반환한다고 서술했다. 이 파이프라인은 입력으로 스키마와 오류 힌트를 받고 출력으로 검증 통과 JSON 또는 페일백을 제공하는 체인으로 동작해 서비스 안정성을 보장한다. 단일 재시도 정책과 페일백 전략은 응답 지연과 실패 복구 사이에서 실무적으로 균형을 맞추는 선택이었다.
04
모델 용량보다 프롬프트 구조가 더 중요한 관찰이 도출되었다. 작성자는 모델 티어 간 차이가 기대만큼 크지 않았고, 프롬프트 스캐폴딩과 JSON 모드, 스키마 검증의 결합이 실패율을 더 효과적으로 줄였다고 보고했다. 이는 출력 디코딩의 불확실성을 줄이는 방향으로 입력을 설계하면 모델 용량의 한계가 어느 정도 상쇄될 수 있음을 시사한다. 다만 잔여 0.5% 실패는 모델 출력의 본질적 무작위성과 예외 케이스를 완전히 제거하기 어렵다는 한계를 드러냈다.

용어 해설

JSON 모드(JSON mode)
모델이 출력 형식을 엄격한 JSON으로 제한하도록 하는 호출 설정으로, 토큰 생성 규칙을 제약해 파싱 실패를 줄이는 방식이며 스키마 기반 검증과 결합하면 출력 일관성을 크게 높일 수 있어 프로덕션 파이프라인에서 유효성 보장에 중요한 역할을 한다.
Zod
TypeScript 생태계의 런타임 스키마 검증 라이브러리로, JSON 객체를 선언적 스키마로 정의한 뒤 검증 결과와 에러 메시지를 반환하여 모델 출력의 구조적 일관성과 필드별 오류 원인을 빠르게 식별할 수 있게 한다.
재시도 루프(Retry loop)
모델 출력이 스키마 검증을 통과하지 못할 때 실패 원인을 프롬프트로 되돌려 한 번 더 생성하도록 요청하는 제어 흐름으로, 오류 유형을 명시적으로 모델 입력에 포함해 같은 실수를 반복할 확률을 낮추는 운영 기법이다.

언급된 도구

Zod추천

런타임에서 JSON 출력의 구조와 타입을 검증하는 스키마 라이브러리

OpenAI중립

JSON 모드 호출을 지원하는 LLM 제공자

Anthropic중립

JSON 모드 호출을 지원하는 LLM 제공자

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 07. 15.수집 2026. 07. 15.출처 타입 REDDIT

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.