NMT 모델 맞춤설정

Cloud Translation - Advanced API를 사용하면 코드를 작성하지 않고도 Google 인공신경망 기계 번역 (NMT) 모델을 맞춤설정할 수 있습니다. 즉, 커스텀 모델을 도메인별 콘텐츠에 맞게 조정하고 기본 Google NMT 모델보다 더 정확한 번역을 생성할 수 있습니다.

NMT 모델은 수많은 언어 쌍을 포괄하며 범용 텍스트에서 잘 작동합니다. 커스텀 모델은 특화된 전문 용어를 처리하는 데 탁월합니다. NMT 모델을 맞춤설정하면 중요한 분야별 용어를 올바르게 번역할 수 있습니다.

새로운 국가로 확장할 수 있는 전문 보고 서비스를 운영하는 경우 이러한 시장에서는 전문 용어를 포함하여 신속함이 생명인 콘텐츠가 실시간으로 정확하게 번역되어야 합니다. 2개 국어를 구사하는 직원을 고용하거나 전문 번역사와 계약하면 높은 추가 비용이 발생합니다. 대신 커스텀 모델을 만들어 다듬으면 훨씬 저렴한 비용으로 실시간 번역 작업을 수행할 수 있습니다.

데이터 준비

커스텀 모델을 학습시키려면 출발어와 도착어로 작성되고 의미가 일치하는 세그먼트 쌍을 제공해야 합니다. 이러한 쌍은 번역 대상 언어와 번역 대상 언어로 작성되고 의미가 일치하는 단어 또는 문구입니다. 세그먼트 쌍의 의미가 가까워질수록 모델이 더 잘 작동합니다.

일치하는 세그먼트 쌍의 데이터 세트를 구성할 때는 사용 사례로 시작하세요.

  • 달성하려는 결과가 무엇인가요?

  • 이 결과를 달성하기 위해 올바르게 번역해야 하는 세그먼트의 종류는 무엇인가요? NMT 모델에서 즉시 이 작업을 수행할 수 있나요?

  • 사람이 이러한 주요 세그먼트를 만족스럽게 번역할 수 있나요? 번역 작업이 모호하여 두 언어에 모두 능통한 사람도 만족스럽게 번역할 수 없을 정도라면 NMT 모델을 사용해도 커스텀 모델과 비슷한 결과를 얻을 수도 있습니다.

  • 시스템에서 번역해야 하는 세그먼트 쌍의 유형과 범위를 가장 잘 보여주는 예시는 무엇인가요?

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

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

언어 공간의 다양성 포착

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

데이터 소싱

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

인간 참여형(Human In The Loop) 프로세스 유지

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

세그먼트 쌍을 개발할 때 공정성 고려

Google의 ML 제품을 뒷받침하는 핵심 원칙은 인간 중심의 머신러닝이며, 공정성을 포함하여 책임감 있는 AI 방침을 특히 중시하는 접근법입니다. ML의 공정성 목표는 알고리즘 시스템이나 알고리즘을 기반한 의사 결정 과정에서 인종, 소득, 성적 지향, 종교, 성별, 기타 차별 및 소외와 역사적으로 관련이 있는 특성과 관련 있는 사람들을 부당하거나 불리하게 대우하는 경우를 이해하고 방지하는 것입니다. 자세한 내용은 가이드와 다음 공정성 인식 참고사항을 참고하세요.

  • 내 지역과 애플리케이션을 제공할 지역의 규정뿐만 아니라 그 분야의 기존 연구 또는 제품 정보를 검토하여 법적 가이드라인과 발생할 수 있는 문화적 문제에 대해 알아보세요. 자세히 알아보기

  • 사용 사례나 제품이 개인의 경제적 기회나 기타 인생의 중요한 기회에 부정적인 영향을 미칠 수 있는지 고려하고, 그럴 수 있다면 자세히 알아보세요.

  • 특정 하위 그룹의 데이터가 부족한 경우, 학습-테스트를 직접 분할하여 해당 그룹의 데이터가 학습 세트와 테스트 세트 사이에 적절히 분산될 수 있도록 합니다.

  • 테스트할 때는 문제 영역과 불공정성 및 편향 가능성에 대해 신중히 생각하세요. 프로덕션 환경에서 사용자에게 악영향을 미칠 수 있는 사례를 생각해 보고 그 사례를 먼저 테스트하세요. 자세히 알아보기

  • 공정성을 반드시 생각해야 하는 사용 사례가 있다면 편견이나 부정적인 결과를 완화하는 방식으로 모델을 사용하는 방법에 대해 자세히 알아보세요. 자세히 알아보기

  • 공정성을 위한 추가 데이터 가이드라인

복잡한 데이터 정리

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

  • 특히 도착어 번역이 다를 때 중복된 출발어 세그먼트를 삭제합니다. Cloud Translation - Advanced API는 처음 살펴본 예시만 사용하며, 가져올 때 다른 모든 쌍을 삭제합니다. 중복을 삭제함으로써 Cloud Translation - Advanced API에서 사용자가 원하는 번역을 사용하도록 합니다.
  • 출발어 세그먼트를 올바른 도착어 세그먼트에 정렬합니다.
  • 세그먼트를 지정된 언어와 일치시킵니다. 예를 들어 중국어 데이터 세트에는 중국어 세그먼트만 포함합니다.
  • 여러 언어가 포함된 도착어 세그먼트의 경우, 제품 또는 조직 이름과 같이 번역되지 않은 단어가 의도적으로 번역되지 않았는지 확인합니다. 번역되지 않은 단어가 실수로 포함된 도착어 세그먼트는 학습 데이터에 노이즈를 더해 모델 품질이 저하될 수 있습니다.
  • 모델이 이러한 오류를 학습하지 않도록 오타 또는 문법 오류가 있는 세그먼트를 수정합니다.
  • 자리표시자 태그 및 HTML 태그와 같이 번역 불가 콘텐츠를 삭제합니다. 번역 불가 콘텐츠는 구두점 오류를 유발할 수 있습니다.
  • 일반 항목을 특정 명사로 바꾸는 세그먼트 쌍을 포함하지 마세요. 예를 들어 president와 같은 일반적인 용어를 JFK와 같은 특정 대통령의 이름으로 번역하는 예는 피하세요. 이렇게 하면 모델이 president의 모든 인스턴스를 JFK로 변경하도록 학습할 수 있습니다. 대신 이러한 세그먼트 쌍을 삭제하거나 특정 명사를 일반적인 명사로 변경하세요.
  • 학습 세트와 테스트 세트에서 중복 세그먼트를 삭제합니다 (데이터 세트를 세 개의 하위 집합으로 분할하는 방법은 데이터 세트 분할 참고).
  • 여러 세그먼트를 서로 다른 세그먼트 쌍으로 분할합니다. 데이터 세트 학습 시 해당 세트에 50개가 넘는 토큰(단어)으로 구성된 항목이 많으면 품질이 낮은 모델이 생성됩니다. 가능하면 항목을 개별 문장으로 분할하세요.
  • 일관된 대소문자 사용. 대소문자는 모델이 학습하는 방식에 영향을 줍니다. 예를 들어 제목과 본문의 텍스트를 구분할 수 있습니다.
  • TSV 파일에서 데이터를 가져올 때 TMX 태그를 삭제합니다. 경우에 따라 기존 번역 메모리를 TMX 태그가 포함될 수 있는 TSV 파일로 내보낼 수 있습니다. 하지만 Cloud Translation - Advanced API는 TSV 파일이 아닌 TMX 파일을 가져올 때만 번역 단위 태그를 삭제합니다.

데이터 처리

Cloud Translation - Advanced API는 다음의 경우 데이터 입력 파일 파싱을 중지합니다.

  • 형식 지정이 잘못되었습니다.
  • 지나치게 긴 세그먼트 쌍 (10MB)이 있는 경우
  • 파일에서 UTF-8 이외 인코딩을 사용하는 경우

Cloud Translation - Advanced API는 다음과 같이 감지되지 않는 문제의 경우 오류를 무시합니다.

  • TMX 파일에서 출발어 또는 도착어를 지정하지 않는 <tu> 요소
  • 입력 세그먼트 쌍 중 하나가 비어 있는 경우

자동 데이터 분할의 경우 Cloud Translation - Advanced API는 다음과 같은 처리를 추가로 수행합니다 (데이터 세트 분할 참고).

  • 데이터 세트를 업로드한 후 출발어 세그먼트가 동일한 세그먼트 쌍을 삭제합니다.

  • 학습하기 전에 8:1:1 비율(학습:검증:테스트)로 데이터를 3개의 세트로 무작위 분할합니다.

데이터 세트 구분

세그먼트 쌍 데이터 세트는 학습, 검증, 테스트를 위해 세 개의 하위 집합으로 나뉩니다.

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

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

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

학습 데이터 준비에 설명된 대로 이러한 기능 간에 데이터 세트가 분할되는 방식을 수동으로 지정하지 않고 데이터 세트에 세그먼트 쌍이 100,000개 미만으로 포함된 경우 Cloud Translation - Advanced API에서는 콘텐츠 문서의 80% 를 학습에, 10% 를 검증에, 10% 를 테스트에 자동으로 사용합니다. 데이터가 이보다 크면 분할 방법을 명시적으로 지정해야 합니다. 수동 분할을 사용하면 분할 비율을 결정할 수 있을 뿐만 아니라 특정 세그먼트 쌍을 포함할 특정 세트를 지정할 수 있어 프로세스를 더 세부적으로 제어할 수 있습니다.

데이터 가져오기

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

  • 한 줄에 한 세그먼트씩 출발어 세그먼트와 도착어 세그먼트를 포함하는 탭으로 구분된 값 (TSV) 파일로 데이터를 가져올 수 있습니다.

  • 자동 번역 모델 도구에 세그먼트 쌍을 제공하는 표준 형식인 TMX 파일로 데이터를 가져올 수 있습니다(TMX 형식에 대한 자세한 내용은 학습 데이터 준비 참고). TMX 파일에 잘못된 XML 태그가 포함되어 있는 경우 Cloud Translation - Advanced API는 해당 태그를 무시합니다. TMX 파일에 XML 또는 TMX 오류가 포함된 경우(예: 종료 태그 또는 <tmx> 요소가 누락된 경우) Cloud Translation - Advanced API는 잘못된 `' 요소를 1,024개 초과하여 건너뛰는 경우 처리를 종료하고 오류를 반환합니다.

커스텀 모델의 예비 평가

모델 학습이 종료되면 모델 성능에 대한 요약이 제공됩니다. 학습 탭을 클릭하여 자세한 분석을 확인하세요. 커스텀 모델과 표준 Google NMT 모델의 BLEU 점수가 학습 탭에 표시되며, 커스텀 모드를 사용하여 얻은 BLEU 점수 성능도 함께 표시됩니다.

BLEU 점수가 높을수록 모델에서 학습 데이터와 유사한 세그먼트를 더 잘 번역할 수 있습니다. 30~40점 범위의 점수는 양호한 것으로 간주됩니다. BLEU 점수에 대한 자세한 설명은 BLEU 번역 품질 측정항목 BLEU를 참고하세요.

BLEU 점수보다 더 신뢰할 수 있는 다른 평가 지표가 있습니다. 이러한 평가 옵션에 대한 자세한 내용은 번역 모델 평가를 참고하세요.

디버깅

맞춤 모델 디버깅은 모델 자체보다 데이터 디버깅에 관한 것입니다. 모델이 원하는 방식으로 번역하지 않는 경우 데이터를 확인하여 개선할 수 있는 부분을 파악하세요.

테스트

BLEU 점수가 정상으로 보이더라도 모델을 직접 검사하여 성능이 기대에 부합하는지 확인하는 것이 좋습니다. 학습 데이터와 테스트 데이터를 동일한 잘못된 샘플 세트에서 추출한 경우, 번역이 잘못되어도 점수가 높게 나타날 수 있습니다. 예측 탭에 여러 예시를 입력으로 추가하고 커스텀 모델의 결과를 Google NMT 기본 모델과 비교합니다. 기본 모델이 이미 다양한 사용 사례에 적합하므로 특히 세그먼트가 짧거나 학습 세트가 작은 경우 모델이 기본 모델과 동일한 예측을 제시할 수 있습니다. 이 경우 더 길거나 복잡한 세그먼트를 사용해 보세요. 하지만 모든 세그먼트가 기본 모델의 예측과 동일하게 반환된다면 이는 데이터 문제일 수 있습니다.

모델에서 특히 우려되는 실수(예: 금전적 또는 평판에 큰 영향을 미칠 수 있는 번역 실수)가 있는 경우 테스트 세트 또는 절차에서 해당 사례를 적절히 다루어 일상적인 작업에서 모델을 안전하게 사용할 수 있도록 해야 합니다.

다음 단계

  • 자체 데이터 세트 및 맞춤 모델을 만드는 방법에 대한 자세한 내용은 학습 데이터 준비를 참고하세요.