如何解决在FastAPI中使用Setenece BERT模型对句子进行编码会更改通过Jupyter和python脚本得出的结果
系统
- macbook pro
- OSX 10.15.5(Catalina)
- Docker版本19.03.12,内部版本48a66213fe
图书馆
- uvicorn == 0.11.8
- fastapi == 0.61.0
- torch == 1.6.0
- transformers == 3.0.2
- sentence-transformers == 0.3.2
- scikit-learn == 0.20.0
- scipy == 1.4.1
- pandas == 0.23.4
- jupyter == 1.0.0
详细信息
我使用Colaboratory来微调Setence BERT并保存该模型。 然后,我去了本地,并使用Docker构建了包括jupyter和FastAPI的环境,在该环境中,我能够确认使用Docker启动的Jupyter保存的模型返回的评估结果与协作实验室相同。 当我使用该模型时,当我在与Jupyter相同的Docker环境中使用FastAPI启动时,得到了不同的结果。 在此流中输入的所有文本都是相同的。
分析表明SentenceTransformer加载了模型然后对其进行编码,发现它计算出的嵌入完全不同。
谢谢您的建议。
解决方法
对不起,我使用日语模型,但是我将默认的BertTokenizer转换为BertJapaneseTokenizer。
更改默认令牌生成器可解决此问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。