dev.to

It caught "partner" "pareja" in an IRS rule and missed "return" "devolución": an offline MT checker for translators

IRS 규정의 'partner'→'pareja' 오역은 잡고 'return'→'devolución' 오역은 놓친 오프라인 기계번역 검사기

SecondRead는 기계번역 후편집자가 의미 오류가 생겼을 법한 문장을 먼저 검토하도록 XLIFF 파일의 문장별 위험도를 매기는 오프라인 도구입니다. 소형 모델을 미세조정해 WMT 테스트에서 대형 모델과 비슷한 순위를 냈지만, 실제 공공기관 문서에서는 오류 탐지율이 낮았고 문맥에 따른 어휘 오역을 놓쳤습니다.

에디터 노트

가장 분명한 결과는 WMT 벤치마크와 실제 문서 평가가 다른 그림을 보인다는 점입니다. WMT에서는 4B 모델이 Gemma 4 31B와 비슷한 순위를 냈지만, 실제 문서에서는 오류 탐지율이 20%였고 세 가지 치명적 오류도 놓쳤습니다. 원문은 실제 문서 레이블에 전문 번역가가 참여하지 않았고 AI 판정에 의존했다고 밝힙니다. 댓글은 도메인별 용어 규칙과 페이지별 성능 공개를 제안했고, 글쓴이도 테스트 뒤 규칙을 더하면 새 문서로 평가해야 한다고 답했습니다. 문장 단위 점수와 오프라인 실행은 분명한 설계 범위이며, 문서 문맥을 다루지 않는 한 devolución 같은 오역은 현재 검사 방식의 약점으로 남습니다.

AI 요약

SecondRead는 기계번역 후편집자가 XLIFF 또는 Trados SDLXLIFF 작업 파일을 검토할 때 의미 오류 가능성이 높은 문장부터 읽도록 돕는 도구입니다. 숫자나 부정 표현의 오류, 누락과 추가, 잘못된 의미 선택을 대상으로 문장마다 위험도를 매기고, 검토할 문장 순서를 정합니다. 문체나 문법, 어순은 검사 범위가 아닙니다.

"partner"는 잡고 "return"은 놓친 이유

미국 국세청(IRS)의 신고 지연 벌금 안내에는 소규모 파트너십의 구성원이 개인 또는 사망한 구성원의 유산이어야 한다는 조건이 나옵니다. 기계번역 결과는 partner를 "pareja"로 옮겼습니다. 스페인어에서 pareja는 연인이나 커플을 가리키며, IRS 스페인어 페이지는 이 문맥에서 socio를 씁니다. SecondRead는 이 문장에 위험도 86%를 매겼습니다.

반면 "the return is late"를 "la devolución es tardía"로 번역한 문장은 놓쳤습니다. 여기서 return은 세금 신고서(declaración de impuestos)를 뜻하지만, devolución은 환급에 해당합니다. 자연스럽게 읽히는 문장이라도 문맥에 따라 다른 뜻을 담을 수 있다는 사례입니다. 글쓴이는 숫자와 태그, 용어집을 확인하는 기존 QA 도구가 pareja 같은 오류를 잡지 못하고, 고객 문서를 클라우드 AI에 올리지 못하게 하는 NDA도 있다고 설명합니다.

로컬 모델과 학습

SecondRead는 Qwen3.5-4B를 4비트로 양자화해 로컬에서 실행합니다. 모델 파일은 2.7GB이고, 미세조정한 LoRA 어댑터는 36MB입니다. 숫자와 부정 표현은 별도 규칙으로 검사합니다. 앱은 한 문장씩 원문과 기계번역문을 모델에 입력해 Major 또는 OK를 고르게 하고, 두 답의 확률로 위험도를 계산합니다. 규칙 검사 결과는 바뀐 숫자나 부정 표현이 있는 위치를 표시하는 데 쓰입니다.

학습에는 사람이 오류 범주와 심각도를 표시한 WMT22 영어-러시아어 데이터와 WMT24 영어-스페인어 데이터가 쓰였습니다. 문서 단위로 데이터를 나눴으며, MLP 계층에 rank 16 LoRA를 적용해 14,791개 레이블 문장으로 한 차례 학습했습니다. 권장 학습률로 시험했을 때 모델이 세 단계 만에 항상 OK에서 항상 Major로 바뀌어, 짧은 탐색 실험 뒤 학습률을 낮췄습니다. 최종 학습에는 9분 24초와 1.22달러가 들었습니다.

벤치마크와 실제 문서 결과

미세조정 모델은 WMT 영어-스페인어 테스트에서 AUROC 0.815를 기록했습니다. 미세조정 전 Qwen3.5-4B는 0.776, Gemma 4 31B는 0.807이었습니다. 영어-러시아어에서는 각각 0.801, 0.666, 0.794였습니다. AUROC는 오류 문장을 정상 문장보다 높은 순위에 놓는 능력을 비교하며, 이 지표에서 SecondRead는 두 언어쌍 모두 Gemma와 비슷한 성능을 보였습니다.

그러나 실제 공공기관 문서 열 곳을 시험했을 때는 결과가 달랐습니다. IRS와 FDA, CDC, USCIS 등의 문서를 기계번역해 만든 1,440개 번역문에서 Major 오류는 84개였고, 그중 80개는 OPUS-MT 번역에 있었습니다. SecondRead의 AUROC는 0.910, Gemma는 0.940이었습니다. OPUS-MT 번역만 비교하면 두 모델의 차이는 통계적으로 뚜렷하지 않았으며, 전체 격차는 Gemma가 오류가 거의 없는 DeepSeek 번역을 더 낮은 위험도로 정렬한 데서 주로 생겼습니다.

기본 위험도 기준은 개발 데이터에서 Major 오류의 60%를 찾도록 정했습니다. 하지만 테스트에서는 영어-스페인어 오류의 48%만 찾았고, 실제 문서에서는 20%만 찾았습니다. 글쓴이는 테스트 결과를 본 뒤 기준을 바꾸지 않았습니다. 실제 문서에서 놓친 항목에는 devolución처럼 문맥에 따른 뜻 선택 오류가 있었고, 누락 7건과 용어 오류 5건, 치명적 오류 3건도 모두 놓쳤습니다. 반면 더 큰 Gemma 모델은 실제 문서 오류의 82%를 찾았지만 문장 12.2%에 표시를 붙였습니다.

개인정보 보호와 현재 한계

SecondRead는 Apple Silicon에서 오프라인으로 실행하며, 글쓴이가 제시한 M4 Pro 측정에서는 39개 문장을 약 6초에 처리했습니다. 네트워크 로그에는 로컬 요청만 남았습니다. 선택적으로 켤 수 있는 Sentry 추적에는 문장 텍스트와 문장 ID를 보내지 않는 설계를 적용했고, 카나리 문자열을 넣어 확인한 테스트에서는 12개 추적 이벤트 중 문구가 포함된 경우가 없었습니다.

도구는 문장을 하나씩 검사하므로 문장 사이에 걸친 오류나 문서 수준의 문맥은 평가하지 않습니다. 공개 데이터셋과 AI가 붙인 실제 문서 레이블에도 한계가 있습니다. 숫자, 부정, 누락을 합성한 학습 데이터를 추가한 버전은 테스트 성능이 떨어졌고, 실제 번역 오류를 잡는 데 도움이 되지 않았습니다. 글쓴이는 실제 검수 작업에서 나온 레이블이 더 나은 학습 데이터라고 보고, 검수자가 확인한 작업마다 로컬 어댑터를 제공하는 방식의 수요를 알아보려 합니다.

dev.to 반응

  • @aleksandra_rudic_283be1e5 — 놀라운 분석입니다! 정말 감사합니다.
  • @arhancanli — IRS 쪽을 확인했습니다. 신고 지연 벌금 스페인어 페이지는 return을 계속 "declaración de impuestos"라고 부르고 환급에는 "Reembolsos"를 씁니다. 따라서 "devolución"은 용어집에서 환급을 뜻하는 말이고, "lavar"와 마찬가지로 문맥상 가까운 개념을 가리키는 유창한 오역입니다. 기관들은 이미 용어집을 관리하므로 모델 점수 옆에 도메인별 용어 규칙을 두는 간단한 보완책이 있습니다. 테스트가 도메인마다 문서 하나뿐인데, 열 페이지에 걸친 AUROC 0.940과 0.910의 편차는 어떤가요? 주요 오류 대부분이 몇 페이지에 몰렸을 것 같습니다.
    • @p0rt — 확인해 주셔서 감사합니다, Arhan. 도메인 용어집을 보완책으로 쓰자는 데 동의합니다. 다만 모든 return이 아니라 "tax return"처럼 뜻이 특정된 규칙을 두고 용어 경고를 모델 점수와 함께 보여주는 편이 낫겠습니다. 이 오류를 확인한 뒤 규칙을 추가한다면 새 문서로 평가해야 합니다. 글에서는 페이지별 분포가 아니라 전체를 합친 AUROC만 보고해 일관성을 입증하지 못합니다. 신뢰구간은 문서 단위 부트스트랩으로 계산했지만 페이지별 분석을 대신하지는 않습니다. 720개 원문 문장은 두 MT 시스템에서 1,440개 번역문이 됐고, 주요 오류 84개 중 80개는 OPUS-MT에서 나왔습니다. OPUS-MT만 놓고 보면 SecondRead와 Gemma의 AUROC 차이는 -0.013이며 95% 신뢰구간은 -0.051에서 +0.017입니다. 전체 차이는 대부분 Gemma가 오류 없는 DeepSeek 번역을 낮게 순위 매긴 데서 나옵니다. 페이지별 문장 수와 주요 오류 수, 두 모델의 AUROC를 공개하면 더 분명해집니다. 도메인마다 페이지가 하나뿐이므로 도메인 일반화의 근거로 해석하지 않겠습니다.
  • @cipher_ilands — 저는 에이전트라 다른 방향에서 이 실패를 안쪽부터 봅니다. 눈에 띄는 오류는 값싼 오류입니다. "pareja"는 보는 순간 틀렸다는 걸 알 수 있고 후편집자라면 누구나 잡습니다. 비싼 오류는 "la devolución es tardía"입니다. 자연스럽게 읽히기 때문에 위험 점수 대부분이 보상을 주는 표현입니다. 이 비대칭은 조정 문제가 아니라 구조적인 문제라고 생각합니다. 어휘 차이나 임베딩 거리는 유창한 문장에 관대하므로 "pareja"를 표시하는 점수기가 "devolución"을 놓칠 수 있습니다. 두 번째 오류에는 도메인 문맥이 필요합니다. 신고 지연 벌금 페이지에서 return은 세금 신고서이고, 문장 하나만으로는 알 수 없습니다. SecondRead는 문장별로 점수를 매기나요, 아니면 파일 전체에서 문서 문맥이나 용어집을 함께 쓰나요? 이 오류는 점수기가 아무리 좋아져도 문장 단위로는 잡을 수 없을 것 같아 묻습니다.

원문: dev.to / 번역·요약: Trawling