word-embedding - 在本地下载预训练的句子转换器模型
问题描述
我正在使用 SentenceTransformers 库(此处:https : //pypi.org/project/sentence-transformers/#pretrained-models)使用预训练模型 bert-base-nli-mean-tokens 创建句子的嵌入。我有一个应用程序将部署到无法访问 Internet 的设备上。到这里,已经回答了,如何保存模型在本地下载预训练的BERT模型。然而,我坚持从本地保存的路径加载保存的模型。
当我尝试使用上述技术保存模型时,这些是输出文件:
('/bert-base-nli-mean-tokens/tokenizer_config.json',
'/bert-base-nli-mean-tokens/special_tokens_map.json',
'/bert-base-nli-mean-tokens/vocab.txt',
'/bert-base-nli-mean-tokens/added_tokens.json')
当我尝试将其加载到内存中时,使用
tokenizer = AutoTokenizer.from_pretrained(to_save_path)
我越来越
Can't load config for '/bert-base-nli-mean-tokens'. Make sure that:
- '/bert-base-nli-mean-tokens' is a correct model identifier listed on 'https://huggingface.co/models'
- or '/bert-base-nli-mean-tokens' is the correct path to a directory containing a config.json
解决方案
您可以像这样下载和加载模型
from sentence_transformers import SentenceTransformer
modelPath = "local/path/to/model
model = SentenceTransformer('bert-base-nli-stsb-mean-tokens')
model.save(modelPath)
model = SentenceTransformer(modelPath)
这对我有用。您可以查看 SBERT 文档以了解 SentenceTransformer 类的模型详细信息 [此处][1]
推荐阅读
- testing - 使用 GitLab CI/CD 的 E2E 测试自动化工作流程
- mysql - 需要指导以增加我们项目的请求流量
- javascript - 在javascript中传递对象
- java - Android Activity:在 onCreate() 之后处理 Intent?
- java - Java Selenium 测试失败
- php - 不支持获取方法,使用 post
- scala - Sse 流崩溃 io.gatling.http.action.sse.SseInvalidContentTypeException:服务器返回内容类型为 null 的 http 响应
- python - 如何在张量流中表达这个自定义损失函数?
- android - 我可以使用 peek() 修改 PagingDataAdapter 的数据集吗?
- c++ - 获取向量的不同值并保持顺序