text2vec-base-chinese项目介绍
项目概述
text2vec-base-chinese是一个基于CoSENT(Cosine Sentence)方法训练的中文句向量模型。该模型能够将句子映射到768维的密集向量空间中,可用于句子嵌入、文本匹配或语义搜索等任务。这个模型是由shibing624开发的,并托管在Hugging Face模型库中。
模型特点
- 基于hfl/chinese-macbert-base预训练模型
- 使用CoSENT方法进行训练
- 在中文STS-B数据集上训练和评估
- 输出768维的句子向量
- 支持最大128个词元的输入长度
性能评估
在多个中文文本匹配任务上,text2vec-base-chinese模型展现了优秀的性能。在ATEC、BQ、LCQMC、PAWSX、STS-B、SOHU-dd和SOHU-dc这7个数据集上的平均Spearman相关系数达到51.61,处于多个中文句向量模型中的较高水平。
使用方法
text2vec-base-chinese模型可以通过多种方式使用:
-
使用text2vec库(推荐):
- 安装:
pip install -U text2vec
- 使用示例代码简单直观
- 安装:
-
使用Hugging Face Transformers库:
- 需要自行实现池化操作
- 提供了详细的代码示例
-
使用sentence-transformers库:
- 安装:
pip install -U sentence-transformers
- 使用方法简单,一行代码即可完成编码
- 安装:
模型架构
模型采用了Transformer编码器和平均池化层的组合:
- Transformer:基于BertModel,最大序列长度为128
- 池化层:使用平均池化,输出维度为768
训练过程
- 预训练:使用hfl/chinese-macbert-base作为基础模型
- 微调:
- 使用对比学习目标
- 计算批次内所有可能句子对的余弦相似度
- 应用排序损失,比较真实对和虚假对
- 训练数据集:使用shibing624/nli_zh
- 超参数:
- 最大序列长度:128
- 最佳训练轮数:5
- 句向量维度:768
应用场景
text2vec-base-chinese模型适用于多种自然语言处理任务,包括但不限于:
- 句子相似度计算
- 文本聚类
- 信息检索
- 语义搜索
该模型特别适合处理短文本和句子级别的任务,对于长度超过256个词元的输入会进行截断。
开源许可
text2vec-base-chinese模型采用Apache-2.0许可证,允许用户在遵守许可条款的前提下自由使用和修改。
总结
text2vec-base-chinese是一个功能强大的中文句向量模型,通过结合先进的预训练模型和有效的训练方法,在多个中文文本匹配任务中展现出优秀的性能。它为研究人员和开发者提供了一个便捷的工具,可以轻松地将文本转换为高质量的向量表示,从而支持各种下游自然语言处理应用。