如何让大型语言模型(LLMs)充分利用长文本信息?——微软提出的FILM方法

大家好,相信不少人已经体验过ChatGPT等大型语言模型(LLMs)强大的对话和写作能力。但你可能不知道,目前的LLMs在处理长文本(如长篇小说、学术论文等)时,还面临着一个棘手的问题,那就是”迷失在中间”(Lost-in-the-Middle)。 什么是”迷失在中间”?简单来说,就是模型在阅读一篇很长的文章时,往往能很好地理解文章开头和结尾的内容,但对中间段落的重要信息却视而不见。这就像我们看一部电影,只记住了精彩的开场和结局,但对中间情节毫无印象。 微软的研究人员推测,造成这个问题的原因,可能是目前用于训练LLMs的长文本数据存在偏差——它们没有明确告诉模型:文章的每个部分都可能包含关键信息,要认真对待!这就导致模型养成了”重两头、轻中间”的坏习惯。 为了纠正这个偏差,研究人员提出了一种名为”信息密集型训练”(Information-Intensive Training,简称IN2)的新方法。它的核心思想是:人工合成一批长文本问答数据,其中的问题都需要模型在长文本的不同部分准确定位信息,并将它们联系起来进行推理。通过在这样的数据集上反复训练,模型就能学会关注长文本的每个细节。 研究人员以Mistral-7B模型为基础,应用IN2训练方法,得到了一个名为FILM-7B的新模型。为了全面测试它的长文本理解能力,他们还精心设计了多个探测任务,覆盖不同的文本类型(如文档、代码、表格数据等)和信息检索模式(如串联、跳跃、双向等)。 在这些探测任务上,FILM-7B展现了出色的表现,证明它能够灵活地在长达32,000词的超长文本中准确定位关键信息。更令人兴奋的是,在现实世界的长文本应用中,如长篇问答(NarrativeQA)任务,FILM-7B的F1分数也从23.5大幅提高到26.9,而在需要推理的常识问答(CSQA)等短文本任务上,性能并未下降反而小幅提升(59.3%->59.2%),可见IN2方法的有效性。 此外,研究人员还将FILM-7B与其他知名的开源长文本模型(如ChatGLM、LongChat等)和商业模型(如GPT-3.5/4)进行了比较,结果显示FILM-7B在大多数长文本任务上都实现了最佳表现,充分证明了IN2训练的潜力。 当然,FILM-7B还有进一步改进的空间。例如,研究人员分析发现,在训练过程中合理使用”滑动窗口”和”位置编码”等技巧,有望进一步提高模型性能。未来,他们还计划在更大规模、更多样化的真实数据上应用IN2方法,以进一步提升FILM系列模型的长文本理解能力。 总之,这项研究为LLMs在长文本处理上的瓶颈问题提供了一种简单有效的解决思路,相信通过更多研究者的努力,LLMs必将在各类长文本应用场景中发挥更大的价值。感兴趣的读者可以访问论文 [项目网站](https://github.com/microsoft/FILM) 了解技术细节并动手实践。 以上就是我对这篇论文的通俗解读,不知你觉得如何?欢迎在评论区交流你的想法!

破解AI模型速度瓶颈:一种全新的“分组查询注意力”方法

你是否曾经对人工智能模型的运算速度感到不耐烦,同时又希望它能保持高质量的预测结果?这可能听起来像是一个无法两全的问题,但科研人员们并没有停下探索的脚步。今天,我们要介绍的这篇研究报告,就给出了一个行之有效的解决方案。这篇研究名为 “GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints”,由来自Google Research的团队所撰写。他们提出了一种称为“分组查询注意力(Grouped-query attention, GQA)”的新方法,旨在解决Transformer模型中的一个关键问题,即如何在保持预测质量的同时,提高模型的运算速度。 首先,让我们理解一下这个问题的背景。在Transformer模型中,一个关键的计算过程就是自回归解码器推理。这个过程需要大量的内存带宽来加载解码器权重和所有注意力键值,这就大大限制了模型的运算速度。为了解决这个问题,研究者们提出了多查询注意力(Multi-query attention, MQA)方法,它只使用一个键值对来大幅度提高解码器推理的速度。然而,MQA方法可能会导致预测质量下降,而且也不太适合用于训练单独的模型以提高推理速度。 在这样的背景下,Google Research的团队提出了两个重要的贡献。首先,他们发现,可以使用少量的原始训练计算来将具有多头注意力(Multi-head attention, MHA)的语言模型检查点进行升级训练,使其能够使用MQA,这是一种非常成本有效的方法,可以同时获得高速的MQA和高质量的MHA检查点。其次,他们提出了分组查询注意力(GQA)的概念,这是一种在多头注意力和多查询注意力之间的插值方法,它为每组查询头部共享一个键和值头部。 GQA的工作原理是将查询头部分成若干组,每组共享一个键头和值头。具有G组的GQA被称为GQA-G。GQA-1(具有一个组,因此具有一个键和值头)等同于MQA,而具有等于头部数量的组的GQA-H等同于MHA。通过使用中间数量的组,GQA可以产生一个质量比MQA高,但速度比MHA快的插值模型。此外,对于大型模型,GQA的优势更加明显,因此,我们期待GQA能在大型模型中提供一个特别好的权衡方案。 在实验部分,研究者们使用了基于T5.1.1架构的所有模型,并对T5 Large和XXL的多头注意力版本,以及使用多查询和分组查询注意力的升级版T5 XXL进行了主要实验。实验结果表明,使用GQA的T5-XXL模型在各种不同的数据集上,包括CNN/Daily Mail, arXiv, PubMed, MediaSum, 和 MultiNews等新闻摘要数据集,以及WMT英德翻译数据集和TriviaQA问答数据集上,都保持了与多头注意力模型相近的质量,同时又具有与多查询注意力模型相近的速度。 在AI领域,我们一直在寻找提高效率和质量的方法,而GQA的出现无疑为我们提供了一个新的可能。它不仅提高了模型的运算速度,而且还成功地保持了预测的质量。这使得GQA成为了提高AI模型性能的一种有力工具,我们有理由期待,这种方法将在未来的AI应用中发挥更大的作用。 总的来说,这项研究的重要性在于,它不仅提供了一种提高AI模型速度的有效方法,而且这种方法还能保持模型的预测质量。这使得我们可以在实际应用中实现更快、更准确的AI模型,从而在各种场景中提供更好的服务。 这就是今天的分享,希望你们能从中获取到有用的信息。我们将继续关注更多的人工智能研究,并与大家分享。感谢你们的倾听,我们下次见!

从 LLAMA 到 LLAMA2:开源模型的进化之路

大家好,欢迎来到我的博客!今天,我们要聊一聊有关两个开源语言模型的故事,它们分别是 LLAMA 和 LLAMA2。正如在科技世界里常见的,这两个模型的出现,都代表着一次重要的突破和进化。那么,它们是如何超越自身,再次突破技术瓶颈的呢?让我们一起探索吧。 1. LLaMA:以开放和高效为目标的基础语言模型 首先,我们来看看第一个主角 LLAMA。它仅仅使用公开可用的数据(数量高达数万亿 tokens)就训练出了效果超越 GPT-3 和 Chinchilla-70B PaLM-540B 的模型。最让人惊奇的是,它的体积比 GPT-3 小十倍,但效果更好。这是怎么做到的呢? LLaMA 的开发者们发现,给定一定的计算量预算,我们可以通过在较小的模型上训练更多的数据来获取最好的效果。这就是 LLAMA 所依据的尺度原则。 为了训练 LLAMA,开发者们使用了多种来源的预训练数据,包括英文 CommonCrawl, Github, Wikipedia 等。每一种数据都经过了严格的清洗和筛选,以确保模型训练的质量。在训练时,每个 token 只训练一次,除了 Wikipedia 和 Books,训练了两次。 LLaMA 的模型结构基于 transformer,在 GPT3、PaLM、GPTNeo 的基础上做出了改良。其中包括使用 RMSNorm 进行 Pre-normalization,使用 SwiGLU 替换 ReLU 作为激活函数,舍弃绝对位置编码,使用旋转位置编码等一系列创新手段。 2. LLaMa 2:基础和微调并进的聊天模型 接下来,我们来了解一下 LLAMA 的升级版本——LLAMA2。虽然 LLAMA1 的效果已经非常优秀,但是与闭源的“产品级”模型相比,如 ChatGPT、BARD、Claude,仍有一定的差距。因此 LLAMA2 的目标就是要尽可能地提升模型的性能,使其更符合人类的偏好。 LLAMA2 … Read more

XAgent:面向复杂任务解决的自主智能体

XAgent 是一个开源的基于大型语言模型(LLM)的自主智能体,能够自动解决各种任务。它旨在成为一个通用的智能体,应用于各种任务。尽管 XAgent 目前仍处于早期阶段,我们正在不断努力改进它。 我们的目标是创建一个可以解决任何给定任务的超级智能体。我们欢迎全职、兼职等各种形式的合作。如果您对智能体的前沿感兴趣,并希望加入我们实现真正的自主智能体,欢迎与我们联系。 XAgent 特点 XAgent 具有以下特点: 工具服务器 工具服务器为 XAgent 提供强大和安全的工具来解决任务的服务器。它是一个 Docker 容器,为 XAgent 提供一个安全的运行环境。目前,工具服务器提供以下工具: 快速开始 首先,您需要安装 Docker 和 docker-compose。然后,您需要构建工具服务器的镜像。在 ToolServer 目录下,运行以下命令: 这将构建工具服务器的镜像并启动工具服务器的容器。如果您想在后台运行容器,请使用 docker-compose up -d。 在启动 ToolServer 后,您可以配置并运行 XAgent。首先,安装依赖项: 然后,您需要使用 config.yml 配置 XAgent 才能运行。请提供至少一个 OpenAI key,用于访问 OpenAI API。 最后,运行 XAgent: 您可以使用参数 –upload_files 来指定提交给 XAgent 的文件。 案例 我们提供了一些使用 XAgent 解决任务的案例。您可以在 XAgent 官网上查看我们的在线演示。我们还提供了视频演示和使用 XAgent … Read more

vLLM:让大型模型推理更快的工具

今天,我要给大家介绍一款名为vLLM的神奇工具。它的主要功能是加速大型语言模型(如OpenAI的GPT-3)的推理速度。如果你是NLP(自然语言处理)领域的研究员或开发者,我相信这个工具可能会对你的工作有所帮助。 为什么我们需要vLLM? 在大规模语言模型运行时,我们常常遇到一个问题:显存不足。这是因为在生成新的单词或者词语(token)时,我们需要存储一些称为 keys 和 values的数据(我们可以把它们看作是模型用来生成新token的”记忆”)在GPU的显存中。然而,这些数据通常非常大,而且大小也会不断变化,这使得显存管理变得困难。传统的管理方式往往会造成显存的60%-80%的浪费。 这就是vLLM要解决的问题。它引入了一种名为PagedAttention的新技术,可以有效地管理这些keys和values,使得显存的使用效率接近最优(浪费比例低于4%)。这样一来,我们就可以使用更大的数据批次进行运算,从而提高GPU的并行计算能力。 vLLM的核心技术:PagedAttention PagedAttention的工作原理受到了操作系统中虚拟内存和分页的启发。它将每个序列的数据划分为块,每个块包含固定数量的keys和values。这些块不需要连续的内存,因此可以更灵活地对它们进行管理。 此外,PagedAttention还支持内存共享,也就是说,当用一个提示生成多个不同的序列时,可以共享计算量和显存。这种内存共享机制可以大幅降低显存需求(最高可降低55%),从而进一步提升推理速度。 如何使用vLLM? vLLM的使用非常简单。首先,使用pip命令安装vLLM: 然后,你就可以使用vLLM来生成文本了: vLLM也支持在线服务。你可以使用以下命令启动一个在线服务: 然后,你就可以通过HTTP请求来调用这个服务了: 如果你对vLLM感兴趣,可以在这里查阅更多信息。希望这个工具能对你的工作或学习有所帮助!

QLoRA: 高效Finetuning 量化 LLMs

Dettmers提出了一种高效的微调方法QLoRA,它能够在保持完整的16位微调任务性能的同时,将内存使用量降低到足以在单个48GB GPU上微调65B参数模型的程度。 QLoRA通过在低秩适配器(LoRA)中将梯度反向传播到一个冻结的、4位量化的预训练语言模型。我们最优秀的模型家族,我们将其命名为Guanaco,在Vicuna基准测试中胜过之前所有公开发布的模型,达到了ChatGPT性能水平的99.3%,而仅需要在单个GPU上进行24小时的微调。QLoRA在不牺牲性能的前提下采用了许多创新技术来节省内存: (a)4位NormalFloat(NF4),一种对于正态分布权重来说,从信息理论角度具有最优性的新数据类型; (b)双重量化,通过量化量化常数来减少平均内存占用; (c)分页优化器,以管理内存峰值。我们使用QLoRA对超过1000个模型进行微调,在8个指令数据集中,对多种模型类型(LLaMA,T5)以及在常规微调中难以运行的模型规模(例如33B和65B参数模型)进行了详细的指令跟随和聊天机器人性能分析。 结果表明,QLoRA在小型高质量数据集上的微调可以达到最先进的结果,即使使用比之前SoTA更小的模型。我们根据人类评估和GPT-4评估结果,对聊天机器人性能进行了详细分析,结果表明GPT-4评估是一种廉价且合理的人类评估替代方案。此外,当前的聊天机器人基准测试并不可靠,无法准确评估聊天机器人的性能水平。已发布了所有模型和代码,包括用于4位训练的CUDA内核。 artidoro/qlora: QLoRA: Efficient Finetuning of Quantized LLMs (github.com)

知乎携手面壁智能推出全新开源大模型:CPM-Bee10b 登顶中文基座模型

2023年5月27日,知乎在2023中国国际大数据产业博览会上发布了最新的大语言模型成果。知乎合伙人、首席技术官李大海宣布,知乎和面壁智能共同研发的中文基座大模型CPM-Bee10b全面开源,并发布了智能大模型产品“露卡”和知乎大模型应用功能“搜索聚合卡”。李大海表示,知乎将携手面壁智能,让中国用户在大模型时代享受到最优质的服务。 知乎与面壁智能首度合作,推出开源大模型CPM-Bee10b 在“2023知乎发现大会”上,知乎发布了大语言模型“知海图AI”并内测首个站内大模型应用功能“热榜摘要”。此举令知乎成为国内首批具备大语言模型能力的公司,并且让更多人开始关注知乎的技术发展。时隔一个月之后,知乎在2023数博会上再度带来惊喜。 知乎联合面壁智能发布了首个开源中英文基座大模型CPM-Bee 10b。李大海介绍,该模型从零开始自主训练,基于Transformer架构,中英双语表现优秀,拥有百亿量级参数、超过3万亿高质量语料。经过ZeroCLUE的评测,CPM-Bee10b 以平均 79.8 分登顶中文基座模型,并且英文基座模型得到了68的平均分。“CPM-Bee10b 将全面开源,并允许商用。”李大海称,面壁智能一直坚持开源路线,未来也会持续拥抱开源,促进大模型领域技术和生态的繁荣。 智能大模型产品“露卡”亮相,展现全面性能 发布会上,知乎还带了最新的智能大模型产品“露卡”(Luca)。该产品在开源基础模型上又有进一步性能提升,可以进行智能交互并支持多轮对话。从评测结果来看,有65%的结果性能等于或优于ChatGPT。在发布会现场演示中,“露卡”既展示了写文案、藏头诗、解数学题等“全科”能力,也能完成例如“如何制作毛血旺”等回答。令人惊喜的是,“露卡”还拥有图片理解能力,甚至可以查找论文并生成摘要,这表明“露卡”拥有非常优秀的多模态理解能力。 知乎推出大模型应用功能“搜索聚合卡”,助力用户高效获取信息 除了基础能力,知乎也是国内率先在应用层面探索大模型产品的公司。继“热榜摘要”之后,知乎带来了又一款站内的大模型应用功能“搜索聚合”。该产品将大模型能力应用到了知乎搜索上,每当用户触发搜索时,系统就会从大量提问和回答中聚合观点,提高用户获取信息、形成决策的效率。发布会当天,“露卡”和“搜索聚合”都开启了正式内测。李大海表示,知乎将继续夯实大模型基础能力,迭代应用产品,为让中国用户享受到一流的大模型服务而努力奋斗。 未来展望:知乎致力于为用户提供一流的大模型服务 本次发布会标志着知乎在大模型领域的技术实力再次得到了充分展示,同时也展现出知乎在人工智能领域的技术积累和创新能力。在与面壁智能的合作中,双方共同推进了大模型的研发,为中国用户带来了更多优质的服务。 未来,知乎将继续加强与各方的合作,进一步拓展大模型在实际应用中的价值。通过不断优化和升级大模型技术,以及与实际场景相结合的应用产品,知乎将努力成为大模型领域的引领者,让更多用户在大模型时代享受到一流的服务。

ConvNeXt V2:使用遮罩自编码器共同设计和扩展ConvNets

由于改进的架构和更好的表示学习框架的推动,视觉识别领域在 2020 年代初期迅速现代化并提高了性能。例如,现代卷积神经网络(ConvNets),以 ConvNeXt 为代表,在各种场景中表现出强大的性能。尽管这些模型最初是为具有 ImageNet 标签的监督学习设计的,但它们也可能从自监督学习技术(如遮蔽自动编码器(MAE))中受益。然而,我们发现简单地结合这两种方法会导致性能不佳。在本文中,我们提出了一个全卷积遮蔽自动编码器框架和一个新的全局响应归一化(GRN)层,这个层可以添加到 ConvNeXt 架构中以增强通道间特征竞争。这种自监督学习技术和架构改进的共同设计产生了一个名为 ConvNeXt V2 的新模型族,它显著提高了纯粹的 ConvNets 在各种识别基准上的性能,包括 ImageNet 分类、COCO 检测和 ADE20K 分割。我们还提供了各种尺寸的预训练 ConvNeXt V2 模型,从参数数量为 370 万的高效 Atto 模型(在 ImageNet 上的 top-1 准确率为 76.7%),到使用公共训练数据达到最先进的 88.9% 准确率的 6.5 亿参数的 Huge 模型。 [2301.00808] ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders (arxiv.org)

RMT 突破LLM百万Tokens上下文长度

Scaling Transformer to 1M tokens and beyond with RMT 这份技术报告展示了循环记忆的应用,以扩展 BERT 的上下文长度,这是自然语言处理中最有效的基于 Transformer 的模型之一。通过利用循环记忆 Transformer 架构,我们成功地将模型的有效上下文长度增加到前所未有的 200 万个标记,同时保持高记忆检索精度。我们的方法允许存储和处理局部和全局信息,并通过使用递归实现输入序列段之间的信息流。我们的实验证明了我们方法的有效性,这具有巨大的潜力来增强自然语言理解和生成任务的长期依赖处理,并为记忆密集型应用程序启用大规模上下文处理。 2304.11062.pdf (arxiv.org)

思维链 — 展现解题过程的重要性

最近的大模型训练进展表明,正如人们学习数学的时候,解题思路很重要一样,大模型也可以通过生成解体思路来教会小模型很多。 思维链(CoT)训练大幅提升模型性能 (jieyibu.net)