논문리뷰

[논문 리뷰] Google’s Neural Machine Translation System

거북이07 2024. 1. 22. 10:47

Google’s Neural Machine Translation System

✏️논문 링크

https://arxiv.org/pdf/1609.08144.pdf

논문 요약

위 논문은 간단하게 요약하자면 Neural Machine Translation (NMT) 시스템의 문제점을 다루고, 구글이 그 문제들을 어떤 방식으로 개선했는지를 소개하는 내용으로 이루어져 있습니다.

 

논문에서는 NMT의 계산 비용, 드문 단어 처리, 모델의 성능 향상을 위한 기술적인 개선 사항들이 나오며 즉 GNMT(Google's Neural Machine Translation system)가 어떻게 이 문제들을 해결하고 성능을 향상시켰는지에 대한 내용이 주요 요지입니다.


NMT란?

참고 

https://velog.io/@shonsk0220/NMTNeural-machine-translation%EC%9D%B8%EA%B3%B5%EC%8B%A0%EA%B2%BD%EB%A7%9D-%EA%B8%B0%EA%B3%84%EB%B2%88%EC%97%AD

 

NMT(Neural machine translation/인공신경망 기계번역)

인간의 신경을 모방한 머신러닝 기법이다. 감각기관을 통해서 정보가 들어오면, 신경세포인 뉴런이 그것을 뇌에 전달한다. 그러면 뇌는 정보를 종합해서 판단하여 다시 명령을 내리게 된다. 이

velog.io

 

Neural Machine Translation (NMT)는 인간의 신경을 모방한 머신러닝 기법이다. 일련의 단어의 가능성을 예측하기 위해 인공 신경망을 사용하는 기계 번역 접근 방법입니다. 감각기관을 통해서 정보가 들어오면, 뉴런이 그것을 뇌에 전달한다. 그러면 뇌는 정보를 종합해서 판단하여 다시 명령을 내리게 되는데 이때 신경세포인 뉴런이 연결되면서 복잡한 연산과정을 거치게 된다. 이러한 두뇌 정보처리과정을 모방해서 만든 알고리즘이 NMT이다.

출처 https://velog.io/@shonsk0220/NMTNeural-machine-translation%EC%9D%B8%EA%B3%B5%EC%8B%A0%EA%B2%BD%EB%A7%9D-%EA%B8%B0%EA%B3%84%EB%B2%88%EC%97%AD

 

NMT의 원리는 머신러닝 기술이 적용된 엔진을 통해서 전체적인 문맥을 파악하고, 문장을 통째로 번역한다.

재조합된 문장 A를 문장 C로 번역되려면 A영역의 단어들을 숫자화한 후 순서를 재조합하고, A영역의 모든 숫자를 Rule1로 적용하고 B영역 숫자로 재배치한다. B영역의 모든 숫자를 Rule2에 적용하고 C영역 숫자로 재배치 하면 끝이다.

 

NMT의 문제점

1️⃣느린 훈련 및 추론 속도

2️⃣드문 단어 처리의 비효율성

3️⃣소스 문장의 모든 단어를 번역하지 못하는 경우가 발생


위 문제를 해결하기 위해 Google에서는  GNMT 시스템을 설계 및 구현하였습니다.

 

GNMT를 이용하여 위 문제점들을 해결

1️⃣느린 훈련 및 추론 속도 해결

GNMT는 추론 시간을 개선하기 위해 추론에 대한 저정밀도 산술을 사용하여 Google의 Tensor Processing Unit (TPU)와 같은 특수 하드웨어로 가속화합니다.그리고 어텐션 메커니즘을 사용하여 병렬성을 높혀 이를 통해 학습 및 추론 속도를 향상시키며 소스 문장의 각 단어에 동적으로 주의를 기울이면서 누락된 부분을 최소화한다.

 

2️⃣드문 단어 처리의 비효율성 해결

드문 단어를 효과적으로 처리하기 위해 입력 및 출력에 "wordpieces" 또는 하위 단어 단위를 사용합니다.

 

3️⃣소스 문장의 모든 단어를 번역하지 못하는 경우가 발생하는 문제 해결

GNMT는 Long Short-Term Memory (LSTM) RNNs를 사용합니다. 이는 장기 의존성을 효과적으로 다룰 수 있는 RNN의 변형입니다. 8개의 레이어와 잔여 연결(residual connections)을 사용하여 그래디언트 흐름을 촉진합니다. 이를 통해 더 깊은 네트워크에서도 효과적인 학습이 가능해지며 어텐션 메커니즘을 사용하여  소스 문장의 각 단어에 동적으로 주의를 기울이면서 누락된 부분을 최소화한다.


GNMT 모델

 

모델 구조

GNMT(Google's Neural Machine Translation) 모델은 기계 번역 분야에서 구글에서 개발한 신경 기계 번역 시스템입니다. 이 모델은 기존의 기계 번역 시스템의 한계를 극복하기 위한 시도로, 다음과 같은 주요 특징을 갖고 있습니다:

 

GNMT는 일반적인 sequence-to-sequence 학습 프레임워크를 따르고 있습니다. 모델은 세 가지 주요 구성 요소로 이루어져 있습니다: 인코더 네트워크, 디코더 네트워크, 그리고 어텐션 네트워크. 이들은 각각 소스 문장을 벡터 목록으로 변환하고, 디코딩 도중에 어텐션 메커니즘을 통해 다른 부분에 중점을 둘 수 있도록 하는 데 사용됩니다.

 

인코더 네트워크

인코더 네트워크란 소스 문장을 입력 기호 당 하나의 벡터로 변환하며(이 벡터 목록은 소스 문장의 기호 수와 동일한 수로 구성) 인코더와 디코더가 소스 문장의 다른 영역에 집중할 수 있게 합니다.

 

디코더 네트워크

디코더는 특별한 종료 기호(EOS)가 생성될 때까지 한 번에 하나의 기호를 생성합니다. 디코더는 RNN 네트워크와 소프트맥스 레이어의 조합으로 이루어져 있습니다.

 

어텐션 네트워크

어텐션 모듈은 디코더가 디코딩하는 동안 소스 문장의 다른 부분에 집중할 수 있도록 도와주는 역할을 합니다. 이 모듈은 이전 디코딩 타임 스텝의 출력을 기반으로 어텐션 컨텍스트를 계산합니다.

 

수식 및 표기법에서는 다양한 기호 및 표기법이 사용되며, 예를 들어 소문자 볼드체는 벡터, 대문자 볼드체는 행렬, 대문자는 시퀀스를 나타냅니다.

 

 

Residual Connections(잔여 연결)

깊게 쌓인 LSTM(Long Short-Term Memory의 약자로, 순환 신경망의 한 유형) 레이어에서 발생하는 문제에 대한 대응책으로 잔여 연결(residual connections)을 소개하고 있습니다.

깊게 쌓인 LSTM은 어느 정도의 레이어까지는 정확도를 향상시킬 수 있지만, 그 이상으로 쌓을 경우에는 네트워크가 학습하기 어려워지는 문제가 발생하는데, 이는 gradient 소실 및 폭발 문제에 기인합니다.

일반적으로 깊개 쌓인 LSTM 레이어는 4개 정도까지는 잘 작동하며, 6개 정도에서는 거의 작동하지 않고, 8개 이상으로 쌓을 경우 선능이 매우 떨어진다고 나와있습니다. 이에 따라 중간 레이어의 출력과 목표 간의 차이를 모델링하는 아이디어에서 착한하여 LSTM 레이어 사이에 잔여 연결을 도입합니다.

 

잔여 연결은 각 LSTM 레이어의 출력에 입력이 원소별로 더해지는 방식으로 이루어지며 이를 통해 중간 레이어에서의 gradient 흐름을 크게 향상시킬 수 있어 매우 깊은 인코더 및 디코더 네트워크를 효과적으로 학습할 수 있게 됩니다.

 

효율성 개선을 위한 기법

신경 기계 번역(NMT) 모델은 주로 번역이 본질적으로 개방 어휘 문제임에도 불구하고 고정된 단어 어휘를 사용합니다(이름, 숫자, 날짜 등). 이러한 모델에서는 주로 어휘 외 단어(out-of-vocabulary, OOV)를 처리하기 위한 두 가지 큰 접근 방식이 있습니다. 하나의 접근 방식은 간단히 드문 단어를 원본에서 대상으로 복사하는 것입니다(대부분 드문 단어가 올바른 번역이 복사인 이름이나 숫자 등인 경우). 이는 어텐션 모델, 외부 정렬 모델 또는 더 복잡한 목적을 가진 포인팅 네트워크를 사용하여 수행될 수 있습니다. 다른 큰 범주의 접근 방식은 하위 단어 단위(subword)를 사용하는 것입니다. 예를 들면, 문자, 혼합 단어/문자, 또는 더 지능적인 하위 단어 등이 있습니다.

 

위 두가지 방법 중 이 논문에서 사용된 가장 성공적인 접근 방식은 두번째인 subword 방식이며 여기에서는 wordpiece model을 채택하여 사용하였습니다. 해당 모델은 처음에는 구글 음성 인식 시스템의 일부로 개발되어 일본어/한국어 분할 문제를 해결하는 데 사용되었다.

 

임의의 단어를 처리하기 위해 먼저 훈련된 wordpiece 모델을 사용하여 단어를 wordpieces로 분해합니다. 모델 훈련 전에 특별한 단어 경계 심볼이 추가되어 원래 단어 시퀀스를 모호하지 않게 wordpiece 시퀀스로 복원할 수 있습니다. 디코딩 시에 모델은 먼저 wordpiece 시퀀스를 생성하고 이를 해당하는 단어 시퀀스로 변환합니다.

 

아래는 단어 시퀀스와 해당하는 wordpiece 시퀀스의 예시입니다:

단어: Jet makers feud over seat width with big orders at stake
wordpieces: _J et _makers _fe ud _over _seat _width _with _big _orders _at _stake

 

위의 예에서 "Jet"은 "J"와 "et" 두 개의 wordpieces로 분해되고, "feud"는 "fe"와 "ud" 두 개의 wordpieces로 분해됩니다. 다른 단어들은 각각 하나의 wordpiece로 남습니다. "_"는 단어의 시작을 나타내기 위해 추가된 특수 문자입니다.

 

wordpiece 모델은 훈련 데이터의 언어 모델 우도를 최대화하기 위해 데이터 기반 접근 방식을 사용하여 생성됩니다. 훈련 말뭉치와 원하는 토큰 수 D가 주어졌을 때, 최적화 문제는 선택된 wordpiece 모델에 따라 분할된 경우 결과 코퍼스에서 wordpiece 수가 최소가 되도록 D wordpieces를 선택하는 것입니다.

 

wordpieces는 문자의 유연성과 단어의 효율성 사이의 균형을 달성합니다. 또한 wordpieces를 사용할 때 모델이 전반적으로 더 높은 BLEU 점수를 얻는 것으로 나타났습니다. 이는 모델이 문자만 사용하는 대신 본질적으로 무한한 어휘를 효율적으로 처리하며, 따라서 입력 및 출력 시퀀스의 평균 길이가 훨씬 더 길지 않아도 된다는 사실에 기인할 수 있습니다.


훈련 기준

N개의 입력-출력 시퀀스 쌍을 포함하는 병렬 텍스트 데이터셋이 주어졌을 때, 일반적인 최대우도 훈련은 대응하는 입력에 대한 실제 출력의 로그 확률 합을 최대화하는 것을 목표로 합니다.

 

이 목표의 주요 문제는 모델을 훈련시킬 때 실제 번역 결과에 대한 평가 점수를 고려하지 않는다는 것입니다. 최대우도 훈련은 단순히 훈련 데이터에서 정확한 답에 대한 확률을 높이는 데 중점을 둡니다. 그러나 이 방식은 실제 번역 품질을 측정하는 평가 척도(예: BLEU 점수)를 고려하지 않으며, 모델이 실제 번역에서 발생한 오류를 개선하지 못할 수 있습니다. 번역에서는 BLEU 점수가 높을수록 번역이 좋다고 판단하는데, 이러한 평가 점수를 훈련 목표에 통합하면 모델이 더 나은 번역을 생성하도록 훈련될 수 있습니다.


모델을 실제 서비스에 적용할 때 발생하는 어려움 극복

기존의 모델(NMT)은 추론 과정에서 많은 계산량이 필요하여 빠른 번역이 어렵고, 대규포 배포 시 비용이 많이 든다는 문제점이 있습니다. 양자회된 추론을 이용하여 해당 문제점을 보완할 수 있습니다.

 

양자화된 추론

낮은 정밀도 산술을 사용하여 계산하는 방법입니다. 이는 같은 계산 장치에서 효율적인 개선을 제공하며, 이전 연구에서는 이를 통해 모델 품질의 손실이 최소화됨을 입증했습니다. 그러나 이 방법은 딥 LSTM과 같은 복잡한 모델에 적용할 때 양자화 오류가 커질 수 있는 어려움이 있습니다.

 

위 어려움을 해결하기 위해 모델 훈련 중에 추가제약 조건을 도입하여 오류를 해결할 수 있는데 모델이 이러한 조건하에 훈련이 될 경우 나중에 양자화할때도 번역 품질에 손실이 없이 번역이 가능합니다.

 

위 이미지는 양자화 했을 경우에 품지렝 부정적인 영향이 미치지 않음을 나타내는 그래프입니다.

 

간단히 말하면, 양자화는 모델을 효율적이고 빠르게 만들 수 있는 기술 중 하나이며, 이를 통해 모델을 양자화할 때 품질 손실을 최소화할 수 있습니다. 이러한 방법을 통해 모델이 실제 서비스에서 빠르게 번역을 수행할 수 있게 됩니다.


Decoder

Greedy Decoding이란 단순하게 해당 시점에서 가장 확률이 높은 후보를 선택하는 것인데. 시간복잡도 면에서는 훌륭한 방법이지만, 최종 정확도 관점에서는 좋지 못한 방법이다. 이러한 단점을 어느정도 극복하기 위해 나온 방법이 Beam Search 라는 방법이다. 빔 서치는 모데링 훈련된 결과에서 최적의 번역을 찾는 데 사용되며, 길이에 따른 불공정을 보완하고 특정 조건을 강조하기 위해 두 가지 개선이 도입되었습니다.

 

  1. 길이 정규화: 서로 다른 길이의 문장을 공정하게 비교하기 위해 길이에 따라 가중치를 부여하는 것입니다. 일반적으로 짧은 문장이 더 좋아 보일 수 있기 때문에 이를 보정하는 역할을 합니다.
  2. 커버리지 패널티: 번역 결과가 원본 문장을 충분히 반영하도록 도와주는 개선입니다. 이는 어텐션 메커니즘에서 나온 정보를 기반으로 적용됩니다.

이 두 가지 개선을 통합하여 가장 좋은 번역을 찾아내는 점수 함수를 만들었습니다. 최적의 매개변수를 찾기 위해 여러 실험을 거쳤고, 실험 결과에 따라 길이 정규화와 커버리지 패널티에 각각 0.2의 가중치를 부여하는 것이 좋다는 결론을 얻었습니다.


Experiments and Results

GNMT(구글 신경망 기계 번역)의 실험 시 주로 WMT'14 영어-프랑스어(En→Fr)와 영어-독일어(En→De) 데이터셋을 사용하였습니다. 모델의 성능을 평가하는 데에는 주로 BLEU 점수를 사용합니다. 하지만 BLUE 점수는 번역의 품질을 완전히 포작하지 못하기때문에 사람이 품질을 평가하고 비교하는 SxS(SIde-Byadnig) 평가도 같이 수행하여 성능을 평가하였습니다.

 

훈련절차

모델 훈련 아키텍처

  • TensorFlow를 사용하여 모델을 훈련합니다.
  • 고전적인 데이터 병렬 처리 방식을 따릅니다.
  • 12개의 복제본이 각기 다른 기계에서 동시에 작동하며, 각 복제본은 비동기적으로 공유 매개변수를 업데이트합니다.

초기화 및 그라디언트 클리핑

  • 훈련 가능한 매개변수는 [-0.04, 0.04] 사이의 균일 분포로 초기화됩니다.
  • RNN 모델 훈련에서 흔히 사용되는 그라디언트 클리핑을 적용합니다.
  • 모든 그라디언트는 일정한 상수 이하로 균일하게 축소되어 조정됩니다(상수 값은 5.0).

최대 우도 훈련

  • Adam 및 SGD(TensorFlow 런타임 시스템에서 제공) 학습 알고리즘의 조합을 사용하여 최대 우도 훈련을 수행합니다.
  • 처음 60,000 단계에서 Adam을 실행한 후에 SGD로 전환합니다.
  • 각 훈련 단계는 128개의 예제로 구성됩니다.

학습률 및 앤닐링

  • Adam 부분에는 학습률 0.0002를 사용하며, SGD 부분에는 학습률 0.5를 사용합니다.
  • 일정한 총 단계 수 이후 학습률 앤닐링을 진행합니다.
  • WMT En→Fr 데이터셋의 경우, 1,200,000 단계 이후에 학습률을 200,000 단계마다 절반으로 줄입니다.

RL 기반 모델 세부 튜닝

  • 최대 우도 목적 함수로 모델이 완전히 수렴한 후 RL 기반 모델 세부 튜닝을 수행합니다.
  • 목적 함수를 최적화하며 모델을 세부 튜닝하고 개발 세트에서 BLEU 점수에 큰 변화가 없을 때까지 진행합니다.
  • 이 단계에서는 SGD 최적화 알고리즘만을 사용하며, 데이터셋에 따라 모델 세부 튜닝에 필요한 단계 수가 다릅니다.

과적합 방지를 위한 드롭아웃

  • 과적합을 방지하기 위해 훈련 중에 드롭아웃을 적용합니다.
  • WMT En→Fr 및 En→De 데이터셋에서 드롭아웃 확률은 각각 0.2 및 0.3으로 설정됩니다.
  • 기술적인 이유로 드롭아웃은 ML 훈련 단계에서만 적용되며, RL 세부 튜닝 단계에서는 적용되지 않습니다.

하이퍼파라미터의 변화

  • 드롭아웃 확률 및 다른 특정 설정과 같은 하이퍼파라미터는 데이터셋 및 모델에 따라 다양하게 변합니다.
  • 예를 들어 WMT En→De 데이터셋은 WMT En→Fr 데이터셋보다 훨씬 작기 때문에 더 높은 드롭아웃 확률을 사용합니다.

 

최대 우도 훈련 평가

모델 및 어휘 크기

  • 실험에서는 단어, 문자, 혼합 단어-문자, 워드피스 모델을 사용했다.
  • 단어 모델은 소스 212K, 대상 80K 어휘로, OOV 단어는 특별한 심볼로 변환된다.
  • 혼합 모델은 32K 어휘 크기를 갖는다.
  • 워드피스 모델은 각각 8K, 16K, 32K 어휘 크기를 사용한다.

결과 (WMT En→Fr)

  • "WPM-32K" 워드피스 모델이 가장 우수한 성능을 보이며, BLEU 점수는 24.61이다.
  • Character (512 nodes)도 높은 BLEU 점수(22.62)를 기록하나 훈련과 사용이 느리다.

결과 (WMT En→De)

  • "WPM-32K" 모델이 평균 24.61 BLEU로 성능이 우수하다.

 

위에서는 로그 우도(log-likeligood)를 최적화하는 데 중점을 두고 있습니다. 그러나 이는 번역 품질과 상관관계가 낮을 수 있습니다. 따라서 최대 우도 훈련 후에 RL(Reinforcement Learning) 훈련을 사용하여 BLUE 점수를 미세 조정하는 과정이 필요합니다.

위 표에서는 RL 훈련을 사용하여 모델을 미세조정한 결과를 보여주는 표입니다. 위 표를 보시면 En -> Fr 데이터셋은 1포인트가 향상된 모습을 볼 수 있습니다. 그러나 En -> De 데이터셋에서는는 24.67에서 24.60으로 약 0.4포인트가 떨어졌는데 이는 RL훈련이 무조건 BLEU 점수를 향상시키는 것은 아니라는 것을 알 수 있습니다. 결과는 매개변수 및 조건에 따라 달라질 수 있습니다.


모델 앙상블과 인간 평가에 관한 결과

 

위 표는 En -> Fr 데이터셋에 대한 결과입니다.

RL 모델로 미세 조정된 8개의 모델을 앙상블하여 얻은 결과는41.16이며

WPM-32K모델 8개를 앙상블하여 얻은 결과는 40.35로 RL모델을 사용했을 때 더 높은 점수가 나온것을 확인할 수 있습니다.

 

En -> De도 마찬가지입니다 RL 모델을 사용한것이 0.1정도 더 높게 나온 모습을 확인할 수 있습니다.

 

마지막으로 모델의 품질과 RL 미세 조정의 효과를 더 잘 이해하기 위해 사람이 직접 평가를 수행하였습니다. 4가지 번역을 주어진 소스 문장에 대해 비교하는 평가를 진행하였고

위 결과를 보면 RL 모델이BLEW 점수를 향상시킬 수 있었지만 사람이 평가를 했을때는 번역 품질에 대한 인상을 향상시키지는 못하였습니다. 

 

이는 여러 요인의 조합으로 설명될 수 있습니다. 실험의 상대적으로 작은 샘플 크기, RL에 의한 BLEU 점수 향상이 인간 평가에 미치는 영향이 제한적일 수 있는 정도, 그리고 BLEU가 측정한 품질과 인간 평가의 실제 번역 품질 간의 일치 부족 등이 그 원인이 될 수 있습니다.


인식에 대한 실험

평가자에게 아래 3가지 번역문을 주었을때의 결과를 확인해보았습니다.( 영어 ↔ 프랑스어, 영어 ↔ 스페인어, 그리고 영어 ↔ 중국어)

 

1. Google에서 사용하는 생산 구절 기반 통계 번역

2. GNMT 시스템

3. 3가지 언어에 능통한 인간

 

 

위 표를 확인해본 결과 PBMT 보다 GNMT가 더 잘 번역된다는 결과를 확인할 수 있었습니다. 사람이 번역한것보다는 낮지만 비슷한 정도의 번역 효과를 낼 수 있다는 것을 확인하였습니다.


결론

이 논문에서는 Google의 Neural Machine Translation (GNMT) 시스템의 구현에 대해 자세히 설명하고 있습니다. 이 시스템은 정확성, 속도, 견고성 측면에서 핵심적인 기술을 포함하고 있습니다. WMT'14 번역 벤치마크에서 GNMT의 번역 품질은 현재 공개된 모든 결과에 버금가거나 뛰어납니다. 더 중요한 것은 이 방법이 훨씬 큰 프로덕션 데이터 세트에도 적용될 수 있어 높은 품질의 번역을 제공한다는 것을 보여줍니다.

 

  1. Wordpiece Modeling의 효과: Wordpiece 모델링은 오픈 어휘와 형태론적으로 풍부한 언어에 대한 품질 및 추론 속도의 도전 과제를 효과적으로 처리합니다.
  2. 모델 및 데이터 병렬 처리의 효율성: 모델 및 데이터 병렬 처리를 결합하여, 약 일주일 정도의 시간 안에 최첨단 시퀀스-투-시퀀스 NMT 모델을 효율적으로 훈련시킬 수 있습니다.
  3. 모델 양자화의 가속화: 모델 양자화는 번역 추론을 급격하게 가속화시키며, 대규모 모델을 실제 환경에서 사용할 수 있게 합니다.
  4. 길이 정규화, 커버리지 페널티 등의 세부사항의 중요성: GNMT 시스템이 실제 데이터에서 잘 작동하도록 하는 데에는 길이 정규화, 커버리지 페널티와 같은 여러 세부사항이 중요합니다.