一 模型介绍

向量模型用于生成向量表示,被广泛应用于检索、分类、聚类或语义匹配等传统的自然语言处理任务。到了大模型时代,由于上下文长度的限制,需要压缩、存储和查询大量的信息,这就需要用到向量模型对输入的文本进行向量化表示,然后再喂给大模型,以得到期望的输出。更长的向量模型输入的长度可以提高 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中英双语文本嵌入模型效果初探的更多相关文章

  1. 我在 B 站学机器学习(Machine Learning)- 吴恩达(Andrew Ng)【中英双语】

    我在 B 站学机器学习(Machine Learning)- 吴恩达(Andrew Ng)[中英双语] 视频地址:https://www.bilibili.com/video/av9912938/ t ...

  2. Matalb中英双语手册-年少无知翻译版本

    更新: 20171207: 这是大学期间参加数模翻译的手册 正文: 愚人节快乐,突然发现自己在博客园的一篇文章.摘取如下: MATLAB 语言是一种工程语言,语法很像 VB 和 C,比 R 语言容易学 ...

  3. 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 ...

  4. Introducing DataFrames in Apache Spark for Large Scale Data Science(中英双语)

    文章标题 Introducing DataFrames in Apache Spark for Large Scale Data Science 一个用于大规模数据科学的API——DataFrame ...

  5. 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 ...

  6. 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 ...

  7. [中英双语] 数学缩写列表 (List of mathematical abbreviations)

    List of mathematical abbreviations From Wikipedia, the free encyclopedia 数学缩写列表 维基百科,自由的百科全书 This ar ...

  8. 痞子衡嵌入式:开启NXP-MCUBootUtility工具的HAB加密功能 - CST(中英双语)

    1 Reason for enabling HAB encryption function 为什么要开启HAB加密功能 NXP-MCUBootUtility is a tool designed fo ...

  9. 痞子衡嵌入式:开启NXP-MCUBootUtility工具的HAB签名功能 - CST(中英双语)

    1 Reason for enabling HAB signature function 为什么要开启HAB签名功能 NXP-MCUBootUtility is a tool designed for ...

  10. 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 ...

随机推荐

  1. Temporary notepad

    20230412 快速帮助手册 很牛的风格 https://devhints.io/vue 印记中国 https://docschina.org/ 前台本地存储数据 兼容 https://github ...

  2. printJS 打印 无头无尾 style 加 @page { margin: 0; } body { padding: 100px;}

    // 使用npm模块 print-js printJS({ printable: this.printData, type: 'json', documentTitle: ' ', propertie ...

  3. uniapp使用uview报错Cannot find module ‘@/uni_modules/uview-ui/components

    参考:https://github.com/umicro/uView 记录使用uniapp报的错 注意uview目前只支持vue2 按照教程引入uview,然后执行的时候还是会报Cannot find ...

  4. [mysql/docker] 基于Docker安装MYSQL

    0 序 虽然关于 mysql 安装的教程,先前已写过很多期了(参见如下列表),但这期的安装教程所依赖的环境还是大有不同的----基于 docker 环境. [数据库] MySQL之数据库备份与升级:M ...

  5. Windows下写脚本无法运行在linux上?怎麽办?

    Windows下写脚本无法运行在linux上?怎麽办? $'\r': command not found的解决方法 在Linux系统中,运行Shell脚本,出现了如下错误: one-more.sh: ...

  6. 元宇宙是VR虚拟现实的未来吗?

    从科幻小说到商业现实 自从 Facebook年更名为 Meta 以来,关于元宇宙的热议不断,人们对虚拟世界的兴趣也重新燃起,因为尽管虚拟现实 (VR) 的概念由来已久,但该技术现在才开始真正得以应用. ...

  7. 【UE虚幻引擎】干货!UE修改分辨率的3种方法

    虚幻引擎作为一款实时3D创作工具,在游戏.建筑.影视动画.虚拟仿真等领域受到全球各行各业创作者广泛欢迎,在UE中获取和设置分辨率也是3D创作开发工作中的常用功能.本文介绍了在虚幻引擎中修改分辨率的3种 ...

  8. 在 PostgreSQL 中,解决图片二进制数据,由于bytea_output参数问题导致显示不正常的问题。

    在 PostgreSQL 中,bytea_output 参数控制在查询结果中 bytea 类型的显示格式.默认情况下,bytea_output 的值为 hex,这意味着在查询结果中,bytea 类型的 ...

  9. java读写txt

    /** * 传入txt路径读取txt文件 * * @param txtPath * @return 返回读取到的内容 */ public String readTxt(String txtPath) ...

  10. IDEA代码缩略图插件CodeGlance

    打开IDEA设置Settings,选择Plugins,搜索CodeGlance. 点击Install,安装完成后重启即可. 效果如下: