ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π²ΡΠΏΡΡΠΊ ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° OpenNMT 0.28.0 (Open Neural Machine Translation), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅ΠΉ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π½Π΅ΠΉΡΠΎΠ½Π½ΠΎΠΉ ΡΠ΅ΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π³Π»ΡΠ±ΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ TensorFlow. ΠΠΎΠ΄ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ OpenNMT ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ Python ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ MIT. ΠΠΎΡΠΎΠ²ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Ρ Π΄Π»Ρ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ, Π½Π΅ΠΌΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈ ΠΊΠ°ΡΠ°Π»Π°Π½ΡΠΊΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠΎΠ², Π΄Π»Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° OPUS (Π΄Π»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π΄Π²Π° ΡΠ°ΠΉΠ»Π° — ΠΎΠ΄ΠΈΠ½ Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π½Π° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅, Π° Π²ΡΠΎΡΠΎΠΉ Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠΌ ΡΡΠΈΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΠ·ΡΠΊ).
ΠΡΠΎΠ΅ΠΊΡ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ SYSTRAN, ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΠ°ΡΡΡ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΡΠ΅Π΄ΡΡΠ² ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π°, ΠΈ Π³ΡΡΠΏΠΏΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Harvard, ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠ΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ΅Π»ΠΎΠ²Π΅ΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΡΠ½ ΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ Π»ΠΈΡΡ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Ρ ΡΠ΅ΠΊΡΡΠΎΠΌ ΠΈ ΡΠ°ΠΉΠ»Π° Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π°. Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ Π½Π° Π±Π°Π·Π΅ OpenNMT Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°Π²ΡΠΎΡΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ² ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΡΠ±ΡΠΈΡΡΠΎΠ².
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ TensorFlow ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ GPU (Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π½Π΅ΠΉΡΠΎΠ½Π½ΠΎΠΉ ΡΠ΅ΡΠΈ. ΠΠ»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°ΠΌΠΎΠ΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ° Π½Π° ΡΠ·ΡΠΊΠ΅ C++ — CTranslate2, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΡΡΠ΅Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±Π΅Π· ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌ.
Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ initial_learning_rate ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½ΠΎΠ²ΡΡ
Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² (mha_bias ΠΈ output_layer_bias) Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Transformer. Π ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡΠΈΠ±ΠΎΠΊ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru