8k中英双语文本嵌入模型效果初探
一 模型介绍
向量模型用于生成向量表示,被广泛应用于检索、分类、聚类或语义匹配等传统的自然语言处理任务。到了大模型时代,由于上下文长度的限制,需要压缩、存储和查询大量的信息,这就需要用到向量模型对输入的文本进行向量化表示,然后再喂给大模型,以得到期望的输出。更长的向量模型输入的长度可以提高 RAG 场景下大模型回复的准确性,而且适用于各种处理长文本的场景,例如处理数十页的报告综述等。
模型参数

模型特点:
- 使用了Alibi而不是位置编码,直接在计算注意力的时候加入了双向的Alibi,达到更长的输入长度
- 在大量精处理后的数据上进行训练,并使用文本对数据和难负样本数据进行微调
更多详情可以查看论文:https://arxiv.org/pdf/2310.19923.pdf
二 效果对比
jina 标榜自己是一个双语模型,不是单语或者多语言模型,这样更加适合做语义相似检索,而且不需要进行翻译。因此本次使用jina-embeddings-v2-base-zh这个模型来验证中英双语能力。
中英文双语表征能力
使用下面的一个句子对,对比模型是MOKA的m3e-large
['How is the weather today?', '今天天气怎么样?']
| 模型 | 相似度 |
|---|---|
| jina-v2-base-zh | 0.7860609 |
| m3e-large | 0.7047691 |
很明显,结果表明了jina模型对这两个句子嵌入后的向量更加相似
长中英文双语表征能力
上述差距还不大,但是jina-v2支持的上下文可达8k,而m3e-large最多只能到512。这回用长本文来看看两者的差距。
e = "Here's a breakdown of Machine Learning (ML) and Deep Learning (DL):\n Machine Learning:\n A subfield of artificial intelligence (AI) that enables computers to learn from data without explicit programming.\n The process involves training a model on a large dataset to identify patterns and relationships.\n Once trained, the model can make new predictions or decisions based on new data.\n Examples of machine learning include:\n Supervised learning: training a model on labeled data (e.g., training a spam filter on emails).\n Unsupervised learning: finding hidden patterns in unlabeled data (e.g., discovering clusters of customers in a dataset).\n Reinforcement learning: an agent learns through trial and error to maximize its rewards (e.g., a robot learning to play a game).\n Deep Learning:\n A subfield of machine learning that focuses on mimicking the structure and function of the human brain.\n Deep learning models are built using artificial neural networks with multiple layers.\n Each layer of the network performs a specific task, and the entire network works together to learn complex patterns from data."
len(e)
>> 1109
z = "以下是机器学习 (ML) 和深度学习 (DL) 的细分:\n 机器学习:\n 人工智能 (AI) 的一个子领域,使计算机无需显式编程即可从数据中学习。\n 该过程涉及训练模型在大型数据集上识别模式和关系。\n 经过训练,模型可以根据新数据做出新的预测或决策。\n 机器学习的示例包括:\n 监督学习:在标记数据(例如,训练电子邮件的垃圾邮件过滤器)。\n 无监督学习:在未标记的数据中查找隐藏模式(例如,发现数据集中的客户集群)。\n 强化学习:代理通过反复试验进行学习,以最大化其奖励(例如,学习玩游戏的机器人)。\n 深度学习:\n 机器学习的一个子领域,专注于模仿人脑的结构和功能。\n 深度学习模型是使用多层人工神经网络构建的。\n 网络的每一层都执行特定的任务,整个网络协同工作,从数据中学习复杂的模式"
len(z)
>> 344
| 模型 | 相似度 |
|---|---|
| jina-v2-base-zh | 0.82530826 |
| m3e-large | 0.66310775 |
输入的文本长度增加后,可以明显看到两者的差距,再长的文本可能m3e也处理不了,因此没有必要再进行下一步验证。
内存占用
| 模型 | 向量长度 | 字节 |
|---|---|---|
| jina-v2-base-zh | 768 | 3072 Bytes |
| m3e-large | 1024 | 4096 Bytes |
相当于每个嵌入后的向量,jina-v2-base可以节省大约1k字节。如果有10亿条这样的向量数据可节省1T的空间,这对于大规模RAG场景下非常有用。
8k中英双语文本嵌入模型效果初探的更多相关文章
- 我在 B 站学机器学习(Machine Learning)- 吴恩达(Andrew Ng)【中英双语】
我在 B 站学机器学习(Machine Learning)- 吴恩达(Andrew Ng)[中英双语] 视频地址:https://www.bilibili.com/video/av9912938/ t ...
- Matalb中英双语手册-年少无知翻译版本
更新: 20171207: 这是大学期间参加数模翻译的手册 正文: 愚人节快乐,突然发现自己在博客园的一篇文章.摘取如下: MATLAB 语言是一种工程语言,语法很像 VB 和 C,比 R 语言容易学 ...
- One SQL to Rule Them All – an Efficient and Syntactically Idiomatic Approach to Management of Streams and Tables(中英双语)
文章标题 One SQL to Rule Them All – an Efficient and Syntactically Idiomatic Approach to Management of S ...
- Introducing DataFrames in Apache Spark for Large Scale Data Science(中英双语)
文章标题 Introducing DataFrames in Apache Spark for Large Scale Data Science 一个用于大规模数据科学的API——DataFrame ...
- What’s new for Spark SQL in Apache Spark 1.3(中英双语)
文章标题 What’s new for Spark SQL in Apache Spark 1.3 作者介绍 Michael Armbrust 文章正文 The Apache Spark 1.3 re ...
- A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets(中英双语)
文章标题 A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets 且谈Apache Spark的API三剑客:RDD.Dat ...
- [中英双语] 数学缩写列表 (List of mathematical abbreviations)
List of mathematical abbreviations From Wikipedia, the free encyclopedia 数学缩写列表 维基百科,自由的百科全书 This ar ...
- 痞子衡嵌入式:开启NXP-MCUBootUtility工具的HAB加密功能 - CST(中英双语)
1 Reason for enabling HAB encryption function 为什么要开启HAB加密功能 NXP-MCUBootUtility is a tool designed fo ...
- 痞子衡嵌入式:开启NXP-MCUBootUtility工具的HAB签名功能 - CST(中英双语)
1 Reason for enabling HAB signature function 为什么要开启HAB签名功能 NXP-MCUBootUtility is a tool designed for ...
- Apache Spark as a Compiler: Joining a Billion Rows per Second on a Laptop(中英双语)
文章标题 Apache Spark as a Compiler: Joining a Billion Rows per Second on a Laptop Deep dive into the ne ...
随机推荐
- 2024-03-09:用go语言,我们把无限数量的栈排成一行,按从左到右的次序从 0 开始编号, 每个栈的的最大容量 capacity 都相同。实现一个叫「餐盘」的类 DinnerPlates, Di
2024-03-09:用go语言,我们把无限数量的栈排成一行,按从左到右的次序从 0 开始编号, 每个栈的的最大容量 capacity 都相同.实现一个叫「餐盘」的类 DinnerPlates, Di ...
- max30100心率血氧健康传感器调试总结备忘
前记 在健康监测领域,心率血氧传感器是一个非常重要的前端采集设备.了解,研究并使用它,是一个方案商的基本素质.鉴于此,笔者花了一些时间在不同的硬件平台来使用它.中间遇到了一些问题值得总结和反思一下. ...
- 全栈的自我修养: 002使用@vue/cli进行vue.js环境搭建 (使用Vue,Spring Boot,Flask,Django 完成Vue前后端分离开发)
全栈的自我修养: 使用@vue/cli进行vue.js环境搭建 Success, real success, is being willing to do the things that other ...
- 安装libevent
1.在libevent官网(http://libevent.org/)上下载压缩包(我下载的是libevent-2.1.8-stable.tar.gz) 2.解压压缩包:tar -zxvf libev ...
- 2、Azure Devops之Azure Boards使用
1.什么是Azure Boards 使用面板.积压工作.冲刺.查询管理项目的用户故事.待办事项.任务.特性和bug. 2.工作项(WorkItem) 工作项管理的可以管理和创建用户故事.特性.任务. ...
- python面向对象(选课系统)
一.需求分析(课程与班级合为一体) -管理员视图 -1.注册 -2.登录 -3.创建学校 -4.创建课程(先选择学校) -5.创建讲师 -学员视图 -1.注册 -2.登录功能 -3.选择校区 -4.选 ...
- WebStorm 没有找到本地修改记录LocalChanges,怎么查看本地修改记录
一直用IDEA做后端Java开发,也写过vue+elementUI的前端代码,但前后端都放在一个项目里写,本地修改代码记录,可以在git-LocalChanges中查看修改记录. 最近前后端分离,自己 ...
- 大模型时代的PDF解析工具
去年(2023年)是大模型爆发元年.但是大模型具有两个缺点:缺失私有领域知识和幻觉.缺失私有领域知识是指大模型训练时并没有企业私有数据/知识,所以无法正确回答相关问题.并且在这种情况下,大模型会一本正 ...
- 3D Object Detection Essay Reading 2024.03.27
Point Transformer V3: Simpler, Faster, Stronger publish:CVPR2024 paper:https://arxiv.org/abs/2312.10 ...
- KingbaseES V8R6集群运维案例之---在线扩容节点通讯故障问题
案例说明: KingbaseES V8R6集群节点之间通过ssh或securecmdd工具通讯,默认节点之间通过公钥和私钥方式认证,可以密码通讯:在执行集群节点扩容时,出现以下故障,节点之间仍需要输入 ...