LLM(一):大语言模型

自2022年,ChatGPT发布之后,大语言模型(Large Language Model),简称LLM掀起了一波狂潮。作为学习理解LLM的开始,先来整体的理解一下大语言模型

一,发展历史

大语言模型的发展历史可以追溯到早期的语言模型和机器翻译系统,但其真正的起点可以说是随着深度学习技术的兴起而开始。

1.1 统计语言模型

在深度学习技术出现之前,语言模型主要基于传统的统计方法,也称为统计语言模型(SLM)

SLMs是基于统计语言方法开始,基本思想是基于马尔可夫假设建立词预测模型,如根据最近的上下文预测下一个词。具有固定上下文长度nnn的SLM也称为n−gramn-gramn−gram语言模型。

然而这些模型虽然简单,但在处理长文本序列时存在着词汇稀疏性和上下文理解能力有限等问题。

1.2 神经语言模型

随着神经网络技术的发展,Bengio等人于2003年提出了神经语言模型,将语言模型建模问题转化为了一个神经网络的学习问题。

循环神经网络(RNN)和长短期记忆网络(LSTM)的提出进一步增强了神经语言模型对文本序列的建模能力。这些模型能够捕捉到文本序列中的长程依赖关系,从而提高了语言模型的性能

2013年,Google提出了Word2Vec模型,通过词嵌入(Word Embedding)的方式将单词映射到连续的向量空间中,提高了语言模型对单词语义的理解能力。

2017年,谷歌提出了Transformer模型,该模型通过自注意力机制(Self-Attention)实现了并行计算,大大提高了模型的训练速度。

1.3 预训练语言模型

2018年,OpenAI发布了第一个版本的GPT)模型,利用Transformer结构进行预训练,这是首个成功利用大规模无监督学习方法来预训练通用语言表示的模型。

2018年,Google提出了BERT模型,与GPT的区别是GPT采用了单向的自回归方式进行预训练,而BERT通过MLM和NSP实现双向上下文建模。使得预训练语言模型的性能得到了进一步的提升

随后就激发了后续一系列的预训练模型的发展,如XLNet、RoBERTTa、T5、 GPT-2、GPT-3、GPT 3.5、GPT-4 等等

而大语言模型也是在此过程中被定义下来的

二,什么是大语言模型

2.1 定义

从大语言模型字面意思来理解,“语言”和“模型”很好理解,就是代表着在自然语言处理上的AI模型

而这个大指的是神经网络很大,包括模型的参数数量、训练数据量、计算资源等

参数数量

大语言模型通常含有数十亿到数千亿个参数,使得模型能够有更强的语言理解、推理和生成能力

如果只通过 GPT(生成式预训练 Transformer)模型的演进规模来看:

2018 年发布的 GPT-1 包含 1.17 亿个参数,9.85 亿个单词。 2019年发布的GPT-2 包含15亿个参数。 2020年发布的GPT-3 包含1750亿个参数。 ChatGPT 就是基于这个模型。 2023年发布的GPT-4 据爆料它可能包含1.8万亿个参数。

训练数据

训练大语言模型通常需要大规模的文本语料库。这些语料库可以包括来自互联网、书籍、新闻等各种来源的文本数据,从而确保模型能够学习到丰富和多样化的语言知识。

一些常用语训练大语言模型的语料库如下:

如GPT-3,它是在混合数据集上进行训练的;PaLM使用了一个有社交媒体对话、过滤后的网页、书籍、Github、多语言维基百科和新闻组成的预训练数据集

计算资源

训练大型语言模型需要大量的计算资源,包括高性能的计算机集群、大容量的存储设备以及高速的网络连接。

前一段时间有个特别火的新闻是Sam Altman筹资7万亿美元建芯片帝国

7万亿美元,是全球GDP的10%,大约是美国GDP的1/4,或者2/5个中国的GDP。

另外,英伟达价格高昂但依然一卡难求的高性能GPU H100,长期霸占着LLM领域的热门话题,可以说,英伟达垄断了目前的AI算力市场。

马斯克甚至戏言:GPU现在比drug还紧俏

2.2 大语言模型训练方式

现有的神经网络在进行训练时,一般基于反向传播算法(BP算法),先对网络中的参数进行随机初始化,再利用随机梯度下降(SGD)等优化算法不断优化模型参数。

大语言模型的训练通常采用两阶段方法:预训练(pre-training)和微调(fine-tuning)

预训练(Pre-training):

  • 在预训练阶段,模型使用大规模无监督的文本数据进行训练,学习文本数据中的语言表示。
  • 通常采用自监督学习方法,即使用文本数据自身作为标签来训练模型。
  • 训练过程中,模型通过最小化损失函数来优化参数,以使得模型能够更好地表示文本中的语义和语法信息。

微调(Fine-tuning):

  • 在预训练完成后,可以将预训练好的模型参数应用于特定的下游任务,如文本生成、文本分类、情感分析等。
  • 在微调阶段,通常使用带标签的数据集对模型进行进一步训练,以适应特定任务的需求。微调可以在预训练模型的顶部添加一个或多个额外的层,并使用标签数据对这些层进行训练。
  • 微调的目标是调整模型参数,使得模型能够更好地适应特定任务的特征和标签,从而提高任务性能。

在微调阶段,模型在与目标任务或领域相关的更具体、更小的数据集上进一步训练。这有助于模型微调其理解,并适应任务的特殊要求。

三,预训练

3.1 数据收集及处理

3.1.1 数据来源

无论是怎样的模型,数据的质量都是相当重要的。现有的大语言模型主要混合各种公共文本数据集作为预训练语料库。如下为一些代表性模型的预训练数据来源的分布情况

语料库的来源可以广义分为通用文本数据专用文本数据。通用指的就是如网页、书籍和对话文本等广泛可获取的,可以增强模型的泛化能力;专用文本数据就是在想让模型更加专注某一专业领域时所用的,如科学数据、代码等。

如上图中的模型中,就大部分都是使用了通用的预训练数据

3.1.2 数据预处理

收集数据之后,由于不确定性,所以需要对数据进行预处理,尤其是噪声、荣誉、无关或有害的数据。预处理过程如下:

(1) 质量过滤(Quality Filtering) 删除低质量数据,常采用基于分类器基于启发式两种方法 分类器就是使用用高质量数据训练好的二分类的模型来对数据进行分类,不过可能会删除方言、口语和社会语言的高质量文本。 基于启发式就是设计一组精心设计的规则来消除低质量文本,如基于语言、生成文本的评估度量、统计特征、关键词等

(2)去重(De-duplication) 重复数据会降低语言模型的多样性,所以需要进行去重处理。 从数据颗粒上来说,可以分为在句子级、文档级和数据集级等进行去重;

(3)隐私去除(Privary Reduction) 如涉及敏感个人信息的隐私内容,也是需要去除的,很简单有效的就是用基于如姓名、地址、电话号码等关键词的方法

(4)分词(Tokenization) 非常关键的步骤,将原始文本分割成词序列,在之前的文章中有过相关介绍。在工程领域来说,为语料库专门设计一个分词器可能会更有效

3.2 架构

3.2.1 编码器-解码器架构(Encoder-Decoder)

如传统Transformer 模型就是建立在此结构上。它使用了6层的Encoder和Decoder

3.2.2 因果编码器架构(Causal decoder)

这时当前主流使用的,采用单向注意力掩码,以确保每个输入标记只能关注过去的标记和它本身。输入输出标记通过解码器以相同的方式处理

典型的模型有 GPT1/23, OPT, BLOOM, Gopher.

3.2.3 前缀解码器架构(Prefix decoder)

修正了因果解码器的掩码机制,以使其能够对前缀标记执行双向注意力,并仅对生成的标记执行单向注意力。 这样与编码器-解码器架构类似,前缀解码器可以双向编码前缀序列并自回归地逐个预测输出标记,其中在编码和解码过程中共享相同的参数。

总的来说,Encoder-Decoder适用于序列到序列的任务,Causal Decoder适用于需要生成自回归序列的任务,而Prefix Decoder适用于需要根据特定前缀生成序列的任务。

3.3 模型训练

在数据处理好,模型搭建好之后,就要开始对模型进行训练。

四,微调和强化学习

在预训练后,大语言模型可以获得解决各种任务的通用能力。然而,还可以通过特定目标进一步调整,也就是微调(Instruction Tuning)

4.1 指令微调

通过在特定的指令性任务数据集上进行训练,提高模型对于指令类输入的理解和响应。

指令的意思,举个例子,对聊天机器人的指令,需要包括如“今天天气如何”和对应的回答,供模型学习

也就是说需要包含明确指令的数据集,一个指令需要包括一个任务描述、一个输入输出对以及少量实例(可选)。

常用的指令实例格式化方法有格式化已有的数据集还有格式化人类需求

指令微调对模型的性能改进和任务泛化能够起到很好的作用

4.2 对齐微调

大语言模型有时可能表现出意外的行为,例如制造虚假信息、追求不准确的目标,以及产生有害的、误导性的和偏见性的表达。为了避免这些意外行为,研究提出了人类 对齐,使大语言模型行为能够符合人类的期望也就是对齐微调

在预训练阶段使用的训练语料库是没有对模型的主观定性评估的。所以可以在使用人类反馈的数据进行微调,这个过程称为强化学习

五,应用

大语言模型作为具有广泛应用的变革工具而受到重视。

  • 文本生成:这些模型具有理解上下文、含义和语言的微妙复杂性的固有能力。因此,他们可以生成连贯且上下文相关的文本。
  • 问答与信息检索:大语言模型在问答和信息检索领域正在快速发展。他们理解人类语言的卓越能力使他们能够从庞大的数据存储库中提取相关细节。
  • 情感分析与意见挖掘:了解人类的情感和观点在不同的环境中都具有巨大的意义,从塑造品牌认知到进行市场分析。像在社交媒体监控和品牌认知分析领域的应用
  • 辅助代码生成:如GitHub Copilot、通义灵码

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

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

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

相关文章

【讲解下目标追踪】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

每日一题——环形链表的约瑟夫问题

题目链接: 环形链表的约瑟夫问题_牛客题霸_牛客网 题目: 描述 编号为 1 到 n 的 n 个人围成一圈。从编号为 1 的人开始报数,报到 m 的人离开。 下一个人继续从 1 开始报数。 n-1 轮结束以后,只剩下一个人,问最后留…

idm线程越多越好吗 idm线程数多少合适 IDM百度云下载 IDM下载器如何修改线程数

IDM(Internet Download Manager)是一款流行的网络下载器,它支持多线程下载,这意味着它可以同时建立多个连接来下载文件的不同部分,从而提高下载速度。我们在使用IDM的时候总是有很多疑问,今天我们学习IDM线…

【形而上学】数据治理之元数据——用数据的数据管理数据

【形而上学】数据治理之元数据——用数据的数据管理数据 一、都柏林核心元数据元素集二、元数据2.1 什么是元数据2.2 元数据类型2.3 实现元数据的技术 三、元数据相关标准 一、都柏林核心元数据元素集 1995年3月,NCSA与OCLC共同在俄亥俄州都柏林市举行了一次仅有受邀…

【智能优化算法详解】粒子群算法PSO量子粒子群算法QPSO

1.粒子群算法PSO 博主言简意赅总结-算法思想:大方向下个体自学习探索群体交流共享 对比适应度找到最优点 背景 粒子群算法,也称粒子群优化算法或鸟群觅食算法(Particle Swarm Optimization), 缩写为 PSO。粒子群…

Linux:文本编辑器 - vim

Linux:文本编辑器 - vim vim基本操作普通模式模式切换移动光标复制粘贴删除替换撤销 底行模式行号查找 vim基本操作 Vim(Vi Improved)是一款功能强大的文本编辑器,是Unix/Linux系统中广泛使用的编辑器之一。它源于上世纪70年代开发的Vi编辑器&#xff0…

C#学习笔记9:winform上位机与西门子PLC网口通信_上篇

今日继续我的C#学习笔记,今日开始学习打开使用千兆网口来进行与西门子PLC的通信: 文章提供整体代码、解释、测试效果截图、整体测试工程下载: 主要包含的知识有:下载NuGet程序包、西门子PLC及通信协议、搭建虚拟的S7通信仿真环境…

为了进阿里拿Offer,逼得我两个月吃透了这些Java高级面试题解析,终于上岸

JVM与调优 21 题及答案解析 JVM的内存结构。 JVM方法栈的工作过程,方法栈和本地方法栈有什么区别。 JVM的栈中引用如何和堆中的对象产生关联。 可以了解一下逃逸分析技术。 gc的常见算法 CMS以及G1的垃圾回收过程,CMS的各个阶段哪两个是Stop the wo…

51.网络游戏逆向分析与漏洞攻防-角色管理功能通信分析-角色选择的模拟与截取

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果 内容参考于:如果看不懂、不知道现在做的什么,那就跟着做完看效果&…

制造业、能源等传统行业进行数字化转型时要注意哪些问题?

制造业、能源等传统行业在进行数字化转型时需要注意以下几个关键问题: 1、明确转型目标和战略规划:企业需要根据自身的业务特点、市场需求和长远发展目标,制定清晰的数字化转型战略。包括确定转型的重点领域、预期成果、时间表和资源投入。 …

阿里云云效CI/CD配置

1.NODEJS项目流水线配置(vue举例) nodejs构建配置 官方教程 注意:下图的dist是vue项目打包目录名称,根据实际名称配置 # input your command here cnpm cache clean --force cnpm install cnpm run build 主机部署配置 rm -rf /home/vipcardmall/frontend/ mkdir -p /home/…

计算分数和-第12届蓝桥杯选拔赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第48讲。 计算分数和&#…

3 突破编程_前端_SVG(rect 矩形)

1 rect 元素的基本属性和用法 在SVG中&#xff0c;<rect> 元素用于创建矩形。 <rect> 元素有一些基本的属性&#xff0c;可以用来定义矩形的形状、位置、颜色等。以下是这些属性的详细解释&#xff1a; x 和 y &#xff1a;这两个属性定义矩形左上角的位置。 x …

[dvwa] sql injection(Blind)

blind 0x01 low 1’ and length(version()) 6 # syntax: substr(string , from<start from 1>, cut length) 1’ and substr(version(),1,1) ‘5’ # 1’ and substr(version(),2,1) ‘.’ # 1’ and substr(version(),3,1) ‘7’ # 1’ and substr(version(),4,…

leetcode 322

leetcode 322 题目 例子 思路 记忆化搜索&#xff0c;使用数组&#xff0c;记录val的最少硬币数量&#xff1b; 递归加bfs; 代码实现 #include <vector> #include <climits> // For INT_MAX #include <algorithm> // For minclass Solution { public:int…

C#下Httpclient post请求获取令牌

1.postman测试ok 2.C#代码 public static async Task<string> testGetToken(string URL, string param){string responseBody "eee";//using (var clientHandler new HttpClientHandler()){ var handler new HttpClientHandler();handler.ServerCertificat…

响应实践!赛宁网安亮相第二届全国先进技术成果转化大会

4月8日&#xff0c;第二届全国先进技术成果转化大会&#xff08;以下简称“大会”&#xff09;在苏州隆重举行。大会由江苏省国防科学技术工业办公室、苏州市人民政府、先进技术成果长三角转化中心主办。赛宁网安作为全球一流数字孪生靶场服务商&#xff0c;携数字孪生靶场、网…

element-ui的按需引入报错解决:MoudleBuildFailed,完整引入和按需引入

官网&#xff1a; Element - The worlds most popular Vue UI framework 1.完整引入 &#xff08;1&#xff09;下载&#xff1a; npm i element-ui -S &#xff08;2&#xff09;引入&#xff1a; 在 main.js 中写入以下内容&#xff1a; import Vue from vue; impor…

Linux进阶篇:centos7扩展root分区:LVM应用案例

centos7扩展root分区&#xff1a;LVM应用案例 当服务器根分区或者是root分区存储空间快用完的时候&#xff0c;并且重要的数据都在root分区下&#xff0c;当如何应对&#xff0c;没关系坐好&#xff0c;分分钟解决它&#xff0c;我们可以进行分区扩容。 一 添加一块新的硬盘 …

鸿蒙应用开发之图案密码锁组件

前面学习了导航组件,现在来学习另一个密码设置和验证组件,这种组件比较常用。因为当用触屏手机之后,屏幕上就可以滑动操作,比普通PC电脑要多一些功能了。早前的密码都是输入数字,没有滑动输入九宫格的密码。 大体如下面的界面: 采用这种密码,一般情况下是不用记住数字,…