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