LLM 翻译模型横评:从 NLLB 到 SeamlessM4T
专用的翻译大模型 NLLB-200、SeamlessM4T、ALMA-R 的实测对比,与通用 LLM 的取舍权衡,附自部署方案与显存需求。
LLM 翻译模型横评:从 NLLB 到 SeamlessM4T
通用 LLM(GPT-4o、Claude)做翻译效果不错,但成本高、依赖外部 API。如果想自部署或离线使用,专用翻译模型是个选项。这篇测了三个主流专用翻译模型:NLLB-200、SeamlessM4T、ALMA-R。
三个模型简介
NLLB-200
Meta 开源,支持 200 种语言互译,参数量从 600M 到 54B 不等。最大特色是覆盖广,连一些濒危语言都能翻译。对字幕场景来说,重点是中日英三语互译,所以用 distilled 600M 模型即可。
SeamlessM4T
也是 Meta 开源,比 NLLB 多了语音能力。可以做 ASR(语音转文字)+ MT(机器翻译)+ TTS(文字转语音)的端到端处理。对字幕场景,最有用的是 ASR + MT 一体化,可以直接从视频音频出译文字幕。
ALMA-R
相对小众,基于 LLaMA-2 微调的翻译专用模型。特点是质量高但语言覆盖少(仅 7 种语言:中英日韩法德西)。在 BLEU 上的表现接近 GPT-4o。
实测对比
用 100 条日漫字幕做测试集:
| 模型 | 参数量 | 显存 | 速度(条/秒) | BLEU | 错译率 |
|---|---|---|---|---|---|
| NLLB-200-distilled-600M | 0.6B | 2GB | 12 | 24.5 | 11.2% |
| NLLB-200-3.3B | 3.3B | 8GB | 4 | 31.2 | 6.8% |
| SeamlessM4T-medium | 1.2B | 4GB | 8 | 29.5 | 8.1% |
| ALMA-R-7B | 7B | 16GB | 3 | 35.8 | 4.5% |
| GPT-4o-mini | - | - | 30 | 32.5 | 7.8% |
| Claude 3.5 Haiku | - | - | 25 | 34.2 | 6.5% |
几个观察:
- NLLB-200-distilled 太弱,不可用
- NLLB-200-3.3B 质量勉强能用,速度尚可
- SeamlessM4T 优势在端到端,纯翻译质量不如 NLLB-3.3B
- ALMA-R-7B 质量最好,但显存要求高,速度慢
- GPT-4o-mini 仍是性价比首选
自部署方案
我推荐两套配置:
轻量级(家庭实验室):NLLB-200-3.3B + 8GB 显存
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
model_name = "facebook/nllb-200-3.3B"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSeq2SeqLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
def translate(text, src_lang="jpn_Jpan", tgt_lang="zho_Hans"):
inputs = tokenizer(text, return_tensors="pt")
forced_bos = tokenizer.convert_tokens_to_ids(tgt_lang)
outputs = model.generate(
**inputs,
forced_bos_token_id=forced_bos,
max_length=200
)
return tokenizer.batch_decode(outputs, skip_special_tokens=True)[0]
这套配置 8GB 显存够用,速度 4 条/秒,质量可接受。适合离线场景。
重型(公司服务器):ALMA-R-7B + 24GB 显存
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "haoranxu/ALMA-7B-R"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.bfloat16,
device_map="auto"
)
def translate(text, src_lang="Japanese", tgt_lang="Chinese"):
prompt = f"Translate this from {src_lang} to {tgt_lang}:\n{text}"
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(
**inputs,
max_new_tokens=200,
do_sample=False
)
return tokenizer.batch_decode(outputs, skip_special_tokens=True)[0]
这套 16-24GB 显存,质量接近 GPT-4o,速度 3 条/秒。需要 A100 或 4090。
SeamlessM4T 的端到端用法
SeamlessM4T 最有价值的能力是 ASR + MT 一体化。直接输入音频,输出译文:
from transformers import SeamlessM4TProcessor, SeamlessM4TModel
processor = SeamlessM4TProcessor.from_pretrained("facebook/seamless-m4t-medium")
model = SeamlessM4TModel.from_pretrained("facebook/seamless-m4t-medium")
# 从音频文件直接生成译文字幕
audio, _ = librosa.load("input.wav", sr=16000)
inputs = processor(audio, src_lang="jpn", return_tensors="pt")
output_tokens = model.generate(**inputs, tgt_lang="cmn", generate_speech=False)
translation = processor.decode(output_tokens[0], skip_special_tokens=True)
这相当于把 Whisper + NLLB 串成一步,省去了中间的文字表示。理论上更准确(避免了 ASR 错误传播到 MT),实测中确实是这样的,但对字幕来说有个问题:没有源语言文字稿。我们做字幕时既要译文也要原文(用于校对),所以端到端反而不如分离式工作流。
与通用 LLM 的取舍
专用翻译模型 vs 通用 LLM 的取舍:
专用模型优势:
- 可自部署,数据隐私有保障
- 成本可控(一次性硬件投入)
- 速度稳定(不受 API 限流影响)
通用 LLM 优势:
- 质量上限更高(GPT-4o、Claude)
- 可以注入 prompt 控制风格
- 可以做术语库、上下文关联
- 不需要运维
我的建议:
- 离线 / 隐私敏感场景:用 ALMA-R-7B
- 在线 / 性价比场景:用 GPT-4o-mini
- 端到端 / 实时翻译场景:用 SeamlessM4T
- 高质量交付场景:用 Claude 3.5 Sonnet
微调可能性
专用翻译模型都可以微调。NLLB 用 LoRA 微调很轻量:
from peft import LoraConfig, get_peft_model
lora_config = LoraConfig(
r=8,
lora_alpha=16,
target_modules=["q_proj", "v_proj"],
task_type="SEQ_2_SEQ_LM"
)
model = get_peft_model(model, lora_config)
微调数据用 5000 条人工翻译的字幕对,跑 8 小时能完成。微调后的模型在特定题材上能逼近 GPT-4o-mini 的水平。
但通用 LLM 微调更灵活,可以同时学习术语、风格、上下文。专用模型微调主要解决术语一致性问题。
翻译理论札记
写到这里想插入一段翻译理论的思考。奈达的功能对等强调译文读者读到译文时的反应,应当与原文读者读到原文时的反应基本一致,这意味着翻译不是字面替换,而是要在目标语里重新构造等值效果。我们做字幕,观众在屏幕前只有几秒钟读完一行字,反应时间被严重压缩,所以功能对等在字幕里被推到了极端——可读性优先于忠实度。
纽马克的区分更实用:交际翻译关注译文效果,语义翻译关注原文意义。字幕绝大多数时候走交际翻译路线,但遇到关键术语、专有名词、文化负载词时又要切回语义翻译,避免观众被误导。这两条路线在字幕里不停切换,做久了会形成直觉。
韦努蒂的归化异化是另一条轴线。归化是让译文流畅得像目标语原创,异化是保留原文的陌生感。日漫字幕里大量保留"前辈""学园""王道"等词就是异化,因为这些词在中文语境里已经形成了稳定的亚文化共识,强行归化反而失味。但纪录片、欧美剧的台词又需要强归化,否则观众跳戏。题材决定策略,没有一招通吃的方案。
—— 这些理论看起来抽象,但实际做字幕时每天都在用,只是未必意识到。把直觉变成方法论,是新人到熟手的分水岭。