Parameter-Efficient Fine-Tuning for Large Models: A Comprehensive Survey 大模型的参数高效微调:综述
索引术语 - - 大型语言模型、参数高效微调、计算机系统、分布式系统。
原文链接: Parameter-Efficient Fine-Tuning for Large Models: A Comprehensive Survey
# 摘要
大型模型代表了多个应用领域的开创性进展,在不同的任务中取得了显著的成就。然而,它们前所未有的规模伴随着巨大的计算成本。这些模型往往由数十亿个参数组成,需要耗费大量的计算资源才能执行。特别是在受计算能力限制的硬件平台上,扩展的规模和计算需求为定制特定的下游任务带来了相当大的挑战。
参数高效微调 (Parameter Efficient Fine-Tuning,PEFT) 通过高效地适应各种下游任务的大模型,提供了一种实用的解决方案。特别地,PEFT 是指在最小化引入的额外参数数量或所需的计算资源的同时,调整预先训练好的大型模型的参数,使其适应特定的任务或领域的过程。这种方法在处理具有高参数计数的大规模语言模型时尤为重要,因为从零开始微调这些模型可能会导致计算开销大和资源密集型,从而在支撑系统平台设计中带来相当大的挑战。
在这项调查中,我们对各种 PEF ...
模型推理服务
# 一、推理服务概述
# 深度学习模型的全生命周期
深度学习模型的全生命周期图,主要分为两大类任务,训练任务和推理任务。
# 推理、部署和服务化
训练任务:通常需要执行数小时、数天,一般配置较大的 batch size 以实现较大的吞吐量,训练模型直到指定的准确度或错误率。
推理任务:执行 7 x 24 小时服务,此时模型已稳定无需训练,服务于真实数据进行推理预测,一般 batch size 较小。
推理任务相比训练任务的挑战有如下几点:
模型被部署为长期运行的服务(需要稳定可靠);
推理时有更苛刻的资源约束(需要在有限算力下服务);
推理不需要反向传播梯度下降;
部署的设备型号更加多样,意味着设备架构多样(需要具有通用性)。
训练过程 通过设计合适的 AI 模型以及损失函数、优化算法等,前向传播并计算损失函数,反向计算梯度,利用优化函数来更新模型,最终目标是使损失函数最小。
推理过程 在训练好的模型上,进行一次前向传播得到输出,最终目标是将模型部署在生产环境中。
测试过程 一般此阶段含有功能性测试(离线测试和在线 A/B 测试等)和非功能性测试( ...
djl-serving deepspeed模型部署流程(python模式)
# djl-serving deepspeed 模型部署流程 (python mode)
# 相关介绍
# DeepSpeed
deepspeed 是一款微软发布的深度学习优化软件套件,能提供一键深度学习加速推理和训练能力。
DeepSpeed 为使用 DeepSpeed、Megatron 和 HuggingFace 训练的基于兼容 Transformer 的模型提供无缝推理模式,无需修改模型即可实现高效推理。
# djl-serving
DJL Serving 是由 DJL 提供支持的高性能通用独立模型服务解决方案。它将深度学习模型或工作流程包装成服务,并通过 HTTP 提供它们。
djl-serving python mode
djl-serving 推理服务支持 python 模式,用户只需准备一个 Python 脚本文件即可执行,除此之外,djl-serving 还提供如下支持:
Java 模式:用户需要准备 Java 前 / 后处理脚本和模型文件。
二进制模式:用户只需要准备一个模型文件,我们就可以运行 tensor-in,tensor out 操作。
# 相应关系
对应 ...
AutoBangumi 密码重置方法
关于 AutoBangumi
AutoBangumi是一个根据订阅自动下载番剧的工具,最近进行了升级并且更加好用了。但是在丰富了番剧订阅管理的同时增加了认证功能,对我这种密码太多记不住的人来说不是很友好。
解决方案
官方解决方式
果不其然今天想登陆进去看管理番剧却发现怎么也记不起来密码了,于是去翻看官方faq,却发现官方并不支持重置密码:
1234修改和忘记密码修改密码:在登录后点击右上角···,点击 Profile,修改用户名和密码。目前没有简单的忘记密码的重置方法,如果忘记密码,可以删除 data/data.db 文件,然后重启。
官方推荐直接删除数据库,我(备份之后)删除之后登录出现没有提示的报错,并且担心这样做会导致番剧管理设置被清除,于是就开始研究如何手动重置密码。
手动重置密码
翻看源码后发现,密码管理模块位于Auto_Bangumi/backend/src/module /security/的jwt.py文件,于是写了个脚本来替换对应的hashed_passd。
脚本内容如下:
1234567891011121314151617181920212223242526272 ...
Reasoning Implicit Sentiment with Chain-of-Thought Prompting
# 用思想链提示推理隐式情感
# 摘要
虽然情感分析系统试图根据输入文本中的关键观点表达来确定给定目标的情感极性,但在隐式情感分析 (ISA) 中,观点线索是以隐式和模糊的方式出现的。因此,检测隐式情感需要常识和多跳的推理能力来推断观点的潜在意图。受最近的思想链 (CoT) 思想的启发,在这项工作中,我们引入了三跳推理 (THOR) CoT 框架来模拟 ISA 的类人推理过程。我们设计了 THOR 的三步提示原则,一步一步地诱导出隐含的方面、观点,最后是情感极性。我们的 THOR + Flan-T5 (11B) 在有监督的情况下将最新的 SoTA (state-of-the-art) 推进了超过 6 % 的 F1。更引人注目的是,THOR+GPT3 (175B) 在零样本下将 SoTA 提升了 50 % 以上的 F1。我们的代码公开在 https://github.com/scofield7419/THOR-ISA 。
# 1. 引言
情感分析 (SA) 旨在根据输入文本检测对给定目标的情感极性。SA 可以分为显式 SA ( ESA ) 和隐式 SA ( ISA ),其中前者是当前的 ...
Parameter-Efficient Transfer Learning for NLP
# 面向 Nlp 的参数高效迁移学习
原始论文:《Parameter-Efficient Transfer Learning for NLP》
http://arxiv.org/abs/1902.00751
# 摘要
微调大型预训练模型是 NLP 中一种有效的迁移机制。然而,在存在许多下游任务的情况下,微调是参数无效的:每个任务都需要一个全新的模型。作为替代,我们提出了带有适配器模块的传输。适配器模块产生一个紧凑且可扩展的模型;它们每个任务只添加少量可训练的参数,并且可以在不重访以前的任务的情况下添加新的任务。原始网络的参数保持固定,产生高度的参数共享。为了证明适配器的有效性,我们将最近提出的 BERT Transformer 模型迁移到 26 个不同的文本分类任务中,包括 GLUE 基准测试。适配器获得接近最先进的性能,同时每个任务只增加几个参数。在 GLUE 上,我们实现了 0.4% 以内的全微调性能,每个任务仅增加 3.6% 的参数。相比之下,微调训练每个任务 100% 的参数。
# 1. 引言
从预训练的模型中迁移在许多 NLP 任务 (Dai & Le , 2015 ...
Tree of Thoughts: Deliberate Problem Solving with Large Language Models
# 思维树:用大型语言模型深思熟虑地解决问题
# 摘要
语言模型越来越多地被用于跨广泛任务的一般问题解决,但在推理过程中仍然局限于令牌级别的、从左到右的决策过程。这意味着他们可能在需要探索的任务、战略前瞻或初始决策起关键作用的任务中落空。为了克服这些挑战,我们引入了一种新的语言模型推理框架 - - "思维树" (Tree of Thoughts,ToT),它推广了流行的 "思维链" ( Chain of Thoughts ) 方法来促进语言模型,并允许对文本 ( "思想") 的连贯单元进行探索,作为问题解决的中间步骤。ToT 允许 LM 进行深思熟虑的决策,通过考虑多条不同的推理路径和自我评估的选择来决定下一步的行动方向,并在必要时进行前瞻或回溯以做出全局选择。我们的实验表明,ToT 显著提高了语言模型在 3 个需要非平凡计划或搜索的新颖任务上的问题解决能力:游戏 24、创意写作和微型填字游戏。例如,在第 24 局的比赛中,有思维链提示的 GPT-4 只解决了 4% 的任务,而我们的方法取得了 74% 的成功率。所有提示的代码 ...
Chain-of-Thought Prompting Elicits Reasoning in Large Language Models
# 思维链提示在大型语言模型中引发推理
# 摘要
我们探索了如何生成一个思想链 -- 一系列中间推理步骤 -- 显著提高大型语言模型执行复杂推理的能力。特别地,我们展示了这种推理能力是如何在足够大的语言模型中通过一种简单的方法 -- 思维链提示 -- 自然产生的,其中提供了几个思维链演示作为提示的例子。
在三个大型语言模型上的实验表明,在一系列算术、常识和符号推理任务上,思维链提示提高了性能。经验上的收益可能是惊人的。例如,仅用 8 个思维链示例就提示一个 PaLM 540B,在数学应用题的 GSM8K 基准上达到了最先进的精度,甚至超过了用验证器微调的 GPT-3。
图 1:思想链提示使大型语言模型能够处理复杂的算术、常识和符号推理任务。突出了思维链推理过程。
# 1. Introduction 引言
NLP 领域最近被语言模型 (Peters 等,2018;Devlin 等,2019;Brown 等,2020) 所革命化。扩大语言模型的规模已经被证明可以带来一系列的好处,例如提高性能和样本效率 (Kaplan 等,2020;Brown 等,2020)。然而,在诸如算术、常识和符 ...
Reflexion: Language Agents with Verbal Reinforcement Learning
# 反射:言语强化学习的语言代理
原论文:Reflexion: Language Agents with Verbal Reinforcement Learning
# 摘要
大型语言模型 (Large Language Models,LLMs) 作为目标驱动的智能体被越来越多地用于与外部环境 (例如,游戏、编译器、API 等) 进行交互。然而,由于传统的强化学习方法需要大量的训练样本和昂贵的模型微调,这些语言智能体快速有效地从试错中学习仍然具有挑战性。我们提出了一种新的框架 Reflex,它不是通过更新权重来加强语言代理,而是通过语言反馈来加强语言代理。具体来说,反应主体会对任务反馈信号进行言语反思,然后在情景记忆缓冲器中保持自己的反射性文本,以便在随后的试次中诱发更好的决策。反射足够灵活,可以包括各种类型 (标量值或自由形式的语言)
# 1. 引言
最近的工作如 ReAct [30]、SayCan [ 1 ]、Toolformer [ 22 ]、HuggingGPT [ 23 ]、生成式 Agent [ 19 ]、WebGPT [ 17 ] 等已经证明了构建在大型语言模型 (lar ...
Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond
# 在实践中利用 LLMs 的能力:对 Chatgpt 和更大范围的调研
原论文:Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond
本文为从事大型语言模型 (Large Language Models,LLMs) 工作的从业者和最终用户在其下游自然语言处理 ( Natural Language Processing,NLP ) 任务中提供了一个全面而实用的指南。我们从模型、数据和下游任务的角度对 LLMs 的使用提供了讨论和见解。首先,我们对现有的 GPT 型和 BERT 型 LLM 进行了简单的介绍和总结。然后,我们讨论了预训练数据、训练数据和测试数据的影响。最重要的是,我们对各种自然语言处理任务的大型语言模型的使用和非使用情况进行了详细的讨论,例如知识密集型任务、传统的自然语言理解任务、自然语言生成任务、突现能力和注意事项
# 1. INTRODUCTION 导语
近年来,大语种模型的快速发展使自然语言处理领域发生了革命性的变化。这些强大的模型在解决各种各样的 NLP 任务方面表现出了 ...