WiNGPT-Babel-2 是一个针对多语言翻译任务优化的语言模型。作为 WiNGPT-Babel 的迭代,它在语言覆盖范围、数据格式处理以及复杂内容的翻译准确性方面均有显著提升。
该模型延续了“Human-in-the-loop”的训练策略,通过对真实应用场景日志数据的分析不断迭代优化,确保其在实际使用中的有效性和可靠性。
2.0 版的核心改进
WiNGPT-Babel-2 与其前身相比引入了以下关键技术升级:
- 扩展语言支持:通过使用
wmt24pp
数据集进行训练,语言支持已扩展到55 种语言,主要增强了从英语 (en) 到其他目标语言 (xx) 的翻译能力。
- **增强中文翻译:**对其他源语言到中文(xx → zh)的翻译流程进行了专门优化,提高了结果的准确性和流畅性。
- **结构化数据翻译:该模型现在可以识别和翻译嵌入在****结构化数据(例如 JSON)**中的文本字段,同时保留原始数据结构。此功能适用于 API 国际化和多语言数据集预处理等场景。
- 混合内容处理:其处理混合内容文本的能力得到了改进,能够更准确地翻译包含数学表达式(LaTeX)、代码片段和网页标记(HTML/Markdown)的段落,同时保留这些不可翻译元素的格式和完整性。
培训方法
WiNGPT-Babel-2 的性能提升归功于持续的、数据驱动的、迭代的训练过程:
- **数据收集:**从集成应用程序(例如,Immersive Translate、Videolingo)收集匿名的、真实的翻译任务日志。
- **数据提炼:**利用奖励模型对收集的数据进行拒绝采样,并辅以人工审核,筛选出高质量、高价值的样本,用于构建新的训练数据集。
- **迭代再训练:**利用细化后的数据进行模型的增量训练,通过循环迭代的过程不断提升模型在特定领域和场景下的性能。
技术规格
- 基础模型: GemmaX2-28-2B-Pretrain
- 主要训练数据: “Human-in-the-loop”内部数据集、WMT24++数据集
- 最大上下文长度: 4096 个标记
- **聊天功能:**支持多轮对话,允许上下文跟进和翻译改进。
语言支持
方向 |
描述 |
支持的语言(部分列表) |
核心支持 |
最高质量,广泛优化。 |
en ↔ zh |
扩展支持 |
wmt24pp 通过数据集训练支持。 |
en → 55+ languages , 包括:fr ,de ,es ,ru ,ar ,pt ,ko ,it ,nl ,tr ,pl ,sv ... |
增强中文 |
专门针对中文翻译进行了优化。 |
xx → zh |
使用指南
为了获得最佳推理性能,建议使用诸如 之类的框架 vllm
。以下提供了使用 Hugging Face transformers
库的基本使用示例。
**系统提示:**为了获得最佳的自动语言推理效果,建议使用统一的系统提示:Translate this to {{to}} Language
。将其替换 {{to}}
为目标语言的名称。例如,使用 Translate this to Simplified Chinese Language
翻译成中文,或 Translate this to English Language
翻译成英文。此方法可以精确控制翻译方向,并获得最可靠的结果。
例子
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "winninghealth/WiNGPT-Babel-2"
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
# Example: Translation of text within a JSON object to Chinese
prompt_json = """{
"product_name": "High-Performance Laptop",
"features": ["Fast Processor", "Long Battery Life", "Lightweight Design"]
}"""
messages = [
{"role": "system", "content": "Translate this to Simplified Chinese Language"},
{"role": "user", "content": prompt_json} # Replace with the desired prompt
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
generated_ids = model.generate(
**model_inputs,
max_new_tokens=4096,
temperature=0
)
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]
WiNGPT-Babel适用场景:https://www.bigseek.com/ai-155-1-1.html