Introducción

En esta página se explica cómo poner en marcha un servidor MTUOC para que funcione con un servidor de Marian o Moses. El esquema de funcionamiento de todo el sistema integrado de traducción con MTUOC consta de tres componentes: dos servidores y un cliente:

  • Servidor Marian o Moses: este servidor recibe segmentos preprocesados (tokenizados, truecased, con el tratamiento de las cifras y subwords si es el caso) y devuelve una traducción en bruto, es decir, un segmento que necesita un postprocesado para ser la traducción real del segmento. Funciona bajo un servidor Linux, que puede ser tanto un ordenador local con Linux, un servidor remoto o una máquina virtual.
  • Servidor MTUOC: este servidor recibe del cliente el segmento y lo preprocesa, lo envía al Servidor Marian, lo recibe, lo postprocesa y lo devuelve al cliente. Funciona bajo un servidor Linux, que puede ser tanto un ordenador local con Linux, un servidor remoto o una máquina virtual.
  • MTUOC-Translator: es una aplicación gráfica que envía segmentos al servidor MTUOC y los recibe. Puede tratar diversos formatos estándar y es fácilmente ampliable. Funciona bajo Linux, Windows y MAC. Se distribuye tanto en código fuente Python como en ejecutable para Windows.

El esquema de funcionamiento de todo el sistema sería el siguiente:

https://lh4.googleusercontent.com/EYXDele30agWB87ImLBHlXybwsjaPyJDkYSMtppKW96NiDkNlsw00bQgEqlUAj2iTDVFwxMrg3JWl5VgOVVMRpleZ4jWwOLUQ1A9MjCZCp9ARlMqTc-nh62HyWEghbLA9gOSIA3Q

Es decir, se compone de:

  • Un servidor (que puede funcionar remotamente, en la propia máquina o bien en una máquina virtual). Este servidor en realidad es doble:

    • Servidor MTUOC
    • Servidor Marian (o Moses)
  • Un cliente (que puede ser tanto una aplicación como una página web)

Todos los componentes se pueden descargar de: http://lpg.uoc.edu/MTUOC 

1. Servidor

En este apartado explicamos cómo poner en marcha un servidor de traducción automática MTUOC. Este servidor es posible instalarlo en un ordenador con Linux y en el apartado 1.1 se explica cómo instalar los prerequisitos necesarios para que funcione el servidor. También es posible descargar una máquina virtual de VirtualBox donde están ya instalados todos los prerequisitos, lo que se explica en el apartado 1.2.

1.1. Sobre un ordenador con Linux

Cada motor concreto se distribuye con todo lo necesario para funcionar bajo un sistema Linux que tenga instalado todos los siguientes prerequisitos:

subword-nmt
websocket
websocket-client
SimpleWebSocketServer
pyyaml
nltk

Puedes instalarlos directament utilizando el archivo requirements.txt:

pip3 install -r requirements .txt

Para configurar el servidor se tiene que editar el archivo config-server.yaml

---
MarianServer:
  ip: localhost 
  port: 8080
  type: CPU
  model: model.npz
  vocab_sl: vocab-en.yml
  vocab_tl: vocab-es.yml

 
MTUOCServer:
  port: 8000

Tokenizer:
  sl_lang: en
  tl_lang: es

Truecase:
  model: tc.en

BPE:
  codes: codes_file
 
Verbose:
  verbose: True
---

En general no se tiene que modificar esta configuración excepto si quieres poner en marcha más de un servidor en una única máquina. Si es así hay que cambiar los puertos del MarianSever y del MTUOCserver.

Para poner en marcha el servidor hay que escribir:

python3 MTUOC_Marian_server.py

Para parar el servidor hay que escribir:

python3 MTUOC_stop_server.py

1.2. Mediante una máquina virtual

Alternativamente se distribuye una máquina virtual de VirtualBox que contiene un servidor linux con todos los prerequisitos instalados. Se puede descargar de http://lpg.uoc.edu/MTUOC/  y se trata del archivo http://lpg.uoc.edu/MTUOC/MTUOC-Server-v04.ova

Para poder utilizar esta máquina virtual es necesario instalar VirtualBox: https://www.virtualbox.org/

Una vez instalado Virtual Bix, se ejecuta la aplicación y para importar la máquina virtual hay que hacer:

File > Import Appliance

Y seleccionar el archivo .ova descargado.

Una vez importada, y antes de ponerla en marcha, hay que configurar el controlador de red de la siguiente manera:

  • Selecciona la máquina virtual
  • Selecciona Settings > Network > Adapter 1
  • En Attached to selecciona Bridged Adapter

    • Será necesario seleccionar el adaptador adecuado. En algunos casos habrán más de un adaptador y será necesario seleccionar el que está realmente en uso. Si estamos utilizando wifi es posible que el adapatador se llame wlan0 (aunque puede ser cualquier otro nombre, dependiendo del ordenador. Si estás conectado a Internet mediante cable, el adaptador puede ser por ejemplo eth1 (aunque pueden ser nombres diferentes).
  • Haz clic en OK
  • Pon en marcha la máquina virtual con Start

Cuando finalice la puesta en marcha mostrará un mensaje que indica la IP del sistema (recuerda este dato, ya que lo necesitarás para conectar al cliente). Si una vez accedes no lo recuerdas, puedes saber la IP con la instrucción

ifconfig

Para entrar al sistema el usuario es mtuoc y la contraseña es mtuoc. Este usuario tiene permisos de administrador.

1.3. Instalación de los motores

Los motores Marian se pueden obtener de http://lpg.uoc.edu/MTUOC/. Se puede descargar cualquiera de estos motores directamente desde el servidor, ya sea local o en máquina virtual con wget, copiando el enlace al motor deseado (se puede copiar desde el navegador de internet). Por ejemplo:

wget http://lpg.uoc.edu/MTUOC/MTUOC-MarianServer-00-generic-eng-spa.tar.gz

Una vez descargado, podemos descomprimir el archivo con la instrucción tar:

tar xvf MTUOC-MarianServer-00-generic-eng-spa.tar.gz

Se creará el directorio MTUOC-MarianServer-MultiUN-eng-spa. Una vez descomprimido podremos acceder a este directorio con cd:

cd MTUOC-MarianServer-00-generic-eng-spa

Y podremos poner en marcha el motor con el script startMTUOCserver.sh haciendo:

python3 MTUOC_Marian_server.py

Este script pone en marcha el servidor Marian y después el servidor MTUOC. Si el servidor MTUOC se pone en marcha antes de estar disponible el servidor Marian, aparecerá un mensaje de error y se esperará 5 segundos antes de volver a intentarlo. Cuando esté disponible el servidor Marian el MTUOC se conectará.

El puerto por defecto del servidor Marian es el 8080. Cuando aparece un mensaje "Server listening to port 8080" significa que el servidor Marian está disponible. 

El puerto por defecto del servidor MTUOC es el 8000. Cuando aparece un mensaje "Server listening to port 8000" significa que el servidor MTUOC está disponible. 

Para cambiar los puertos de los servidores hay que editar el archivo config_server.yaml

Para parar el servidor hay que escribir:

python3 MTUOC_stop_server.pu

 

Tags:
Created by Antoni Oliver on 2019/07/25 12:09