我想在flask应用程序中执行文本生成任务并将其托管在Web服务器上,但是在下载GPT模型时,由于下载时间和内存过多,弹性beantalk管理的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。我正在使用变压器库。而不是在这一行下载模型,我想知道是否可以腌制该模型,然后将其捆绑为存储库的一部分。这个库有可能吗?否则,我如何预加载该模型以避免出现问题?
答案 0 :(得分:6)
方法1:
从此链接下载模型:
pytorch模型: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模型 .h5 和 config.json 文件),并将其放在文件夹中(假设{{1 }})。 (您可以尝试压缩模型,然后在需要时将其解压缩到ec2实例中)
然后,您可以从路径 而不是下载 (model
文件夹,其中包含model
和.h5
):
config.json
方法2:
您可以使用常规方法在本地计算机上下载模型,而不必使用链接下载。
model = TFOpenAIGPTLMHeadModel.from_pretrained("model")
# model folder contains .h5 and config.json
tokenizer = OpenAIGPTTokenizer.from_pretrained("openai-gpt")
# this is a light download
这将下载模型。现在,您可以使用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
现在,内容文件夹应包含.h5文件和config.json。
只需将它们上传到存储库并从中加载。
答案 1 :(得分:2)
打开https://huggingface.co/models并搜索所需的模型。单击模型名称,然后最后单击“ 列出模型中的所有文件”。您将获得可以下载的文件的列表。
答案 2 :(得分:0)
我尝试从huggingface官网下载模型,但是下载的模型是git-lfs代码,不是实际的模型文件。
幸运的是,我发现清华有镜像拥抱脸模型,所以你可以从清华镜报下载实际模型:https://mirrors.tuna.tsinghua.edu.cn/hugging-face-models/