在本地下载预训练的 BERT 模型

Jos*_*osh 9 python-3.x word-embedding

我正在使用 SentenceTransformers 库(此处: https: //pypi.org/project/sentence-transformers/#pretrained-models)使用预训练模型创建句子的嵌入bert-base-nli-mean-tokens。我有一个应用程序将部署到无法访问互联网的设备。如何在本地保存此模型,以便当我调用它时,它会在本地加载模型,而不是尝试从互联网下载?正如库维护人员明确指出的那样,该方法SentenceTransformer从互联网下载模型(请参见此处:https: //pypi.org/project/sentence-transformers/#pretrained-models),并且我找不到在本地保存模型的方法。

小智 6

拥抱脸的使用

您可以使用 Hugging Face 转换器库方法将模型下载到本地。

from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("sentence-transformers/bert-base-nli-mean-tokens")
model = AutoModel.from_pretrained("sentence-transformers/bert-base-nli-mean-tokens")
tokenizer.save_pretrained('./local_directory/')
model.save_pretrained('./local_directory/')
Run Code Online (Sandbox Code Playgroud)

  • 嘿,生成的 config.json 没有版本。所以我收到一个“KeyError: '__version__'” (4认同)

小智 5

通过下载实例化 SentenceTransformer 后,您可以使用“save()”方法将其保存到您选择的任何路径。

model = SentenceTransformer('distilbert-base-nli-stsb-mean-tokens')
model.save('/my/local/directory/for/models/')
Run Code Online (Sandbox Code Playgroud)

接受的答案不起作用,因为它没有 SentenceTransformer 正在寻找的封装文件夹和 config.json