AutoML Translation 초보자 가이드
AutoML Translation을 사용하면 기본 Google 인공신경망 기계 번역(NMT) 모델과 비교하여 도메인별 콘텐츠에 맞게 조정된 커스텀 모델을 코딩 없이 빌드할 수 있습니다.
여러분이 새로운 국가로 확장 가능성이 있는 재무 보고 서비스를 운영 중이라고 가정해 보겠습니다. 새로운 시장에서 신속함이 생명인 재무 문서는 실시간 번역이 필요합니다. 2개 국어를 구사하는 재무 담당 직원을 고용하거나 전문 번역사와 계약하면 해당 인력의 전문성과 촉박한 일정 때문에 높은 추가 비용이 발생합니다. 대신 커스텀 모델을 활용하면 번역 작업을 확장 가능한 방식으로 자동화할 수 있습니다.
직접 사용해 보기
Google Cloud를 처음 사용하는 경우 계정을 만들어 실제 시나리오에서 Cloud Translation의 성능을 평가할 수 있습니다. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
Cloud Translation 무료로 사용해보기머신러닝(ML)이 왜 이 문제에 적합한 도구일까요?
고전적인 프로그래밍에서는 컴퓨터가 수행해야 할 단계별 지침을 프로그래머가 지정해야 합니다. 하지만 이 규칙 기반 방식을 번역에 적용하기는 어렵습니다. 자연어는 복잡하므로 이를 번역하는 과정 또한 복잡합니다. 기계 번역은 거의 대부분 통계적 접근 방식을 적용하고 있습니다. 전문화된 규칙 세트를 언어 전문가가 일일이 조정하는 대신 이제는 그 역할을 대규모 병렬 말뭉치(Parallel corpora, 출발어와 도착어가 나란히 정렬된 말뭉치)가 대체하고 있습니다.
따라서 다양한 번역 시나리오에 맞게 일반화가 가능하면서도, 원하는 언어 쌍에서 각자의 사용 사례와 작업별 언어 분야에 정확하게 초점을 맞출 수 있는 시스템이 필요합니다. 일련의 특정한 규칙이 기하급수적으로 확장되는 시나리오에서는 예시를 통해 학습할 수 있는 시스템이 필요합니다. 다행히 이러한 문제를 해결하는 데 머신러닝 시스템이 아주 유용합니다.
기본 NMT 모델이나 커스텀 모델 중 어느 것이 적합한 도구인가요?
인공신경망 기계 번역(NMT) 모델은 수많은 언어 쌍을 포괄하며 범용 텍스트에서 잘 작동합니다. 커스텀 모델은 일반적인 언어 번역 작업과 특화된 전문 용어 사이의 간극을 메우는 '최종 마무리' 영역에서 그 진가를 발휘합니다. AutoML Translation은 일반 NMT 모델에서 시작한 후 학습 데이터에 맞게 모델을 조정하여 중요한 분야별 콘텐츠에 적합한 번역을 제공합니다.
머신러닝에는 어떤 기능이 포함되나요?
머신러닝은 데이터를 사용해 알고리즘을 학습하고 원하는 결과를 얻는 것입니다. 세부적인 알고리즘과 학습 방법은 문제 분야에 따라 달라집니다. 머신러닝에는 여러 하위 카테고리가 있으며 각 하위 카테고리는 서로 다른 문제를 해결하고 서로 다른 제약조건하에서 작동합니다. AutoML Translation에서는 지도 학습을 통해 번역된 세그먼트 쌍에서 패턴을 인식하도록 컴퓨터를 학습시킬 수 있습니다. 지도 학습을 사용하면 원하는 분야의 특화된 콘텐츠를 번역할 수 있도록 커스텀 모델을 학습시킬 수 있습니다.
데이터 준비
커스텀 모델을 학습시키려면 출발어와 도착어로 작성되고 의미가 일치하는 세그먼트 쌍(즉, 동일한 내용이 원래 언어와 번역 대상 언어로 작성된 세그먼트 쌍)을 제공해야 합니다. 세그먼트 쌍의 의미가 가까워질수록 모델이 더 잘 작동합니다.
사용 사례 평가
데이터세트를 구성할 때는 항상 사용 사례로 시작해야 합니다. 다음과 같은 질문으로 시작할 수 있습니다.
- 달성하려는 결과가 무엇인가요?
- 그러한 결과를 얻기 위해 어떤 유형의 세그먼트를 번역해야 하나요? 이 작업을 NMT 모델에서 즉시 수행할 수 있나요?
- 사람이 이러한 세그먼트를 만족스럽게 번역할 수 있나요? 번역 작업이 본질적으로 모호하여 두 언어에 모두 능통한 사람도 만족스럽게 번역할 수 없을 정도라면 NMT 모델과 커스텀 모델을 사용해도 비슷한 결과를 얻을 수도 있습니다.
- 시스템에서 번역할 데이터의 유형과 범위를 가장 잘 보여주는 예시는 무엇인가요?
Google의 ML 제품을 뒷받침하는 핵심 원칙은 인간 중심의 머신러닝이며, 공정성을 포함하여 책임감 있는 AI 방침을 특히 중시하는 접근법입니다. ML 공정성의 목표는 알고리즘 시스템이나 알고리즘을 기초로 한 의사 결정 과정에서 인종, 소득, 성적 지향, 종교, 성별 등 역사적으로 차별과 소외의 기준이 되었던 특성이 나타날 경우, 이를 인지하고 이와 관련하여 사람들을 부당하거나 불리하게 대우하지 않는 것입니다. 자세한 내용은 가이드와 아래 가이드라인에 나와있는 공정성 인식(fair-aware) 주석 ✽에서 확인하실 수 있습니다. 가이드라인을 따라 데이터 세트를 구성하면서 사용 사례와 관련해 머신러닝 공정성을 고려하시기 바랍니다.
데이터 소싱
필요한 데이터가 결정되면 소싱 방법을 찾아야 합니다. 먼저 조직에서 수집하는 모든 데이터를 살펴보는 것으로 시작할 수 있습니다. 이렇게 하면 번역 모델 학습에 필요한 데이터가 이미 수집되고 있다는 것을 알 수도 있습니다. 필요한 데이터가 없는 경우 직접 확보하거나 타사 제공업체에 아웃소싱할 수 있습니다.
문제 분야에 적합한 데이터 대응시키기
커스텀 번역 모델을 학습시키는 이유는 특정 언어 분야에 적합한 모델이 필요하기 때문입니다. 사용 중인 세그먼트 쌍이 관심 분야나 업계의 어휘, 용례, 문법적 특이사항을 가장 적절하게 포괄하고 있는지 확인합니다. 수행하려는 번역 작업에서 발견되는 일반적인 용례가 포함된 문서를 찾은 후 대응하는 구문 쌍의 의미가 최대한 가깝게 일치하도록 배열합니다. 물론 언어 간에 어휘 또는 구문이 완벽하게 대응되지 않는 경우도 있지만 혹시 용례에서 발견될 수 있는 다양한 의미를 최대한 포착하려고 노력합니다. 이미 일반 번역 작업에서 탁월한 성능을 발휘하고 있는 모델을 기반으로 하고 있으므로 커스텀 모델을 사용 사례에 맞게 작동시키려면 예가 매우 중요합니다. 따라서 원하는 용례에 적합하고 이를 대표하는 예를 활용해야 합니다.
언어 공간의 다양성 포착
특정 분야에 대해 사람들이 글을 쓰는 방식이 획일적이어서 소수의 번역사가 번역한 적은 수의 텍스트 샘플만 있으면 모델을 충분히 학습시켜 해당 분야의 일반적인 글쓰기 방식에 맞게 작동시킬 수 있다고 생각하기 쉽습니다. 하지만 우리는 모두 제각각이고 각자의 개성에 따라 사용하는 단어도 제각각입니다. 다양한 저자 및 번역사의 세그먼트 쌍을 포함하는 학습 데이터 세트가 다양한 조직의 글을 번역하는 데 유용한 모델을 제시할 가능성이 높습니다. 또한 세그먼트 길이 및 구조의 다양성을 고려해야 합니다. 데이터 세트에서 모든 세그먼트의 길이가 동일하거나 모든 세그먼트가 비슷한 문법적 구조를 공유한다면 이 데이터 세트는 Cloud Translation이 모든 가능성을 포착하는 유용한 모델을 빌드하는 데 충분한 정보를 제공하지 못할 것입니다.
사람을 학습 과정에 포함
가능하다면 두 언어를 모두 이해하는 사람을 통해 세그먼트 쌍이 올바르게 대응되고 이해하기 쉽고 정확하게 번역되었는지 확인하세요. 학습 데이터 스프레드시트의 행을 잘못 정렬하는 단순한 실수만으로도 전혀 앞뒤가 맞지 않는 번역이 생성될 수 있습니다. 비즈니스에 유용한 모델을 빌드하기 위해서는 AutoML Translation에 높은 품질의 데이터를 제공하는 것이 가장 중요합니다.
복잡한 데이터 정리
데이터를 사전 처리할 때는 실수하기 쉬우며 이러한 실수 중 일부는 커스텀 모델에 상당한 혼란을 야기할 수 있습니다. 특히 다음과 같은 데이터 문제를 해결할 수 있습니다.
- 특히 도착어 번역이 다를 때 중복된 출발어 세그먼트를 삭제합니다. AutoML Translation은 처음 살펴본 예시만 사용하며, 가져올 때 다른 모든 쌍을 삭제합니다. 중복을 삭제함으로써 AutoML Translation에서 사용자가 원하는 번역을 사용하도록 합니다.
- 출발어 세그먼트를 올바른 도착어 세그먼트에 정렬합니다.
- 세그먼트를 지정된 언어와 일치시킵니다. 예를 들어 중국어 데이터 세트에는 중국어 세그먼트만 포함시킵니다.
- 여러 언어가 포함된 도착어 세그먼트의 경우, 제품 또는 조직 이름과 같이 번역되지 않은 단어가 의도적으로 번역되지 않았는지 확인합니다. 번역되지 않은 단어가 실수로 포함된 도착어 세그먼트는 학습 데이터에 노이즈를 더해 모델 품질이 저하될 수 있습니다.
- 모델이 이러한 오류를 학습하지 않도록 오타 또는 문법 오류가 있는 세그먼트를 수정합니다.
- 자리표시자 태그 및 HTML 태그와 같은 번역 불가능 콘텐츠를 삭제합니다. 번역 불가능 콘텐츠는 구두점 오류를 일으킬 수 있습니다.
- 일반 항목을 특정 명사로 바꾸는 번역을 포함하지 마세요. 예를 들어 "president"를 "JFK" 또는 "John F Kennedy"와 같은 특정 대통령의 이름으로 바꾸는 예시가 있을 수 있습니다. 이 모델은 모든 "president"를 "JFK"로 변경하도록 학습될 수 있습니다. 대신 이러한 번역을 삭제하거나 특정 명사를 일반적인 명사로 변경합니다.
- 학습 세트와 테스트 세트에 중복 세그먼트를 삭제합니다(학습 세트와 테스트 세트 자세히 알아보기).
- 여러 세그먼트를 서로 다른 세그먼트 쌍으로 분할합니다. 데이터 세트 학습 시 해당 세트에 50개 이상의 토큰(단어)으로 구성된 항목이 많으면 품질이 낮은 모델이 생성됩니다. 가능하면 항목을 개별 문장으로 분할하세요.
- 일관된 대소문자 사용 대소문자는 모델이 학습하는 방식에 영향을 줍니다. 예를 들어 제목과 본문의 텍스트를 구분할 수 있습니다.
- TSV 파일에서 데이터를 가져올 때 TMX 태그를 삭제합니다. 일부 경우에 기존 번역 메모리를 TMX 태그가 포함될 수 있는 TSV 파일로 내보낼 수 있습니다. 하지만 AutoML Translation은 TSV 파일이 아닌 TMX 파일을 가져올 때만 번역 단위 태그를 삭제합니다.
AutoML Translation에서 데이터를 사전 처리하는 방법
AutoML Translation은 다음의 경우 데이터 입력 파일 파싱을 중지합니다.
- 형식 지정이 잘못된 경우
- 지나치게 긴 세그먼트 쌍(10MB)이 있는 경우
- 파일에서 UTF-8 이외 인코딩을 사용하는 경우
AutoML Translation은 다음과 같이 감지되지 않는 문제의 경우 오류를 무시합니다.
- TMX 파일의 <tu> 요소에 출발어 또는 도착어가 없는 경우
- 입력 세그먼트 쌍 중 하나가 비어 있는 경우
자동 데이터 분할의 경우 AutoML Translation은 다음과 같은 처리를 추가로 수행합니다.
- 데이터 트를 업로드한 후 출발어 세그먼트가 동일한 세그먼트 쌍을 삭제합니다.
- 학습하기 전에 8:1:1 비율(학습:검증:테스트)로 데이터를 3개의 세트로 무작위 분할합니다.
커스텀 모델 생성 시 AutoML Translation에서 데이터세트를 사용하는 방법 고려
데이터 세트에는 학습, 검증, 테스트 세트가 있습니다. 분할을 지정하지 않고(학습 데이터 준비 참조) 데이터 세트에 세그먼트 쌍이 100,000개 미만으로 포함된 경우 AutoML Translation에서는 자동으로 콘텐츠 문서의 80%를 학습에, 10%를 검증에, 10%를 테스트에 사용합니다. 데이터가 이보다 크면 사용자가 직접 데이터를 분할해야 합니다.
학습 세트
데이터의 대부분은 학습 세트에 있어야 합니다. 이러한 데이터는 모델이 학습 중에 '보는' 데이터이며 모델의 매개변수, 즉 신경망 노드 간의 연결 가중치를 학습하는 데 사용됩니다.
검증 세트
'개발' 세트라고도 하는 검증 세트도 학습 프로세스에 사용됩니다. 모델 학습 중에 프레임워크는 학습 세트를 사용하여 여러 후보 모델을 학습시킨 후, 검증 세트에서 최적의 성능을 보이는 것을 생성된 모델 중 최고의 모델로 선정합니다. 검증 세트에 대한 모델의 성능에 따라 모델의 초매개변수(모델의 구조를 지정하는 변수)를 조정합니다. 학습 세트를 사용하여 초매개변수를 조정하면 모델이 학습 데이터에 지나치게 집중하게 됩니다. 모델 구조를 세부 조정할 때 어느 정도 새로운 데이터세트를 사용하면 모델을 더 효율적으로 일반화할 수 있습니다.
테스트 세트
테스트 세트는 학습 프로세스에 전혀 관여하지 않습니다. 모델이 학습을 모두 완료하면 테스트 세트를 모델을 위한 완전히 새로운 도전과제로 사용합니다. 테스트 세트에서 측정된 모델 성능을 통해 모델이 실제 데이터에서 어떤 성능을 보일지 가늠할 수 있습니다.
수동 분할
AutoML Translation에서 데이터를 학습 세트, 검증 세트, 테스트 세트로 자동 분할할 수 있습니다. 또는 프로세스 제어를 강화하거나, 다른 분할률을 사용하거나, 특정 예시를 모델 학습 주기의 특정 부분에 포함하려는 경우에 데이터를 수동으로 분할할 수 있습니다.
가져올 데이터 준비하기
데이터의 수동 또는 자동 분할 중에서 적합한 방식을 결정한 후에는 다음의 두 가지 방법 중 하나로 데이터를 추가할 수 있습니다.
- 한 줄에 한 세그먼트씩 출발어 세그먼트와 도착어 세그먼트를 포함하는 탭으로 구분된 값(TSV) 파일로 데이터를 가져올 수 있습니다.
- 자동 번역 모델 도구에 세그먼트 쌍을 제공하는 표준 형식인 TMX 파일로 데이터를 가져올 수 있습니다(지원되는 TMX 형식 자세히 알아보기). TMX 파일에 잘못된 XML 태그가 포함되어 있는 경우 AutoML은 해당 태그를 무시합니다. TMX 파일이 올바른 XML 및 TMX 형식을 따르지 않는 경우(예: 종료 태그 또는
<tmx>
요소가 없는 경우) AutoML은 파일을 처리하지 않습니다. 또한 Cloud Translation은 잘못된<tu>
요소를 1,024개 초과하여 건너뛰는 경우 처리를 종료하고 오류를 반환합니다.
평가
모델 학습이 끝나면 모델 성능에 대한 요약을 받습니다. 학습 탭을 클릭하여 자세한 분석을 봅니다.
모델을 평가하기 전에 기억해야 할 사항은 무엇인가요?
모델 디버깅은 모델 자체보다 데이터 디버깅에 관한 것입니다. 프로덕션 진행 전후 성능을 평가할 때 모델이 예상하지 못한 방식으로 작동하면 다시 데이터를 확인하여 개선할 수 있는 사항이 무엇인지 파악해야 합니다.
BLEU 점수
BLEU 점수는 기계 번역 시스템의 품질을 측정하는 표준 방법입니다. AutoML Translation은 제공된 테스트 데이터에서 계산된 BLEU 점수를 기본 평가 측정항목으로 사용합니다. (BLEU 점수 자세히 알아보기)
Cloud Translation API를 지원하는 Google NMT 모델은 일반 용도로 빌드되었습니다. 따라서 해당 분야의 전문 번역을 원하는 경우 최적의 솔루션이 아닐 수도 있습니다. 학습된 커스텀 모델은 일반적으로 학습 세트와 연관된 분야에서 NMT 모델보다 더 잘 작동합니다.
자체 데이터 세트로 커스텀 모델을 학습하고 나면 커스텀 모델과 Google NMT 모델의 BLEU 점수가 학습 탭에 표시됩니다. 또한 커스텀 모델이 획득한 BLEU 점수 성능도 학습 탭에 나옵니다. BLEU 점수가 높을수록 모델에서 학습 데이터와 유사한 세그먼트를 더 잘 번역할 수 있습니다. BLEU 점수가 30~40점 범위 내에 속하는 경우 해당 모델은 양호한 번역을 제공할 수 있는 것으로 간주됩니다.
모델 테스트
BLEU 점수가 정상으로 보이더라도 모델의 정상 여부를 직접 검사하여 성능이 기대에 부합하는지 확인하는 것이 좋습니다. 학습 데이터와 테스트 데이터를 동일한 잘못된 샘플 세트에서 추출한 경우, 번역이 잘못되어도 점수가 높게 나타날 수 있습니다. 예측 탭에 여러 예시를 입력으로 추가하고 커스텀 모델의 결과를 Google NMT 기본 모델과 비교합니다. 특히 세그먼트가 짧거나 학습 세트가 작은 경우 모델이 기본 모델과 동일한 예측을 제시할 수 있습니다. 이는 기본 모델이 광범위한 사용 사례에서 매우 훌륭한 성능을 보이기 때문에 나타나는 당연한 결과입니다. 좀 더 길고 더 복잡한 세그먼트로 시험해 보세요. 하지만 모든 세그먼트가 기본 모델의 예측과 동일하게 반환된다면 이는 데이터 문제일 수 있습니다.
모델 작성과 관련하여 특히 우려되는 실수(예: 번역사가 자주 실수하는 혼동스러운 언어 조합, 높은 금전적 손실이나 평판에 영향을 줄 수 있는 번역 실수)가 있다면 일상 작업에서 모델을 안심하고 사용할 수 있도록 테스트 세트 또는 절차에 해당 사례를 적절히 포함시켜야 합니다.
다음 단계
- 자체 데이터 세트 및 커스텀 모델을 만들려면 학습 데이터 준비를 참조하여 데이터를 준비하는 방법을 알아보세요.