false WARNING upon BERTopic.load

w3nuxt5m  于 5个月前  发布在  其他
关注(0)|答案(9)|浏览(94)

从一个全新的环境中运行,使用 load 的结果加载 BERTopic 模型会导致一个关于缺少 embedding_model 显式定义的错误警告。

model = BERTopic.load(path, embedding_model="paraphrase-multilingual-MiniLM-L12-v2")
BERTopic - WARNING: You are loading a BERTopic model without explicitly defining an embedding model.If you want to also load in an embedding model, make sure to useBERTopic.load(my_model, embedding_model=my_embedding_model).

尽管有警告,但模型似乎已成功加载,嵌入模型按预期工作。

omhiaaxx

omhiaaxx1#

你能分享一下训练、保存和加载模型的完整代码吗?另外,你是使用最新版本(v0.16)还是从主分支上的最新提交中获取的?

yacmzcpb

yacmzcpb2#

我确实在使用v0.16版本。我加载的模型原本是一个合并后的模型。

nkkqxpd9

nkkqxpd93#

我不确定是否需要添加这部分内容,但我正在使用来自cuml的gpu加速的HDBSCAN和UMAP。

zfycwa2u

zfycwa2u4#

嗯,不确定这里发生了什么。尽管你传递了一个嵌入模型,但在.load中可能进行了一些严格的检查。进一步检查后,这可能与以下内容有关:
BERTopic/bertopic/_bertopic.py
6316c1e的第3058行
| | ifembedding_modelisnotNoneandtype(topic_model.embedding_model) ==BaseEmbedder: |
也许需要移除类型检查。你能测试一下吗?

wz1wpwve

wz1wpwve5#

遗憾的是,即使在移除类型检查后,警告仍然存在。考试结束后,我会进行更多的检查和调查。

9bfwbjaz

9bfwbjaz6#

感谢您的检查!我会确保保持这个开放状态以便您更新。

sh7euo9m

sh7euo9m7#

你好,

我也遇到了同样的问题,并尝试了解这个问题,但没有找到解决方案。我正在使用的是BERTopic版本0.16.0和sentence_transformers版本2.5.1。我想要做的是从一个目录(序列化为safetensors)加载一个模型,但是似乎嵌入模型并没有作为参数包含在第3051行的代码块中:
https://github.com/MaartenGr/BERTopic/blob/8985f26d4ee89b4c512ff9da22a61371c20605b8/bertopic/_bertopic.py#L3138C1-L3139C118
因此,由于这个原因,try语句无法执行,它选择了BaseEmbedder():
https://github.com/MaartenGr/BERTopic/blob/8985f26d4ee89b4c512ff9da22a61371c20605b8/bertopic/_bertopic.py#L4463C1-L4464C89
但这只是我快速检查了一下,我也没有找到真正有效的解决方案,但这可能会帮助找到问题的原因。

bf1o4zei

bf1o4zei8#

我相信在BERTopic的主分支中有一些修复此问题的方法。我建议从主分支安装BERTopic以可能解决这个问题。请注意,只有在使用save_embedding_model="some_string"保存模型时,嵌入模型才会被保存。如果没有,那么您可以在.load中使用embedding_model参数。

cx6n0qe3

cx6n0qe39#

感谢您的快速回复,这是我正在使用的主分支。我在评论中链接了错误的版本。但是保存嵌入模型似乎运行良好。

相关问题