NLP大模型微调原理

1. 背景

LLM (Large Language Model) 大型语言模型,旨在理解和生成人类语言,需要在大量的文本数据上进行训练。一般基于Transformer结构,拥有Billion以上级别的参数量。比如GPT-3(175B),PaLM(560B)。

NLP界发生三件大事:

  1. ChatGPT:2022年11月OpenAI发布的AI聊天机器人程序,基于GPT-3.5

  2. LLaMA:2023年2月Meta发布的预训练模型,重新定义了大模型的“大”

  3. Alpaca:2023年3月斯坦福发布的微调模型,证明Instruction Fine-Tuning的可行性

ChatGPT背后的技术:

  • GPT models:基座模型(base model), GPT-3, GPT-3.5-Turbo and GPT4, 较大的模型容量,需要在大量数据上进行预训练。

  • IFT(Instruction Fine-Tuning):指令微调,指令是指用户传入的目的明确的输入文本,指令微调用以让模型学会遵循用户的指令。OpenAI叫做SFT(Supervised Fine-Tuning),是一样的意思。

  • CoT(Chain-of-Thought):在数据层面上,表示指令形式的一种特殊情况,包含step-by-step的推理过程(如下图所示)。在模型层面上,指模型具有逐步推理的reasoning能力。

  • RLHF(Reinforcement Learning from Human Feedback):以强化学习方式依据人类反馈优化语言模型。

2. 大模型训练方法

2.1 FLAN

论文《Finetuned Language Models Are Zero-Shot Learners》FLAN 明确提出了指令微调,本质目的是将NLP任务转换成自然语言指令后再喂给模型训练,使其提升zero-shot任务的性能表现。

paper:https://arxiv.org/abs/2109.01652

2.2 T0

论文《Multitask Prompted Training Enables Zero-shot Task Generalization》T0探究了大模型zero-shot的泛化能力是怎么实现的,并证明了通过显式多任务prompt训练可以实现语言模型的zero-shot泛化能力。

paper:https://arxiv.org/abs/2110.08207

1. 多任务 prompted training 比同参数模型zero-shot能力更强。

2. 论文比较了 T0 与 GPT-3 模型的 zero-shot 性能:

a. 发现 T0 在 11 个数据集中有9个超过 GPT-3;

b. T0 和 GPT-3 都没有接受自然语言推理方面的训练,但 T0 在所有NLI数据集上的表现都优于GPT-3。

2.3 Flan-T5

论文《Scaling Instruction-Finetuned Language Models》Flan-T5提出了一套多任务的微调方案(Flan),通过在超大规模的任务上进行微调,让语言模型具备了极强的泛化性能,做到单个模型就可以在1800多个NLP任务上都能有很好的表现。这意味着模型可以直接在几乎全部的NLP任务上直接使用,实现「One model for ALL tasks」,这就非常有诱惑力!

paper:https://arxiv.org/abs/2210.11416

Flan-T5表明了以下实验结论:

  1. scaling the number of tasks (Finetune任务越多效果越好)

  2. scaling the model size (模型参数越多效果越好)

  3. finetuning on chain-of-thought(CoT) data (思维链数据可以提升推理能力)

2.4 Chain-of-Thought(CoT)

● Few-shot CoT

论文《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》提出了Chain-of-Thought(CoT)思维链的方法来改善大模型在数学计算、常识、符号推理等任务上的推理能力。

paper:https://arxiv.org/abs/2201.11903

COT 思维链的灵感来源于人做推理的过程,作者借鉴了这个过程,通过设计思维链来激发大模型使之拥有推理能力,并且由于这个有逻辑性的思维链存在,多步的中间推理就可以得到最终的正确答案。

● Zero-shot CoT

论文《Large Language Models are Zero-Shot Reasoners》探究了大模型的推理能力,作者发现,对拥有175B参数的GPT3,通过简单的添加`Let's think step by step`,可以提升模型数学推理(arithmetics reasoning)和符号推理(symbolic reasoning)的zero-shot能力。

paper:https://arxiv.org/abs/2205.11916

作者提出了Zero-shot-CoT分为两个阶段:

1. 对原问题添加文字提示,使用LLM生成推理过程。(上图左侧)

2. 将LLM生成的推理过程加入到原问题中,并且添加生成答案的提示,使用LLM生成问题的最终答案。(上图右侧)

效果:哄一哄能让GPT-3准确率暴涨61%!

2.5 Reinforcement Learning Human Feedback (RLHF)

● InstructGPT

论文《Training language models to follow instructions with human feedback》InstructGPT是ChatGPT的前身,主要探究了用RLHF(Reinforcement Learning from Human Feedback)方法使大模型中对齐人类意图。

paper:https://arxiv.org/abs/2203.02155

GPT等大型语言模型基于Prompt的zero shot的学习范式有一个很大的问题是,预训练的模型完成的任务是后继文本的预测,这和具体任务的要求有一些偏离,生成的结果也不一定符合人的意图。因此需要以某种形式fine-tune来对齐这一点。

方法是三步走:

1. 使用人工给出的示范性数据监督训练策略模型

2. 使用人工排序的对比性数据训练奖赏模型

3. 通过强化学习(使用了奖赏模型)训练策略模型

第2、3步可以交替迭代,把人参与到优化过程中。

无论左图右图,使用强化学习的模型(PPO和PPO-ptx)要远好于GPT或监督学习的模型。

这里的“好”是指它的输出更被标注员喜欢(真实、有用、无害)。数据和评价标准都和训练时一致,统统向人类偏好对齐。这正是RLHF的优势所在,自然吊打GPT3。

另外PPO-ptx模型在强化学习时加了pretraining的正则,目的是避免在公开NLP任务上掉点(解决所谓“对齐税”问题),但在这里略微有负面影响。

3. LLaMA

论文《LLaMA: Open and Efficient Foundation Language Models》作者在1T级别的token上训练,证明了仅使用公开数据集也可以训练出来SOTA级别的模型。

与Chinchilla,PaLM 或 GPT-3 不同,LLaMA 只使用公开可用的数据,使本文工作与开源兼容,而大多数现有模型依赖于非公开的数据。

paper:https://research.facebook.com/publications/llama-open-and-efficient-foundation-language-models/

3.1 性能

● LLaMA-13B > GPT-3 (175B):LLaMA-13B 比 GPT3(175B) 在大多数测试表现好

● LLaMA-65B ≈ PaLM-540B:LLaMA-65B 与最好的模型 Chinchilla-70B 和 PaLM-540B 相比也有竞争力

LLaMA重新定义了大模型的“大”

3.2 Motivation

1. 开源的OPT (Zhang et al., 2022), GPT-NeoX (Black et al., 2022), BLOOM (Scao et al., 2022) 和 GLM (Zeng et al., 2022)模型,其效果不能和 PaLM-62B or Chinchilla比,LLaMA更强。

2. 论文《Training Compute-Optimal Large Language Models》研究发现最好的性能不是在最大的模型上,而是在用了更多token的模型上,因此作者认为一个较小的模型训练的时间更长,用的token更多,能达到一样的模型效果,并且在预测时较为便宜(cheaper)。

paper:https://arxiv.org/abs/2203.15556

3.3 Optimizer

LLaMA 还对 transformer 架构做了改进:

●Pre-normalization[GPT3]: RMSNorm normalizing function

● SwiGLU activation function [PaLM].

● Rotary Embeddings [GPTNeo].

3.4 Future Work

1. 继续scale更大的模型

2. 做instruction tuning和RLHF

4. 微调方法

4.1 adapter

2019年,论文《Parameter-Efficient Transfer Learning for NLP》提出了Adapter方案,成为Delta Tuning技术方案的开山之作。

该方案的主要思想是,在参数规模较大的模型中,固定预训练模型的参数,不再进行微调,并在原有的网络结构上增加部分可训练参数。这些可训练参数被添加到每层的attention层和feed-forward层后面。具体来说,Adapter方案会在每层的attention层和feed-forward层之间添加一个新的小型神经网络,称为Adapter。

Adapter的参数可以在微调过程中进行训练,以适应特定的下游任务。这种方法可以大大减少需要微调的参数数量,从而提高模型的参数效率和训练速度。

如下图所示,Adapter方案在每层的attention层和feed-forward层后面添加一个Adapter,使得模型的参数规模得到了有效缩减。这种方法在自然语言处理领域得到了广泛应用,并取得了很好的效果。

4.2 LoRA

2021年,微软在论文《LoRA: Low-Rank Adaptation of Large Language Models》提出了一种名为LORA的方案。该方案分析了Transformer的网络结构,发现权重矩阵的计算占用了大量的计算时间,其中包括Attention层的Q/K/V转换矩阵和Feed-Forward层的MLP矩阵。

paper:https://arxiv.org/abs/2106.09685

LORA主要聚焦于Attention的转换矩阵,以提高模型训练速度和效率。LORA方案的核心思想是给转换矩阵并列添加一个矩阵。同时使用低秩矩阵组合来代替添加的矩阵。这种方法可以有效地减少参数数量。

实验结果表明,LORA方案可以在不影响模型性能的情况下,显著提高模型训练速度和效率。该方案已经在自然语言处理领域得到了广泛应用,并在多个任务上取得了优异的效果。

4.3 Prefix-Tuning

2021年Stanford在论文《Prefix-Tuning: Optimizing Continuous Prompts for Generation》中提出Prefix-Tuning方法,其主要思想是不改变原有网络层的结构,而是对输入部分增加一个prompt前缀,prompt可以离散的、具体的,比如对于ner任务可以增加"请找出句子中的全部实体"作为prompt。

这种prompt可以人工设计或者自动化搜索,问题在于最终的性能对人工设计的prompt的变化特别敏感,加一个词或者少一个词,或者变动位置啥的都会造成比较大的变化。自动化搜索prompt成本也比较高。

本文的实现方式是采用第二种方案,给每个任务训练一份单独的连续可微调的virual token,相比较离散的token效果更好。同时为了扩大可微调参数量,不仅是添加在第一层而是添加在transformer的每一层。对于T5网络结构,既有encoder部分又有decoder部分,所以需要在encoder的输入和decoder的输入都添加prompt前缀。

总结来看,delta-tuning的思想就是把原有的预训练模型的参数固定住,然后新增一部分网络参数用于下游任务的微调。至于新增的网络参数往哪里放?哪里放都可以,只要有效果即可。

5. 微调实现

5.1 Alpaca

2023年3月15日,斯坦福发布Alpaca模型《Alpaca: A Strong, Replicable Instruction-Following Model》,是在Meta的LLaMA-7B上进行微调而来,仅用了52k数据,其性能约等于GPT-3.5,且训练成本还不到600美元。

paper:Stanford CRFM

训练大模型的挑战主要有两个:

1. 大的优秀底座模型:使用LLaMA-7B;

2. 高质量的指令数据:基于SELF-INSTRUCT论文中的自动指令数据生成方法,用OpenAI的text-davinci-003生成52K指令数据。

Alpaca羊驼模型之后出现大批基于LLaMA的微调模型,包括ChatLLama、FreedomGPT、Vicuna、Koala等,羊驼家族名字都快不够用了。

从本质来讲,ChatGPT这种大语言模型就是通过烧钱烧算力烧数据达到`大力出奇迹`的效果。而这也带来了一个问题,即这样的大语言模型烧钱的程度会让很多小公司望而却步,只能加入霸权垄断的圈子。而对于像小红书/B站这样不上不下的公司,既承担不起自己训练大模型的成本,也不愿意将自己内容池的数据拱手让人,其实是陷入蛮尴尬的境地。

Alpaca、Vicuna展现了另一种可能性,即通过“知识蒸馏”的方式,以极低的价格复刻大语言模型90%甚至99%的能力。而这就意味着小公司也能训练自己的AI模型。

换句话说,ChatGPT拉开了AI落地的序幕,而Vicuna告诉我们,遍地AI的世界也许就在眼前。

5.2 Self-Instruct

2022年,Washington大学在论文《SELF-INSTRUCT: Aligning Language Model with Self Generated Instructions》提出了一种框架:Self-Instruct,该框架可以使用最少的人工标注,生成大量的用于instruct-tuning的数据;还发布了52K的使用上述方法得到的用于instruct-tuning的数据集。

paper:https://arxiv.org/abs/2212.10560

Self-Instruct 数据集构建方法

效果比对:

答复结果评分,A最好,D最差;绿色最好,红色最差

可以看出:

  • 原始的GPT3几乎无法响应用户的指令,所有instruction-tuned微调过的模型效果都有明显的提升

  • 即使Self-Instruct生成的数据有噪音,但是模型GPT3 self-instruct的效果明显优于模型GPT3+T0 Training和GPT3 + SuperNI Training

  • 模型GPT3 self-instruct的效果与模型InstructGPT001的效果已经非常接近了

  • InstructGPT003效果最强

指令数据(Instruction data)收集方法:

  • 参考Alpaca基于GPT3.5得到的self-instruct数据;

  • 参考Alpaca基于GPT4得到的self-instruct数据;

  • 用户使用ChatGPT分享的数据ShareGPT。

6. 未来的方向

1. 进一步扩大模型规模,改善模型架构和训练

改善模型的架构或者训练过程可能会带来具有涌现能力的高质量模型,并减少计算量。

一种方向是使用稀疏混合专家架构,其在保持恒定输入成本时具有更好的计算效率,使用更加局部的学习策略,而不是在神经网络的所有权重上进行反向传播,以及使用外部存储来增强模型。

2. 扩大数据规模

在一个足够大的数据集上训练足够长的时间被证明是语言模型获得语法、语义和其他世界知识的关键。近期,Hoffmann et al.认为先前的工作低估了训练一个最优模型的训练数据量,低估了训练数据的重要性。收集模型可以在其上训练更长时间的大量数据,允许在一个固定模型尺寸的约束下有更大范围的涌现能力。

3. 更好的prompt

虽然few-shot prompting简单有效,对prompting通用性的改善将进一步扩展语言模型的能力。

例如,用带有中间步骤的few-shot示例增强后,能够使模型执行多步推理任务,这是标准prompting无法实现的。此外,更好的解释为什么prompting有效,可能对在更小模型上引导涌现能力具有帮助。充分的理解模型为什么能够工作通常会滞后于技术的开发和流行,并且随着更加强大的模型被开发出来,prompting的最佳实践也可能改变。

4. 理解涌现能力

理解涌现除了研究如何进一步解锁涌现能力,一个未来研究方向是,涌现能力是如何以及为什么出现在大语言模型。理解涌现是一个非常重要的方向,这有助于我们确定模型可以拥有哪些涌现能力以及如何训练一个更强的语义模型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/30850.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

淘宝开店流程图解

原文: 淘宝开店流程图解 链接: http://hyp5920.blog.163.com/blog/static/50951573201310194550775/ 2013-11-01 23:53:31| 分类:知识乐园 | 标签:天天淘淘美装 |字号 订阅 淘宝开店是很简单的。只要拿身份证开通网银&…

从软件开发到开淘宝店铺

2019独角兽企业重金招聘Python工程师标准>>> 我的店铺 背景: 最近思索 这个时代 不可能一辈子敲代码【可能学习能力跟不上 可能给的待遇自己不满意】 但是可以一辈子开店铺看到越来越多的人习惯在网上购物 越来越多的人在网上赚钱 我为什么就不能利用工…

淘宝店铺wang

简约型 1、蒙马特 🔗:57啊可的大了有家对小起然了, https://m.tb.cn/h.fBSsV3Z?smde76a8 CZ3457 我分享给你了一个超赞的内容,快来看看吧 2、WASSUP中国 🔗:27哈个一么中有家对然和生子微 https://m…

弘辽科技:新手开淘宝网店的七大攻略

原标题《弘辽科技:新手开淘宝网店的七大攻略》 伴随着计算机信息化技术的发展,互联网经济欣欣向荣,电子商务的发展也越加的繁荣。自从淘宝店上线之后,受到了很多朋友们的喜欢,因为它改变了人们的生活方式,…

简单三步,教你快速接入淘宝开放平台,调用官方API

淘宝开放平台是为了方便开发者接入淘宝平台,进行商品、订单等信息的管理和交互而设计的。接入淘宝开放平台需要经过一系列审核和申请流程,而在API权限包审核时,一定要提供真实有效的证件和资料,并满足相应的条件,才能顺…

自制树莓派PICO RP2040开发板+例程(I2C读取LM75和AHT20 温度数据)

1.原理图 2.PCB 晶振的焊盘有点大,怕和外壳短路,找了个东西垫高了下 来自嘉立创免费打样PCB 3.焊接完成 这颗QFN封装芯片比较考验焊接功底,手残的不建议自己弄。 4.代码实现 参考https://pico.org.cn/ 1.main.py from machine impor…

chatgpt赋能python:Python的GUI界面开发

Python的GUI界面开发 Python是目前非常流行的编程语言之一,其优雅的语法和强大的库使其在各个领域得到广泛应用。在GUI界面开发方面,Python也表现出了巨大的潜力。本文将介绍Python的GUI开发框架以及相关的工具和技术。 介绍 Python有多个GUI框架可供…

LangGPT —— 让人人都能编写高质量 Prompt

要用好现有大模型的能力严重依赖高质量 prompt, 然而编写高质量 prompt 在现阶段还是个手艺活,太依赖个人经验。 虽然也有许多个人自发分享的 prompt 方法、框架,以及吴恩达老师的 prompt 教程,但是现有 Prompt 创建方法还是有各…

如何让网页显示友好的错误信息页面

大多数用户看到”该页无法显示",”服务器内部错误"等默认错误提示信息会立马关闭浏览器窗口,我们为什么不能自定义一下呢?让用户从错误信息中得到真正的帮助? 错误信息的页面应该做到以下几点: 1.给普通访客友好提示。告诉他们这是怎么了&…

Anthropic 推出 “更理性的 Claude”,正面硬刚 ChatGPT

Anthropic 是一家由前 OpenAI 团队成员创立的初创公司,最近它推出了一款名为 Claude 的 AI 聊天机器人,将其作为 ChatGPT 的竞争对手。 与 ChatGPT 类似,Claude 能够执行各种基于文字对话的任务,如文档搜索、摘要、写作、编码&…

Xavier agx使用指南汇总

xavier系统架构讲解: Xaiver是arm64平台,与x86平台pc机构完全不通用的 Xavier接口 介绍: https://blog.csdn.net/enlaihe/article/details/119751074?utm_mediumdistribute.pc_relevant.none-task-blog-2~default~baidujs_utm_term~defaul…

不用魔法,快速、手摸手上线Midjourney!【附源码】【示例】

首先来一波感谢: 感谢laf提供赞助,目前可以免费使用Midjourney进行开发和测试。 感谢白夜、米开朗基杨sealos.io的耐心解答,让我对laf有了更多的使用与了解。 什么是laf?来了解下。 文末有【示例】 开始 废话不多说,…

国外大神竟用 ChatGPT 成功打造了一个「虚拟空间传送」系统!

相信大家小时候躺在床上,都曾设想过这么一个场景: 当你闭上眼睛时,感觉身心十分安宁,物理世界慢慢淡出,身体也随着变得飘逸,一切仿佛只剩下呼吸声和心跳声。 一阵微风拂过,你缓缓睁开双眼&#…

国外大神用 ChatGPT 成功打造一个「虚拟空间传送」系统!

公众号关注 “GitHubDaily” 设为 “星标”,每天带你逛 GitHub! 相信大家小时候躺在床上,都曾设想过这么一个场景: 当你闭上眼睛时,感觉身心十分安宁,物理世界慢慢淡出,身体也随着变得飘逸&…

基于认知神经科学的大模型【2023智源大会会议总结】

1. ChatGPT不能做什么? 刘嘉|清华大学脑与智能实验室首席研究员 1.1 演讲内容 图1.1 Sam Altman的签名 图1.2 大模型模仿理性部分、忽略感性部分 图1.3 未来可以为AI加入身体 图1.4 未来为AI赋予社交 图1.5 AGI的演化 1.2 总结 演讲目标:ChatGPT具有很多功…

用数据带你回顾乔丹的职业生涯

乔丹是联盟上下公认的历史第一人,芝加哥公牛在他带领下几乎统治了上世纪90年代NBA整整10年,包括分别在91-93赛季和96-98赛季拿下的两次三连冠,要知道,NBA72年历史上一共只出现过4次三连冠,而乔帮主一人便承包一半。下面…

NBA著名球星介绍

NBA著名球星介绍 迈克尔乔丹 毋庸置疑的篮球之神,六次总冠军,五次常规赛MVP,14次入选全明星他所取得的荣誉是其他任何NBA球员都无法比拟的,甚至从某种程度上说,乔丹代表这篮球这项运动,代表着在这项运动里所…

球星测试软件,2KOL球星测评丨篮球之神,迈克尔.乔丹(96版)

迈克尔.乔丹(96版) 迈克尔乔丹在在1984年NBA选秀中于第1轮第3位被芝加哥公牛队选中。(他的前面两位分别是哈基姆奥拉朱旺和萨姆鲍伊) 91-93赛季,乔丹连续2次荣膺常规赛MVP和3次总决赛FMVP ,并率领芝加哥公牛队首夺3连冠。 93年10月6日因父亲被害而宣布退…

论“詹姆斯*哈登”到底是不是球队毒瘤

从林书豪和哈登的合作,到魔登的短暂快乐,再到保罗和安东尼以及威少,哈登漫长的火箭生涯里留下的遗憾可能要比成功多的多,他没有让火箭真正的成为顶级的冲冠球队,或许在那么一瞬间或者某个赛季,曾几何时有人…

NBA球星logo

科比退役信上的新logo镇楼。 该logo已被用于科比的公司,并非个人logo。 1.特雷西麦克格雷迪 由T-Mac中的T和M,以及1号和一个篮筐组成 2.文斯卡特 当年卡特作为耐克shox系列代言人,这个由VC和15组成的log,在每一双shox系列篮球鞋…