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是指在最小化引入的额外参数数量或所需的计算资源的同时,调整预先训练好的大型模型的参数,使其适应特定的任务或领域的过程。这种方法在处理具有高参数计数的大规模语言模型时尤为重要,因为从零开始微调这些模型可能会导致计算开销大和资源密集型,从而在支撑系统平台设计中带来相当大的挑战。
在这项调查中,我们对各种PEFT算法进行了 ...
模型推理服务
一、推理服务概述
深度学习模型的全生命周期
深度学习模型的全生命周期图,主要分为两大类任务,训练任务和推理任务。
推理、部署和服务化
训练任务:通常需要执行数小时、数天,一般配置较大的 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操作。
相应关系
对应的推理服务流程:
用户向DJL-Serving请求-- ...
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 ),其中前者是当前的主流任务,其情感表达显式地出现在文本( Pontiki et al , ...
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 ; Howard & Ruder , 201 ...
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)。然而,在诸如算术、常识和符号推理(Rae等,2021)等具有挑战性的任务上,仅仅扩大模 ...
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 ]等已经证明了构建在大型语言模型(large language model,L ...
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任务方面表现出了巨大的潜力,从自然语言理解( NLU ) ...
ac平台在Jupyter Notebook中使用自定义conda环境
基本步骤
本文使用的dtk版本为22.10.1,其他版本应该也可用。
使用conda
本文默认已经配置好了conda环境(要求python==3.7,与jupyter环境一致)
使用命令
1conda env list
列出当前存在的conda环境,如果不包含需要的环境需要根据超算ac平台使用conda搭建pytorch环境自行创建和配置。
推荐使用平台上存在的预置conda环境,这样可以节省很多手动下载安装依赖的时间。
本文选取的是当前平台上存在的预置环境pytorch1.10.0a0-py37-dtk22.04.2
123# 本文选取当前平台上存在的预置环境pytorch1.10.0a0-py37-dtk22.04.2[xxxxx@login08]$ conda activate pytorch1.10.0a0-py37-dtk22.04.2(pytorch1.10.0a0-py37-dtk22.04.2) [xxxxxx@login08]$
创建Jupyter Notebook 环境
在ac平台创建Notebook环境,选择适合的框架版本(dtk),和加速器数量进行创建,等待部 ...






