🚀 NanoTranslator-immersive_translate-365M
NanoTranslator-immersive_translate-365M 是一款專門為中英雙語翻譯設計的模型。它基於 NanoLM-365M-Base,使用來自 wmt-19 數據集的 600 萬條數據進行訓練,能有效實現中英雙語間的準確翻譯。
🚀 快速開始
NanoTranslator-immersive_translate-365M 專為中英雙語翻譯量身打造。它基於 NanoLM-365M-Base 模型,使用 wmt-19 數據集的 600 萬條數據進行訓練。該模型按照 Immersive Translate 的提示格式進行訓練,可藉助 vllm 和 lmdeploy 等工具以 OpenAI 格式接口進行部署和使用。
✨ 主要特性
- 雙語翻譯:專注於中英雙語翻譯,滿足特定語言需求。
- 數據豐富:使用 600 萬條來自 wmt-19 數據集的數據進行訓練,保證翻譯質量。
- 靈活部署:可按照 Immersive Translate 提示格式訓練,藉助 vllm 和 lmdeploy 等工具以 OpenAI 格式接口部署。
💻 使用示例
基礎用法
以下是使用 transformers 調用該模型的方法,提示遵循沉浸式翻譯格式以確保最佳效果。
import torch
from typing import Literal
from transformers import AutoModelForCausalLM, AutoTokenizer
model_path = 'Mxode/NanoTranslator-immersive_translate-365M'
model = AutoModelForCausalLM.from_pretrained(model_path).to('cuda:0', torch.bfloat16)
tokenizer = AutoTokenizer.from_pretrained(model_path)
def translate(
text: str,
to: Literal["chinese", "english"] = "chinese",
**kwargs
):
generation_args = dict(
max_new_tokens = kwargs.pop("max_new_tokens", 512),
do_sample = kwargs.pop("do_sample", True),
temperature = kwargs.pop("temperature", 0.35),
top_p = kwargs.pop("top_p", 0.8),
top_k = kwargs.pop("top_k", 40),
**kwargs
)
prompt = """Translate the following source text to {to}. Output translation directly without any additional text.
Source Text: {text}
Translated Text:"""
messages = [
{"role": "system", "content": "You are a professional, authentic machine translation engine."},
{"role": "user", "content": prompt.format(to=to, text=text)}
]
inputs = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([inputs], return_tensors="pt").to(model.device)
generated_ids = model.generate(model_inputs.input_ids, **generation_args)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
return response
text = "After a long day at work, I love to unwind by cooking a nice dinner and watching my favorite TV series. It really helps me relax and recharge for the next day."
response = translate(text=text, to='chinese')
print(f'Translation: {response}')
"""
Translation: 工作了一天,我喜歡吃一頓美味的晚餐,看我最喜歡的電視劇,這樣做有助於我放鬆,補充能量。
"""
📄 許可證
本項目採用 GPL-3.0 許可證。