AI 글자수 지시 12쌍, 「정확히」보다 범위가 11쌍 더 가까웠습니다
「정확히」라고 쓰면 정말 정확해질까요?
[거래처 이름] 담당자님께,
갑작스럽지만, 납품 일정에 차질이 생겨 일주일 더 지연됩니다. ±10% 이내에서 조정하여 최대한 빠른 시일 내에 납품 드리겠습니다. 양해 부탁드립니다.
AI에는 「100자 내외, ±10% 안」이라고 적었습니다. 길이는 거의 맞았습니다. 문제는 글자 수 조건이 거래처 메일 본문으로 새어 나왔다는 겁니다. 숫자만 보면 성공이고, 메일로 보내면 실패입니다.
저는 이 둘을 갈라 보기로 했습니다. AI에게 짧은 문구부터 긴 글까지 분량을 어떻게 지시해야 덜 빗나가는지 정하려는 분을 위해 다시 쟀습니다. 이번 9월에 로컬 gemma3:4b로 64회 실행했습니다.
짧은 답부터 드리면 이렇습니다. 세 글감의 짝비교에서는 「정확히 N자」보다 범위를 준 문구가 더 가까웠습니다. 다만 긴 목표에서는 범위를 줘도 허용 구간에 잘 들어오지 않았습니다. 입력칸처럼 상한이 단단한 곳은 생성 뒤 글자 수를 세는 단계가 필요합니다.
300자에서는 맞고, 800자에서는 벌어졌습니다
같은 글감에 짧은 문구부터 긴 글까지 네 단계로 목표를 바꿨습니다. 상품소개, 공지, 이메일, 블로그 글, 설명, 자기소개, 리뷰, 요약, 안내, 소식까지 열 가지 글감을 썼습니다. 공백을 포함해 셌고, 허용 범위 안이면 1차 통과로 잡았습니다. 아래 목표별 집계는 기본 문구 40회에, 상품소개·공지·이메일에만 붙인 「정확히」와 범위 문구 24회를 합친 값입니다.
| 목표 | 실제 글자 수 중앙값 | 목표 ±10% 안 |
|---|---|---|
| 100자 | 94자 | 7/16 |
| 300자 | 299자 | 10/16 |
| 500자 | 587자 | 4/16 |
| 800자 | 1,057자 | 3/16 |
짧은 목표에서는 통과 칸이 더 많고, 길어질수록 중앙값이 목표 위로 벌어집니다. 긴 분량에서 초과가 커지는 쪽이 이번 결과의 가장 큰 갈림입니다.
위 화면은 본런이 돌던 시점에 찍혔습니다. 가장 긴 블로그 조건의 첫 회차가 목표를 크게 넘는 순간입니다.
부호 있는 중앙값은 정확도를 말하지 않습니다
출력별 오차율에 초과는 플러스, 미달은 마이너스를 붙여 순서대로 세우면 가운데 값은 +0.7%입니다. 이 값은 전형적인 출력의 방향이 목표 근처였다는 뜻입니다.
같은 오차에서 부호를 떼고 크기만 세우면 중앙값은 16.5%였습니다. 허용 범위 안에 들어온 출력도 절반보다 적었습니다.
중앙 편향이 0에 가깝다는 말과, 한 번 받은 답이 목표에 가깝다는 말은 다릅니다. 앞은 가운데 출력의 방향을, 뒤는 전형적인 빗나감의 크기를 묻습니다. 한 번 생성해 바로 붙여넣을 때 봐야 할 쪽은 두 번째입니다.
「정확히」보다 범위를 줬을 때 더 가까웠습니다
세 글감에는 지시문을 세 가지로 바꿔 붙였습니다.
N자로 써 주세요정확히 N자에 맞춰 주세요. 넘치거나 모자라면 안 됩니다N자 내외로 써 주세요. ±10% 안에 들어오면 됩니다
같은 글감과 같은 목표끼리 「정확히」와 「±10%」를 짝지으면 열두 쌍입니다. 상품소개·공지·이메일의 네 목표를 각각 한 번씩 생성한 비교입니다. 범위 지시가 목표에 더 가까운 쌍은 11개, 정확히 지시가 가까운 쌍은 1개였습니다.
차이가 가장 크게 난 건 상품소개였습니다.
| 목표 | 「정확히」 결과 | 「±10%」 결과 |
|---|---|---|
| 100자 | 68자 | 95자 |
| 300자 | 333자 | 310자 |
| 500자 | 1,010자 | 633자 |
| 800자 | 1,618자 | 1,107자 |
강한 문구가 출력 형식을 보장하지도 않았습니다. 프롬프트에는 공백 포함, 본문만 출력, 머리말·목록·마크다운 금지까지 적혀 있었습니다. 그런데 가장 긴 상품소개 조건에서는 제목과 소제목, 목록이 다시 생겼고 분량도 목표의 두 배를 넘었습니다.
고음질 프리미엄 무선 이어폰, 당신의 일상을 특별하게 채워줄 완벽한 선택
끊김 없는 안정적인 연결과 놀라운 음질, 편안한 착용감까지! (…)
탁월한 음질: 섬세한 소리의 모든 순간을 생생하게 전달합니다.
짝비교의 판단 단위는 이번 세 글감 열두 쌍이고, 각 칸은 한 번 생성한 값입니다. 그 안에서는 범위 문구가 더 가까웠습니다. 강하게 명령하면 길이 제어도 강해진다는 기대와 반대 방향입니다.
길이를 맞춘 답도 내용 검사가 남습니다
도입의 메일로 돌아가 보겠습니다. 목표에는 들어왔지만 ±10% 이내에서 조정하여라는 말이 본문에 섞였습니다. 거래처가 조정해야 할 납품 일정처럼 읽히지만, 실제로는 AI에게 준 글자 수 규칙의 잔해입니다.
이 실험의 채점기는 글자 수만 셉니다. 제목 금지, 줄글, 본문만 출력 같은 나머지 규칙은 길이 점수에 넣지 않았습니다. 그러니 길이가 맞았다는 사실이 곧 쓸 수 있는 메일을 뜻하지는 않습니다.
글자 수 통과와 문면 통과를 갈라야 합니다. 길이를 센 뒤에는 지시문이 본문에 섞였는지, 제목·목록 같은 금지 형식이 다시 생겼는지 한 번 더 봐야 합니다. 이번 출력처럼 숫자는 맞고 뜻이 어긋나는 경우가 있기 때문입니다.
8월과 9월의 숫자가 달라진 이유로 읽지 않을 것
같은 조건을 지난 8월에도 돌렸습니다. 이번에는 허용 범위 안에 든 출력이 더 많았지만, 개별 출력의 절대 오차 중앙값은 두 실행이 거의 같은 자리에 있었습니다. 짧은 목표가 상대적으로 잘 맞고 긴 목표가 늘어나는 큰 모양도 그대로였습니다. 생성 온도는 기본값 1이라 매번 같은 문장이 나오는 조건이 아닙니다.
그래서 저는 통과 횟수가 늘어난 것을 모델 개선으로 읽지 않았습니다. 한 번의 성공률 자체가 실행마다 움직일 수 있다는 기록으로 보는 편이 맞습니다. 반대로 두 번 모두 남은 모양, 즉 긴 목표에서 초과가 커지고 「정확히」가 범위보다 낫지 않았다는 쪽이 운영 판단에 더 쓸 만합니다.
길이 지시를 역할·과업·조건·출력 형식과 함께 정리하는 순서는 AI 프롬프트를 네 칸으로 쓰는 방법에 있습니다. 글자 수는 맞아도 문장이 틀릴 수 있다는 문제는 로컬 AI 한국어 교정 실측에서 별도로 다뤘습니다.
어디까지 맡기고 어디서 끊을 것인가
대략적인 분량만 필요하다면 N자 내외처럼 허용 범위를 함께 적는 쪽을 택하겠습니다. 이번 짝비교에서는 이 문구가 대부분의 조건에서 목표에 더 가까웠습니다. 다만 긴 목표의 범위 지시는 여섯 번 중 한 번만 실제 허용 구간에 들어왔습니다. 더 가깝다는 말이 곧 충분히 정확하다는 뜻은 아닙니다.
입력칸의 최대 글자 수가 정해져 있다면 생성 결과를 그대로 넣지 않습니다. 공백을 포함해 센 뒤, 상한을 넘은 답은 다시 줄이게 하거나 사람이 다듬고 재계수합니다. 외부로 바로 나가는 문장은 그다음에 프롬프트 문구가 본문으로 새지 않았는지 확인합니다.
긴 글은 한 덩어리의 정확한 글자 수보다 필요한 항목을 먼저 정하고 완성본에서 길이를 맞추는 편을 택하겠습니다. 이번 실험의 조건은 자동 자르기와 재시도 없이 한 번 생성한 출력입니다.
「정확히」라는 말을 더 세게 쓰는 건 공짜지만, 이번에는 정확도를 사 주지 못했습니다. 정확한 글자 수가 필요할수록 프롬프트가 아니라 계수기가 마지막 결정을 해야 합니다.
목표 글자수 64회는 로컬 gemma3:4b로 실행했습니다. 하네스와 문항 파일은 공개 저장소에 올려 두었고, 코드와 글 작성에 AI 도구를 활용했습니다. 측정 조건 승인과 발행 전 검수는 제가 합니다.
재현: cinevyze-bench의 run_length_bench.py (문항 파일 포함). 이번 실행의 원출력 경로(test_runs/…)는 비공개 작업 폴더라 외부에서 열 수 없습니다.
cinevyze 운영자 — 로컬에서 AI 도구를 직접 돌려 재현 가능한 수치로 검증합니다. 이번 측정은 RTX 4070 Ti SUPER 한 장에 gemma3:4b를 올려 64회 실행한 것입니다. 운영자 소개
댓글
댓글 쓰기