如何预下载变形金刚模型
How to predownload a transformers model
我想在 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。我正在使用变形金刚库。我没有在这一行下载模型,而是想知道我是否可以 pickle 模型,然后将其捆绑为存储库的一部分。这个图书馆有可能吗?否则我如何预加载此模型以避免我遇到的问题?
方法一:
从这里下载模型 link:
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 模型 .h5 和 config.json 文件),将它在存储库中的一个文件夹中(比方说 model
)。 (您可以尝试压缩模型,然后在需要时将其解压到 ec2 实例中)
然后,您可以直接从路径加载您的网络服务器中的模型,而不是下载(model
文件夹其中包含 .h5
和 config.json
):
model = TFOpenAIGPTLMHeadModel.from_pretrained("model")
# model folder contains .h5 and config.json
tokenizer = OpenAIGPTTokenizer.from_pretrained("openai-gpt")
# this is a light download
方法二:
不用 links 下载,您可以使用常规方法在本地机器上下载模型。
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.
只需将它们上传到存储库并从中加载。
打开https://huggingface.co/models并搜索您想要的型号。单击模型名称,最后单击“列出模型 中的所有文件”。您将获得可以下载的文件列表。
我想在 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。我正在使用变形金刚库。我没有在这一行下载模型,而是想知道我是否可以 pickle 模型,然后将其捆绑为存储库的一部分。这个图书馆有可能吗?否则我如何预加载此模型以避免我遇到的问题?
方法一:
从这里下载模型 link:
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 模型 .h5 和 config.json 文件),将它在存储库中的一个文件夹中(比方说 model
)。 (您可以尝试压缩模型,然后在需要时将其解压到 ec2 实例中)
然后,您可以直接从路径加载您的网络服务器中的模型,而不是下载(model
文件夹其中包含 .h5
和 config.json
):
model = TFOpenAIGPTLMHeadModel.from_pretrained("model")
# model folder contains .h5 and config.json
tokenizer = OpenAIGPTTokenizer.from_pretrained("openai-gpt")
# this is a light download
方法二:
不用 links 下载,您可以使用常规方法在本地机器上下载模型。
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.
只需将它们上传到存储库并从中加载。
打开https://huggingface.co/models并搜索您想要的型号。单击模型名称,最后单击“列出模型 中的所有文件”。您将获得可以下载的文件列表。