shibing624/text2vec-base-chinese中文语义向量模型使用指南
【免费下载链接】text2vec-base-chinese项目地址: https://ai.gitcode.com/hf_mirrors/ai-gitcode/text2vec-base-chinese
模型简介
shibing624/text2vec-base-chinese是一个基于CoSENT方法训练的中文句子嵌入模型,能够将句子映射到768维的密集向量空间,适用于句子嵌入、文本匹配和语义搜索等任务。
环境配置
使用该模型前需要安装必要的Python库:
pip install -U text2vec transformers sentence-transformers基础使用方法
使用text2vec库
from text2vec import SentenceModel # 加载模型 model = SentenceModel('shibing624/text2vec-base-chinese') # 输入句子 sentences = ['如何更换花呗绑定银行卡', '花呗更改绑定银行卡'] # 获取句子嵌入 embeddings = model.encode(sentences) # 打印句子嵌入 print(embeddings)使用HuggingFace Transformers
from transformers import BertTokenizer, BertModel import torch # 均值池化函数 def mean_pooling(model_output, attention_mask): token_embeddings = model_output[0] input_mask_expanded = attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float() return torch.sum(token_embeddings * input_mask_expanded, 1) / torch.clamp(input_mask_expanded.sum(1), min=1e-9) # 加载模型和分词器 tokenizer = BertTokenizer.from_pretrained('shibing624/text2vec-base-chinese') model = BertModel.from_pretrained('shibing624/text2vec-base-chinese') sentences = ['如何更换花呗绑定银行卡', '花呗更改绑定银行卡'] # 分词处理 encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt') # 计算嵌入向量 with torch.no_grad(): model_output = model(**encoded_input) sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask']) print("Sentence embeddings:") print(sentence_embeddings)使用sentence-transformers
from sentence_transformers import SentenceTransformer model = SentenceTransformer("shibing624/text2vec-base-chinese") sentences = ['如何更换花呗绑定银行卡', '花呗更改绑定银行卡'] sentence_embeddings = model.encode(sentences) print("Sentence embeddings:") print(sentence_embeddings)性能优化版本
ONNX优化版本(GPU加速)
from sentence_transformers import SentenceTransformer model = SentenceTransformer( "shibing624/text2vec-base-chinese", backend="onnx", model_kwargs={"file_name": "model_O4.onnx"}, ) embeddings = model.encode(["如何更换花呗绑定银行卡", "花呗更改绑定银行卡", "你是谁"]) print(embeddings.shape)OpenVINO版本(CPU加速)
from sentence_transformers import SentenceTransformer model = SentenceTransformer( "shibing624/text2vec-base-chinese", backend="openvino", ) embeddings = model.encode(["如何更换花呗绑定银行卡", "花呗更改绑定银行卡", "你是谁"]) print(embeddings.shape)INT8量化版本(CPU极致加速)
from sentence_transformers import SentenceTransformer model = SentenceTransformer( "shibing624/text2vec-base-chinese", backend="onnx", model_kwargs={"file_name": "model_qint8_avx512_vnni.onnx"}, ) embeddings = model.encode(["如何更换花呗绑定银行卡", "花呗更改绑定银行卡", "你是谁"]) print(embeddings.shape)模型架构
该模型基于以下架构构建:
- Transformer编码器:基于hfl/chinese-macbert-base预训练模型
- 池化层:均值池化,输出768维句子向量
- 最大序列长度:128个token
训练细节
模型在中文自然语言推理数据集shibing624/nli_zh上使用CoSENT方法进行微调,关键训练参数包括:
- 训练数据集:shibing624/nli_zh
- 最大序列长度:128
- 最佳训练轮数:5
- 句子嵌入维度:768
应用场景
- 文本相似度计算
- 语义搜索系统
- 文档聚类分析
- 智能问答匹配
- 信息检索任务
注意事项
- 输入文本长度超过256个字符会被自动截断
- 对于不同的硬件环境,可以选择合适的优化版本以获得最佳性能
- 模型支持中文文本处理,在语义匹配任务中表现优异
性能表现
该模型在多个中文文本匹配基准测试中均表现出色,包括ATEC、BQ、LCQMC、PAWSX、STS-B等数据集,平均性能指标达到51.61。
通过本指南,您可以快速上手使用shibing624/text2vec-base-chinese模型,在实际项目中实现中文文本的语义向量表示。
【免费下载链接】text2vec-base-chinese项目地址: https://ai.gitcode.com/hf_mirrors/ai-gitcode/text2vec-base-chinese
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考