bert4vec
bert4vec copied to clipboard
一个基于预训练的句向量生成工具
1目前是直接加载预训练模型,不是自己训练过的,在预训练模型上面训练之后再生成句向量是否更好 2怎么训练roformer模型,它的数据格式是怎样的
为什么使用 mode='roformer-sim-base' 和 model_name_or_path='WangZeJun/roformer-sim-base-chinese' 和本地下载的 model_name_or_path='./roformer-sim-base-chinese' 输出的结果均不同
你好,感谢你写的这个工具库,接口包装得用起来很方便! 注意到苏建林老师后面又提供了[有监督训练增强的roformer-sim-ft](https://kexue.fm/archives/8541),得到的相似度结果会一般会更加符合人的直觉,不过目前在这个库中还没有得到支持。 所以我仿照了[你提到的方法](https://github.com/zejunwang1/bert4vec/issues/1)对苏神release的ckpt做了转换和上传,然后在代码里添加了相应模型的支持。 https://huggingface.co/blmoistawinde/roformer-sim-ft-small-chinese https://huggingface.co/blmoistawinde/roformer-sim-ft-base-chinese 我比较了增强前后的模型([实验代码](https://github.com/blmoistawinde/bert4vec/blob/main/examples/compare_models.ipynb)也放在里面了),发现ft模型确实能体现出更符合普通常规认知的相似度打分,比如加了“不”字后相似度明显降低。(虽然跟苏神原文中的数字有一点点不同,不知道是转化中出现了误差还是什么别的问题,但是感觉输出的效果基本上还是挺好的)。如果你觉得可以的话,就把这个PR merge一下吧。
您好,我看到原始的 SimBERT 和 RoFormer-Sim 模型是基于TensorFlow的,作者使用的什么方法做的?
您好!请问怎么让模型输出更小的维度呢(比如64维)?768维在实际中占用空间太大,而且计算也比较耗时
代码: # coding: utf-8 import traceback import faulthandler faulthandler.enable() # from tqdm import * import pandas as pd from bert4vec import Bert4Vec # model = Bert4Vec(mode='simbert-base', model_name_or_path="/Users/ruiliu/Downloads/simbert-base-chinese") model = Bert4Vec(mode='roformer-sim-base',...