首页 > 其他分享 >人工智能大语言模型起源篇(二),从通用语言微调到驾驭LLM

人工智能大语言模型起源篇(二),从通用语言微调到驾驭LLM

时间:2024-12-14 14:57:07浏览次数:10  
标签:语言 人工智能 模型 arxiv LLM abs https GPT org

上一篇:《人工智能大语言模型起源篇(一),从哪里开始》

(5)Howard 和 Ruder 于2018年发表的《Universal Language Model Fine-tuning for Text Classification》,https://arxiv.org/abs/1801.06146

这篇论文从历史的角度来看非常有意思。尽管它是在原始的《Attention Is All You Need》变换器发布一年后写的,但它并没有涉及变换器,而是专注于递归神经网络。然而,它仍然值得注意,因为它有效地提出了语言模型的预训练和迁移学习,用于下游任务。

尽管迁移学习在计算机视觉中已经被确立,但在自然语言处理(NLP)中还不普遍。ULMFit 是首批展示预训练语言模型并对其进行微调,从而在许多NLP任务中取得最先进成果的论文之一。

ULMFit 提出的微调语言模型的三阶段过程如下:

1. 在大规模文本语料库上训练语言模型。

2. 在任务特定的数据上微调这个预训练的语言模型,使其能够适应文本的特定风格和词汇。

3. 在任务特定数据上微调分类器,并逐步解冻各层,以避免灾难性遗忘。

这个过程——在大规模语料库上训练语言模型,然后在下游任务上进行微调——是基于变换器的模型和像BERT、GPT-2/3/4、RoBERTa等基础模型所使用的核心方法。

然而,ULMFiT的关键部分——逐步解冻,通常在实践中不会常规进行,尤其是在使用变换器架构时,通常会一次性微调所有层。

来源:https://arxiv.org/abs/1801.06146

(6)Devlin、Chang、Lee 和 Toutanova 于2018年发表的《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》,https://arxiv.org/abs/1810.04805

继原始的变换器架构之后,大型语言模型的研究开始分为两个方向:一种是用于预测建模任务(如文本分类)的编码器风格变换器,另一种是用于生成建模任务(如翻译、总结和其他形式的文本生成)的解码器风格变换器。

上面的BERT论文介绍了掩蔽语言模型(masked-language modeling)和下一句预测(next-sentence prediction)这一原始概念。它仍然是最具影响力的编码器风格架构。如果你对这一研究方向感兴趣,我推荐你进一步了解RoBERTa,它通过去除下一句预测任务,简化了预训练目标。

来源:https://arxiv.org/abs/1810.04805

(7)Radford 和 Narasimhan 于2018年发表的《Improving Language Understanding by Generative Pre-Training》,https://www.semanticscholar.org/paper/Improving-Language-Understanding-by-Generative-Radford-Narasimhan/cd18800a0fe0b668a1cc19f2ec95b5003d0a5035

原始的GPT论文介绍了流行的解码器风格架构,并通过下一个词预测进行预训练。BERT可以被看作是一个双向变换器,因为它的预训练目标是掩蔽语言模型,而GPT是一个单向的、自回归模型。虽然GPT的嵌入也可以用于分类任务,但GPT方法是当今最具影响力的大型语言模型(LLM)的核心,例如ChatGPT。

如果你对这个研究方向感兴趣,我建议你进一步阅读GPT-2 https://www.semanticscholar.org/paper/Language-Models-are-Unsupervised-Multitask-Learners-Radford-Wu/9405cc0d6169988371b2755e573cc28650d14dfe和GPT-3 https://arxiv.org/abs/2005.14165的论文。这两篇论文展示了LLM能够进行零-shot和少-shot学习,并突出了LLM的突现能力。GPT-3仍然是当前一代LLM(如ChatGPT)训练的流行基准和基础模型——我们稍后会作为单独的条目讨论导致ChatGPT的InstructGPT方法。

来源: https://www.semanticscholar.org/paper/Improving-Language-Understanding-by-Generative-Radford-Narasimhan/cd18800a0fe0b668a1cc19f2ec95b5003d0a5035

(8)Lewis、Liu、Goyal、Ghazvininejad、Mohamed、Levy、Stoyanov 和 Zettlemoyer 于2019年发表的《BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension》,https://arxiv.org/abs/1910.13461

如前所述,BERT类型的编码器风格LLM通常更适用于预测建模任务,而GPT类型的解码器风格LLM则更擅长生成文本。为了兼顾两者的优点,上面的BART论文将编码器和解码器部分结合在一起(这与原始的变换器架构(本清单中的第二篇论文)并无太大区别)。

来源:https://arxiv.org/abs/1910.13461

(9)Yang、Jin、Tang、Han、Feng、Jiang、Yin 和 Hu 于2023年发表的《Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond》,https://arxiv.org/abs/2304.13712

这不是一篇研究论文,但可能是迄今为止最好的架构综述,展示了不同架构的演变过程。然而,除了讨论BERT风格的掩蔽语言模型(编码器)和GPT风格的自回归语言模型(解码器)外,它还提供了关于预训练和微调数据的有用讨论和指导。

现代 LLM 的进化树,来自 https://arxiv.org/abs/2304.13712。

标签:语言,人工智能,模型,arxiv,LLM,abs,https,GPT,org
From: https://blog.csdn.net/JellyAI/article/details/144443269

相关文章

  • 清华大学出品的《自然语言处理:原理、方法与应用》硬核书 |含PDF
    前言人工智能自然语言处理领域的发展也经历了很多大事件,有预测蛋白质结构的alphafold模型、有1750亿参数量的超大无比GPT3屠榜自然语言处理各个任务的榜单,也有实现增量推理与分布式推理的盘古预训练模型。总体来讲,自2018年底谷歌公司发布BERT预训练模型后,自然语言处理领域......
  • C语言(动态内存分配)
    动态内存分配我们要想实现动态内存分配,就需要学习标准C提供的函数库(API):函数所属的库文件函数的原型-函数的声明函数名形参返回值类型函数功能注意:内存分配函数在申请内存时,建议用多少申请多少,可以有少量的预留量;但不能越界访问(虽然编译和运行不报错,但是数据不安全(野......
  • C语言(野指针及内存操作)
    野指针、空指针、空悬指针野指针定义:指向一块未知区域(已经销毁或者访问受限的内存区域外的已存在或不存在的内存区域)的指针,被称作野指针。野指针是危险的。危害:①引用野指针,相当于访问了非法的内存,常常会导致段错误(segmentationfault),也有可能编译运行不报错。②引......
  • 为了改一行代码,我花了10多天时间,让性能提升了40多倍---Pascal架构GPU在vllm下的模型推
    ChatGPT生成的文章摘要这篇博客记录了作者在家中使用Pascal显卡运行大型模型时遇到的挑战和解决方案。随着本地大型模型性能的提升,作者选择使用vllm库进行推理。然而,作者遇到了多个技术难题,需要自行编译vllm和PyTorch,以支持Pascal架构的显卡。编译过程中,作者深入研究了显卡不支持......
  • 使用 Crystal 编程语言实现验证码识别自动化流程
    说明Crystal是一种静态类型的、编译型编程语言,具有类似Ruby的语法,但提供了更高的性能和效率。它是一种面向开发高性能应用程序的语言,且在web编程中也有应用。我们将使用Crystal来实现一个模拟的验证码处理流程。代码实现假设我们在进行一个自动化测试任务,需要处理图......
  • Go 语言新手入门:快速掌握 Go 基础
        Go语言(又叫Golang)是一种由Google开发的开源编程语言,设计初衷是简洁、高效,并且能够处理大规模并发程序。Go语言自发布以来,逐渐在Web开发、云计算、微服务和系统编程等领域获得了广泛应用。它以简单的语法、内置的并发模型和高效的性能赢得了开发者的青睐。 ......
  • 从小白到入门,写给程序员的LLM学习指南
    年初的时候,我第一次接触了ChatGPT,在被深深震撼之后,我意识到一个新的时代正在来临,作为程序员的我有了从未有过的危机感,在海量的信息里浸泡了几周后,作为程序员的我们需要大幅更新自己的技能栈,之后我便开始了更新技能栈的践行。经过过去几个月的学习,我逐渐度过了不知所措的阶......
  • 在21世纪的我用C语言探寻世界本质——动态内存管理及相关笔试题
    人无完人,持之以恒,方能见真我!!!共同进步!!文章目录一、为什么有动态内存分配二、malloc和free1.malloc函数的使用2.free函数的使用三、calloc和realloc1.calloc函数的使用2.realloc函数的使用四、常见动态内存分配的错误五、动态内存经典笔试题六、总结C/C++中程序内存区......
  • 数据科学、数据分析、人工智能必备知识汇总-----多元函数微分学-----持续更新
    数据科学、数据分析、人工智能必备知识汇总-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/140174015文章目录1.偏导数2.高阶偏导数3.梯度4.雅可比矩阵5.Hessian矩阵6.极值判别法则1.偏导数之前讲的导数,是......
  • 02-51单片机的C语言基础与最小系统
    C语言基础一个简单的单片机C程序要有什么#include<reg51.h>voidmain(){ while(1) { }}C语言中常用语句略,if,while,do…while,for,switch…case函数略C-51的数据类型扩充定义sfr:特殊功能寄存器声明sfr变量名=地址值;*特殊功能寄存器在reg51.H这个头文件里......