如何使用mBART-50 进行Chinese – Khmer 的互译

使用 mBART-50 进行 中文(Chinese)↔高棉语(Khmer) 的互译是完全支持的,虽然高棉语(km_KH)和中文(zh_CN)的训练数据较少,但模型具备基本互译能力。

下面我将逐步说明如何使用 Hugging Face 的 transformers 库进行翻译:

 


 

 

✅ 一、安装必要库(如果尚未安装)

 

pip install transformers sentencepiece torch

 


 

 

✅ 二、载入模型和 tokenizer

 

from transformers import MBartForConditionalGeneration, MBart50TokenizerFast

# 载入模型
model = MBartForConditionalGeneration.from_pretrained("facebook/mbart-large-50-many-to-many-mmt")
tokenizer = MBart50TokenizerFast.from_pretrained("facebook/mbart-large-50-many-to-many-mmt")

 


 

 

✅ 三、中文 → 高棉语(zh_CN → km_KH)

 

# 设置源语言
tokenizer.src_lang = "zh_CN"
text = "你好,欢迎来到柬埔寨!"

# 编码
encoded = tokenizer(text, return_tensors="pt")

# 设置目标语言的 forced BOS token(模型生成目标语言所需)
forced_bos_token_id = tokenizer.lang_code_to_id["km_KH"]

# 翻译
generated_tokens = model.generate(**encoded, forced_bos_token_id=forced_bos_token_id)
translated = tokenizer.batch_decode(generated_tokens, skip_special_tokens=True)

print(translated)  # 输出高棉语翻译结果

 


 

 

✅ 四、高棉语 → 中文(km_KH → zh_CN)

 

tokenizer.src_lang = "km_KH"
text = "សួស្តី! សូមស្វាគមន៍មកកាន់ប្រទេសកម្ពុជា។"

encoded = tokenizer(text, return_tensors="pt")
forced_bos_token_id = tokenizer.lang_code_to_id["zh_CN"]

generated_tokens = model.generate(**encoded, forced_bos_token_id=forced_bos_token_id)
translated = tokenizer.batch_decode(generated_tokens, skip_special_tokens=True)

print(translated)  # 输出中文翻译结果

 


 

 

📌 注意事项:

 

 

  1. 翻译质量:中 ↔ 高棉语的翻译质量比主流语言(如英法德)略弱,可能需要后处理或人工校对。
  2. 语言代码: 
    • 中文:zh_CN
    • 高棉语:km_KH

     

  3. 性能建议:建议使用 GPU 运行,加速推理。