Tag: AGI

PRETTY: 一种无需训练的跨语言大型语言模型对齐方法PRETTY: 一种无需训练的跨语言大型语言模型对齐方法

大型语言模型(Large Language Models, LLMs)在自然语言处理领域取得了巨大成功。然而,如何使LLM的输出与特定偏好相一致仍然是一个挑战。监督式微调(Supervised Fine-Tuning, SFT)是一种直接的方法,但其对齐的深度受到质疑。在跨语言生成任务中,非英语数据的稀缺性和获取成本进一步限制了SFT的应用。 最近,一篇名为”PRETTY: Prefix Text as a Yarn for Training-free Alignment of Foundation Language Models”的论文提出了一种创新的训练自由对齐方法,旨在解决这些问题。本文将深入探讨PRETTY方法的原理、实验验证及其潜在影响。 SFT的局限性 SFT通过在特定任务上微调预训练的LLM,使其输出与期望的偏好相一致。然而,一些研究质疑SFT实现的对齐可能只是表面的,没有真正深入到模型的知识体系中。 此外,论文指出SFT在跨语言生成任务中的有效性可能受到其对先前token的依赖的限制。这种依赖性可能阻碍了SFT在目标语言中激发特定任务生成的能力。 PRETTY方法 针对上述问题,论文提出了PRETTY(Prefix Text as a Yarn)方法。其核心思想是使用最少的任务相关先验token来桥接基础LLM和SFT LLM,从而在无需训练的情况下实现与SFT相当的性能。 PRETTY方法的关键在于构建高质量的先验token。论文提出了三种策略: [...]

SiLU 激活函数:深度学习中的新星SiLU 激活函数:深度学习中的新星

SiLU 激活函数,全称 Swish,近年来在深度学习领域崭露头角,并展现出诸多优势。本文将详细介绍 SiLU 激活函数,包括其定义、性质、优缺点以及应用场景,帮助读者更好地理解和运用这一新兴技术。 1. 什么是 SiLU 激活函数? SiLU 激活函数由 Google 研究员提出,其定义如下: 其中,sigmoid 函数是常见的激活函数,其表达式为: SiLU 激活函数可以看作是 sigmoid 函数和输入值的乘积。它将输入值乘以一个介于 0 和 1 之间的值,从而实现非线性激活。 2. SiLU 激活函数的性质 SiLU 激活函数具有以下几个重要性质: 3. SiLU [...]

通过上下文多样化提高生成式常识推理的多样性通过上下文多样化提高生成式常识推理的多样性

大家好,今天我想和大家分享一篇有趣的论文,题为《通过上下文多样化提高生成式常识推理的多样性》。这篇论文主要研究如何提高大型语言模型(LLMs)在生成常识推理(GCR)任务中的输出多样性,同时保持生成质量。 在GCR任务中,模型需要利用常识知识对给定情境进行推理,并生成连贯的句子。虽然生成句子的质量至关重要,但多样性同样重要,因为它反映了模型使用各种常识知识事实的能力。 论文提出了一种名为In-Context Diversification(ICD)的方法来解决这个问题。ICD方法的核心思想是在保持生成质量的同时,通过上下文学习(ICL)来提高句子的多样性。具体来说,ICD方法分两步进行:首先,让LLM自由生成高质量句子;其次,使用用户指定的多样性度量来评估并提高句子的多样性。 为了验证ICD方法的有效性,论文在CommonGen、ComVE和DimonGen三个GCR数据集上进行了实验。使用BLEU、SPICE、BERTScore等质量指标和self-BLEU、Distinctk、Entropyk等多样性指标来评估生成结果。实验结果表明,ICD方法在质量和多样性之间取得了理想的平衡,并且在Combined metrics上优于默认和多样化提示生成的句子。 此外,论文还探索了将ICD生成的句子作为训练数据,用于提高现有常识生成器的多样性。通过MoE模型的验证,证明了这一点的可行性。同时,论文还研究了LLM是否能够准确判断给定句子集的多样性,以及不同温度设置对ICD方法性能的影响。 尽管这项研究取得了积极的成果,但仍有一些局限性和未来的探索方向。例如,当前的研究主要集中在英语句子的生成上,未来可以将ICD方法扩展到多语言模型。此外,还需要在更广泛的LLMs上评估ICD方法,并考虑社会偏见和有害内容生成的问题。 总的来说,这篇论文提出了一种有效的方法来提高LLMs在GCR任务中的输出多样性,并通过一系列实验验证了该方法的性能。这项研究不仅推动了GCR领域的发展,也为其他需要多样性输出的NLP任务提供了新的思路。希望这篇论文能够激发更多的研究,进一步提高LLMs在各种文本生成任务中的性能。 如果大家对这篇论文感兴趣,欢迎留言讨论。也欢迎大家分享自己在GCR或其他NLP任务中遇到的问题和见解。让我们一起探索如何让AI生成更加多样化和高质量的文本吧! [...]

如何让大型语言模型(LLMs)充分利用长文本信息?——微软提出的FILM方法如何让大型语言模型(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模型速度瓶颈:一种全新的“分组查询注意力”方法破解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问答数据集上,都保持了与多头注意力模型相近的质量,同时又具有与多查询注意力模型相近的速度。 [...]

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

大家好,欢迎来到我的博客!今天,我们要聊一聊有关两个开源语言模型的故事,它们分别是 LLAMA 和 LLAMA2。正如在科技世界里常见的,这两个模型的出现,都代表着一次重要的突破和进化。那么,它们是如何超越自身,再次突破技术瓶颈的呢?让我们一起探索吧。 1. LLaMA:以开放和高效为目标的基础语言模型 首先,我们来看看第一个主角 LLAMA。它仅仅使用公开可用的数据(数量高达数万亿 tokens)就训练出了效果超越 GPT-3 和 Chinchilla-70B PaLM-540B 的模型。最让人惊奇的是,它的体积比 GPT-3 小十倍,但效果更好。这是怎么做到的呢? LLaMA 的开发者们发现,给定一定的计算量预算,我们可以通过在较小的模型上训练更多的数据来获取最好的效果。这就是 LLAMA 所依据的尺度原则。 为了训练 LLAMA,开发者们使用了多种来源的预训练数据,包括英文 CommonCrawl, Github, Wikipedia 等。每一种数据都经过了严格的清洗和筛选,以确保模型训练的质量。在训练时,每个 token 只训练一次,除了 Wikipedia 和 [...]

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

XAgent 是一个开源的基于大型语言模型(LLM)的自主智能体,能够自动解决各种任务。它旨在成为一个通用的智能体,应用于各种任务。尽管 XAgent 目前仍处于早期阶段,我们正在不断努力改进它。 我们的目标是创建一个可以解决任何给定任务的超级智能体。我们欢迎全职、兼职等各种形式的合作。如果您对智能体的前沿感兴趣,并希望加入我们实现真正的自主智能体,欢迎与我们联系。 XAgent 特点 XAgent 具有以下特点: 工具服务器 工具服务器为 XAgent 提供强大和安全的工具来解决任务的服务器。它是一个 Docker 容器,为 XAgent 提供一个安全的运行环境。目前,工具服务器提供以下工具: 快速开始 首先,您需要安装 Docker 和 docker-compose。然后,您需要构建工具服务器的镜像。在 ToolServer 目录下,运行以下命令: 这将构建工具服务器的镜像并启动工具服务器的容器。如果您想在后台运行容器,请使用 docker-compose up -d。 在启动 ToolServer [...]

vLLM:让大型模型推理更快的工具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 量化 LLMsQLoRA: 高效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) [...]