🚀 🇲🇦 Terjman-Nano-v2.0 (77M)
Terjman-Nano-v2.0是atlasia/Terjman-Nano-v1的改进版本,它基于强大的Transformer架构构建,并针对高质量、准确的翻译进行了微调。此版本基于atlasia/Terjman-Nano-v1,并在更大、更精细的数据集上进行了训练,从而提升了翻译性能。在TerjamaBench(一个针对英语 - 摩洛哥达里语翻译模型的评估基准,更侧重于从文化方面对模型进行挑战)上,该模型取得了与gpt-4o-2024-08-06相当的结果。
🚀 快速开始
特性
✅ 针对英语到摩洛哥达里语的翻译进行了微调。
✅ 在开源模型中具有最先进的性能。
✅ 与🤗 Transformers兼容,并且可以轻松部署在各种硬件环境中。
性能对比
以下表格对比了Terjman-Nano-v2.0与专有模型和开源模型在BLEU、chrF和TER得分上的表现。BLEU/chrF得分越高、TER得分越低,表示翻译质量越好。
模型 |
大小 |
BLEU↑ |
chrF↑ |
TER↓ |
专有模型 |
|
|
|
|
gemini-exp-1206 |
* |
30.69 |
54.16 |
67.62 |
claude-3-5-sonnet-20241022 |
* |
30.51 |
51.80 |
67.42 |
gpt-4o-2024-08-06 |
* |
28.30 |
50.13 |
71.77 |
开源模型 |
|
|
|
|
Terjman-Ultra-v2.0 |
1.3B |
25.00 |
44.70 |
77.20 |
Terjman-Supreme-v2.0 |
3.3B |
23.43 |
44.57 |
78.17 |
Terjman-Large-v2.0 |
240M |
22.67 |
42.57 |
83.00 |
Terjman-Nano-v2.0 (本模型) |
77M |
18.84 |
38.41 |
94.73 |
atlasia/Terjman-Large-v1.2 |
240M |
16.33 |
37.10 |
89.13 |
MBZUAI-Paris/Atlas-Chat-9B |
9B |
14.80 |
35.26 |
93.95 |
facebook/nllb-200-3.3B |
3.3B |
14.76 |
34.17 |
94.33 |
atlasia/Terjman-Nano |
77M |
09.98 |
26.55 |
106.49 |
模型详情
💻 使用示例
基础用法
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
model_name = "BounharAbdelaziz/Terjman-Nano-v2.0"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
def translate(text):
inputs = tokenizer(text, return_tensors="pt")
output = model.generate(**inputs)
return tokenizer.decode(output[0], skip_special_tokens=True)
text = "Hello there! Today the weather is so nice in Geneva, couldn't ask for more to enjoy the holidays :)"
translation = translate(text)
print("Translation:", translation)
📚 详细文档
部署
在Hugging Face Space中运行
可以在Terjman-Nano Space中交互式地试用该模型 🤗。
使用Text Generation Inference (TGI)
若要进行快速推理,可以使用Hugging Face TGI:
pip install text-generation
text-generation-launcher --model-id BounharAbdelaziz/Terjman-Nano-v2.0
使用Transformers和PyTorch在本地运行
pip install transformers torch
python -c "from transformers import pipeline; print(pipeline('translation', model='BounharAbdelaziz/Terjman-Nano-v2.0')('Hello there!'))"
在API服务器上部署
可以使用FastAPI将翻译服务作为API提供:
from fastapi import FastAPI
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
app = FastAPI()
model_name = "BounharAbdelaziz/Terjman-Nano-v2.0"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
@app.get("/translate/")
def translate(text: str):
inputs = tokenizer(text, return_tensors="pt")
output = model.generate(**inputs)
return {"translation": tokenizer.decode(output[0], skip_special_tokens=True)}
训练细节(超参数)
该模型使用以下训练设置进行微调:
- 学习率:
0.0001
- 训练批次大小:
64
- 评估批次大小:
64
- 随机种子:
42
- 梯度累积步数:
4
- 总有效批次大小:
256
- 优化器:
AdamW (Torch)
,betas=(0.9,0.999)
,epsilon=1e-08
- 学习率调度器:
Linear
- 热身比例:
0.1
- 训练轮数:
5
- 精度:
Mixed FP16
,用于高效训练
框架版本
- Transformers 4.47.1
- Pytorch 2.5.1+cu124
- Datasets 3.1.0
- Tokenizers 0.21.0
📄 许可证
该模型遵循**CC BY - NC(知识共享署名 - 非商业性使用)**许可协议发布,这意味着它可用于研究和个人项目,但不能用于商业目的。如需商业使用,请联系相关人员 :)
@misc{terjman-v2,
title = {Terjman-v2: High-Quality English-Moroccan Darija Translation Model},
author={Abdelaziz Bounhar},
year={2025},
howpublished = {\url{https://huggingface.co/BounharAbdelaziz/Terjman-Nano-v2.0}},
license = {CC BY-NC}
}