You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GPU上用MBart50TokenizerFast批量处理多句翻译?

MBart50批量翻译的正确处理方式

错误原因清晰:批量传入的句子长度不一致,未做统一的补全(padding)和截断(truncation),导致无法生成形状统一的张量。

直接修改tokenizer调用代码,添加padding=True和truncation=True参数即可解决问题:

tokenizer.src_lang = source_lang
# 新增padding和truncation参数,确保批量张量长度一致
inputs = tokenizer([title, ftext], return_tensors="pt", padding=True, truncation=True).to(device)
outputs = model.generate(**inputs)
translations = tokenizer.batch_decode(outputs, skip_special_tokens=True)
translated_title = translations[0]
translated_ftext = translations[1]

补充说明:

  • padding=True会自动将批量中较短的句子补全到当前批量最长句子的长度
  • truncation=True会将超过模型默认最大输入长度的句子截断,若需自定义长度可额外添加max_length=xxx参数(比如max_length=512)
  • 无需给model.generate(**inputs)再调用.to(device),因为输入张量已在GPU上,若模型也已移至GPU,生成的输出会自动保留在GPU上

内容的提问来源于stack exchange,提问作者Samik R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 14:13:10