企业微信
悟空CRM  >   公司新闻  >  Giraffe:世界上第一个商业可用的32K长上下文开源LLM(基于Llama-2)

Giraffe:世界上第一个商业可用的32K长上下文开源LLM(基于Llama-2)

悟空软件 阅读次数:161 次浏览

项目简介

选择如何对 Transformer 的位置信息进行编码一直是 LLM 架构的关键组成部分之一。

最近我们和社区其他人感兴趣的一个领域是法学硕士是否可以扩展到更长的背景。

我们使用不同的方案进行了一系列实验,以扩展 Llama 的上下文长度功能,Llama 已使用 RoPE(旋转位置嵌入)编码在 2048 上下文长度上进行了预训练。在这里,我们分享一些结果以及培训和评估脚本,希望对社区有用。对于我们性能最佳的模型(在尺度 4 和 16 处使用 IFT 进行线性缩放),我们还共享权重,以防其他人希望使用它们或进行自己的测试。我们认为,规模 16 模型应该在高达 16k 上下文长度、甚至可能高达约 20-24k 上下文长度的现实任务中表现良好。

概述

我们进行了各种各样的实验,试图延长模型的上下文长度。首先,我们尝试简单地使用基本 Llama 模型零样本。正如预期的那样,它在 2048 上下文长度之前表现良好,但随后迅速恶化。

接下来,我们研究了微调方法,在 RedPajama 数据集上以 4096 个上下文长度训练模型。这导致预期的性能改进高达 4096 个上下文,但同样,不会再进一步。

扩展上下文长度的另一种方法是以某种方式修改 RoPE 编码。在这里,我们尝试了许多不同的想法:

线性缩放,如 kaiokendev.github.io 所描述。

通过幂缩放 RoPE 的傅立叶基,使得低频比高频拉伸得更多。

对傅立叶基应用截断。我们的想法是,我们希望模型只看到足够快的频率,以便在训练期间至少获得一个完整的周期;任何较慢的频率都设置为 0(相当于根本不旋转,即在所有上下文长度上同样重要)。

随机化位置向量。

特别是,我们将 RedPajama 数据集的微调和 Vicuna 数据集的指令微调与上述方法结合起来。这就是取得最丰硕成果的原因。

最后,我们实现并尝试了 xPos 论文中描述的方法。这种方法增加了衰减幅度惩罚项,导致快速频率在长距离上的影响比傅立叶基中的慢频率的影响更小(请参阅我们的博客文章,了解显示这一点的相似性热图)。

突出的结果

也许我们最尖锐的观察是,不同的评估方法/任务会导致上述方法的不同排名。这将在下面进一步详细描述。

也就是说,我们提出了以下一般性观察:

线性插值/缩放似乎是增加模型上下文长度的最稳健的方法。

使用 N 的线性尺度并不一定会导致模型上下文长度增加 N 倍。例如,我们的尺度 16 实验通常在上下文长度为 16000 而不是 32000(~2048 * 16)后停止表现良好。我们对如何改善这种影响有一些想法,并计划在未来的工作中进行。

截断和随机化似乎都具有很高的困惑度分数,但在检索任务上表现不佳。

使用 Vicuna 数据集进行指令微调可在基本模型能够处理的长度上显着提高检索上下文的准确性,但无法在基本模型失败的长度上“修复”基本模型。

评估任务

为了进行评估,我们使用了两个不同的数据集:

用于在上下文中定位子字符串的 LMSys 数据集(“行”任务)

我们自己的开放书问答数据集 WikiQA,它基于其他开源基础 QA 数据集

此外,我们还研究了训练集和评估集的对数损失

对于 LMSys 任务,我们生成了新的更长的测试用例,上下文长度高达约 25000,超出了原始数据集中的 16000 个上下文测试用例。

WikiQA 任务是根据维基百科文档中给出的信息回答问题的任务。我们基于 Google Natural Questions 中的简答格式数据来构建我们的 QA 任务。它的格式为文档和问题。我们确保问题的答案是简短的答案,可以是单个单词,也可以是直接从文档中剪切粘贴的小句子。有了这样的任务结构,我们就可以准确地确定法学硕士应该在上下文中“寻找”答案的位置,从而通过仔细地将答案放置在不同的位置来有效地评估扩展上下文长度的每个部分。

我们选择了大型维基百科文档并对其进行了截断,以获得同一文档的多个版本,其大小在 2000 到 16000 个标记之间变化。对于每种尺寸的文档,我们还有多个版本,将问题和答案文本放置在不同的位置,即是否出现在文档的前 10%、大部分或最后 10%。拥有同一文档的多个版本使我们能够在模型大小和一个模型的上下文位置内获得详尽且公平的评估,因为我们本质上要求的是相同的信息。

基于维基百科的数据集的一个潜在问题是,该模型也许可以从其预训练的语料库而不是上下文中正确回答。为了解决这个问题,我们创建了另一个“更改的”数据集。该数据仅包含具有数字答案的问题。在这里,我们将答案以及文档中每次出现的答案更改为不同的数字。本质上是确保如果法学硕士从其预训练的语料库中收集数据,它会给出错误的答案。修改如下:

如果答案是一年,这是相当频繁的(即在 1000-2100 之间),我们将其更改为原始值 +/- 10 范围内的不同随机值。我们将年份视为特殊情况,以免因弄乱年代信息而使文件的解释变得荒谬

如果答案是任何其他数字,我们将其更改为具有相同位数的不同随机数

 结果

LM系统评估

作为关于以下结果的一般观点,作者认为此任务的准确性的微小差异并不能特别表明模型排名质量。在解释结果时,我们通常会关注最广泛的趋势。

此外,作为基线,标准 Llama-13b 仅具有最多 2048 个上下文长度的非零精度(其 Vicuna 指令微调版本也是如此)。

不同缩放方法的比较

 

在上面我们比较了不同的缩放方法。“缩放”是指使用指定缩放值进行线性插值。我们看到,尺度为 16 的线性插值是唯一一种在上下文长度大于 9000 时实现非零精度的插值方法。然而,这似乎会牺牲一些较短上下文的精度。

在较短的上下文中,幂 = 0.5 的基础似乎特别适合这项任务,但随着上下文长度的增加,准确性会急剧下降。

有趣的是,scale=16 并没有像人们希望的那样具有普遍性。天真地,人们期望遵循scale=4的趋势——直到8192为止都是非零的(这是合理的,因为原始上下文长度是2048,并且8192 = 2048 * 4;除此之外,模型看到的是相对距离在以前从未遇到过的键和查询之间),scale=16 应该一直非零,直到 2048 * 16 = 32768。

IFT(指令微调)的影响

在上面,我们通过使用 LoRA 使用 Vicuna 指令集进行训练展示了 IFT 的影响。我们看到 IFT 确实以微小但不可忽略的幅度提高了准确性。然而,改变准确度曲线的整体形状是不够的——并且它不会对模型可以在此任务上实现非零准确度的上下文长度范围进行任何扩展。

在与训练不同的尺度上评估零射击

在上面,我们展示了在评估时尝试与模型训练时不同的比例值(用于线性插值)的各种实验。绿色曲线表示采用基本模型(在 2048 上下文中训练)并向其应用比例值。它确实将非零范围从 2048 扩展到 4096,但整个精度较低。然而,一般来说,一旦模型经过规模 > 0 的训练,似乎该模型就可以在评估时很好地从零射击到更大的规模——极大地增加了连贯上下文长度的范围(例如,比较训练=4,Eval=8 在上下文长度为 16k 时为非零,而对于上面两张图的 8k 以上,Eval=8 为 0)。然而,这确实是以精度下降为代价的,特别是对于 Train=16、Eval=32 的情况。

Train=16, Eval=12 运行具有我们见过的最长的非零精度上下文长度。它在上下文长度约为 20000 时获得非零分数。

项目链接

https://github.com/abacusai/long-context

 

悟空CRM产品更多介绍:www.5kcrm.com

相关内容

CRM客户服务管理系统怎么高效使用?使用方法与技巧

高效使用CRM(客户关系管理)客户服务管理系统对于提供卓越的客户服务、提高客户满意度和维护客户关系至关重要。以下是一些使用方法和技巧,帮助您高效使用CRM客户服务管理系统:完整记录客户信息:将客户的详细信息准确地录入CRM客户服务管理系统中,包括姓名、联系方式、历史服务记录等。定期更新客户信息以确保数据的准确性。快速查找客户信息:利用CRM系统的搜索和筛选功能快速查找客户信息,以提供迅速的响应和支
相关文章

微信客户管理系统是什么?它如何结合微信平台进行客户关系管理?

导言:随着社交媒体的发展,微信作为国内最常用的社交软件之一,已经成为互联网营销和客户关系管理的重要渠道。微信客户管理系统是企业在微信平台上使用的一种客户关系管理系统,它集成了微信平台的特点和功能来帮助企业管理客户,并和客户进行有效的沟通交流。下面本文就微信客户管理系统的定义、特点和操作方法等进行详细介绍:一、微信客户管理系统的定义:微信客户管理系统是一款在线的、基于微信平台的客户关系管理软件平台,
相关文章

销售CRM客户管理系统怎么高效使用?使用方法与技巧

高效使用销售CRM(客户关系管理)客户管理系统对于提高销售效率、加强客户关系和增加销售机会至关重要。以下是一些使用方法和技巧,帮助您高效使用销售CRM客户管理系统:完整记录客户信息:将客户的详细信息准确地录入CRM系统中,包括姓名、联系方式、公司、职位、购买历史等。定期更新客户信息以确保数据的准确性和完整性。分类和分段客户:利用CRM系统将客户分为不同的类别或段,如潜在客户、现有客户、高价值客户等
相关文章

客户销售CRM系统用途有哪些?使用方法与技巧

客户销售CRM系统(Customer Relationship Management)是一种强大的工具,用于管理客户关系和提高销售效率。以下是一些客户销售CRM系统的主要用途,以及使用方法和技巧:主要用途:客户管理: CRM系统用于记录和管理客户信息,包括联系信息、交互历史、购买历史等。这使销售团队能够更好地了解客户,提供更个性化的服务。销售机会管理: CRM系统帮助销售团队跟踪销售机会的生命周期
相关文章

CRM销售管理系统用途有哪些?使用方法与技巧

CRM(客户关系管理)销售管理系统是一种用于管理客户关系和提高销售效率的工具。以下是CRM销售管理系统的主要用途,以及使用方法和技巧:主要用途:客户信息管理: CRM销售管理系统用于记录和管理客户信息,包括联系信息、公司信息、购买历史等。这有助于销售团队更好地了解客户,提供更个性化的服务。销售机会管理: CRM系统帮助销售团队跟踪和管理销售机会的生命周期,从潜在客户到交易关闭。这有助于提高销售预测
相关文章

CRM后台管理系统怎么高效使用?使用方法与技巧

高效使用CRM(客户关系管理)后台管理系统是确保客户信息管理和销售团队协作顺畅的关键。以下是一些使用方法和技巧:完整记录客户信息:将客户的详细信息(如姓名、联系方式、公司、职位等)准确地录入CRM后台管理系统中。定期更新客户信息以确保数据的准确性。分类和分段客户:利用CRM系统将客户分为不同的类别或段,例如潜在客户、现有客户、高价值客户等。根据不同类别的客户需求和兴趣制定个性化的沟通和营销策略。记
相关文章

CRM客户管理系统软件怎么高效使用?使用方法与技巧

要高效使用CRM(客户关系管理)客户管理系统软件,需要以下使用方法和技巧:完整记录客户信息:将客户的详细信息(如姓名、联系方式、公司、职位等)准确地录入CRM系统中。定期更新客户信息以确保数据的准确性。分类和分段客户:利用CRM系统将客户分为不同的类别或段,例如潜在客户、现有客户、高价值客户等。根据不同类别的客户需求和兴趣制定个性化的沟通和营销策略。记录互动和活动:记录所有与客户的互动,包括电话、
相关文章

客户关系管理系统怎么高效使用?使用方法

高效使用客户关系管理(CRM)系统是关键,因为它可以帮助您更好地管理客户信息、提高客户满意度、加强客户互动并促进业务增长。以下是一些高效使用CRM系统的方法:完整记录客户信息:将客户的详细信息(例如姓名、联系方式、公司信息、职位等)完整地录入CRM系统中。定期更新客户信息以确保数据的准确性。分类与分段客户:利用CRM系统将客户分为不同的类别或段,如潜在客户、现有客户、高价值客户等。根据不同类别的客
相关文章

CRM销售系统怎么高效使用?使用方法

高效使用CRM(客户关系管理)销售系统可以帮助企业更好地管理客户关系、提高销售效率和增加销售机会。以下是一些使用CRM销售系统的方法:完整记录客户信息:将客户的基本信息、联系方式、购买历史、互动记录等详细信息完整录入CRM系统中。鼓励销售团队及时更新客户信息,确保数据的准确性和完整性。跟进和提醒功能:利用CRM系统的提醒功能,安排和跟进客户互动、电话、电子邮件和会议。设置提醒以确保您不会错过关键的
相关文章

客户信息管理系统怎么高效使用?使用方法

客户信息管理系统是一种有助于企业有效管理客户信息和互动的工具。以下是高效使用客户信息管理系统的一些方法:数据录入与更新:将客户信息准确地录入系统中,包括姓名、联系方式、公司名称、地址等重要信息。定期更新客户信息,确保系统中的数据保持最新。分类与分段:将客户信息按照不同的标准进行分类和分段,如潜在客户、现有客户、高价值客户等。制定客户分析策略,根据不同分段的需求开展针对性的市场活动。沟通记录:记录所
相关文章
最新文章

CRM客户服务管理系统怎么高效使用?使用方法与技巧

高效使用CRM(客户关系管理)客户服务管理系统对于提供卓越的客户服务、提高客户满意度和维护客户关系至关重要。以下是一些使用方法和技巧,帮助您高效使用CRM客户服务管理系统:完整记录客户信息:将客户的详细信息准确地录入CRM客户服务管理系统中,包括姓名、联系方式、历史服务记录等。定期更新客户信息以确保数据的准确性。快速查找客户信息:利用CRM系统的搜索和筛选功能快速查找客户信息,以提供迅速的响应和支
最新文章

销售CRM客户管理系统怎么高效使用?使用方法与技巧

高效使用销售CRM(客户关系管理)客户管理系统对于提高销售效率、加强客户关系和增加销售机会至关重要。以下是一些使用方法和技巧,帮助您高效使用销售CRM客户管理系统:完整记录客户信息:将客户的详细信息准确地录入CRM系统中,包括姓名、联系方式、公司、职位、购买历史等。定期更新客户信息以确保数据的准确性和完整性。分类和分段客户:利用CRM系统将客户分为不同的类别或段,如潜在客户、现有客户、高价值客户等
最新文章

客户销售CRM系统用途有哪些?使用方法与技巧

客户销售CRM系统(Customer Relationship Management)是一种强大的工具,用于管理客户关系和提高销售效率。以下是一些客户销售CRM系统的主要用途,以及使用方法和技巧:主要用途:客户管理: CRM系统用于记录和管理客户信息,包括联系信息、交互历史、购买历史等。这使销售团队能够更好地了解客户,提供更个性化的服务。销售机会管理: CRM系统帮助销售团队跟踪销售机会的生命周期
最新文章

快速注册,立即使用

仅需一分钟,立即注册悟空云。悟空CRM免费试用。
客户端下载