Tutorial: poner en marcha motores NLLB con MTUOC‐server - mtuoc/mtuoc.github.io GitHub Wiki
En este tutorial vamos a aprender a poner en marcha un motor del proyecto NLLB, que también están disponibles en HuggingFace. Los modelos de traducción NLLB pueden traducir entre una gran cantidad de lenguas. La lista completa, junto a los códigos que utiliza NLLB se puede encontrar en el anexo de este tutorial.
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.
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
Para poner en marcha un motor bilingüe símplemente tendremos que editar el archivo config-server.yaml e indicar que como MTengine utilizaremos NLLB.
Tendremos que editar algunas partes del config-server.yaml:
MTEngine:
MTengine: NLLB
#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.
...
NLLB:
model: facebook/nllb-200-distilled-1.3B
src_lang: eng_Latn
tgt_lang: spa_Latn
beam_size: 5
num_hypotheses: 5
src_lang: eng_Latn
tgt_lang: spa_Latn
En el apartado MTEngine:
- En MTengine: NLLB
- En multilingual: False, aunque realmente el modelo NLLB es multilingüe, no le pasamos los códigos de lengua con etiquetas, si no que lo indicamos en la función que consulta al model.
En el apartado NLLB:
- En model: facebook/nllb-200-distilled-1.3B. El servidor, la primera vez que lo ejecutemos, descargará automáticamente el modelo.
- En src_lang: ponemos la lengua de partida (mirar anexo)
- En tgt_lang: ponemos la lengua de llegada (mirar anexo)
- 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.)
Abjasio (abk_Cyrl), Acholí (ach_Latn), Adigué (ady_Cyrl), Afrikaans (afr_Latn), Akan (aka_Latn), Amárico (amh_Ethi), Árabe (arb_Arab), Armenio (hye_Armn), Asamés (asm_Beng), Aimara (ayr_Latn), Azerbaiyano (azj_Latn), Bamanankan (bam_Latn), Bashkir (bak_Cyrl), Vasco (eus_Latn), Bielorruso (bel_Cyrl), Bemba (bem_Latn), Bengalí (ben_Beng), Bhojpuri (bho_Deva), Bislama (bis_Latn), Bosnio (bos_Latn), Bretón (bre_Latn), Búlgaro (bul_Cyrl), Birmano (mya_Mymr), Catalán (cat_Latn), Cebuano (ceb_Latn), Aimara Central (ayc_Latn), Chichewa (nya_Latn), Chino Simplificado (zho_Hans), Chino Tradicional (zho_Hant), Chuvasio (chv_Cyrl), Córnico (cor_Latn), Corso (cos_Latn), Croata (hrv_Latn), Checo (ces_Latn), Danés (dan_Latn), Darí (prs_Arab), Dholuo (luo_Latn), Dhivehi (div_Thaa), Neerlandés (nld_Latn), Dzongkha (dzo_Tibt), Inglés (eng_Latn), Esperanto (epo_Latn), Estonio (est_Latn), Ewe (ewe_Latn), Feroés (fao_Latn), Fiyiano (fij_Latn), Filipino (fil_Latn), Finés (fin_Latn), Francés (fra_Latn), Friulano (fur_Latn), Fulah (ful_Latn), Gallego (glg_Latn), Ganda (lug_Latn), Georgiano (kat_Geor), Alemán (deu_Latn), Griego (ell_Grek), Groenlandés (kal_Latn), Guaraní (grn_Latn), Guyaratí (guj_Gujr), Criollo Haitiano (hat_Latn), Hausa (hau_Latn), Hawaiano (haw_Latn), Hebreo (heb_Hebr), Hindi (hin_Deva), Húngaro (hun_Latn), Islandés (isl_Latn), Igbo (ibo_Latn), Ilocano (ilo_Latn), Indonesio (ind_Latn), Inuktitut (iku_Latn), Irlandés (gle_Latn), Italiano (ita_Latn), Japonés (jpn_Jpan), Javanés (jav_Latn), Cabilio (kab_Latn), Canarés (kan_Knda), Cachemir (kas_Arab), Kazajo (kaz_Cyrl), Jemer (khm_Khmr), Kikuyu (kik_Latn), Kinyarwanda (kin_Latn), Kirundi (run_Latn), Coreano (kor_Hang), Krio (kri_Latn), Kurdo Kurmanji (kmr_Latn), Kurdo Sorani (ckb_Arab), Kirguís (kir_Cyrl), Lao (lao_Laoo), Latín (lat_Latn), Letón (lav_Latn), Lingala (lin_Latn), Lituano (lit_Latn), Luganda (lug_Latn), Luxemburgués (ltz_Latn), Macedonio (mkd_Cyrl), Maithili (mai_Deva), Malgache (mlg_Latn), Malayo (msa_Latn), Malayalam (mal_Mlym), Maltés (mlt_Latn), Maorí (mri_Latn), Marathi (mar_Deva), Marshalés (mah_Latn), Mongol (mon_Cyrl), Montenegrino (cnr_Latn), Mooré (mos_Latn), Náhuatl (nci_Latn), Nama (naq_Latn), Nepalí (nep_Deva), Noruego (nob_Latn), Nyanja (nya_Latn), Occitano (oci_Latn), Odia (ory_Orya), Oromo (orm_Latn), Palauan (pau_Latn), Pashto (pus_Arab), Persa (pes_Arab), Polaco (pol_Latn), Portugués (por_Latn), Panyabí (pan_Guru), Quechua (quy_Latn), Rumano (ron_Latn), Romanche (roh_Latn), Ruso (rus_Cyrl), Samoano (smo_Latn), Sango (sag_Latn), Sánscrito (san_Deva), Santali (sat_Olck), Sardo (srd_Latn), Gaélico Escocés (gla_Latn), Serbio (srp_Cyrl), Shona (sna_Latn), Sichuan Yi (iii_Yiii), Siciliano (scn_Latn), Sindhi (snd_Arab), Cingalés (sin_Sinh), Eslovaco (slk_Latn), Esloveno (slv_Latn), Somalí (som_Latn), Sotho (sot_Latn), Español (spa_Latn), Sundanés (sun_Latn), Suajili (swa_Latn), Sueco (swe_Latn), Tahitiano (tah_Latn), Tayiko (tgk_Cyrl), Tamil (tam_Taml), Tártaro (tat_Cyrl), Telugu (tel_Telu), Tetum (tet_Latn), Tailandés (tha_Thai), Tibetano (bod_Tibt), Tigrinya (tir_Ethi), Tok Pisin (tpi_Latn), Tongano (ton_Latn), Tswana (tsn_Latn), Tumbuka (tum_Latn), Turco (tur_Latn), Turcomano (tuk_Latn), Twi (twi_Latn), Ucraniano (ukr_Cyrl), Urdu (urd_Arab), Uzbeko (uzb_Latn), Vietnamita (vie_Latn), Galés (cym_Latn), Wolof (wol_Latn), Xhosa (xho_Latn), Yidis (yid_Hebr), Yoruba (yor_Latn), Zulú (zul_Latn).