Tutorial: poner en marcha motores OpusMT con MTUOC‐server - mtuoc/mtuoc.github.io GitHub Wiki

Introducción

En este tutorial vamos a aprender a poner en marcha los motores de OpusMT, que también están disponibles en HuggingFace. Los modelos de OpusMT se descargarán automáticamente cuando pongamos en marcha el servidor MTUOC la primera vez después de configurarlo. Hay que tener en cuenta que los motores OpusMT pueden ser bilingües o multilingües. En este segundo caso, cuando pongamos en marcha el servidor MTUOC seleccionaremos el par de lenguas con el que queremos trabajar y el motor MTUOC resultante pasará a ser bilingüe.

En los ejemplos ponemos el servidor MTUOC en marcha con el protocolo MTUOC, pero quizás querráis ponerlo en marcha con otro protocolo de los disponibles: MTUOC, Moses, ModernMT, OpenNMT, NMTWizard. Editad el apartado MTUOCserver - type.

Lectura recomendada

Tiedemann, J., Aulamo, M., Bakshandaeva, D., Boggia, M., Grönroos, S. A., Nieminen, T., ... & Virpioja, S. (2024). Democratizing neural machine translation with OPUS-MT. Language Resources and Evaluation, 58(2), 713-755.

Obtención del servidor MTUOC

Obtén una versión reciente del servidor MTUOC de https://github.com/mtuoc/MTUOC-server/

git clone https://github.com/mtuoc/MTUOC-server.git

Puesta en marcha de un motor bilingüe

Para poner en marcha un motor bilingüe símplemente tendremos que editar el archivo config-server.yaml. Escoge un modelo OpusMT bilingüe de entre los disponibles en HuggingFace. En el ejemplo utilizaremos un modelo inglés - español: opus-mt-en-es.

Tendremos que editar algunas partes del config-server.yaml:

MTEngine:
  MTengine: OpusMT
  #one of Marian, OpenNMT, Moses, GoogleTranslate, DeepL, Lucy, OpusMT, NLLB, Softcatalà, Apertium, Transformers, Aina
  SLcode: en
  TLcode: es
  multilingual: False
  #False or <2tgtlang> or any multilingual code used by the system.
...
Transformers:
#use the same configuration for OpusMT
  model_path: Helsinki-NLP/opus-mt-en-es
  beam_size: 5
  num_hypotheses: 5

En el apartado MTEngine:

  • En MTengine: podemos poner tanto Transformers como OpusMT
  • En multilingual: False

En el apartado Transformer:

  • En model_path pondremos el modelo, tal y como en el ejemplo. El servidor, la primera vez que lo ejecutemos, descargará automáticamente el modelo.
  • El resto de parámetros son más avanzados y por ahora los puedes dejar como en el ejemplo.

Una vez realizadas las configuraciones podremos poner en marcha el servidor haciendo:

python3 MTUOC-server.py

(NOTA: Si ejecutas la versión Python, se supone que tienes instalados los prerequisitos necesarios de Python para ejecutar el servidor. Si no es así, tendrás que instalarlos. Puede ser buena idea crear un entorno virtual de Python.)

Puesta en marcha de un motor multilingüe

Para poner en marcha un motor multilingüe se tiene que configurar el config-server.yaml de la siguiente manera. En el ejemplo pondremos en marcha un motor multilingüe inglés > español, catalán, occitano. Pondremos en marcha el motor para traducir al occitano: opus-mt-tc-big-en-cat_oci_spa

MTEngine:
  MTengine: OpusMT
  #one of Marian, OpenNMT, Moses, GoogleTranslate, DeepL, Lucy, OpusMT, NLLB, Softcatalà, Apertium, Transformers, Aina
  SLcode: en
  TLcode: oc
  multilingual: ">>oci<<"
  #False or <2tgtlang> or any multilingual code used by the system.
...
Transformers:
#use the same configuration for OpusMT
  model_path: Helsinki-NLP/opus-mt-tc-big-en-cat_oci_spa
  beam_size: 5
  num_hypotheses: 5

En el apartado MTEngine:

  • En MTengine: podemos poner tanto Transformers como OpusMT
  • En multilingual: ponemos el código que indica la lengua de llegada, en el ejemplo: ">>oci<<"

En el apartado Transformer:

  • En model_path pondremos el modelo, tal y como en el ejemplo. El servidor, la primera vez que lo ejecutemos, descargará automáticamente el modelo.
  • El resto de parámetros son más avanzados y por ahora los puedes dejar como en el ejemplo.
⚠️ **GitHub.com Fallback** ⚠️