大模型已有文本表征能力,为什么还需要向量表征(embedding)模型?

一篇2024比较新的paper:
核心是讨论如何用更好做文本表征,本篇论文笔记梳理下文章核心点
文章干了啥
提出了一种利用生成合成数据的方法,以改进文本嵌入。这种方法避免了传统多阶段训练流程的复杂性,不需要手动收集数据集,而是通过LLMs在近100种语言中生成数十万个文本嵌入任务的合成数据。训练时,用对比损失优化表征, 实验结果表明,该方法在不使用任何标记数据的情况下,在多个文本嵌入基准测试中取得了优异的性能。当与标记数据结合微调时,模型在和MTEB基准测试中SOTA了。
怎么生成数据
第一步:生成任务列表(Brainstorming)
- 任务定义:首先,LLMs被提示去“头脑风暴”(brainstorm)一系列可能有用的文本检索任务。这些任务覆盖了广泛的应用场景,如科学论文检索、FAQ查询回答等。
- 任务描述:对于每个生成的任务,LLMs会描述任务的具体内容,包括查询的类型(如短尾关键词、长尾关键词等)、查询的长度、清晰度以及所需的教育水平。
- 生成任务列表:LLMs会输出一个包含多个任务描述的列表,这些描述遵循特定的格式,例如Python列表,每个元素对应一个任务。
第二步:生成具体数据(Data Generation)
- 任务分配:对于每个在第一步中定义的任务,LLMs被分配一个具体的任务实例。这包括一个用户查询(user_query)和两个文档:一个是与查询正相关的文档(positive_document),另一个是与查询负相关的硬负文档(hard_negative_document)。
- 遵循指南:在生成数据时,LLMs需要遵循一系列指南,例如查询的长度、清晰度、多样性以及文档的独立性。这些指南确保生成的数据既具有挑战性,又能够真实反映实际的检索场景。
- 生成JSON对象:LLMs生成的每个任务实例都会被格式化为一个JSON对象,其中包含用户查询、正相关文档和硬负文档。这些JSON对象随后被用于训练过程。
多语言数据生成:
- 在生成多语言数据时,LLMs会从XLM-R的语言列表中随机选择语言,并且对高资源语言给予更高的权重。
- 生成的数据会根据预定义的JSON格式进行解析,不符合条件的数据会被丢弃。同时,会移除精确字符串匹配的重复项。
通过这种两步提示策略,论文中的方法能够生成大量多样化的合成数据,这些数据覆盖了多种语言和任务类型,为后续的文本训练提供了丰富的训练样本。这种方法的优势在于它能够利用LLMs的强大语言理解和生成能力,而不需要依赖于人工标注的数据集。
怎么用的对比学习
1.数据生成:
- 使用LLMs如GPT-4/GPT-3.5生成合成数据。这些数据包括查询(user_query)和相关文档(positive_document)以及不相关的硬负文档(hard_negative_document)。
- 设计了多种提示模板(prompt templates),用于生成不同类型的文本嵌入任务,如短长匹配、长短匹配、短短匹配和长长匹配等。
2.数据预处理:
对生成的数据进行预处理,确保它们符合预定义的JSON格式,并且去除重复项。
3.模型初始化:
使用预训练的大型语言模型(如)作为文本嵌入模型的基础。
4.对比学习训练:
- 在训练过程中,对于每个查询-文档对(q+, d+),首先应用一个指令模板(instruction template)到原始查询q+,生成新的查询q+inst。
- 将查询q+inst和文档d+输入到预训练的LLM中,获取它们的嵌入表示(hq+inst, hd+),通常取最后一层的[EOS]向量。
- 使用InfoNCE损失函数来训练嵌入模型。这个损失函数计算的是正样本对(查询和相关文档)之间的匹配分数与负样本对(查询和不相关文档)之间的匹配分数的对数概率之差。
5.损失函数:
- InfoNCE的损失:

其中,ϕ(q,d) 是计算查询q和文档d之间匹配分数的函数,通常使用温度缩放的。
6.训练细节:
- 在训练过程中,模型会在合成数据上进行微调,通常只需要不到1000步的训练。
- 使用了一些技术如LoRA(Low-Rank Adaptation)来减少GPU内存需求,并采用和梯度检查点技术来提高训练效率。
模型能够学习到如何将query和docs映射到相似的嵌入空间,同时将不相关的doc映射到不同的空间区域。使得模型能够在没有大量标记数据的情况下,有效地学习文本的语义信息。

大模型&AI产品经理如何学习
求大家的点赞和收藏,我花2万买的大模型学习资料免费共享给你们,来看看有哪些东西。
1.学习路线图

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。


(都打包成一块的了,不能一一展开,总共300多集)
因篇幅有限,仅展示部分资料,需要点击下方图片前往获取
3.技术文档和电子书
这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。

4.LLM面试题和面经合集
这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集***
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
