IND to MS HuggingFace
Contents
IND to MS HuggingFace#
This tutorial is available as an IPython notebook at Malaya/example/ind-ms-translation-huggingface.
This module trained on standard language and augmented local language structures, proceed with caution.
[1]:
import os
os.environ['CUDA_VISIBLE_DEVICES'] = ''
[2]:
%%time
import malaya
import logging
logging.basicConfig(level=logging.INFO)
CPU times: user 3.75 s, sys: 3.58 s, total: 7.33 s
Wall time: 3.06 s
List available HuggingFace models#
[5]:
malaya.translation.ind_ms.available_huggingface()
INFO:malaya.translation.ind_ms:tested on FLORES200 IND-MS (ind_Latn-zsm_Latn) pair `dev` set, https://github.com/facebookresearch/flores/tree/main/flores200
[5]:
Size (MB) | BLEU | SacreBLEU Verbose | SacreBLEU-chrF++-FLORES200 | Suggested length | |
---|---|---|---|---|---|
mesolitica/finetune-translation-austronesian-t5-tiny-standard-bahasa-cased | 139 | 30.277471 | 64.2/38.0/24.1/15.6 (BP = 0.978 ratio = 0.978 ... | 57.38 | 256 |
mesolitica/finetune-translation-austronesian-t5-small-standard-bahasa-cased | 242 | 30.24359 | 61.1/36.9/23.8/15.6 (BP = 1.000 ratio = 1.052 ... | 58.43 | 512 |
mesolitica/finetune-translation-austronesian-t5-base-standard-bahasa-cased | 892 | 31.494673 | 64.1/38.8/25.1/16.5 (BP = 0.989 ratio = 0.990 ... | 58.1 | 512 |
Load Transformer models#
def huggingface(
model: str = 'mesolitica/finetune-translation-austronesian-t5-small-standard-bahasa-cased',
force_check: bool = True,
**kwargs,
):
"""
Load HuggingFace model to translate IND-to-MS.
Parameters
----------
model: str, optional (default='mesolitica/finetune-translation-t5-small-standard-bahasa-cased')
Check available models at `malaya.translation.ind_ms.available_huggingface()`.
Returns
-------
result: malaya.torch_model.huggingface.Generator
"""
[17]:
transformer_huggingface = malaya.translation.ind_ms.huggingface()
Translate#
def generate(self, strings: List[str], **kwargs):
"""
Generate texts from the input.
Parameters
----------
strings : List[str]
**kwargs: vector arguments pass to huggingface `generate` method.
Read more at https://huggingface.co/docs/transformers/main_classes/text_generation
Returns
-------
result: List[str]
"""
For better results, always split by end of sentences.
[7]:
from pprint import pprint
[20]:
news = 'Jakarta Pusat, Kominfo - Presiden Joko Widodo menerima surat kepercayaan dari sebelas duta besar luar biasa dan berkuasa penuh (LBBP) negara-negara sahabat. Penyerahan surat kepercayaan tersebut digelar di Ruang Kredensial, Istana Merdeka, Jakarta Pusat, Senin (20/02/2023). Prosesi acara penyerahan surat kepercayaan dimulai dengan diperdengarkannya lagu kebangsaan dari masing-masing negara sahabat setelah duta besar tiba di Istana Merdeka. Adapun kesebelas duta besar negara sahabat yang diterima oleh Presiden'
text = 'Saya tidak suka ikan keli dan ayam goreng'
[21]:
%%time
pprint(transformer_huggingface.generate([news, text],
max_length = 1000))
['Jakarta Pusat, Kominfo - Presiden Joko Widodo menerima surat kepercayaan '
'dari sebelas duta luar biasa dan penuh kuasa (LBBP) negara sahabat '
'Penyerahan surat kepercayaan itu digelar di Ruang Kredensial, Istana '
'Merdeka, Jakarta Pusat, Senin (20/02/2023) Prosesi penyerahan surat '
'kepercayaan dimulai dengan diperdengarkannya lagu kebangsaan dari '
'masing-masing negara sahabat setelah duta besar tiba di Istana Merdeka '
'Adapun kesebelas duta negara sahabat yang diterima Presiden.',
'Saya tidak suka lele dan ayam goreng']
CPU times: user 13.3 s, sys: 1.45 ms, total: 13.3 s
Wall time: 1.13 s
compare with Google translate using googletrans#
Install it by,
pip3 install googletrans==4.0.0rc1
[13]:
from googletrans import Translator
translator = Translator()
[22]:
strings = [news, text]
[23]:
for t in strings:
r = translator.translate(t, src='id', dest = 'ms')
print(r.text)
JAKARTA PUSAT, Kominfo - Presiden Joko Widodo menerima surat kepercayaan dari sebelas duta hebat dan kuasa penuh (LBBP) negara -negara yang mesra.Penyerahan surat amanah telah diadakan di Bilik Kredensial, Istana Merdeka, Jakarta Tengah, Isnin (02/20/2023).Perarakan penyerahan kepercayaan bermula dengan bermain lagu kebangsaan dari setiap negara kawan selepas duta besar tiba di Istana Merdeka.Bagi sebelas duta negara yang mesra yang diterima oleh presiden
Saya tidak suka ikan keli dan ayam goreng