LLM及GPT知识点

news2024/9/27 7:26:50

工欲善其事必先利其器,在了解大语言模型和GPT之前先要了解基本概念。

  1. LLM
    Large Language Model (LLM) 即大型语言模型,也叫大语言模型,是一种基于深度学习的自然语言处理(NLP)模型,它能够学习自然语言的语法和语义,从而生成人类可读的文本。
    所谓「语言模型」,就是用于处理语言文字(或者符号体系,编程语言)的 AI 模型,发现其中规律,可以根据提示(prompt),自动生成符合语言规律的内容。
    LLM 通常基于神经网络模型,使用大规模的语料库进行训练,比如使用互联网上的海量文本数据。这些模型通常拥有数十亿到数万亿个参数,能够处理各种自然语言处理任务,如自然语言生成、文本分类、文本摘要、文本翻译、语音识别等。
    例如,时下火爆的 ChatGPT 就是基于 OpenAI 开发的 GPT (Generative Pre-trained Transformer)模型,而 GPT 模型就是一种 LLM 模型。

  2. GPT
    GPT的全称是Generative Pre-Trained Transformer(生成式预训练Transformer模型)是一种基于[互联网]的、可用数据来训练的、文本生成的深度学习模型。GPT能处理的任务包括:
    NLU:Natural Language Understanding,NLG:Natural Language Generating。
    GPT 是如何工作的?
    GPT 即 Generative Pre-trained Transformer,直译为「生成式预训练转换器」。是由OpenAI 提出的一种基于 Transformer 模型的强大神经网络语言模型。
    而 Transformer 模型 Google 提出的一种基于自注意力机制来提高训练速度的神经网络模型,用于处理输入序列之间长距离依赖关系。通常由多个编码器(encoder)和解码器(decoder)组成(Transformer 模型详细信息可以参考:十分钟理解 Transformer)。
    GPT 的工作通常分为两个阶段:预训练阶段(pre-trainning)和微调阶段(fine-tune)。
    预训练阶段:GPT 利用大量未标注的语料(如网上的文章、维基百科、书籍、社交媒体等)来训练语言模型。通常是把文本转换成 token(这个过程称为:Tokenization,OpenAI 使用的 Tokenization 算法叫:BPE),
    然后再把 token 通过多层 Transformer 转换成一系列向量表示形式,这个过程叫 Embedding,生成的向量是一系列浮点数,表示 token 的含义以及 token 的上下文信息。最终文本会被转换成一个由向量组成的矩阵,即向量数据库(Vector Database),其中每一行对应于一个 token 的向量表示。
    预训练得到的向量数据库包含了大量的语言知识和表示能力,可以作为自然语言或编程语言处理任务的重要基础,例如在文本分类、生成、理解等各种任务中都能发挥重要作用。
    微调阶段:GPT 对预训练好的语言模型进行微调,将其迁移到各种有监督的 NLP 任务,并对参数进行 fine tune。有监督的 NLP 任务指的是需要标注数据(例如问题和答案)来进行训练和评估的任务。
    当 GPT 处理文本时,首先会把文本转换成 token,然后再把 token 通过多层 Transformer 转换成一系列向量表示形式,即 Embedding,然后在预训练中生成的向量数据库中进行处理,生成输出文本上每个位置的向量表示,并将其作为下一步的生成输入,最终生成有所有的输出。
    在输出生成过程中,GPT 还使用了一种称为自回归模型(Autoregressive Model)的技术。自回归模型是指在生成序列时,每个时刻只考虑之前生成的内容,而不考虑后面未生成的内容。这意味着每个序列值都依赖于之前的值,因此生成的序列会具有连贯性和逻辑性。

  3. Transformer
    transformer是一个利用注意力机制来提高模型训练速度的模型。trasnformer可以说是完全基于自注意力机制的一个深度学习模型,因为它适用于并行化计算,和它本身模型的复杂程度导致它在精度和性能上都要高于之前流行的RNN循环神经网络。
    那什么是transformer呢?
    你可以简单理解为它是一个黑盒子,当我们在做文本翻译任务是,我输入进去一个中文,经过这个黑盒子之后,输出来翻译过后的英文。

    那么在这个黑盒子里面都有什么呢?

    里面主要有两部分组成:Encoder 和 Decoder。

    当我输入一个文本的时候,该文本数据会先经过一个叫Encoders的模块,对该文本进行编码,然后将编码后的数据再传入一个叫Decoders的模块进行解码,解码后就得到了翻译后的文本,对应的我们称Encoders为编码器,Decoders为解码器。
    那么编码器和解码器里边又都是些什么呢?
    细心的同学可能已经发现了,上图中的Decoders后边加了个s,那就代表有多个编码器了呗,没错,这个编码模块里边,有很多小的编码器,一般情况下,Encoders里边有6个小编码器,同样的,Decoders里边有6个小解码器。

    我们看到,在编码部分,每一个的小编码器的输入是前一个小编码器的输出,而每一个小解码器的输入不光是它的前一个解码器的输出,还包括了整个编码部分的输出。

  4. 预训练模型
    自带的最原始模型叫预训练模型,可以根据前文预测下一个字。它使用特殊的神经网络模型transformer来训练,训练数据来源于海量的互联网数据。

  5. fine tuning
    微调,为了让模型能够根据人们的指令进行输出,我们进行微调,得到的模型叫instructGPT。为了让模型能够跟人对话,我们同样进行微调出来的模型就是类似chatGPT这样的模型,OpenAI也开放了fine tuning的接口来微调自己的模型,但自己提供的用于微调的数据相对于预训练模型的数据微乎其微,所以做了微调不能增加模型的知识,一般只是用来做分类、输出格式调整(如问出生年份,就不要要把月日也带上)。
    在模型调优中,SFT(Supervised Fine-Tuning)是指使用预先训练好的模型,并在少量带标签的数据上进行微调的技术。这种技术常用于深度学习领域,特别是自然语言处理任务。
    在模型调优中,**SFT的流程**通常包括以下步骤:
    a. 选取预训练模型:选择一个预先训练好的模型作为基础模型,例如BERT、GPT等。
    b. 准备数据:准备一个小规模的带标签的数据集,这些数据应该与你要解决的具体任务相关。
    c. 冻结模型参数:在预训练模型的基础上,冻结除了最后一层之外的所有参数,这些参数在微调过程中不会发生改变。
    d. 训练最后一层:使用带标签的数据集训练模型的最后一层,使其适应特定的任务。
    e. 微调整个模型:解冻所有冻结的参数,并使用带标签的数据集对整个模型进行微调。
    f. 评估模型性能:使用测试集评估微调后的模型性能,确保模型在测试集上表现良好。
    SFT在模型调优中的应用可以帮助提高模型的性能和准确性,使其更好地适应特定的任务或领域。这种技术在大规模预训练模型的基础上,通过利用少量的带标签数据,能够快速有效地对模型进行微调,从而在各种自然语言处理任务中取得良好的效果。

  6. embedding
    可以做问答系统或者让chatGPT有记忆,也是就是输入你的知识库或者历史记录,当你提问的时候,GPT能快速找到资料和你的问题一起输入给chatGPT,广义的embedding包括embedding模型、embedding数据库、embedding距离计算等内容。OpenAI也开放了相关API可上传相关资料。

  7. 提示词prompt
    输入给chatGPT的内容就是提示词,技巧包括:让她扮演角色(如小学老师不要以科学家口吻回答)、举例子(few shot)、chain of thought思维链、tree of thought等,提示词是否足够好直接影响输出的质量,所以也就有了提示词工程这个说法。

  8. 自治系统
    自己管理自己的系统不需要人工干预,需要把各种外部工具、GPT模型、embedding模型、embedding数据库、prompt模板结合起来形成流水线。可以使用langchain框架设计自己的系统,也可以使用现成的如:autoGPT、babyAGI或者网页版的agentGPT。

  9. 多模态
    GPT多数是提及的是基于文本这个模态,还有些模型是支持其他模态的,如语言、绘图、视频等模态。GPT4就是多模态模型。

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

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

相关文章

【Django】django模板与前端技术(html模板)

文章目录 “python包html”还是“html包python”?1.新建模板2.模板语法3.views.py测试 “python包html”还是“html包python”? 在前端页面中html代码比python多得多,所以一定是html包python最优!于是引出今天的模板。 大体分为三个步骤:…

【Python面试题收录】Python编程基础练习题②(数据类型+文件操作+时间操作)

本文所有代码打包在Gitee仓库中https://gitee.com/wx114/Python-Interview-Questions 一、数据类型 第一题 编写一个函数,实现:先去除左右空白符,自动检测输入的数据类型,如果是整数就转换成二进制形式并返回出结果&#xff1b…

什么是数据标注?

什么是数据标注? 数据标注是在原始数据上添加结构化信息的过程,这些信息通常以标签或元数据的形式存在,目的是让机器能够理解和“学习”数据的特征,从而提高算法的准确性和效率。 数据标注是机器学习和人工智能开发中不可或缺的一…

网络地址转换技术

一、实验日期与地址 1、实验日期:2024年xx月xx日 2、实验地址:xxx 二、实验目的 1、理解源NAT应用场景及原理; 2、掌握NAT Server的配置方法; 3、掌握NAT双出口的配置方法; 4、掌握域内NAT的配置方法。 三、实…

【C++】标准库类型vector

🦄个人主页:修修修也 🎏所属专栏:C ⚙️操作环境:Visual Studio 2022 目录 vector对象集合简介 vector对象集合常用接口(成员函数) 📌vector对象集合模板默认成员函数 🎏vector对象集合模板构造函数 🎏vector对象…

【vue3|第18期】Vue-Router路由的三种传参方式

日期:2024年7月17日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方,还望各位大佬不吝赐教,谢谢^ - ^ 1.01365 = 37.7834;0.99365 = 0.0255 1.02365 = 1377.408…

HarmonyOS入门-状态管理

View(UI):UI渲染,指将build方法内的UI描述和Builder装饰的方法内的UI描述映射到界面。 State:状态,指驱动UI更新的数据。用户通过触发组件的事件方法,改变状态数据。状态数据的改变,引起UI的重新渲染。 装…

<PLC><HMI><汇川>在汇川HMI画面中,如何为UI设置全局样式?

前言 汇川的HMI软件是使用了Qt来编写的,因此在汇川的HMI程序编写过程,是支持使用qt的样式来自定义部件样式的,即qss格式。 概述 汇川的软件本身提供三个系统的style样式,我们可以直接使用,但是,如果系统提供的样式不符合你的需求,那么你可以对其进行修改,或者自己新建…

Pytorch使用教学4-张量的索引

1 张量的符号索引 张量也是有序序列,我们可以根据每个元素在系统内的顺序位置,来找出特定的元素,也就是索引。 1.1 一维张量的索引 一维张量由零维张量构成 一维张量索引与Python中的索引一样是是从左到右,从0开始的&#xff…

读写给大家的AI极简史笔记07读后总结与感想兼导读

1. 基本信息 写给大家的AI极简史:从图灵测试到智能物联 [德]托马斯拉姆齐 著 中国友谊出版公司,2019年9月出版 1.1. 读薄率 书籍总字数??千字,笔记总字数16382字。 读薄率16382??000≈?&a…

如何解决 Nginx 与虚拟现实设备的集成问题?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会! 文章目录 如何解决 Nginx 与虚拟现实设备的集成问题? 如何解决 Nginx 与虚拟现实设备的集成问题? 在当今科技飞速发展的时代,虚拟现实…

钡铼网关实时数据互联,加速IEC104与MQTT云平台对接

随着工业4.0时代的到来,电力系统中的数据采集、监控与远程控制需求日益增长。IEC 104(IEC 60870-5-104)作为国际电工委员会(IEC)制定的电力自动化通信协议,广泛应用于电力系统的状态监测、数据采集和设备控…

硅纪元视角 | Stability AI推出Stable Video 4D,40秒生成8角度动态视频!

在数字化浪潮的推动下,人工智能(AI)正成为塑造未来的关键力量。硅纪元视角栏目紧跟AI科技的最新发展,捕捉行业动态;提供深入的新闻解读,助您洞悉技术背后的逻辑;汇聚行业专家的见解,…

Sqli-labs-master的21—25通关教程

目录 Less-21(闭合) 查询数据库名 查询数据库中的表 查询表中字段名 查询表中数据 Less-22("闭合) 查询数据库名 查询数据库中的表 查询表中字段名 查询表中数据 Less-23 查询数据库名 查询数据库中的表 查询表中字段名 查询表中数据…

基于OSS前端直传的分片上传以及断点续传

一、大文件分片上传 原型 大文件如果直接上传的话由于nginx的限制会导致响应500报错,或者响应时间过长导致响应超时 并且大文件上传有如下缺点 上传时间长: 对于大文件,直接上传可能需要较长时间,特别是在网络速度较慢或不稳定的情况下。这…

深入搞懂Checkpoint调优基础及原理

前言 在执行大量写操作的系统上,调优检查点对于获得良好的性能至关重要。然而,检查点是我们经常发现混淆和配置问题的地方之一,无论是在社区邮件列表中,还是在为客户提供支持和咨询期间。这篇文章旨在解释检查点是什么——目的和数据库如何实现它——以及如何调优它们。 注…

Leetcode—74. 搜索二维矩阵【中等】

2024每日刷题&#xff08;149&#xff09; Leetcode—74. 搜索二维矩阵 实现代码 class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int m matrix.size();int n matrix[0].size();int l 0;int r m * n;int mid -1…

如何解决 Nginx 与无服务器架构的集成问题?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01; 文章目录 如何解决 Nginx 与无服务器架构的集成问题&#xff1f; 如何解决 Nginx 与无服务器架构的集成问题&#xff1f; 在当今的云计算时代&#xff0c;无服务器架构因…

AI有关的学习和python

一、基本概念 AIGC&#xff08;AI Generated content AI 生成内容&#xff09; AI生成的文本、代码、图片、音频、视频。都可以成为AIGC。 Generative AI&#xff08;生成式AI&#xff09;所生成的内容就是AIGC AI指代计算机人工智能&#xff0c;模仿人类的智能从而解决问题…

JAVA中的泛型机制详解

1.泛型的概念 java泛型是java5引入的一个特性&#xff0c;它允许我们为类&#xff0c;接口&#xff0c;方法指定类型参数&#xff0c;从而提供编译时类型安全检查。泛型的本质是参数化类型&#xff0c;即在声明类&#xff0c;接口或者方法时不指定具体的类型&#xff0c;而是使…