我希望在一个烧瓶应用程序中执行文本生成任务,并将其托管在web服务器上,但是当下载GPT模型时,弹性豆茎托管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。我在用变压器库。我不想在这一行下载模型,而是想知道是否可以对模型进行筛选,然后将其打包成存储库的一部分。这个图书馆有这个可能吗?否则,我如何能够预加载这个模型,以避免我有问题?
发布于 2020-06-11 06:15:00
方法1:
在这里搜索模型:https://huggingface.co/models
从此链接下载模型:
火把-模型:https://s3.amazonaws.com/models.huggingface.co/bert/openai-gpt-pytorch_model.bin
tensorflow模型: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 model .h5和config.json文件),将其放在存储库中的一个文件夹(例如model)中。(您可以尝试压缩模型,然后在需要时在ec2实例中解压缩)
然后,您可以直接从路径加载web服务器中的模型,而不是下载(包含.h5和config.json的model文件夹):
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。
只需将它们上传到存储库并从中加载即可。
发布于 2020-10-09 13:20:07
打开https://huggingface.co/models并搜索您想要的模型。单击模型名称,最后单击“列出模型中的所有文件”。您将得到一个文件列表,您可以下载。
https://stackoverflow.com/questions/62317931
复制相似问题