AI로 시쓰고, 바로 들으세요

LLM은 왜 한국어 시조의 율격을 못 맞출까: 토큰화가 음절을 가리는 문제

by Ryu · 2026년 6월 30일 · 수정 2026년 9월 10일 · 읽는 시간 5분

문제

AI & Poem에 시조 모드를 붙일 때, 제가 가장 오래 붙잡은 값은 분위기가 아니라 음절 수였습니다. "시조 써 줘"라고 하면 모델은 그럴듯한 3행을 냅니다. 하지만 음보를 세면 종장 첫 음보가 네 글자로 늘거나 둘째 음보가 너무 짧아집니다. 현재 도구는 한국어·시조 요청에 서버 검산과 보정을 적용해, 설정한 음절 기준을 통과한 결과만 반환합니다.

원인을 살펴볼 단서: 토큰화

Park, Lee, Jang, Jung은 ACL의 AACL-IJCNLP 2020 논문 An Empirical Study of Tokenization Strategies for Various Korean NLP Tasks에서 한국어 NLP 과제별 토큰화 전략을 비교합니다. 논문은 BPE 하나가 모든 한국어 과제에서 늘 최선은 아니며, 기계번역과 자연어 이해 과제에서는 형태소 분절 뒤 BPE를 붙인 방식이 좋은 결과를 냈다고 보고합니다.

이 논문은 시조를 다루지 않습니다. 제 해석은 여기서 시작합니다. 모델이 한국어를 사람이 보는 글자 하나, 곧 음절 단위로 붙잡지 않고 여러 토큰 경계로 다시 자른다면, "이 음보가 몇 음절인가"라는 질문은 생성 중 계속 흔들립니다. 시조에서 음절 수는 장식이 아니라 골격입니다.

Liao와 Shi의 2026년 arXiv 논문 How Tokenization Limits Phonological Knowledge Representation in Language Models and How to Improve Them은 더 직접적인 단서를 줍니다. 저자들은 서브워드 토큰화가 압운 같은 지역 음운 특징과 음절화 같은 전역 운율 구조 표현을 약하게 만들며, 토큰 경계와 음절 경계가 어긋날수록 음운 과제 성능이 떨어진다고 설명합니다.

이 발견도 한국어 시조 실험 결과가 아닙니다. 토큰화만으로 이 서비스의 오류 원인을 확정할 수는 없습니다. LLM은 의미를 매끄럽게 잇는 데 강하지만, 한국어 정형시가 요구하는 글자 단위 검산에는 약합니다. 그 차이가 초기 시조 모드에서 바로 보였습니다.

운영자의 해석

평시조는 3장 6구 12음보로 짜입니다. 초장과 중장은 대략 3·4·3·4 계열로 움직이고, 종장은 첫 음보 3음절 고정, 둘째 음보 5음절 이상이라는 매듭을 둡니다. 한 글자 차이가 사소하지 않습니다. 종장 첫 음보가 네 글자가 되면 마감의 탄력이 풀립니다. 서비스는 이 전통적 설명과 별개로 초장·중장 3·4·3(4)·4, 종장 3·5·4·3만 생성 기준으로 삼습니다. 종장 둘째 음보는 정확히 5음절입니다.

그래서 시조는 LLM에 불리한 장르입니다. 자유시는 의미와 이미지가 먼저 버티지만, 시조는 글자 수가 틀리면 형식 자체가 무너집니다. 제가 만든 도구에서 "달빛" 같은 주제어 하나로 빠른 초안은 얻을 수 있었지만, 종장 규칙까지 안정적으로 맞추려면 별도 검산이 필요했습니다.

현재 구현: 생성과 검산의 분리

한국어 시조는 gpt-5-mini를 사용하며, 다른 형식의 기존 gpt-4o-mini 경로와 분리했습니다. 형식 규칙은 시스템 메시지에, 주제는 사용자 메시지에 둡니다. json_schema와 strict: true로 각 장의 네 음보를 JSON 문자열 필드에 받습니다. 서버는 NFC 정규화 후 한글 음절을 직접 세며, 공백·탭과 허용한 문장부호를 제외합니다. 숫자·외국 문자·미완성 자모·음보 안의 줄바꿈은 반려합니다.

검사에 실패하면 오류 위치와 실제 음절 수를 모델에 전달해 전체 시를 보정합니다. 최초 생성 1회와 보정 최대 2회, 전체 처리 예산은 25초입니다. 끝내 기준을 맞추지 못하면 HTTP 502, 시간 초과는 HTTP 504로 안내하며 부적합한 시를 반환하지 않습니다. 거절·콘텐츠 필터 응답은 보정 재시도 대상이 아닙니다. 사용자는 주제만 입력하면 됩니다. 범용 챗봇용 프롬프트와 예시는 시조 율격을 AI에게 맞게 설명하는 법에 따로 정리했습니다.

성공으로 반환한 시는 설정한 장 구성과 음보별 음절 검사를 통과합니다. 모든 요청의 성공이나 자연스러운 말마디·문법·문학적 완성도까지 보장하지는 않습니다. 모델이 적은 숫자가 아닌 서버 계산값으로 형식을 확인하고, 표현의 완성도는 별도로 검토합니다.

마무리

저는 이 문제를 결함 하나로 보지 않습니다. 한국어 정형시는 LLM이 언어를 어떻게 쪼개 보는지 드러내는 시험지입니다. AI 시대에 시조를 다룬다는 말은, 모델이 잘 쓰는 문장과 사람이 지키는 율격 사이를 끝까지 세어 보는 일입니다.

참고 자료

목록으로 돌아가기