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 ...
随机推荐
- 5-事件组&任务通知
获取某个事件 获取若干事件中的某个事件 获取若干事件中的全部事件 !!!!不可获得若干事件中的几个事件 创建事件组,设置事件,等待事件 static EventGroupHandle_t xEvent ...
- 关闭 nginx | taskkill /f /t /im nginx.exe
stop.bat taskkill /f /t /im nginx.exe pause
- Swing 使用 beautyeye_lnf.jar 美化
Springboot整合Swing制作简单GUI客户端项目记录 https://blog.csdn.net/Youdmeng/article/details/106549991
- Hamming(汉明)窗的原理介绍及实例解析
概念 在数字信号处理过程中,每次FFT变换只能对有限长度的时域数据进行变换,因此,需要对时域信号进行信号截断.即使是周期信号,如果截断的时间长度不是周期的整数倍(周期截断),那么,截取后的信号将会 ...
- Java诊断工具Arthas:开篇之watch实战
Arthas是阿里开源的线上监控诊断产品,用于问题的排查和诊断. 它的出现大大提高线上排查问题的效率,这篇只讲它一个非常牛逼的功能,其它功能往后篇章会在展开详细说. 一.Arthas能为你做什么? 1 ...
- 喜报|3DCAT入选“灵境杯”深圳市最佳元宇宙案例!
2022年11月10日~11日,2022全球元宇宙大会深圳站胜利召开,在本次大会上重磅发布"灵境杯"全球元宇宙创新大赛成果,公布深圳最具潜力元宇宙入选企业. 创新大赛结合" ...
- 记录--用 Vue 实现原神官网的角色切换效果
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 为了更好的了解原神角色,我模仿官网做了一个角色切换效果,在做的过程当中也总结了一些技术点. 为了让大家更好的体验,我兼容了 PC 端 ...
- vue中elementui组件el-dialog拖拽(已处理边界情况)
全局注册 Vue.directive("elDialogDrag", (el) => { const header = el.querySelector(".el- ...
- WPF自定义Panel:让拖拽变得更简单
在 WPF 应用程序中,拖放操作是实现用户交互的重要组成部分.通过拖放操作,用户可以轻松地将数据从一个位置移动到另一个位置,或者将控件从一个容器移动到另一个容器.然而,WPF 中默认的拖放操作可能并不 ...
- Java对象序列化和反序列化
Java类的序列化和反序列化 序列化:指将对象转换为字节序列的过程,也就是将对象的信息转换成文件保存. 反序列化:将字节序列转换成目标对象的过程,也就是读取文件,并转换为对象. 几个关键点: 必须实现 ...