简介
BCEmbedding是由网易有道开发的中英双语和跨语种语义表征算法模型库,其中包含 EmbeddingModel和RerankerModel两类基础模型。
EmbeddingModel专门用于生成语义向量,在语义搜索和问答中起着关键作用。
RerankerModel擅长优化语义搜索结果和语义相关顺序精排。
下面对embedding模型进行简单测试及初步使用,后续会结合Langchain对重排模型进行测试使用。
实战
下载及环境安装
主要参考官方git的下载及安装方式,我这里采用国内通道进行下载。
需要注意的是这里的模型是gated Model,需要登录huggingface的账号,参照hf-mirror官网的方式进行下载。主要是需要添加–token参数,在huggingface官网这里获取,指令如下:
1 | huggingface-cli download --token hf_*** --resume-download --local-dir-use-symlinks False meta-llama/Llama-2-7b-hf --local-dir Llama-2-7b-hf |
测试模型的Embedding能力
测试程序如下,调用embedding模型,算余弦相似度。
1 | from BCEmbedding import EmbeddingModel |
测试数据集
使用2个数据集进行初步测试:
测试数据集1: 讯飞|中文文本匹配数据集
示例:
测试数据集2: 新冠疫情相似句对
示例:
结论
使用m3e-base作为基线模型作为对比,分类阈值都设置为0.9.
模型名称/数据集 | 讯飞中文文本 | 新冠疫情 |
---|---|---|
bce | ||
m3e-base |
从指标上可以看出:句对匹配的指标上这两个模型有较大差异:bce模型更侧重精度,m3e模型更侧重召回。
在新冠疫情数据集上bce大幅领先m3e-base,这个数据集的语义更加细粒度一些。
后续会用更多的数据集和更多的embedding模型做对比实验。