一、中文文本向量模型简介:
中文文本向量模型是一种用于将中文文本转换为数值向量表示的技术。这种模型的目的是将自然语言处理中的文本数据转换为计算机可以理解和处理的形式,以便进行各种文本相关任务,如文本分类、情感分析、语义相似度计算等。常见的中文文本向量模型包括以下几种:词袋模型(Bag of Words,简称BoW),TF-IDF(Term Frequency-Inverse Document Frequency),Word2Vec等等。这里读者有兴趣可以自行去搜索相关的内容,下面我要介绍的是几款基于预训练的通用文本向量模型。
二、BGE模型:
BGE(BAAI General Embedding)是由北京智源人工智能研究院提出的一种新型文本嵌入模型。BGE模型的技术细节如下:
1.BGE简介:
(1)BGE直接对先验语义知识单元进行建模,增强了模型的语义表示能力。它通过对词、实体等语义单元的掩码,使得模型学习完整概念的语义表示
(2)由通用文本预训练、通用文本微调和特定任务微调三个阶段组成。
2.BGE结构:
(1)BGE基本上是Transformer的encoder部分,但不共享权重。具体区别如下:
BGE Small: 24M参数,512维度。
BGE Base: 110M参数,768维度。
(2)BGE的encoder由两层构成:self-attention layer和feed-forward神经网络。它充分利用训练数据中的词法结构、语法结构和语义信息进行统一建模
3.BGE模开源地址以及开源模型
(1)huggingface地址:
BAAI/bge-base-zh · Hugging Face
BAAI/bge-large-zh · Hugging Face
BAAI/bge-small-zh · Hugging Face
(2)github地址:
GitHub - FlagOpen/FlagEmbedding: Dense Retrieval and Retrieval-augmented LLMs
(3)开源模型截图:
4.BGE模型的使用示例代码
from transformers import AutoTokenizer, AutoModel
import torch
# Sentences we want sentence embeddings for
sentences = ["样例数据-1", "样例数据-2"]
# Load model from HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('BAAI/bge-large-zh-v1.5')
model = AutoModel.from_pretrained('BAAI/bge-large-zh-v1.5')
model.eval()
# Tokenize sentences
encoded_inpu