LLM及GPT知识点

工欲善其事必先利其器,在了解大语言模型和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.xdnf.cn/news/1488426.html

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

相关文章

汇昌联信科技拼多多怎么样?

汇昌联信科技拼多多怎么样?汇昌联信科技是一家专注于提供电子商务解决方案的公司,其业务涉及多个电商平台,其中就包括了国内知名的电商平台——拼多多。对于汇昌联信科技在拼多多上的表现,我们可以从以下几个方面来进行深入的探讨和分析。 一…

网站用HTTP访问的危害以及如何升级HTTPS访问

在互联网世界中,数据传输的安全性是至关重要的。我们每天都在网络上进行各种操作,从浏览网页、购物到银行转账,每一项活动都涉及敏感信息的传递。然而,在这个过程中,我们的数据可能面临被窃取、篡改或滥用的风险。这正…

git实践汇总【配置+日常使用+问题解决】

**最初配置步骤:** git config --global user.name "yournemae" git config --global user.email "yourmail" git config -l ssh-keygen -t rsa -C “xxx.xxxx.EXTcccc.com” git config --global ssh.variant ssh $ git clone git仓库路径 git…

掌握AJAX技术:从基础到实战

文章目录 **引言****1. 什么是AJAX?****2. AJAX的工作原理**AJAX 示例使用 Fetch API 实现 AJAX **3. 如何在项目中使用AJAX****4. 处理AJAX请求的常见问题****5. AJAX与JSON的结合****6. 使用AJAX框架和库****7. 实战:创建一个动态表单****8. AJAX中的事…

PostgreSQL性能优化之体系结构

本文介绍 PostgreSQL 数据库的体系结构,包括实例结构(进程与内存)、存储结构(物理与逻辑)以及插件式存储引擎。 实例与数据库聚簇 PostgreSQL 使用典型的客户端/服务器(Client/Server)架构&am…

JVM调优与监控命令概览

JVM调优与监控命令概览 1. jps - JVM Process Status Tool2. jstat - JVM Statistics Monitoring Tool3. jmap - JVM Memory Map Tool4. jhat - JVM Heap Analysis Tool5. jstack - Stack Trace for Java Threads6. jinfo - JVM Configuration Information 💖The B…

厚积薄发,详解 IoTeX 2.0 如何推动 DePIN 赛道迈向新台阶

背 景 DePIN 是加密货币行业的一个新兴垂直领域,也是本轮牛市最重要的叙事之一。DePIN 通常通过发行和分配代币来激励参与者,用户可以通过提供资源、维护网络、参与治理等方式获得代币奖励并产生直接的经济收益,从而重新洗牌财富分配方…

安卓嘀嗒清单v7.2.2.2高级版

软件介绍 TickTick是一款轻便高效的任务管理、日程管理(GTD)和时间管理应用,配备强大的记事和提醒功能。你可以在手机、平板、网页等多达11个平台上使用滴答清单记录大小事务、制定工作计划、整理购物清单、设置生日提醒,甚至安排…

分布式相关理论详解

目录 1.绪论 2.什么是分布式系统,和集群的区别 3.CAP理论 3.1 什么是CAP理论 3.2 一致性 3.2.1 计算机的一致性说明 1.事务中的一致性 2.并发场景下的一致性 3.分布式场景下的一致性 3.2.2 一致性分类 3.2.3 强一致性 1.线性一致性 a) 定义 a) Raft算法…

C语言 | Leetcode C语言题解之第290题单词规律

题目: 题解: typedef struct node_t {char *key;char *value;struct node_t* pnext; }NODE_T;typedef struct hash_t {NODE_T** hash_list;int size; }HASH_T;HASH_T *hash_init(int size) {HASH_T *hash (HASH_T *)malloc(sizeof(HASH_T));if(NULL h…

蚂蚁集团Android一面凉经(2024)

蚂蚁集团Android一面凉经(2024) 笔者作为一名双非二本毕业7年老Android, 最近面试了不少公司, 目前已告一段落, 整理一下各家的面试问题, 打算陆续发布出来, 供有缘人参考。今天给大家带来的是《蚂蚁集团Android一面凉经(2024)》。 面试职位: 蚂蚁集团-Android/iOS开发工程师-支…

documents4j 将word转pdf文件,本地(Windows)测试没问题,部署到服务器(centos)报错

问题 报错如下&#xff1a; 代码 首先要保证你的Java代码没问题&#xff0c;可以参考下面代码 maven依赖 <!--documents4j--> <dependency><groupId>com.documents4j</groupId><artifactId>documents4j-local</artifactId><versi…

java之继承

继承&#xff08;Inheritance&#xff09;&#xff1a;一个类可以继承另一个类的属性和方法&#xff08;不支持多继承&#xff09;&#xff0c;这个被继承的类称为父类&#xff08;或超类、基类&#xff09;&#xff0c;继承它的类称为子类&#xff08;或派生类&#xff09;。 …

唯众物联网(IOT)全功能综合实训教学解决方案

一、引言 在信息技术日新月异的今天&#xff0c;物联网&#xff08;IoT&#xff09;作为推动数字化转型的关键力量&#xff0c;其触角已延伸至我们生活的方方面面&#xff0c;深刻地重塑了工作模式、生活习惯乃至社会结构的每一个角落。面对这一前所未有的变革浪潮&#xff0c…

CVE-2024-39700 (CVSS 9.9):JupyterLab 模板中存在严重漏洞

在广泛使用的 JupyterLab 扩展模板中发现了一个严重漏洞&#xff0c;编号为CVE-2024-39700 。此漏洞可能使攻击者能够在受影响的系统上远程执行代码&#xff0c;从而可能导致大范围入侵和数据泄露。 该漏洞源于在扩展创建过程中选择“测试”选项时自动生成“update-integratio…

InternLM学习笔记

入门岛 1. Linux基础知识 2. Python 基础知识 from collections import Countertext """ Got this panda plush toy for my daughters birthday, who loves it and takes it everywhere. Its soft and super cute, and its face has a friendly look. Its a …

【redis】一致性hash算法和hash槽

普通hash取模 直接hash(key)%N , N为机器的数量&#xff0c;但不利于集器扩容或者缩容 一致性hash算法和hash槽 一致性hash算法是在redis 分片中使用&#xff0c;hash槽在redis cluster&#xff08;集群&#xff09;中使用 Redis一致性hash&#xff1a;Redis一致性hash是为…

Idea如何查看Maven依赖树

1、使用idea自带的功能查看依赖树 2、使用Maven Helper插件 https://zhuanlan.zhihu.com/p/699663369

指针数组模拟二维数组

有任何不懂的问题可以评论区留言&#xff0c;能力范围内都会一一回答 指针数组&#xff0c;是数组&#xff0c;但是它的元素都是指针。 #define _CRT_SECURE_NO_WARNING #include <stdio.h> int main(void) {int a 3;int b 4;int c 5;int* arr[3] { &a,&b,…

Springboot集成Elasticsearch High Level REST Client实现增删改查实战

获取源码&#x1f6a9; 需要完整代码资料&#xff0c;请一键三连后评论区留下邮箱&#xff0c;安排发送&#xff01;&#xff01;&#xff01;&#x1f916; 什么是High Level REST Client&#xff1f; Elasticsearch 的 High Level REST Client 是一个用于与 Elasticsearch…