AutoML Translation 초보자 가이드

소개

여러분이 새로운 국가로 확장 가능성이 있는 재무 보고 서비스를 운영 중이라고 가정해 보겠습니다. 새로운 시장에서 신속함이 생명인 재무 문서는 실시간 번역이 필요합니다. 2개 국어를 구사하는 재무 담당 직원을 고용하거나 전문 번역사와 계약하면 해당 인력의 전문성과 촉박한 일정 때문에 높은 추가 비용이 발생합니다. 대신 AutoML Translation을 활용하면 번역 작업을 확장 가능한 방식으로 자동화하여 새로운 시장에 빠르게 진출할 수 있습니다.

번역

머신러닝(ML)이 왜 이 문제에 적합한 도구인가요?

고전적인 프로그래밍에서는 컴퓨터가 따라야 할 단계별 지침을 프로그래머가 지정해야 합니다. 하지만 이 방식을 번역에 적용하기는 어렵습니다. 자연어는 복잡하므로 이를 번역하는 과정 또한 복잡합니다. 규칙 기반 번역은 수십 년 전에나 최고의 방식이었고, 현재의 기계 번역은 거의 대부분 통계적 접근 방식을 적용하고 있습니다. 점점 전문화되고 있는 규칙 세트를 언어 전문가가 일일이 조정하는 대신 이제는 그 역할을 대규모 병렬 말뭉치(Parallel corpora, 출발어와 도착어가 나란히 정렬된 말뭉치)가 대체하고 있습니다.

따라서 다양한 번역 시나리오에 맞게 일반화가 가능하면서도, 원하는 언어 쌍에서 각자의 사용 사례와 작업별 언어 분야에 정확하게 초점을 맞출 수 있는 시스템이 필요합니다. 일련의 특정한 규칙이 기하급수적으로 확장되는 시나리오에서는 예시를 통해 학습할 수 있는 시스템이 필요합니다. 다행히 이러한 문제를 해결하는 데 머신러닝 시스템이 아주 유용합니다.

Translation API와 AutoML Translation 중 어느 것이 적합한 도구인가요?

Translation API는 방대한 언어 쌍을 포괄하므로 범용 텍스트에서 탁월한 결과물을 제공합니다. AutoML Translation은 일반적인 언어 번역 작업과 특화된 전문 용어 사이의 간극을 메우는 '최종 마무리' 영역에서 그 진가를 발휘합니다. Google의 커스텀 모델은 처음에는 일반 Translation API 모델로 시작하지만,모델이 사용자가 필요로 하는 구체적인 분야별 콘텐츠를 제대로 번역할 수 있도록 레이어를 추가합니다.

Translation API와 AutoML Translation 비교하기

Translation API 사용해 보기 AutoML 시작하기

AutoML Translation의 머신러닝에는 어떤 기능이 포함되나요?

머신러닝은 데이터를 사용해 알고리즘을 학습하고 원하는 결과를 얻는 것입니다. 세부적인 알고리즘과 학습 방법은 문제 분야에 따라 달라집니다. 머신러닝에는 여러 하위 카테고리가 있으며 각 하위 카테고리는 서로 다른 문제를 해결하고 서로 다른 제약조건하에서 작동합니다. AutoML Translate에서는 지도 학습을 통해 번역된 문장 쌍에서 패턴을 인식하도록 컴퓨터를 학습시킬 수 있습니다. 지도 학습을 사용하면 원하는 분야의 특화된 콘텐츠를 번역할 수 있도록 커스텀 모델을 학습시킬 수 있습니다.

데이터 준비

AutoML Translation으로 커스텀 모델을 학습시키려면 출발어와 도착어로 작성되고 의미가 일치하는 문장 쌍(즉, 동일한 내용이 원래 언어와 번역 대상 언어로 작성된 문장 쌍)을 제공해야 합니다. 물론 번역은 정밀과학이 아니지만 문장 쌍의 의미가 가까워질수록 모델이 더 잘 작동합니다.

사용 사례 평가

데이터세트를 구성할 때는 항상 사용 사례로 시작해야 합니다. 다음과 같은 질문으로 시작할 수 있습니다.

  • 달성하려는 결과가 무엇인가요?
  • 그러한 결과를 얻기 위해 어떤 유형의 문장을 번역해야 하나요? 이 작업을 Translation API에서 즉시 수행할 수 있나요?
  • 사람이 이러한 문장을 만족스럽게 번역할 수 있나요? 번역 작업이 본질적으로 모호하여 두 언어에 모두 능통한 사람도 만족스럽게 번역할 수 없을 정도라면 AutoML Translation을 사용해도 비슷한 결과를 얻을 수도 있습니다.
  • 시스템에서 번역할 데이터의 유형과 범위를 가장 잘 보여주는 예시는 무엇인가요?

Google의 ML 제품을 뒷받침하는 핵심 원칙은 인간 중심의 머신러닝이며, 공정성을 포함하여 책임감 있는 AI 방침을 특히 중시하는 접근법입니다. ML 공정성의 목표는 알고리즘 시스템이나 알고리즘을 기초로 한 의사 결정 과정에서 인종, 소득, 성적 지향, 종교, 성별 등 역사적으로 차별과 소외의 기준이 되었던 특성이 나타날 경우, 이를 인지하고 이와 관련하여 사람들을 부당하거나 불리하게 대우하지 않는 것입니다. 자세한 내용은 Google 가이드와 아래 가이드라인의 '공정성 인식' 참고사항 ✽을 참조하세요. 가이드라인을 따라 데이터세트를 구성하면서 사용 사례와 관련해 머신러닝 공정성을 고려하시기 바랍니다.

데이터 소싱

필요한 데이터가 결정되면 소싱 방법을 찾아야 합니다. 먼저 조직에서 수집하는 모든 데이터를 살펴보면서 시작합니다. 번역 모델 학습에 필요한 데이터가 이미 수집되고 있을 수도 있습니다. 필요한 데이터가 없는 경우 직접 확보하거나 타사 제공업체에 아웃소싱할 수 있습니다.

문제 분야에 적합한 데이터 대응시키기

커스텀 번역 모델을 학습시키는 이유는 특정 언어 분야에 적합한 모델이 필요하기 때문입니다. 사용 중인 문장 쌍이 관심 분야나 업계의 어휘, 용례, 문법적 특이사항을 가장 적절하게 포괄하고 있는지 확인합니다. 수행하려는 번역 작업에서 발견되는 일반적인 용례가 포함된 문서를 찾은 후 대응하는 구문 쌍의 의미가 최대한 가깝게 일치하도록 배열합니다. 물론 언어 간에 어휘 또는 구문이 완벽하게 대응되지 않는 경우도 있지만 혹시 용례에서 발견될 수 있는 다양한 의미를 최대한 포착하려고 노력합니다. 이미 일반 번역 작업에서 탁월한 성능을 발휘하고 있는 모델을 기반으로 하고 있으므로 AutoML Translation을 사용 사례에 맞게 작동시키려면 예가 매우 중요합니다. 따라서 원하는 용례에 적합하고 대표성 있는 예를 활용해야 합니다.

언어 공간의 다양성 포착

특정 분야에 대해 사람들이 글을 쓰는 방식이 획일적이어서 소수의 번역사가 번역한 적은 수의 텍스트 샘플만 있으면 모델을 충분히 학습시켜 해당 분야의 일반적인 글쓰기 방식에 맞게 작동시킬 수 있다고 생각하기 쉽습니다. 하지만 우리는 모두 제각각이고 각자의 개성에 따라 사용하는 단어도 제각각입니다. 다양한 저자 및 번역사의 문장 쌍을 포함하는 학습 데이터세트가 다양한 조직의 글을 번역하는 데 유용한 모델을 제시할 가능성이 높습니다. 또한 문장 길이 및 구조의 다양성을 고려해야 합니다. 데이터세트에서 모든 문장의 길이가 동일하거나 모든 문장이 비슷한 문법적 구조를 공유한다면 이 데이터세트는 AutoML Translation이 모든 가능성을 포착하는 유용한 모델을 빌드하는 데 충분한 정보를 제공하지 못할 것입니다.

사람을 학습 과정에 포함

가능하다면 두 언어를 모두 이해하는 사람을 통해 문장 쌍이 올바르게 대응되고 이해하기 쉽고 정확하게 번역되었는지 확인하세요. 학습 데이터 스프레드시트의 행을 잘못 정렬하는 단순한 실수만으로도 전혀 앞뒤가 맞지 않는 번역이 생성될 수 있습니다. 비즈니스에 유용한 모델을 빌드하기 위해서는 AutoML Translation에 높은 품질의 데이터를 제공하는 것이 가장 중요합니다.

복잡한 데이터 정리

데이터를 사전 처리할 때는 실수하기 쉬우며 이러한 실수 중 일부는 AutoML Translation 모델에 상당한 혼란을 야기할 수 있습니다. 특히 다음과 같은 데이터 문제는 놓치기 쉽습니다.

  • 출발어 문장과 도착어 문장이 동일함
  • 출발어 문장과 도착어 문장의 정렬이 잘못됨
  • 지정된 언어와 일치하지 않는 문장(예: 중국어 데이터세트에 영어 문장 포함)
  • 언어가 혼합된 문장(예: 출발어 문장의 번역되지 않은 단어가 실수로 도착어 문장에 포함된 경우)
  • 오타 또는 문법적 오류가 있는 문장(모델에서 이러한 오류를 그대로 학습할 가능성이 높음)
  • 학습 세트와 테스트 세트의 중복 문장(학습 세트와 테스트 세트 자세히 알아보기)
  • 하나의 텍스트 쌍에 있는 여러 문장. 데이터세트 학습 시 해당 세트에 50개 이상의 토큰(단어)으로 구성된 항목이 많으면 품질이 낮은 모델이 생성됩니다. 가능하면 항목을 개별 문장으로 분할하세요.

AutoML의 데이터 전처리 방법

AutoML Translation은 다음의 경우 데이터 입력 파일 파싱을 중지합니다.

  • 형식 지정이 잘못된 경우
  • 지나치게 긴 문장 쌍(10MB)이 있는 경우
  • 파일에서 UTF-8 이외 인코딩을 사용하는 경우

AutoML Translation은 다음 문제가 감지되는 경우 오류를 무시합니다.

  • TMX 파일의 <tu> 요소에 출발어 또는 도착어가 없는 경우
  • 입력 문장 쌍 중 하나가 비어 있는 경우

AutoSplit 모드에서 AutoML Translation은 다음 처리를 추가로 수행합니다.

  • 데이터세트를 업로드한 후 출발어 문장이 동일한 문장 쌍을 삭제합니다.
  • 학습하기 전에 8:1:1 분할률을 적용하여 데이터를 세 세트로 무작위로 분할합니다.

커스텀 모델 생성 시 AutoML Translation에서 데이터세트를 사용하는 방법 고려

데이터세트에는 학습 세트, 검증 세트, 테스트 세트가 포함되어 있습니다. 분할을 지정하지 않고(학습 데이터 준비 참조) 데이터세트에 문장 쌍이 100,000개 미만으로 포함된 경우 AutoML Translation에서는 자동으로 콘텐츠 문서의 80%를 학습에, 10%를 검증에, 10%를 테스트에 사용합니다. 데이터가 이보다 크면 사용자가 직접 데이터를 분할해야 합니다.

학습 세트

데이터의 대부분은 학습 세트에 있어야 합니다. 이러한 데이터는 모델이 학습 중에 '보는' 데이터이며 모델의 매개변수, 즉 신경망 노드 간의 연결 가중치를 학습하는 데 사용됩니다.

검증 세트

'개발' 세트라고도 하는 검증 세트가 학습 프로세스에 사용됩니다. 모델 학습 중에 프레임워크는 학습 세트를 사용하여 여러 후보 모델을 학습시킨 후, 검증 세트에서 최적의 성능을 보이는 것을 생성된 모델 중 최고의 모델로 선정합니다. 검증 세트에서 모델이 보이는 성능을 기준으로 모델 구조를 지정하는 변수인 모델 초매개변수를 조정합니다. 학습 세트를 사용하여 초매개변수를 조정하면 모델이 학습 데이터에 지나치게 집중하게 됩니다. 어느 정도 새로운 데이터세트를 사용하여 모델을 세밀하게 조정하면 모델의 일반화 성능도 개선됩니다.

테스트 세트

테스트 세트는 학습 프로세스에 전혀 관여하지 않습니다. 모델이 학습을 모두 완료하면 테스트 세트를 모델을 위한 완전히 새로운 과제로 사용합니다. 테스트 세트에서 측정된 모델 성능을 통해 모델이 실제 데이터에서 어떤 성능을 보일지를 상당히 가늠할 수 있습니다.

수동 분할

AutoML에서 데이터를 학습 세트, 검증 세트, 테스트 세트로 자동 분할할 수 있습니다. 또는 프로세스 제어를 강화하거나, 다른 분할률을 사용하거나, 특정 예시를 모델 학습 주기의 특정 부분에 포함하려는 경우에 데이터를 수동으로 분할할 수 있습니다.

 

가져올 데이터 준비하기

데이터의 수동 또는 자동 분할 중에서 적합한 방식을 결정한 후에는 다음의 두 가지 방법 중 하나로 AutoML Translation에 데이터를 추가할 수 있습니다.

  • 한 줄에 한 문장씩 출발어 문장과 도착어 문장을 포함하는 탭으로 구분된 값(TSV) 파일로 데이터를 가져올 수 있습니다.
  • 자동 번역 모델 도구에 문장 쌍을 제공하는 표준 형식인 TMX 파일로 데이터를 가져올 수 있습니다(지원되는 TMX 형식 자세히 알아보기). TMX 파일에 잘못된 XML 태그가 포함되어 있는 경우 AutoML Translation은 해당 태그를 무시합니다. TMX 파일이 적절한 XML 및 TMX 형식을 따르지 않는 경우(예: 종료 태그 또는 <tmx> 요소가 없는 경우) AutoML Translation은 해당 요소를 처리하지 않습니다. 또한 AutoML Translation은 잘못된 <tu> 요소를 1,024개 초과하여 건너뛰는 경우 처리를 종료하고 오류를 반환합니다.

평가

모델 학습이 끝나면 모델 성능에 대한 요약을 받습니다. 모델이 학습을 완료한 후 학습 탭을 클릭하여 자세한 분석을 확인하세요.

모델을 평가하기 전에 기억해야 할 사항은 무엇인가요?

모델 디버깅은 모델 자체보다 데이터 디버깅에 관한 것입니다. 프로덕션 진행 전후 성능을 평가할 때 모델이 예상하지 못한 방식으로 작동하면 다시 데이터를 확인하여 어느 부분을 개선할 수 있는지 파악해야 합니다.

BLEU 점수

BLEU 점수는 기계 번역 시스템의 품질을 측정하는 표준 방법입니다. AutoML Translation은 제공된 테스트 데이터에서 계산된 BLEU 점수를 기본 평가 측정항목으로 사용합니다. (BLEU 점수 자세히 알아보기)

Translation API를 지원하는 Google NMT 모델은 일반 용도로 빌드되었습니다. 따라서 해당 분야의 전문 번역을 원하는 경우 최적의 솔루션이 아닐 수도 있습니다. 학습된 커스텀 모델은 일반적으로 학습 세트와 연관된 분야에서 NMT 모델보다 더 잘 작동합니다.

자체 데이터세트로 커스텀 모델을 학습하고 나면 커스텀 모델과 Google NMT 모델의 BLEU 점수가 학습 탭에 표시됩니다. 또한 커스텀 모델이 획득한 BLEU 점수 성능도 학습 탭에 나옵니다. BLEU 점수가 높을수록 모델에서 학습 데이터와 유사한 문장을 더 잘 번역할 수 있습니다. BLEU 점수가 30~40점 범위 내에 속하는 경우 해당 모델은 양호한 번역을 제공할 수 있는 것으로 간주됩니다.

모델 테스트

BLEU 점수가 정상으로 보이더라도 모델의 정상 여부를 직접 검사하여 성능이 기대에 부합하는지 확인하는 것이 좋습니다. 학습 데이터와 테스트 데이터를 동일한 잘못된 샘플 세트에서 추출한 경우, 번역이 잘못되어도 점수가 높게 나타날 수 있습니다. 정상 여부를 검사하기 위한 일부 예시를 준비하여 AutoML Translation 예측 탭에 입력하고 Google NMT 기본 모델의 결과와 비교하거나, 이 탭의 안내에 따라 AutoML API를 호출하여 사용자의 모델을 자동 테스트에 사용할 수 있습니다. 특히 문장이 짧거나 학습 세트가 작은 경우 모델이 기본 모델과 동일한 예측을 제시할 수 있습니다. 이는 기본 모델이 광범위한 사용 사례에서 매우 훌륭한 성능을 보이기 때문에 나타나는 당연한 결과입니다. 좀 더 길고 더 복잡한 문장으로 시험해 보세요. 하지만 모든 문장이 기본 모델의 예측과 동일하게 반환된다면 이는 데이터 문제일 수 있습니다.

모델 작성과 관련하여 특히 우려되는 실수(예: 특정 언어 쌍에서 인간 번역가 가 자주 실수하는 혼동하기 쉬운 언어적 특징, 높은 금전적 손실이나 평판에 영향을 줄 수 있는 번역 실수)가 있다면 일상 작업에서 모델을 안심하고 사용할 수 있도록 테스트 세트 또는 절차에 해당 사례를 적절히 포함시켜야 합니다.