토큰 비용을 아끼면서 266개 문서의 번역 비정상 여부를 감수하는 방법!
author: 9vvin
published: (27일 전)
updated: (published로부터 약 4시간 후)
요새 저는 Payload CMS에 푹 빠져 있습니다.
(Payload CMS가 얼마나 사랑스러운지는 다음 기회에 말할게요!)
너무 좋아서 공식 기술 문서를 통으로 읽고 싶었는데
영어는 한국어를 읽는 것에 비해 인지 자원이 많이 소모 되는 지라
AI로 번역을 결심했습니다.
게다가 기술 문서가 공식 레포지토리에 .mdx 파일로 관리 되고 있더군요!
이 말인 즉,
문서 웹페이지를 fetch 해서 읽는데 드는 시간과 토큰을 절약 할 수 있다는 것이었습니다.
로컬로 클론해서 파일을 직접 read 할 수 있으니까요.
그리하여...
클론한 폴더에서
'상남자 옵션'을 끼얹은
클로드 소환 주문을 때려 박았습니다.
claude --dangerously-skip-permissions
`
인간의 허락 따윈 필요 없는 강대한 클로드 오푸스여,
그대의 어버이인 앤트로픽과 피의 맹약을 한 나,
9vvin의 부름에 답하라!
${USER_PROMPT}!!!
`
...왜요? 맞잖아요? 내 피와 생명을 매달 220달러씩 내고 있는데?
아 그런 문제가 아니라고요?
ㅇㅋ...ㅎ...
아무튼 ㅋㅋㅋ
번역 대상이 되는 docs/ 이하의 .mdx 파일은 모두 133개.
가장 작은 사이즈의 파일이 약 700byte,
가장 큰 사이즈의 파일이 약 43KB 였습니다.
이걸 다 번역하려면 못해도 1시간은 넘게 걸리겠지만
클로드 Max 20x 구독자인 저에게는 그저 시간문제일 뿐이죠.
훗
네...
시간 문제일 뿐이여야만 했었습니다. 그러나...
자율 운행 걸어 놓고 느긋하게 화장실을 갔다 오니 예상치 못한 문제가 발생해 있더군요.
미지의 오류로 인해 클로드 코드가 자율 운행을 중단하고 세션도 끊겨 있었습니다.
번역 시작 전에 영문 원어 파일들에 대응되는 빈 한국어용 파일들을 전부 만들어 놓고
claude code subagent 를 통해 agent task를 최대 10개까지 병렬로 진행 시켜뒀던 터라
어디까지가 번역이 완료 되고 어디까지가 번역이 덜 되었는지
알아내기 어려운 상황이 되어버린 것입니다 ㅠㅠㅠ
'그게 무슨 대수냐? 다시 시작하면 되지...' 하시겠지만,
133개의 파일 번역을 처음부터 전부 다시 번역한다?
그것도 또 오류로 중단 될지 모르는 상황에서...?
이 오류 케이스가 반복 되면 일일 토큰량 제한에 다다를 것이고,
그럼 남은 하루 동안 저는 식물인간이 된단 말이에욧!
한편 다른 방법으론
AI에게 각 파일쌍을 다 읽고 변역이 정상인지 아닌지 여부를 감수하여 미완된 애들만 골라낼 수도 있겠습니다.
그러나 이 방법은 최악의 경우
감수 없이 모든 파일을 재 번역하는 것 보다 훨씬 더 나쁠 수 있습니다.
여기서 최악의 경우란, 모든 파일이 정상 번역 된 직후에 세션이 비정상 종료 된 케이스 입니다.
이 경우 감수 할 필요도 없는 266개의 파일을 읽고 비교하는데 토큰을 태우는 셈이니 완전 넌센스죠.
아니면 뭐, 토큰 소모 덜 하는 소넷 쓰라구요?
;;;;; 저를 뭘로 보고 그딴 에겐 모델을 쓰라는 거죠?
소~넷~? 내가 감당이 되려나? ㅎ;
사양할게요~
그러나 곧 괜찮은 아이디어가 떠올랐습니다.
바로 (아주 가소로운) 통계적인 해법이요!
파일 용량을 통한 비교를 하기로 했습니다.
당연히 영어와 한국어의 용량비가 1:1은 아닐 것입니다.
그러나 정상 번역된 파일쌍의 용량비는 특정 영역 내에만 분포 할 것이고,
번역이 비정상적으로 종료된 파일 쌍의 용량비는 그 영역 바깥에 존재 할 것입니다.
이 방법은 '번역 과정이 비정상적으로 종료' 되었다는 상황의 특수성 덕분에 유효할 것입니다.
방법은 이렇습니다:
1. 대응되는 파일 한 쌍의 용량 비율을 계산 합니다.
2. 용량 비율 오름차순으로 파일쌍 레코드들을 정렬합니다.
3. 비정상 번역과 정상 번역의 경계선으로 의심되는 용량 비율을 파일 쌍 레코드 하나에 대해서만 AI에게 번역 상태에 대한 감수를 지시합니다.
3-1. 감수 결과 정상이라는 판결이 나오면 그보다 한 단계 용량비가 낮은 파일 감수를 지시합니다. 이 과정을 비정상 판결이 나올 때 까지 반복합니다.
4. 최초로 비정상 판결이 나오면, 해당 파일 쌍의 용량 비율과 그보다 용량비가 낮은 파일쌍들은 모두 비정상으로 간주 할 수 있습니다.

비정상 번역본을 찾기 위해서 원문파일 대 번역파일 간 용량 비율을 조사하여 오름차순으로 정렬한 표의 일부
저는 33번 용량비 0.835인 파일 쌍을 의심했지만 AI는 이를 정상 번역이라고 판단했습니다.
그러나 바로 위인 32번 0.722를 비정상 번역이라고 하더군요. 갓챠!~
이렇게 총 4개의 파일 비교 만으로 비정상 번역 그룹을 구분했습니다.
133쌍의 파일을 전부 토큰 비용으로 태우는 것 보단 확실히 선방 했죠?
심지어 (예상대로) 자율 운행이 또 중간에 한 번 멈췄습니다...만!
이미 용량비 0.722 이하는 비정상이라는 기준이 있었으니 전수 조사 같은 비효율로부터는 완전히 자유로웠죠.
그 결과...
SAVE THE DAY 🤤
처음 멈췄을 때의 전체 통계
- **크기 차이 평균**: -2701.0 bytes
- **크기 차이 중앙값**: 355.0 bytes
- **크기 차이 표준편차**: 7829.5 bytes
- **크기 비율 평균**: 0.874
- **크기 비율 중앙값**: 1.068
- **크기 비율 표준편차**: 0.379
두번째로 멈췄을 떄의 전체 통계
- **크기 차이 평균**: -727.9 bytes
- **크기 차이 중앙값**: 498.0 bytes
- **크기 차이 표준편차**: 4432.3 bytes
- **크기 비율 평균**: 0.956
- **크기 비율 중앙값**: 1.074
- **크기 비율 표준편차**: 0.297
번역 완료 후의 전체 통계
- **크기 차이 평균**: 577.2 bytes
- **크기 차이 중앙값**: 523.5 bytes
- **크기 차이 표준편차**: 844.1 bytes
- **크기 비율 평균**: 1.066
- **크기 비율 중앙값**: 1.076
- **크기 비율 표준편차**: 0.074
comments
댓글 작성
앜ㅋㅋㅋㅋ 이 글 맛깔나네요 에겐 모델 사양할게~ 중간에 자율 운행 멈추는 이유는 무엇 때문인지 궁금하네용 👀
└ 25일 전 작성됨 - Hanabi K그 이유 뭔지 설명 하라고 윽박 질렀더니 띡 뭐라뭐라 말하고선 자기 다음 할일 있다고 스크롤 걍 막 넘겨버리드라구요. 그래서 못봤어요...ㅋㅋㅋㅋㅋ 담에 똑같은 상황 만들면 주리를 틀어서라도 이실직고 하게 만들게요 ㅋㅋ
└ 25일 전 작성, 그 약 1시간 후 수정됨 - 9vvin
클로드 맥스..! 프로랑 차이가 있는지도 궁금하네요!@
└ 27일 전 작성, 그 30초 후 수정됨 - 잔디매니저오 매니저님! 이런 귀한 분이 이런 누추한 곳에... 또!! 진짜 감사합니다 ㅠㅠㅠ 클로드 프로, 맥스 차이는요: 1. claude code 에서 max는 플래그쉽 모델(현시점 opus 4.1)을 쓸 수 있고요 2. 토큰 제한 천장이 max가 더 높고요 (max 5x는 pro 대비 다섯배, max 20x는 pro 대비 20배) 3. 비용 차이가 있습니다. (VAT 미포함 pro 월 $17, max 5x 월 $100, max 20x 월 $200) 한 줄 요약: 더 좋고 더 비싸요 ㅋㅋㅋ
└ 27일 전 작성됨 - 9vvin