首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在内存和预加载语言模型中运行Fairseq

在内存和预加载语言模型中运行Fairseq
EN

Stack Overflow用户
提问于 2021-03-08 07:47:20
回答 1查看 653关注 0票数 1

我正在命令行中运行Fairseq。Fairseq动态加载语言模型并进行翻译。它工作得很好,但是加载模型和进行转换需要时间。我在想,如果我们将Fairseq作为内存中的服务运行,并预加载所有的语言模型,那么运行服务和翻译就会很快了。

我的问题是,

如果我们将Fairseq作为内存中的服务运行并预加载语言模型,那么

  1. 会更高效吗?
  2. ,我们可以期望提高多少效率?
  3. ,实现这种内存中的Fairseq服务有多容易?

非常感谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2021-03-31 03:09:50

预压模型存在一个问题:

https://github.com/pytorch/fairseq/issues/1694

对于自定义模型,下面的代码显示了如何在内存中预加载整流罩模型,这是一个正式的示例,可以在:https://github.com/pytorch/fairseq/tree/master/examples/translation#example-usage-torchhub中找到

代码语言:javascript
复制
from fairseq.models.transformer import TransformerModel
zh2en = TransformerModel.from_pretrained(
  '/path/to/checkpoints',
  checkpoint_file='checkpoint_best.pt',
  data_name_or_path='data-bin/wmt17_zh_en_full',
  bpe='subword_nmt',
  bpe_codes='data-bin/wmt17_zh_en_full/zh.code'
)
zh2en.translate('你好 世界')
# 'Hello World'

您可以通过源代码查找有关from_pretrainedhttps://github.com/pytorch/fairseq/blob/579a48f4be3876082ea646880061a98c94357af1/fairseq/models/fairseq_model.py#L237方法的更多详细信息。

一旦预加载,就可以在没有命令行的情况下重复使用。

如果您想使用gpu,请记住执行:model.to('cuda')

当然,如果您预先加载,它可能会更高效。对于一个相当大的大型号,它需要几秒钟才能加载到内存中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66525973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档