Выпуск систСмы машинного ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° OpenNMT-tf 2.30

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ выпуск систСмы машинного ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° OpenNMT-tf 2.30.0 (Open Neural Machine Translation), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ машинного обучСния. Код Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ OpenNMT-tf ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ написан Π½Π° языкС Python, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ TensorFlow ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ MIT.

ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ развиваСтся Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ OpenNMT Π½Π° Π±Π°Π·Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ PyTorch, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отличаСтся Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… возмоТностСй. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, OpenNMT Π½Π° Π±Π°Π·Π΅ PyTorch прСподносится ΠΊΠ°ΠΊ Π±ΠΎΠ»Π΅Π΅ простой для использования ΠΈ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹ΠΉ, Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π° Π±Π°Π·Π΅ TensorFlow отмСчаСтся ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΉ, ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ возмоТности GPU для ускорСния процСсса обучСния Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ сСти. Для упрощСния распространСния ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Ρ‚Π°ΠΊΠΆΠ΅ развиваСтся самодостаточный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ транслятора Π½Π° языкС C++ — CTranslate2, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±Π΅Π· привязки ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ зависимостям.

МодСли ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Ρ‹ для английского, Π½Π΅ΠΌΠ΅Ρ†ΠΊΠΎΠ³ΠΎ ΠΈ каталанского языков, для ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… языков ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ модСль Π½Π° основС Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° OPUS (для обучСния систСмС пСрСдаётся Π΄Π²Π° Ρ„Π°ΠΉΠ»Π° — ΠΎΠ΄ΠΈΠ½ с прСдлоТСниями Π½Π° исходном языкС, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ с качСствСнным ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠΌ этих ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠΉ язык).

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ развиваСтся ΠΏΡ€ΠΈ участии ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ SYSTRAN, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉΡΡ Π½Π° создании срСдств машинного ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°, ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ исслСдоватСлСй Harvard, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ чСловСчСского языка для систСм машинного обучСния. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ максимально ΡƒΠΏΡ€ΠΎΡ‰Ρ‘Π½ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ лишь указания Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° с тСкстом ΠΈ Ρ„Π°ΠΉΠ»Π° для сохранСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°. БистСма Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Π±Π°Π·Π΅ OpenNMT Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°Π²Ρ‚ΠΎΡ€Π΅Ρ„Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ тСкстов ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ субтитров.

Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ TensorFlow 2.11, Π½ΠΎ Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ Keras ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ (трСбуСтся использованиС Ρ€Π΅ΠΆΠΈΠΌΠ° tf.keras.optimizers.legacy).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π΄Π²ΠΈΠΆΠΊΠ° CTranslate2 3.x, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ для эффСктивного выполнСния ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ с Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ «Ρ‚рансформСр».
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ pad_to_bucket_boundary для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ±Π°Π²ΠΎΡ‡Π½ΠΎΠ³ΠΎ заполнСния, Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊΠ° Π΄ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΡ€Π°Ρ‚Π½Ρ‹Ρ… length_bucket_width.
  • Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ chrf ΠΈ chrf++ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° SacreBLEU, ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ с эталонным чСловСчСским ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠΌ.
  • Π£Π΄Π°Π»Ρ‘Π½ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ ctranslate2_spec, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ большС Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² CTranslate2.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru