【问题标题】:How to reduce the execution time for translation using mBART-50 and Hugging Face?如何使用 mBART-50 和 Hugging Face 减少翻译的执行时间?
【发布时间】:2022-01-10 13:29:28
【问题描述】:

我正在使用 mBART-50 和 Hugging Face 在印地语和英语之间进行翻译。但是加载库需要很多时间。有什么办法可以优化吗?

from transformers import MBartForConditionalGeneration, MBart50TokenizerFast

model= MBartForConditionalGeneration.from_pretrained("facebook/mbart-large-50-many-to-many-mmt")

tokenizer=MBart50TokenizerFast.from_pretrained("facebook/mbart-large-50-many-to-many-mmt",src_lang="hi_IN")

text="मैं ठीक हूँ।"
model_inputs=tokenizer(text,return_tensors="pt")
generated_tokens=model.generate(**model_inputs,forced_bos_token_id=tokenizer.lang_code_to_id["en_XX"])
translation=tokenizer.batch_decode(generated_tokens,skip_special_tokens=True)
print(translation)

【问题讨论】:

    标签: python huggingface-transformers huggingface-tokenizers


    【解决方案1】:

    我可以探索 2 个解决方案来优化流程。让我在下面给我一个总结。

    • 1。如果可用,在 gpu 中执行它
    from transformers import MBartForConditionalGeneration, MBart50TokenizerFast
    
    model= MBartForConditionalGeneration.from_pretrained("facebook/mbart-large-50-many-to-many-mmt")**.to('cuda')**
    
    tokenizer=MBart50TokenizerFast.from_pretrained("facebook/mbart-large-50-many-to-many-mmt",src_lang="hi_IN")
    
    text="मैं ठीक हूँ।"
    model_inputs=tokenizer(text,return_tensors="pt")
    generated_tokens=model.generate(model_inputs,forced_bos_token_id=tokenizer.lang_code_to_id["en_XX"])**.to('cuda')**
    
    translation=tokenizer.batch_decode(generated_tokens,skip_special_tokens=True)
    print(translation)
    
    • 2。通过限制要翻译的字数。
    model_inputs=tokenizer(text,return_tensors="pt", max_length=500, truncation=True)
    
    • 3。在这种情况下,多处理失败 - 由于预训练模型是一个批量运行的神经网络,因此任何类型的多处理都会失败。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-03
      • 2012-12-31
      • 1970-01-01
      • 2022-08-17
      • 2016-01-29
      相关资源
      最近更新 更多