비전·음성·추천

DOMAIN / 54번째 글

다국어 전이 — 라벨 없는 언어에서 모델이 동작하는 이유

영어 라벨만으로 학습한 분류기가 한국어 문장을 그대로 처리하는 일이 실제로 일어납니다. 여러 언어가 한 표현 공간에 겹쳐 놓이는 원리, 그 겹침이 무너지는 조건, 번역해서 학습할지 번역해서 추론할지 고르는 기준, 그리고 언어별로 나눠 재야 하는 이유를 정리합니다.

PALDYN Team16 MIN READ

분류기를 하나 만들어야 하는데 라벨이 영어로만 있다. 한국어 · 일본어 · 태국어에서도 같은 판정이 필요하지만 그쪽 라벨은 없고 만들 예산도 없다. 이럴 때 실제로 통하는 방법이 있다. 영어 라벨로만 학습시킨 뒤 한국어 문장을 그냥 넣어 보는 것이다.

말이 안 되는 것 같은데 꽤 자주 동작한다. 이것을 교차 언어 전이(cross-lingual transfer)라 부른다 — 한 언어에서 배운 능력이 학습에 쓰이지 않은 다른 언어로 옮겨 가는 현상이다. 왜 되는지를 알면 언제 안 되는지도 보인다.

여러 언어가 한 공간에 겹쳐 있다

핵심은 사전학습 단계에 있다. 다국어 모델은 처음에 백 개 안팎 언어의 라벨 없는 문장을 하나의 모델에 넣어 학습한다. 어느 언어인지 알려 주지도 않고, 문장끼리 짝지어 주지도 않는다. 그냥 섞어 넣는다.

그런데도 학습이 끝나면 뜻이 비슷한 문장들이 언어와 상관없이 가까운 자리에 놓인다.

여러 언어가 한 표현 공간에 겹쳐 놓이고, 그 위에 올린 분류기가 언어를 건너뛴다

겹치는 이유는 몇 가지가 겹쳐서다.

  • 모델을 나눠 쓴다. 언어마다 다른 파라미터를 주지 않고 전부 같은 층을 통과시킨다. 한정된 공간에 모든 언어를 담아야 하니 공통되는 구조를 공유하는 쪽으로 압력이 생긴다
  • 글자가 겹친다. 숫자, 사람 이름, 회사명, 영어 낱말은 어느 언어 문서에나 그대로 등장한다. 이런 조각이 언어 사이를 잇는 못 역할을 한다
  • 문맥의 모양이 닮았다. "___를 먹었다"의 자리에 오는 것과 "ate ___"의 자리에 오는 것은 겹친다. 빈칸 맞히기로 학습하면 이 닮음이 표현에 새겨진다

그래서 영어 라벨로 그 공간 위에 분류기를 올리면, 같은 자리에 놓인 한국어 문장도 같은 판정을 받는다. 분류기는 언어를 본 적이 없고 자리만 봤기 때문이다.

네 가지 방법이 있다

라벨이 한 언어에만 있을 때 실제로 고를 수 있는 선택지는 넷이다.

하는 일 좋은 점 걸리는 점
그대로 전이 영어로 학습하고 한국어를 그냥 넣는다 추가 비용이 없다 언어마다 성능 차가 크다
번역해서 학습 영어 라벨을 한국어로 기계번역해 함께 학습 대개 가장 성능이 좋다 번역 품질이 상한을 정한다
번역해서 추론 한국어 입력을 영어로 번역해 영어 모델에 넣는다 모델을 하나만 관리한다 실행할 때마다 번역 비용과 지연
소량 라벨 대상 언어 라벨 수백 건만 보탠다 투입 대비 효과가 가장 크다 라벨을 만들어야 한다

실무에서 가장 값이 좋은 것은 대개 마지막이다. 대상 언어 라벨 몇백 건이 라벨 0건과 수만 건 사이 격차의 절반 이상을 메운다. 그대로 전이로 시작해 성능을 재 보고, 부족한 언어에만 라벨을 몇백 건 만드는 순서가 가장 현실적이다.

번역해서 추론하는 방식은 겉보기에 단순해서 자주 선택되는데, 두 가지를 놓치기 쉽다. 번역기가 틀리면 그대로 틀리고, 그 오류가 어디서 났는지 나중에 추적하기 어렵다. 그리고 정보 추출처럼 원문의 위치를 결과에 실어야 하는 작업에는 쓸 수 없다 — 번역된 문장의 위치는 원문의 위치가 아니기 때문이다.

겹침이 무너지는 자리

전이가 잘 되는 언어와 안 되는 언어의 차이는 대체로 아래에서 나온다.

사전학습에 얼마나 들어갔는가. 가장 큰 요인이다. 웹 문서가 많은 언어는 표현이 잘 잡히고, 적게 들어간 언어는 애초에 무리가 형성되지 않는다. 백 개 언어를 지원한다는 모델도 실제로는 상위 스무 개 정도에서만 쓸 만한 경우가 흔하다.

문자 체계가 다른가. 로마자를 쓰는 언어끼리는 글자가 겹쳐서 못이 많이 박힌다. 한글 · 태국 문자 · 데바나가리처럼 문자 자체가 다르면 그 못이 숫자와 고유명사밖에 없다. 다만 문자가 달라도 자료가 충분하면 전이는 일어난다 — 한국어와 일본어가 그 예다.

토크나이저가 그 언어를 잘 자르는가. 이 자리가 조용히 성능을 깎는다. 토크나이저의 사전은 학습 자료의 언어 비율을 따라가므로, 자료가 적은 언어는 낱말이 잘게 부서진다. 영어 문장이 20토큰일 때 같은 뜻의 문장이 60토큰이 되면 세 가지가 한꺼번에 나빠진다.

  • 같은 문맥 창에 3분의 1밖에 안 들어간다
  • 토큰당 과금이라 비용이 세 배가 된다
  • 한 낱말이 여러 조각으로 흩어져 표현이 흐려진다

한 낱말이 몇 조각으로 쪼개지는지를 재는 값을 분절률(fertility)이라 부른다. 새 언어를 지원 목록에 올리기 전에 이 값부터 재 보면, 그 언어에서 성능이 왜 안 나오는지가 모델을 손대기 전에 설명되는 경우가 많다.

언어를 늘릴수록 각 언어가 손해를 본다. 모델 크기가 그대로인데 담는 언어를 늘리면 언어마다 쓸 수 있는 용량이 줄어 결국 전부 조금씩 나빠진다. 지원 언어 수가 자랑거리가 아니라 절충이라는 뜻이다. 우리에게 필요한 언어가 다섯이라면 백 개짜리보다 그 다섯을 잘 담은 모델이 낫다.

언어별로 나눠 재지 않으면 아무것도 안 보인다

다국어 시스템의 평가에서 가장 흔한 실수는 전체 평균 하나를 보는 것이다. 언어별 성능 차이가 20~30%p까지 벌어지는 일이 흔한데, 평균은 그 사실을 완전히 감춘다. 트래픽이 영어에 몰려 있으면 평균은 영어 성능에 가깝게 나오고, 정작 문제가 있는 언어는 숫자에 안 나타난다.

그래서 이렇게 본다.

  • 언어마다 따로 낸다. 그리고 가장 나쁜 언어의 값을 함께 본다. 서비스 품질은 대개 최악의 언어가 정한다
  • 표본 수를 함께 적는다. 트래픽이 적은 언어는 평가 표본도 적어 숫자가 크게 흔들린다. 30건으로 잰 95%와 3,000건으로 잰 95%는 다른 정보다
  • 언어 판별이 맞는지부터 본다. 성능이 이상하게 낮은 언어를 파 보면 애초에 언어 판별이 틀려 다른 경로로 갔던 경우가 자주 있다

평가 자료를 만드는 방식에도 함정이 있다. 영어 평가셋을 기계번역해 만든 다국어 평가셋은 실제 그 언어의 글과 다르다. 번역문은 원문의 문장 구조를 끌고 오기 때문에 문장이 부자연스럽게 규칙적이고, 그 언어에서 실제로 자주 쓰는 표현이 안 나온다. 이런 자료에서 잘 나오는 모델이 실제 사용자 문장에서 무너지는 일이 생긴다. 적은 수라도 그 언어로 원래 쓰인 문장을 평가 자료에 섞어 두는 편이 낫다.

큰 언어 모델을 쓸 때

요즘은 분류기를 따로 학습시키는 대신 큰 언어 모델에 시키는 경우가 많다. 전이가 거저 되는 것처럼 보이지만 성질은 비슷하게 남아 있다.

  • 성능은 여전히 언어마다 다르다. 학습 자료의 언어 비율을 따라간다는 사실은 바뀌지 않았다. 지시를 잘 따르는 정도, 형식을 지키는 정도가 언어에 따라 눈에 띄게 달라진다
  • 지시문의 언어와 입력의 언어를 갈라 생각한다. 지시를 영어로 쓰고 한국어 입력을 처리하게 하는 편이 더 안정적인 경우가 흔하다. 지시를 따르는 능력은 영어에서 가장 잘 훈련되어 있기 때문인데, 대신 출력 언어를 명시하지 않으면 답이 영어로 새어 나온다
  • 출력 언어를 못 박는다. "반드시 한국어로 답한다"를 안 적으면 입력 언어를 따라가다가 중간에 바뀐다. 특히 추론 과정을 길게 쓰게 하면 그 부분이 영어로 흐르는 경우가 많다
  • 구조화된 출력이 언어를 덜 탄다. 정해진 값 중 하나를 고르게 하면 자유 서술보다 언어 간 격차가 작다. 텍스트 분류처럼 답의 후보가 정해진 작업을 다국어로 돌릴 때 유리한 성질이다

한국어에서 특히 볼 것

  • 분절률을 먼저 잰다. 쓰려는 모델의 토크나이저가 한국어를 몇 조각으로 자르는지가 비용과 문맥 길이를 그대로 정한다
  • 문체가 라벨을 흔든다. 존댓말과 반말, 구어와 문어의 차이가 감성 분석 같은 작업의 판정을 바꾼다. 영어 라벨로 학습한 모델은 이 축을 아예 모른다
  • 조사와 어미가 붙는다. 낱말 단위로 겹치는 조각이 영어보다 적어 못이 덜 박힌다. 한국어 처리에서 다룬 형태소 단위의 전처리가 전통적 모델에서는 여전히 도움이 된다
  • 번역해서 추론하는 길은 존댓말을 잃는다. 영어를 거치면 문체 정보가 사라지므로, 그 축이 판정에 들어가는 작업에서는 쓰지 않는다

정리

  • 다국어 모델은 여러 언어를 한 표현 공간에 겹쳐 놓는다. 뜻이 비슷하면 언어가 달라도 가까운 자리에 놓이고, 그 위에 올린 분류기는 언어가 아니라 자리를 본다
  • 겹침은 모델 공유 · 겹치는 글자 · 닮은 문맥에서 생긴다. 짝지은 번역문이 없어도 일어난다
  • 선택지는 넷이다. 대상 언어 라벨 수백 건을 보태는 것이 투입 대비 효과가 가장 크다
  • 번역해서 추론하는 방식은 원문 위치를 결과에 실어야 하는 작업에는 못 쓴다
  • 전이가 무너지는 조건은 사전학습 자료량, 다른 문자 체계, 그리고 토크나이저의 분절률이다. 새 언어를 올리기 전에 분절률부터 잰다
  • 지원 언어를 늘리면 언어마다 쓸 용량이 줄어 전부 조금씩 나빠진다. 지원 언어 수는 자랑이 아니라 절충이다
  • 평가는 언어별로 나눠 내고 가장 나쁜 언어의 값을 함께 본다. 평균 하나는 문제를 감춘다
  • 기계번역으로 만든 평가셋은 그 언어의 실제 글과 다르다. 원래 그 언어로 쓰인 문장을 일부라도 섞는다
  • 큰 언어 모델을 써도 언어별 격차는 남는다. 지시문 언어와 출력 언어를 갈라 명시하고, 답의 후보가 정해진 형태로 만들면 격차가 줄어든다

읽어주셔서 감사합니다. 😊

LATEST

비전·음성·추천의 최신 글

비전·음성·추천2026.09.07

음성 대 음성 — 글자를 거치지 않고 소리에서 소리로

소리를 글자로 바꿨다가 다시 소리로 만드는 경로는 억양과 감정을 가운데서 버립니다. 소리를 곧바로 소리로 옮기는 방식이 무엇을 얻고 무엇을 포기하는지, 소리를 토큰으로 다루는 원리, 목소리를 그대로 옮길 때의 위험, 그리고 평가가 왜 어려운지를 정리합니다.

15 MIN
비전·음성·추천2026.09.07

화자 분리 — 누가 언제 말했는가를 시간축에 적는 일

회의 녹음을 글로 옮기면 누가 한 말인지가 사라집니다. 화자 분리가 푸는 문제와 네 걸음짜리 처리 과정, 겹쳐 말한 구간이 왜 가장 어려운지, DER이라는 지표가 무엇을 세는지, 그리고 음성 인식과 붙일 때 실제로 부딪히는 자리를 정리합니다.

17 MIN
비전·음성·추천2026.09.06

깊이 추정 — 그림 한 장에서 앞뒤를 읽어 내는 일

사진 한 장에서 거리 지도를 얻는 단안 깊이 추정을 정리합니다. 왜 크기와 거리가 함께 정해지지 않는지, 순서·배율 미상·미터 단위 세 종류의 출력이 어떻게 다른지, 시차와 깊이의 역수 관계, 미터로 올리는 방법, 그리고 자주 무너지는 자리를 다룹니다.

13 MIN