Interesantísimo artículo de Thamme Gowda, Zhao Zhang, Chris A Mattmann, y Jonathan May presentando herramientas útiles para la investigación con Traducción Automática: MTData, NLCodec y RTG. Modelo de traducción automática neural multilingüe capaz de traducir desde 500 idiomas de origen (Español, Francés, Alemán, etc) al Inglés.
Traducción de Inglés a Español realizada por Jose, traductor de Inglés experto en Machine Translation con más de 20 años de experiencia traduciendo textos de todo tipo para la agencia de traducción Ibidem Group.
Texto original escrito por Thamme Gowda y publicado en
https://www.isi.edu/~tg/posts/2021/04/mtdata-nlcodec-rtg-many-english/
***
Enlaces
Estas son las 3 herramientas de traducción automática que vamos a usar:
Una herramienta para descargar conjuntos de datos de traducción automática https://github.com/thammegowda/mtdata/
pip install mtdata
https://isi-nlp.github.io/nlcodec/
pip install nlcodec
https://isi-nlp.github.io/rtg/
pip install rtg
Guiones, tablas y gráficos: https://github.com/thammegowda/006-many-to-eng |
El primer paso es usar estas herramientas para recopilar datasets grandes.
Y luego entrenar modelos multilingües masivos para la traducción automática al inglés.
http://rtg.isi.edu/many-eng/models/
Recommended: rtg500eng-tfm9L6L768d-bsz720k-stp200k-ens05.tgz |
Proporcionamos una imagen docker con un modelo preentrenado que puede utilizarse fácilmente como servicio de traducción:
pick the latest image from https://hub.docker.com/repository/docker/tgowda/rtg-model
IMAGE=tgowda/rtg-model:500toEng-v1
To run without using GPU; requires about 5 to 6GB CPU RAM
docker run --rm -i -p 6060:6060 $IMAGE
Recommended: use GPU (e.g. device=0)
docker run --gpus '"device=0"' --rm -i -p 6060:6060 $IMAGE
Si no queremos usar docker, entonces haremos lo siguiente:
Paso 1: Configurar un entorno conda e instala la librería rtg.
Si falta conda en su sistema, instale miniconda para empezar. |
conda create -n rtg python=3.7
conda activate rtg
pip install rtg==0.5.0 # install rtg and its dependencies
conda install -c conda-forge uwsgi # needed to deploy service
Paso 2: Descargar un modelo y ejecutar
Pick the latest version
MODEL=rtg500eng-tfm9L6L768d-bsz720k-stp200k-ens05.tgz
wget http://rtg.isi.edu/many-eng/models/$MODEL
tar xvf $MODEL # Extract and run
uwsgi --http 127.0.0.1:6060 --module rtg.serve.app:app --pyargv "/path/to/extracted/dir"
Alternatively, without uWSGI (not recommended)
rtg-serve /path/to/extracted/dir
See "rtg-serve -h" to learn optional arguments for --pyargv "" of uWSGI
Interacción con la API REST
API=http://localhost:6060/translate
curl $API --data "source=Comment allez-vous?" \
--data "source=Bonne journée"
API also accepts input as JSON data
curl -X POST -H "Content-Type: application/json" $API\
--data '{"source":["Comment allez-vous?", "Bonne journée"]}'
Para saber más sobre el servicio RTG y cómo interactuar con él, vaya a RTGDocs |
pip install rtg==0.5.0
should have already installed sacremoses-xt
pip install sacremoses-xt==0.0.44
sacremoses normalize -q -d -p -c tokenize -a -x -p :web: < input.src > input.src.tok
CUDA_VISIBLE_DEVICES=0 # set GPU device ID
rtg-decode /path/to/model-extract -if input.src.tok -of output.out
post process; drop s, detokenize
cut -f1 output.out | sed 's///g' | sacremoses detokenize > output.out.detok
Transferencia de padres a hijos para MT de bajos recursos
El modelo preentrenado puede adaptarse a un dataset específico, utilizando una configuración de transferencia padre-hijo.
La tasa de aprendizaje del entrenador del modelo hijo es un parámetro crucial: una tasa de aprendizaje más alta destruiría los pesos del modelo padre, y una tasa de aprendizaje más baja significa menos adaptación al conjunto de datos hijo. Por lo tanto, la tasa de aprendizaje debe ser la adecuada; consulta los archivos conf.yml en https://github.com/thammegowda/006-many-to-eng/tree/master/lowres-xfer
https://aclanthology.org/2021.acl-demo.37/
@inproceedings{gowda-etal-2021-many,
title = "Many-to-{E}nglish Machine Translation Tools, Data, and Pretrained Models",
author = "Gowda, Thamme and
Zhang, Zhao and
Mattmann, Chris and
May, Jonathan",
booktitle = "Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing: System Demonstrations",
month = aug,
year = "2021",
address = "Online",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2021.acl-demo.37",
doi = "10.18653/v1/2021.acl-demo.37",
pages = "306--316",
}
Gracias a USC CARC, y TACC por facilitar los recursos técnicos. Gracias a Jörg Tiedemann por alojar los datasets en OPUS.
Articulos relacionados
Traducción a Español de un texto en Inglés de Justin Houghton (Product Manager al BrainBase) explicando la evolución de la MT (Machine Translation) , desde la MT basada en reglas, a la MT estadística, la MT basada en ejemplos, la MT híbrida y finalmente la MT neuronal.
Traducción a Español de un artículo en Inglés de Teven Le Scao explicando los paradigmas y la evolución histórica de la Traducción Automática (MT): desde sus orígenes en 1933, y la posterior Traducción Automática basada en reglas, hasta la Traducción Automática basada en...
Traducción a Español de un artículo en Inglés de Some Aditya Mandal donde se explican los esfuerzos de los investigadores que hicieron avanzar la Traducción Automática Estadística hasta la actual Traducción Automática Neuronal.