目录
- 🍅前言
- 🍓赛事含金量
- 🍓Embedding技术简介
- 🍓Embedding在大模型中的价值
- 🍓合合信息Embedding模型特点及优势
- 🍓合合信息Embedding模型测试
- 🍓技术突破
- 🍓公司介绍
- 🍅总结
🍅前言
目前,随着 LangChain + LLM模型的火热,除了层出不穷的大模型外,因为检索的能力会很大程度影响最终的问答效果,所以文本的向量表示模型也是大家比较关注的。在人工智能的世界里,文本向量化技术是连接自然语言处理(NLP)与机器学习的桥梁。它能将复杂的文本数据转换成机器可理解的向量形式,从而使得机器能够更加高效地处理和分析文本数据。最近,合合信息发布的acge_text_embedding 句子向量模型在中文文本向量化领域取得了突破性进展,荣获MTEB中文榜单(C-MTEB)第一的成绩。
🍓赛事含金量
MTEB(Multilingual Text Embedding Benchmark)是一个国际公认的文本向量化技术评估标准,它覆盖了多种语言、多种评测任务,是衡量文本向量化技术先进性和实用性的重要尺度。该评测基准涵盖了分类、聚类、检索、排序、文本相似度等多个经典任务,通过丰富的数据集,全面检验了文本向量模型在中文环境下的性能表现。合合信息的模型能在C-MTEB榜单上获得第一,充分证明了其技术的先进性和实用价值。
榜单地址:https://huggingface.co/spaces/mteb/leaderboard
🍓Embedding技术简介
在机器学习和自然语言处理中,Embedding是指将高维度的数据(例如文字、图片、音频)映射到低维度空间的过程。Embedding向量通常是一个由实数构成的向量,它将输入的数据表示成一个连续的数值空间中的点。
简单来说,Embedding就是一个N维的实值向量,它几乎可以用来表示任何事情,如文本、音乐、视频等。在这里,我们也主要是关注文本的Embedding。
Embedding重要的原因在于它可以表示单词或者语句的语义。实值向量的Embedding可以表示单词的语义,主要是因为这些Embedding向量是根据单词在语言上下文中的出现模式进行学习的。例如,如果一个单词在一些上下文中经常与另一个单词一起出现,那么这两个单词的嵌入向量在向量空间中就会有相似的位置。这意味着它们有相似的含义和语义。
🍓Embedding在大模型中的价值
在自然语言处理(NLP)的诸多应用场景中,包括情感分析、机器翻译、问答系统等,Embedding扮演了核心角色。它们赋予了模型处理和理解人类语言、从而完成复杂任务的能力。然而,在大型语言模型,如ChatGPT等流行后,人们发现Embedding在解决模型输入限制方面展现出了新的价值。
传统上,如GPT3.5这类语言模型在处理输入文本的能力上存在限制,这通常介于几千至数万个tokens之间,具体取决于模型的架构及可用的硬件资源。这意味着对于较长的文本,如整本书或长篇文章,可能无法一次性完整输入语言模型进行处理。在这种情况下,需要将文本分割成较小的块或“片段”,以便模型单独处理。但这种分割方式可能会造成输出内容的上下文连贯性及整体连贯性问题,进而影响生成文本的质量。
Embedding的价值在此时凸显。通过将单词和短语转化为高维向量,Embedding使得语言模型可以以一种紧凑而高效的方式编码输入文本的上下文信息。借助这些上下文信息,模型能够产生更为连贯、上下文恰当的输出文本,即便是输入文本被分割成多个片段。此外,Embedding还可以在大量文本数据上进行预训练,之后在较小的数据集上进行微调,这有助于提升语言模型在多种NLP应用中的准确性与效率。
🍓合合信息Embedding模型特点及优势
如上图所示,与目前C-MTEB榜单上排名前五的开源模型相比,合合信息本次发布的acge模型较小,占用资源少;同时,使用过ChatGPT等大语言模型的应该知道MaxTokens上下文的概念很重要,它决定了我们的上下文对话长度,而acge_text_embedding模型输入文本长度为1024,满足绝大部分场景的需求。此外,acge模型还支持可变输出维度,让企业能够根据具体场景去合理分配资源。
合合信息的acge_text_embedding模型基于最新的深度学习技术,具有以下几个显著特点和优势:
-
高分类、聚类准确率:模型通过对大量中文文本数据的深入学习,能够有效提取文本特征,使其在分类和聚类任务中展现出高准确率。
-
广泛的应用场景:从相似性搜索、信息检索到推荐系统,acge_text_embedding模型都能提供强有力的技术支撑,极大地提升系统的性能和用户体验。
-
模型的灵活性和可扩展性:合合信息的模型设计考虑到了不同行业、不同规模应用的需要,支持定制化服务,满足企业多样化的需求。
🍓合合信息Embedding模型测试
我们使用合合信息的acge_text_embedding模型来做一下句子的相似度计算吧!步骤如下:
安装 sentence_transformers:
pip install --upgrade sentence_transformers -i https://pypi.tuna.tsinghua.edu.cn/simple
代码:
from sentence_transformers import SentenceTransformer
sentences = ["我喜欢学习机器学习", "我对深度学习很感兴趣"]
# 使用合合信息的acge_text_embedding模型
model = SentenceTransformer('aspire/acge_text_embedding')
print(model.max_seq_length) # 输出上下文长度
embeddings_1 = model.encode(sentences, normalize_embeddings=True)
embeddings_2 = model.encode(sentences, normalize_embeddings=True)
similarity = embeddings_1 @ embeddings_2.T
print(similarity) # 输出相似矩阵
运行结果:
可以看到这段代码输出这两个句子之间的相似度矩阵,根据输出的相似度值,值越接近 1 表示两个句子越相似,值越接近 0 表示两个句子越不相似,上述结果表明这两个句子较为相似!
注意:若无法访问huggingface,请使用魔法或者在镜像网站下载模型到本地!当然,也可以在huggingface线上体验该模型。地址:https://huggingface.co/aspire/acge_text_embedding
🍓技术突破
Embedding模型在当前大模型实际落地应用过程中扮演着至关重要的角色,而Embedding模型的训练通常需要大量的文本数据,这些数据使模型能够学习到单词间丰富的关系和语义,常见的文本embedding模型包括Word2Vec、GloVe和BERT等,这些模型通过不同的机制学习单词的向量表示,但它们的共同目标都是将文本信息压缩到一个连续的、低维的向量空间中。
为了更好地发挥大模型在应用过程中的价值,合合信息技术团队重点从数据集、训练策略等方面针对Embedding模型进行了优化,打造了acge模型。在数据集方面,技术人员收集构造了大量的数据集,保证训练的质量与场景覆盖面;在模型训练方面,引入多种有效的模型调优技术,比如Matryoshka训练方式,能够实现一次训练,获取不同维度的表征提取;为了不同任务针对性学习,使用策略学习训练方式,显著提升了检索、聚类、排序等任务上的性能;引入持续学习训练方式,克服了神经网络存在灾难性遗忘的问题,使模型训练迭代能够达到最优收敛空间,最终产出了目前业界第一的Embedding模型。
🍓公司介绍
合合信息是一家人工智能及大数据科技企业,基于自主研发的领先的智能文字识别及商业大数据核心技术,为全球C端用户和多元行业B端客户提供数字化、智能化的产品及服务。公开资料显示,公司的C端产品覆盖了全球百余个国家和地区的亿级用户,B端服务覆盖了近30个行业的企业客户。《财富》杂志2022年发布的世界500强公司名单中,公司客户已覆盖超过125家。
合合信息的更多产品信息可前往:https://www.textin.com/
🍅总结
在AI蓬勃发展的时代,作为开发者,我们需要与时俱进。不仅要熟练运用大模型的表层功能,更要深入底层,积极了解大模型相关技术的细节和原理。这样才能更好地理解和应用人工智能技术,不断提升自己的技能水平,跟上技术发展的步伐。