首先,非常感谢这个令人惊叹的包!我目前正在使用2021年版的MacBook Pro,搭载M1 Pro芯片。正如许多苹果用户所知,PyTorch现在可以通过使用mps作为计算设备来支持GPU加速。然而,在BERTopic模型中,目前还没有支持这个参数。
经过一段时间的深入研究,我找到了一个简单的解决方法:SentenceTransformer确实支持设备参数,所以我们可以简单地执行以下操作:embedding = SentenceTransformer('paraphrase-multilingual-MiniLM-L12-v2', device = 'mps')
model = BERTopic(language="chinese (simplified)", embedding_model=embedding, nr_topics='auto',verbose=True, vectorizer_model=vectorizer,)
这将完全按照用户选择的默认模型执行。在我Mac上,这将训练时间从4小时30分钟大幅缩短到58分钟。
我认为这也应该很容易地整合到包中,这将非常有帮助。谢谢!
5条答案
按热度按时间yqhsw0fo1#
感谢您的建议!确实,似乎默认情况下没有选择正确的设备,这很麻烦。不过我不确定如何在BERTopic中将其整合进去,因为给它一个调整参数的选项相对来说并不重要。例如,它只对SentenceTransformers有效,不一定对所有其他嵌入模型都有效。我想尽可能地限制参数空间,以防止用户体验变得过于复杂。也许在文档中提一下会更合适?
dohp0rv52#
我意识到sentence_transformers意外地利用了支持mps的pytorch。确实,一个文档条目就足够了。但也许这并不一定涉及到sentence_transformers和bertopic。
xxhby3vn3#
有一个与此讨论相关的PR开放:UKPLab/sentence-transformers#2342
当这个PR合并时,它应该自动选择正确的设备。
0yycz8jy4#
我已经合并了UKPLab/sentence-transformers#2342。我打算在接下来的几周内发布它,将其包含到SentenceTransformers 2.3.0中。希望这有所帮助。
另外,我对您和您的工作表示极大的尊重@MaartenGr。
3htmauhk5#
感谢您在这里的回复!这肯定会帮助那些想要更简单工作流程的用户。谢谢您的好意!很高兴您加入了sentence-transformers包。您是一位了不起的工程师,我非常期待看到您在sentence-transformers包中的工作。