【问题标题】:How to predownload a transformers model如何预下载变形金刚模型
【发布时间】:2020-09-30 17:10:56
【问题描述】:

我想在烧瓶应用程序中执行文本生成任务并将其托管在 Web 服务器上,但是在下载 GPT 模型时,弹性 beanstalk 托管 EC2 实例崩溃,因为下载需要太多时间和内存

from transformers.tokenization_openai import OpenAIGPTTokenizer
from transformers.modeling_tf_openai import TFOpenAIGPTLMHeadModel
model = TFOpenAIGPTLMHeadModel.from_pretrained("openai-gpt")
tokenizer = OpenAIGPTTokenizer.from_pretrained("openai-gpt")

这些是导致问题的行。 GPT 约为 445 MB。我正在使用变压器库。我没有在这一行下载模型,而是想知道是否可以腌制模型,然后将其捆绑为存储库的一部分。这个库有可能吗?否则如何预加载此模型以避免我遇到的问题?

【问题讨论】:

    标签: machine-learning flask amazon-elastic-beanstalk transformer huggingface-transformers


    【解决方案1】:

    方法一:

    从此链接下载模型:

    pytorch 模型:https://s3.amazonaws.com/models.huggingface.co/bert/openai-gpt-pytorch_model.bin

    张量流模型:https://s3.amazonaws.com/models.huggingface.co/bert/openai-gpt-tf_model.h5

    配置文件:https://s3.amazonaws.com/models.huggingface.co/bert/openai-gpt-config.json

    来源:https://huggingface.co/transformers/_modules/transformers/configuration_openai.html#OpenAIGPTConfig

    您可以手动下载模型(在您的情况下是 TensorFlow 模型 .h5config.json 文件),将其放在一个文件夹中(比如说model ) 在存储库中。 (您可以尝试压缩模型,然后在需要时在 ec2 实例中解压缩)

    然后,您可以直接从路径而不是下载(包含.h5config.jsonmodel 文件夹将模型加载到您的网络服务器中):

    model = TFOpenAIGPTLMHeadModel.from_pretrained("model") 
    # model folder contains .h5 and config.json
    tokenizer = OpenAIGPTTokenizer.from_pretrained("openai-gpt") 
    # this is a light download
    

    方法2:

    您可以使用常规方法将模型下载到本地机器中,而不是使用链接下载。

    from transformers.tokenization_openai import OpenAIGPTTokenizer
    from transformers.modeling_tf_openai import TFOpenAIGPTLMHeadModel
    model = TFOpenAIGPTLMHeadModel.from_pretrained("openai-gpt")
    tokenizer = OpenAIGPTTokenizer.from_pretrained("openai-gpt")
    

    这会下载模型。现在您可以使用save_pretrained 函数将权重保存在文件夹中。

    model.save_pretrained('/content/') # saving inside content folder

    现在,内容文件夹应该包含一个 .h5 文件和一个 config.json。

    只需将它们上传到存储库并从中加载。

    【讨论】:

    • 由于某种原因,方法 2(没有尝试 #1)不适用于分词器,至少在赫尔辛基翻译模型中是这样。它会抛出这个错误module transformers.models.mbart50 has no attribute MarianTokenizerFast,这很奇怪。以这种方式预安装模型效果很好!
    【解决方案2】:

    打开https://huggingface.co/models 并搜索您想要的型号。点击模型名称,最后点击“列出模型中的所有文件”。您将获得可以下载的文件列表。

    【讨论】:

      猜你喜欢
      • 2021-01-26
      • 2022-11-03
      • 1970-01-01
      • 2020-05-20
      • 1970-01-01
      • 1970-01-01
      • 2023-02-20
      • 1970-01-01
      • 2020-11-18
      相关资源
      最近更新 更多