利用大型语言模型优化文本嵌入实践

使用大型语言模型改进文本嵌入,第二部分

Improving Text Embeddings with Large Language Models

3方法

3.1 合成数据生成

利用 GPT-4 等高级 LLM 生成的合成数据提供了一个令人信服的机会,尤其是在增强多种任务和语言的多样性方面。这种多样性对于开发强大的文本嵌入至关重要,这些嵌入可以在不同的任务中表现出色,无论是语义检索、文本相似性还是聚类。

为了生成多样化的合成数据,我们提出了一种简单的分类法,将嵌入任务分类为几组,然后对每个组应用不同的提示模板。

非对称任务 此类别包括查询和文档在语义上相关但不是彼此释义的任务。根据查询和文档的长度,我们进一步将非对称任务分为四个子组:短-长匹配、长-短匹配、短-短匹配和长-长匹配。例如,短长匹配任务涉及一个短查询和一个长文档,这是商业搜索引擎中的典型场景。对于每个子组,我们设计了一个两步提示模板,首先提示 LLM 集思广益,列出任务列表,然后生成一个以任务定义为条件的具体示例。在图 1 中,我们显示了短-长匹配子组的示例提示。GPT-4 的输出大多是连贯且高质量的。在我们的初步实验中,我们还尝试使用单个提示生成任务定义和查询文档对,但数据多样性不如所提出的两步法令人满意。

对称任务 对称任务涉及具有相似语义但表面形式不同的查询和文档。我们研究了两种应用场景:单语语义文本相似性(STS)和双文本检索。我们为每个场景设计了两个不同的提示模板,根据其特定目标量身定制。由于任务定义简单明了,因此我们省略了对称任务的头脑风暴步骤。

为了进一步提高提示的多样性,从而提高合成数据的多样性,我们在每个提示模板中合并了几个占位符,其值在运行时随机采样。例如,在图 1 中,“{query_length}”的值是从集合“{少于 5 个单词,5-10 个单词,至少 10 个单词}”中采样的。

为了生成多语言数据,我们从 XLM-R 的语言列表中抽取了“{language}”的值(Conneau et al., 2020),赋予高资源语言更多的权重。在解析过程中,任何不符合预定义 JSON 格式的生成数据都将被丢弃。我们还会根据精确的字符串匹配来删除重复项。

3.2 训练

给定一个相关的查询文档对(q+,d+),我们首先将以下指令模板应用于原始查询q+,生成一个新的qinst+

其中“{task_definition}”是嵌入任务的一句话描述的占位符。对于生成的合成数据,我们使用头脑风暴步骤的输出。对于其他数据集

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值