๋จธ์ ๋ฌ๋ ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ OpenNMT 0.28.0(Open Neural Machine Translation) ๊ธฐ๊ณ ๋ฒ์ญ ์์คํ ์ด ์ถ์๋์์ต๋๋ค. ์ด ํ๋ก์ ํธ๋ ์ ๊ฒฝ๋ง์ ๊ตฌ์ถํ๊ธฐ ์ํด TensorFlow ๋ฅ ๋จธ์ ๋ฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ธฐ๋ฅ์ ํ์ฉํฉ๋๋ค. OpenNMT ํ๋ก์ ํธ์์ ๊ฐ๋ฐํ ๋ชจ๋์ ์ฝ๋๋ Python์ผ๋ก ์์ฑ๋์์ผ๋ฉฐ MIT ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค. ์์ด, ๋ ์ผ์ด, ์นดํ๋ฃจ๋์ด ๋ชจ๋ธ์ ๊ธฐ์ฑ ๋ชจ๋ธ์ด ์ค๋น๋์ด ์์ผ๋ฉฐ, ๋ค๋ฅธ ์ธ์ด์ ๊ฒฝ์ฐ OPUS ํ๋ก์ ํธ์ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ชจ๋ธ์ ์ง์ ์์ฑํ ์ ์์ต๋๋ค. (ํ์ต์ ์ํด ๋ ๊ฐ์ ํ์ผ์ด ์์คํ ์ ์ ์ก๋ฉ๋๋ค. ํ๋๋ ์๋ณธ ์ธ์ด ๋ฌธ์ฅ์ด๊ณ , ๋ค๋ฅธ ํ๋๋ ์๋ณธ ์ธ์ด ๋ฌธ์ฅ์ ๋์ ์ธ์ด๋ก ๊ณ ํ์ง๋ก ๋ฒ์ญํ ํ์ผ์ ๋๋ค.)
์ด ํ๋ก์ ํธ๋ ๊ธฐ๊ณ ๋ฒ์ญ ๋๊ตฌ ๊ฐ๋ฐ ์ ๋ฌธ ๊ธฐ์ ์ธ SYSTRAN๊ณผ ๊ธฐ๊ณ ํ์ต ์์คํ ์ ์ํ ์ธ๊ฐ ์ธ์ด ๋ชจ๋ธ์ ๊ฐ๋ฐํ๋ ํ๋ฒ๋ ์ฐ๊ตฌ์ง์ ์ฐธ์ฌ๋ก ๊ฐ๋ฐ๋๊ณ ์์ต๋๋ค. ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ ์ต๋ํ ๋จ์ํ๋ฉฐ, ํ ์คํธ๊ฐ ํฌํจ๋ ์ ๋ ฅ ํ์ผ๊ณผ ๋ฒ์ญ ๊ฒฐ๊ณผ ์ ์ฅ ํ์ผ๋ง ํ์ํฉ๋๋ค. ์ด ํ์ฅ ์์คํ ์ ํตํด ์๋ ์ฐธ์กฐ, ํ ์คํธ ๋ถ๋ฅ, ์๋ง ์์ฑ๊ณผ ๊ฐ์ OpenNMT ๊ธฐ๋ฐ ์ถ๊ฐ ๊ธฐ๋ฅ์ ๊ตฌํํ ์ ์์ต๋๋ค.
TensorFlow๋ฅผ ์ฌ์ฉํ๋ฉด GPU ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ์ ๊ฒฝ๋ง ํ์ต ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ ์ ์์ต๋๋ค. ์ ํ ๋ฐฐํฌ๋ฅผ ๋จ์ํํ๊ธฐ ์ํด ์ด ํ๋ก์ ํธ์์๋ C++ ์ธ์ด๋ก ๋ ๋ ๋ฆฝํ ๋ฒ์ญ๊ธฐ ๋ฒ์ ์ธ CTranslate2๋ ๊ฐ๋ฐํ๊ณ ์์ต๋๋ค. ์ด ๋ฒ์ ์ ์ถ๊ฐ ์ข ์์ฑ์ ๊ตฌ์ ๋ฐ์ง ์๊ณ ์ฌ์ ํ์ต๋ ๋ชจ๋ธ์ ์ฌ์ฉํฉ๋๋ค.
์ ๋ฒ์ ์์๋ initial_learning_rate ๋งค๊ฐ๋ณ์๊ฐ ์ถ๊ฐ๋๊ณ , Transformer ๋ชจ๋ธ ์์ฑ๊ธฐ ๊ตฌ์ฑ์ ์ํ ์ฌ๋ฌ ์๋ก์ด ์ธ์(mha_bias ๋ฐ output_layer_bias)๊ฐ ๊ตฌํ๋์์ต๋๋ค. ๊ทธ ์ธ์๋ ๋ฒ๊ทธ ์์ ์ด ์ด๋ฃจ์ด์ก์ต๋๋ค.
์ถ์ฒ : opennet.ru
