【NLP】国外新动态--LLM模型

news2024/10/6 8:22:11

一、说明

        NLP走势如何?这是关于在实践中使用大型语言模型(LLM)的系列文章中的一篇文章。在这里,我将介绍LLM,并介绍使用它们的3个级别。未来的文章将探讨LLM的实际方面,例如如何使用OpenAI的公共API,Hugging Face Transformers Python库,如何微调LLM,以及如何从头开始构建LLM。

二、什么是LLM?

        LLM大型语言模型的缩写,这是AI和机器学习的最新创新。随着 ChatGPT 的发布,这种强大的新型人工智能在 2022 年 11 月风靡一时。

        对于那些足够开明的人生活在人工智能嗡嗡声和技术新闻周期之外的世界,ChatGPT 是一个在名为 GPT-3 的 LLM 上运行的聊天界面(在撰写本文时现已升级到 GPT-3.5 或 GPT-4)。

        如果您使用过ChatGPT,很明显这不是AOL Instant Messenger的传统聊天机器人或信用卡的客户服务所能比拟的。

 

三、是什么让LLM“大”?

        当我听到“大型语言模型”一词时,我的第一个问题是,这与“常规”语言模型有何不同?

        语言模型比大型语言模型更通用。就像所有的正方形都是矩形,但不是所有的矩形都是正方形。所有LLM都是语言模型,但并非所有语言模型都是LLM

        

         大型语言模型是一种特殊类型的语言模型。 LLM是一种特殊类型的语言模型,但是是什么使它们与众不同呢?

        有 2 个关键属性将 LLM 与其他语言模型区分开来。一个是定量的,一个是定性的。

  1. 数量上讲,LLM的区别在于模型中使用的参数数量。目前的LLM有10-100亿个参数[1]。
  2. 从质量上讲,当语言模型变得“大”时,就会发生一些非凡的事情。它表现出所谓的涌现特性,例如零镜头学习[1]。这些属性似乎在语言模型达到足够大的规模时突然出现。

四、什么是零镜头学习(zero-shot learn)

        GPT-3(和其他LLM)的主要创新是它能够在各种情况下进行零镜头学习[2]。这意味着 ChatGPT 可以执行任务,即使它没有经过明确的训练来执行任务

        虽然这对我们高度进化的人类来说可能没什么大不了的,但这种零镜头学习能力与之前的机器学习范式形成了鲜明的对比。

        以前,模型需要根据其目标任务进行显式训练,以获得良好的性能。这可能需要 1k-1M 预标记的训练示例。

        例如,如果您希望计算机进行语言翻译、情感分析和识别语法错误。这些任务中的每一个都需要一个在大量标记示例上训练的专用模型。然而,现在,LLM可以在没有明确培训的情况下做所有这些事情

五、LLM如何工作?

        用于训练大多数最先进的LLM的核心任务是单词预测。换句话说,给定一个单词序列,下一个单词的概率分布是什么

        例如,给定序列“听你的____”,最有可能的下一个词可能是:心脏,肠道,身体,父母,奶奶等。这可能类似于下面显示的概率分布。

       有趣的是,这与过去训练许多(非大型)语言模型的方式相同(例如GPT-1)[3]。然而,出于某种原因,当语言模型超过一定大小(比如~10B参数)时,这些(紧急)能力,如零镜头学习,就会开始出现[1]。

        虽然没有明确的答案为什么会发生这种情况(目前只是猜测),但很明显,LLM是一项强大的技术,具有无数潜在的用例。

六、使用LLM的3个级别

        现在我们转向如何在实践中使用这项强大的技术。虽然有无数潜在的LLM用例,但在这里我将它们分为3个级别,按所需的技术知识和计算资源排序。我们从最容易获得的开始。

6.1 第 1 级:快速工程

        在实践中使用LLM的第一个层次是快速工程,我将其定义为开箱即用LLM的任何使用,即不更改任何模型参数。虽然许多有技术倾向的人似乎对快速工程的想法嗤之以鼻,但这是在实践中使用LLM(技术和经济上)的最容易获得的方法。

        进行快速工程有两种主要方法:简单方法和不太简单的方法

        简单的方法:ChatGPT(或其他方便的LLM UI) — 这种方法的主要优点是方便。像 ChatGPT 这样的工具提供了一种直观、免费和无代码的方式来使用 LLM(没有比这更容易的了)。

        然而,便利往往是有代价的。在这种情况下,这种方法有两个主要缺点首先是缺乏功能。例如,ChatGPT 不容易使用户能够自定义模型输入参数(例如温度或最大响应长度),这些参数是调制 LLM 输出的值。其次,与 ChatGPT UI 的交互不能轻易自动化,因此可以应用于大规模用例。

        虽然这些缺点对于某些用例来说可能是交易破坏者,但如果我们进一步采取及时的工程设计,两者都可以得到改善。

        不太容易的方法:直接与LLM互动 - 我们可以克服 ChatGPT 的一些缺点,通过编程接口直接与 LLM 交互。这可以通过公共API(例如OpenAI的API)或在本地运行LLM(使用Transformers等库)。

        虽然这种进行快速工程的方式不太方便(因为它需要编程知识和潜在的API成本),但它提供了一种可定制,灵活且可扩展的方式来在实践中使用LLM。本系列的后续文章将讨论执行此类提示工程的付费和免费方法。

        尽管快速工程(如此处定义)可以处理大多数潜在的LLM应用程序,但依赖于通用模型,开箱即用可能会导致特定用例的性能欠佳。对于这些情况,我们可以进入使用LLM的下一个级别。

6.2 第 2 级:模型微调

        使用LLM的第二个层次是模型微调,我将定义为采用现有的LLM,并通过更改至少1个(内部)模型参数(即权重和偏差)来针对特定用例对其进行调整。在这个类别中,我还将在这里将迁移学习归为一类,即使用现有LLM的某些部分来开发另一种模型。

        微调通常包括 2 个步骤。第 1 步:获得预先训练的 LLM。第 2 步:更新给定(通常为 1000 个)高质量标记示例的特定任务的模型参数。

        模型参数定义了LLM对输入文本的内部表示。因此,通过调整特定任务的这些参数,内部表示会针对微调任务进行优化(或者至少是这样的想法)。

        这是一种强大的模型开发方法,因为相对较少的示例和计算资源可以产生出色的模型性能

        然而,缺点是,它比快速工程需要更多的技术专长和计算资源。在以后的文章中,我将尝试通过回顾微调技术和分享示例 Python 代码来遏制这种缺点。

        虽然快速的工程和模型微调可以处理99%的LLM应用程序,但在某些情况下必须走得更远。

6.3 第3级:建立自己的LLM

        在实践中使用LLM的第三种也是最后一种方法是建立自己的LLM。在模型参数方面,这是您从头开始提出所有模型参数的地方。

        LLM主要是其训练数据的产物。因此,对于某些应用程序,可能需要为模型训练策划自定义的高质量文本语料库,例如,用于开发临床应用程序的医学研究语料库。

        这种方法的最大优点是您可以针对您的特定用例完全自定义LLM。这是最大的灵活性。然而,通常情况下,灵活性是以牺牲便利为代价的。

        由于LLM性能的关键是规模,因此从头开始构建LLM需要大量的计算资源和技术专长。换句话说,这不会是一个单独的周末项目,而是一个完整的团队,以7-8F的预算工作数月甚至数年。

        尽管如此,在本系列的后续文章中,我们将探讨从头开始开发LLM的流行技术。

七、结论

        虽然现在关于LLM的炒作绰绰有余,但它们是人工智能领域的强大创新。在这里,我提供了关于LLM是什么的入门知识,并构建了它们如何在实践中使用。本系列的下一篇文章将提供OpenAI的Python API的初学者指南,以帮助快速启动您的下一个LLM用例。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

面试题更新之-css中link和@import的区别

文章目录 导文link是什么?import是什么?css中link和import的区别 导文 面试题更新之-css中link和import的区别 link是什么? CSS Link是用于将外部CSS文件链接到HTML文档中的HTML标签。通过使用CSS Link标签,可以将外部的CSS样式表…

游戏测试与策划的那些事儿

作为一个游戏测试员,和程序、前端、策划之间的沟通交流在所难免。今天就来吐槽一下子啦~ 作为游戏测试的核心机密,可不能被他们知道我们在背后吐槽啦~ 游戏测试:XXX,刚测完这数据怎么和之前的不一样了? 策划&#xff1…

Python分布式任务队列Celery

一、分布式任务队列Celery介绍 Python celery是一个基于Python的分布式任务队列,主要用于任务的异步执行、定时调度和分布式处理。它采用了生产者/消费者模式,通过消息中间件实现多个工作者进程之间的协作。 Python celery的架构主要包括以下组件&…

new和不用new调用构造函数,有什么区别?

new和不用new的构造函数,有什么区别? 下面从有return和无return,如果在有return的情况下,return原始类型数据和return引用应用类型数据等几方面进行论述👍👍👍 区别1:当没有return时 functio…

Bus消息总线(在Spring Cloud整合Bus(idea19版本)

Bus消息总线 所谓消息总线Bus,即我们经常会使用MQ消息代理构建一个共用的Topic,通过这个Topic连接各个微服务实例,MQ广播的消息会被所有在注册中心的微服务实例监听和消费。换言之就是通过一个主题连接各个微服务,打通脉络 Spring Cloud Bus …

FastDDS 源码剖析:DataWriter分析

目录 DataWriter分析 DataWriter 类分析 DataWriterImpl 类分析 关键函数分析 DataWriter分析 DataWriter 类分析 DataWriter 类是 Fast DDS 库中的一个重要类,它用于实现 DDS(Data Distribution Service)发布-订阅通信模型中的数据写入…

Git #01 操作记录

本篇内容 0. 前期配置1. 仓库1.1 上传本地代码到远程仓库 0. 前期配置 请提前配置好 git 的全局用户名: # xin:账号名 $ git config --global user.name "xin" # xin163.com:账号绑定的邮箱地址 $ git config --global user.emai…

单片机能否替代PLC实现控制和自动化系统?

是的,单片机可以在某些情况下替代PLC,但在其他情况下可能并不适用。以下是对这个问题的详细解释: 我这里刚好有嵌入式、单片机、plc的资料需要可以私我或在评论区扣个6 灵活性和可编程性:PLC相对于单片机来说更具有灵活性和可编…

DolphinScheduler minio(S3支持)开启资源中心

DolphinScheduler 如果是在3.0.5 及之前的版本,没办法支持 S3 的协议的 当你按照文档配置之后,运行启动之后,在master 和 worker 节点,都会出现 缺包的依赖问题。 那这个问题在什么版本修复了呢? 3.0.6... 那 3.0.6 …

每个前端开发者都应知道的10个实用网站

微信搜索 【大迁世界】, 我会第一时间和你分享前端行业趋势,学习途径等等。 本文 GitHub https://github.com/qq449245884/xiaozhi 已收录,有一线大厂面试完整考点、资料以及我的系列文章。 快来免费体验ChatGpt plus版本的,我们出的钱 体验地…

sprinboot企业客户信息反馈平台

企业客户信息反馈平台的开发运用java技术,MIS的总体思想,以及MYSQL等技术的支持下共同完成了该平台的开发,实现了企业客户信息反馈管理的信息化,使用户体验到更优秀的企业客户信息反馈管理,管理员管理操作将更加方便&a…

canal番外篇-otter

前置知识点 主从复制binlogcanal正则dockerjava 前置工具 dockerotter-all 场景描述(增量同步) 目前项目中使用的是mysql5.5,计划升级为mysql8.1,版本跨度较大,市面上可靠工具选择较少。otter符合预期&#xff0c…

3Ds max入门教程:为男性角色创建服装T 恤

推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 3ds Max 角色服装教程 在本 3ds Max 教程中,我们将为角色模型创建一个简单的 T 恤。我们提供了一个“human_figure.obj”文件供您导入模型。因此,本教程将重点介绍的是创建服装&…

【VTK】VTK 显示小球例子,在 Windows 上使用 Visual Studio 配合 Qt 构建 VTK

知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 关于更多此例子的资料,可以参考:【Visual Studio】在 Windows 上使用 Visual Studio 配合 Qt 构建 VTK。 文章目录 版本环境VTKTest.…

【机器人模拟-01】使用URDF在中创建模拟移动机器人

一、说明 在本教程中,我将向您展示如何使用通用机器人描述格式 (URDF)(机器人建模的标准 ROS 格式)创建模拟移动机器人。 机器人专家喜欢在构建机器人之前对其进行模拟,以测试不同的算法。您可以想象,使用物理机器人犯错的成本可能很高(例如,将移动机器人高速…

SPSS方差分析

参考文章 导入准备好的数据 选择分析方法 选择参数 选择对比,把组别放入因子框中,把红细胞增加数放进因变量列表 勾选“多项式”,等级取默认“线性” ,继续 接着点击“事后比较”,弹出对话框,勾选“LSD” …

华为OD机试真题 JavaScript 实现【分糖果】【2022Q2 200分】,附详细解题思路

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、JavaScript算法源码六、效果展示 专栏导读 本专栏收录于《华为OD机试(JavaScript)真题(A卷B卷)》。 刷的越多,抽中的概率越大,每一题都…

Windows Bat实现延时功能的几种常见方式

文章目录 1. 使用ping命令实现延时2. 使用timeout命令实现延时3. 使用choice命令实现延时4. 使用for循环实现延时5. 使用sleep命令实现延时6. 使用VBScript.sleep实现延时总结 在 bat批处理中实现延时功能的几种常用方式 1. 使用ping命令实现延时 使用ping命令可以实现延时的…

mysql备份,视图

一、备份与还原 1.设计样例表 CREATE DATABASE booksDB; use booksDB; --创建表book2 CREATE TABLE books(bk_id INT NOT NULL PRIMARY KEY,bk_title VARCHAR(50) NOT NULL,copyright YEAR NOT NULL); --创建表authors CREATE TABLE authors(auth_id INT NOT NULL PRIM…

java学习路程之篇六、知识点、算数运算符、自增自减运算符、类型转换

文章目录 1、算术运算符2、自增自减运算符3、类型转换 1、算术运算符 2、自增自减运算符 3、类型转换