探索文本向量化的新高峰:合合信息acge_text_embedding 模型

news2024/12/20 18:05:05

前言

文本向量化是将文本数据转换为数值向量的过程。由于计算机只能处理数值数据,文本数据需要被转换成数值形式才能被算法和模型处理。这种向量化的过程使得文本数据能够被机器学习、深度学习等算法有效地处理。文本向量化的方法有多种,其中常见的有以下几种:

1. 词袋模型 (Bag of Words, BoW): 这是最简单的文本向量化方法,它忽略了文本中单词的顺序和语法,只考虑单词的出现次数。每个文档或句子可以表示为一个向量,其中每个维度代表一个单词,值为该单词在文本中的出现次数或频率。

2. TF-IDF (Term Frequency-Inverse Document Frequency): TF-IDF是一个更复杂的向量化方法,它考虑了单词在文档中的频率以及它在整个语料库中的频率。TF-IDF值会衡量一个单词在文档中的重要性,越大表示该单词在文档中越重要。

3. Word Embeddings: 词嵌入是通过神经网络学习得到的单词向量,它能够捕捉单词之间的语义关系。例如,Word2Vec、GloVe和FastText都是常用的词嵌入模型。

4. 预训练模型: 例如BERT、GPT等,这些模型能够直接将文本转换成固定长度的向量,保留了文本的上下文信息和语义信息。

Embedding模型原理

Embedding模型通过学习数据的内在特性和上下文关系,将原始数据表示为密集的向量形式。这些向量在低维空间中的距离和方向能够反映原始数据项之间的相似度和语义关联。例如,在自然语言处理(NLP)中,词向量表示能够揭示词汇之间的多种关系,如同义、反义或上下位关系。使用Embedding模型,搜索引擎可以超越传统的关键词匹配,实现更深层次的语义理解。例如,在搜索“家庭咖啡制作方法”时,传统搜索引擎可能只会返回包含这些关键词的文本。而采用Embedding模型的搜索引擎能够理解查询背后的意图,提供涵盖选择咖啡豆、磨豆技巧和不同冲泡方法等更详细、更专业的内容。

C-MTEB

MTEB(Multilingual Text Embedding Benchmark)是一个专门用于评测NLP(自然语言处理)模型的平台。该平台包括8个不同的语义向量任务,覆盖了58个不同的数据集和112种语言。这些任务涵盖了NLP中的多个关键应用领域,如文本检索、语义文本相似度(STS)、对句子对的分类(PairClassification)、文本分类(Classification)、重新排序(Reranking)和文本聚类(Clustering)。

C-MTEB是MTEB的中文版本,专门针对中文文本的海量嵌入(embedding)进行评估。C-MTEB通过以下六个任务对中文文本嵌入进行评估:

1. Retrieval:这个任务评估模型在文本检索方面的性能,即模型如何在给定的查询下找到相关的文档或句子。

2. STS(Semantic Textual Similarity):这个任务评估模型在衡量两个文本片段之间语义相似度方面的性能。

3. PairClassification:这个任务评估模型在对句子对进行分类方面的性能,即判断两个句子是否属于同一类别或具有某种关系。

4. Classification:这个任务评估模型在文本分类方面的性能,即将文本分到预定义的类别或标签中。

5. Reranking:这个任务评估模型在重新排序方面的性能,即如何根据给定的查询和候选文档对候选文档进行重新排序。

6. Clustering:这个任务评估模型在文本聚类方面的性能,即如何将相似的文本分到同一个簇中。

        通过这六个任务,C-MTEB能够全面地评估中文文本嵌入模型在不同的NLP应用场景下的性能,从而提供对模型性能的全面和深入的了解。这对于研究者和开发者来说是非常有价值的,因为它们可以更准确地了解模型的优势和局限性,从而进行更有效的模型选择和优化。

合合信息acge模型

acge模型来自于合合信息技术团队智能文字识别服务平台TextIn。这次最新发布的acge_text_embedding 模型属于Word Embeddings模型,适用于情感分析、文本生成等复杂的NLP任务。这一模型获得MTEB中文榜单(C-MTEB)第一的成绩,相关成果将有助于大模型更快速地在千行百业中产生应用价值。可以看到acge模型在分类、聚类任务准确率很高;应用场景广泛,在相似性检索、信息检索和推荐系统中都有很好的效果;模型在设计时考虑到不同行业,不算规模应用的需要,支持定制服务,满足多样化需求。不仅如此,与榜单前五名其他几个模型相比,acge模型占用资源少;模型输入长度较长,可以满足上下文关联的需求;支持可变输出维度,可以根据具体场景合理分配资源。

技术突破

        合合信息算法团队在模型升级迭代过程中采取了多项措施,以克服行业中存在的技术难点,并不断优化Embedding模型的性能和效果。

数据集构建与优化:

        技术人员积极收集和构建大量数据集,确保训练数据的质量和多样性。这些数据集覆盖了多种场景和应用,有助于模型在不同领域中的泛化能力和适应性;数据集的构建还注重覆盖不同的场景和语境,以确保模型能够处理多样化的输入,并准确地捕捉数据的语义特征和关系。

模型训练策略优化:

        引入多种有效的模型调优技术,如Matryoshka训练方式。这种训练方式能够在一次训练中获取不同维度的表征提取,从而有效地提高模型的训练效率和参数收敛速度;采用策略学习训练方式,针对不同任务进行有针对性的学习,特别是在检索、聚类、排序等任务上,显著提升了模型的性能和效果;引入持续学习训练方式,克服了神经网络存在灾难性遗忘的问题。这种训练方式使得模型在迭代训练过程中能够保持对先前学习任务的记忆,并在不断学习新知识的同时保持模型的整体性能。

Demo 体验

接下来我们使用acge模型使的sentence_transformers 库对给定的句子列表进行向量化,并计算句子之间的相似度。下面是代码的详细步骤描述:

        1.首先我们定义一个包含两个句子的列表 sentences。:sentences = ["数据1", "数据2"]

        2.之后使用 'acge_text_embedding' 预训练模型初始化 SentenceTransformer 对象,并将其赋值给 model 变量。

        model = SentenceTransformer('acge_text_embedding')

        3.接下来使用 model.encode() 方法对 sentences 列表中的句子进行向量化,得到两组嵌入向量 embeddings_1 和 embeddings_2。normalize_embeddings=True 参数表示归一化这些向量,使其长度为1。

        embeddings_1 = model.encode(sentences, normalize_embeddings=True)

   embeddings_2 = model.encode(sentences, normalize_embeddings=True)

        4.最后计算两组向量 embeddings_1 和 embeddings_2 之间的相似度。@ 符号表示矩阵乘法,embeddings_2.T 表示 embeddings_2 的转置矩阵。这将得到一个相似度矩阵 similarity,其中 similarity[i][j] 表示 sentences[i] 和 sentences[j] 之间的余弦相似度。

        similarity = embeddings_1 @ embeddings_2.T

详细代码如下:

from sentence_transformers import SentenceTransformer

sentences = ["数据1", "数据2"]
model = SentenceTransformer('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)

总结

随着技术的不断进步和创新,acge_text_embedding 致力于维持其在业界的领先地位,同时推动文本处理技术的进一步发展。对于关心或依赖文本智能处理技术的个人和企业来说,了解和使用 acge_text_embedding 将是提升效率和智能化水平的有效方案。通过深入探索 acge_text_embedding 的多维优势,希望本文能帮助各位在日益复杂的数据世界中找到简单、高效的解决方案。

想要了解更多信息,可以访问 textin官网。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1625508.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

输入influx但是无法进入influxdb

问题描述: 博主想通过DockerJmeterInfluxDBGrafana搭建性能测试可视化平台,但是按照别的教程输入influx却无法进入inluxdb,输入输出如下: NAME:influx - Influx ClientUSAGE:influx [command]HINT: If you are looking for the I…

多种方法论的融合,可以把FMEA做得更好——FMEA软件

免费试用FMEA软件-免费版-SunFMEA FMEA,即故障模式与影响分析,是一种预防性质量工具,用于识别产品或过程中潜在的故障模式,评估其对系统的影响,并优先处理那些可能导致严重后果的故障。在实际应用中,单一的…

HashMap常用的API

HashMap好用的API isEmpty()和clear() 例子 package com.example.springbootdemo;import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest;import java.util.HashMap;/*** Author yimeng* Date 2024/4/26 9:27* PackageName:com.…

2024年Q1季度平板电视行业线上市场销售数据分析

Q1季度平板电视线上市场表现不如预期。 根据鲸参谋数据显示,2024年1月至3月线上电商平台(京东天猫淘宝)平板电视累计销量约360万件,环比下降12%,同比下降30%;累计销售额约99亿元,环比下降28%&a…

Mockaroo - 在线生成测试用例利器

简介:Mockaroo 是一个无需安装的在线工具,用于生成大量的自定义测试数据。它支持多种数据格式,如JSON、CSV、SQL和Excel,并能模拟复杂的数据结构。 历史攻略: 测试用例:多条件下编写,懒人妙用…

《苍穹外卖》Day08部分知识点记录

一、useGeneratedKeys和keyProperty useGeneratedKeys和keyProperty是<insert>标签中的两个属性&#xff0c;用于处理自动生成的主键值。 1. useGeneratedKeys userGeneratedKeys"true"表示启用自动生成主键功能&#xff1b;当useGeneratedKeys设置为true时…

Yolov5 export.py实现onnx模型的导出

查了很多资料&#xff0c;很多用python代码写的&#xff0c;只需要这个库那个库的&#xff0c;最后都没成功。 不如直接使用Yolov5里面的 export.py实现模型的转换。 一&#xff1a;安装依赖 因为yolov5里面的requirments.txt是将这些转换模型的都注释掉了 所以需要解除注释…

Redis网络相关的结构体 和 reactor模式

目录 1. epoll的封装 结构体aeApiStae 创建epoll fd的封装 epoll_ctl的封装 epoll_wait的封装 2. 结构体aeFileEvent、aeFiredEvent、aeTimeEvent 结构体aeFileEvent 结构体aeFiredEvent 结构体aeTimeEvent 3. struct aeEventLoop aeEventLoop相关的函数 1. 创建eve…

pycharm编辑器------快捷键

pycharm编辑器基础快捷键 上下文操作 01PyCharm 有数百个上下文相关操作&#xff0c;可以帮助您转换、改进和修正代码。按 AIt Enter 以调用“显示上下文操作"。 02我们来应用第一个快速修复:移除形参。 03您几乎可以在任何上下文中调用"显示上下文操作"。我们…

前端补充---15

一、新增表单 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head&g…

C++11 数据结构7 队列的链式存储,实现,测试

前期考虑 队列是两边都有开口&#xff0c;那么在链式情况下&#xff0c;线性表的链式那一边作为对头好呢&#xff1f; 从线性表的核心的插入和删除算法来看&#xff0c;如果在线性表链表的头部插入&#xff0c;每次循环都不会走&#xff0c;但是删除的时候&#xff0c;要删除线…

IDEA中配置使用maven和配置maven的中央仓库

1 以汉化后的IDEA为例配置maven 打开idea选择文件 选择 设置 点击>构建.执行.部署 点击>构建工具 点击>Maven 其中Maven主路径 就是我们maven下载解压后的路径 可以通过边上的三个点选择你解压后的绝对路径&#xff0c;也可以直接把解压后的绝对路劲复制过来 以下…

C++之通俗易懂学模版

目录 一、了解什么是泛性编程 二、模版 1.函数模版 1.1 函数模板概念 1.2 函数模板格式 1.3 函数模板的原理 1.4 函数模板的实例化 1.5 模板参数的匹配原则 2.类模板 2.1 类模板的定义格式 2.2 类模板的实例化 3. 非类型模板参数 4. 模板的特化 4.1 概念 4.2 …

半导体晶圆厂内外网数据单向导出,什么样的方案才安全又便捷?

半导体晶圆厂企业为了隔绝外部⽹络有害攻击、保护⽹络和数据安全&#xff0c;通常采⽤物理隔离的⽅式&#xff0c;将企业内⽹与互联⽹隔离。⽹络隔离后&#xff0c;基于业务开展需求&#xff0c;部分重要数据仍需由内⽹导⼊及导出⾄外部⽹络区域。为保障数据的安全合规性&#…

【Qt常用控件】—— 多元素控件

目录 1.1 List Widget 1.2 Table Widget 1.3 Tree Widget 1.4 小结 Qt 中提供的多元素控件有: QListWidget QListView QTableWidget QTableView QTreeWidget QTreeView xxWidget 和 xxView 之间的区别 以 QTableWidget 和 QTableView 为例&#xff1a; QTableView 是基于…

Java:优先级队列(堆)

一、初识【堆】 1、什么是【优先级队列】&#xff1f; 前面的文章我们介绍过队列&#xff0c;队列是一种先进先出的数据结构&#xff0c;但是&#xff0c;在某些情况下&#xff0c;操作的数据可能需要有一个优先级来获取数据&#xff0c;例如优先获取队列中最大的元素&#xf…

这个合租室友真的没有一点公德心,还好他搬走了

这个合租室友真的没有一点公德心&#xff0c;还好他搬走了 这个出租屋有四个房间。 有三个卧室&#xff0c;和一个隔断。 我住三个卧室中的一个。下图中右边那个就是我住的。 2023年下半年&#xff0c;左边那个屋子来了一个新租户小白。 在住的过程中&#xff0c;隔断间的租…

致力于为企业提升媒体宣传的一种新策略-软文发稿和投放

随着新媒体时代的快速发展&#xff0c;媒体宣发的方式也在不断迭代&#xff0c;其中&#xff0c;“软文发稿”成为了许多企业非常看重的一种媒体宣发方式。那么&#xff0c;什么是“软文发稿”呢&#xff1f;这是一种通过撰写有新闻属性的广告文章&#xff0c;将企业的品牌、产…

武汉星起航:凭借专业优势,助力卖家孵化,推动跨境电商发展

在全球经济一体化的大背景下&#xff0c;跨境电商行业以其独特的优势&#xff0c;成为了推动国际贸易发展的重要力量。作为这一领域的佼佼者&#xff0c;武汉星起航电子商务有限公司积极践行“走出去”战略&#xff0c;凭借自营店铺运营经验和跨境电商资源的积累&#xff0c;利…

嵌入式学习59-ARM7(自动设备号和混杂设备)

知识零碎&#xff1a; 头文件查找&#xff1a; /arm/路径下的头文件 linux驱动程序的编写&#xff0c;编译&#xff0c;运行过程 -------------------------------------------------------------------------------------------------------------------------------- 1.…