手撸 chatgpt 大模型:简述 LLM 的架构,算法和训练流程

news2024/11/14 11:06:08

本节我们自顶向下看看大模型的相关概念,了解其基本架构以及从零手撸大模型的基本流程。自从 openai 释放了 chatgpt 后,人工智能就立马进入了大模型时代,我还记得在此之前 NLP 的处理主要依赖于深度学习的 LSTM,GRU 等模型架构。这些模型参数也就在几百万左右,而大模型出来后,原本这些“先进”的 NLP 处理模型一下变成了笑话然后被扫到了历史的垃圾堆里,如今在自然语言处理方面已经不再有这些红极一时的深度学习模型的身影。

大模型首要特点在于“大”。所谓“大”就是模型的参数多。前面我们提到的深度学习模型 LSTM,GRU 等,参数数量在几百万左右,而大模型的参数数量的计量单位是“十亿”,目前已经“落后”的 gpt3 模型上千亿,而大模型中的“小”模型参数数量也在七八十亿左右,目前国内外最新的大模型参数数量也要三四千亿了。第二个“大”在与训练模型的数据量。我记得训练 LSTM 这些模型时,基本上几本电子书的内容即可,而训练大模型,openai 等这些巨头是将所有互联网的公开数据,所有能电子化的书籍,所有可以接触的数据库全都作为训练数据。正是因为他在参数量和训练数据两方面的大才使得大模型在语言和文字方面的生成能力极强。

第二是在架构方面。大模型使用了两种突破性的算法设计,一个叫 transformer 架构,一个叫 attention 机制。正是这两个模块使得大模型在训练上能够实现高并发,同时在输入数据的识别能力上呈现出“进化”级别的提升。我们先简要看看 transformer 架构的基本信息,它最早应用与文本翻译,它包含两个关键模块,一个是编码器,另一个是解码器:

请添加图片描述

在机器翻译时,在编码器输入一句原文,编码器把原文转换为一个向量,这个向量会输入给解码器进行分析,然后我们把对应翻译后目标语言的对应句子前部分输入解码器,训练的目的是让解码器生成下一个单词或字,例如当我们要实现英语翻译成中文,那么 “I love you"对应的句子作为输入到编码器,然后在解码器部分只输入“我爱”,最后我们训练解码器生成最后一个字也就是"爱”。

chatGPT 的架构设计与上面的 transformor 有所不同,因为它只有解码器部分而没有编码部分,基本情况如下:

请添加图片描述
设计成这种模式主要是因为 chatgpt 强调的是文本生成而不是翻译,因此它主要训练生成能力。另一个关键组件是 attention 机制,它相对复杂,我们后面再具体的解析,特别是使用代码实现来了解它。

最后我们看看大模型的基本训练流程:
请添加图片描述
它主要分成两部分,第一个不服就是 train,也就是通过大量的数据训练基础模型,这个基础模型拥有强大的语言理解和生成能力。然后在基础模型上再训练专业模型,例如训练针对法律领域或者是金融领域的大模型,现在业界主要集中在后半部分,因为基础大模型有很多开源或者可以在 hugging face 上直接下载,而大模型真正的商业竞争力在后半部,也就是组织如何将自己专有数据生成专有知识大模型从而提供专业服务或是提升组织内工作者或合作者的生产效率,我们将深入了解这两部分,首先我们将代码设计基础模型,深入查看训练流程和效果。当然我们个人所拥有的资源不足以训练出有效的模型结果,因此我们只集中在算法设计的训练流程的掌握上。然后我们再去使用开源的基础模型深入理解第二部分也就是特定优调的过程。

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

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

相关文章

FPGA实现PCIE3.0视频采集转千兆UDP网络输出,基于XDMA+RTL8211E架构,提供工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐我已有的PCIE方案我这里已有的以太网方案本博客方案的PCIE2.0版本 3、PCIE基础知识扫描4、工程详细设计方案工程设计原理框图电脑端视频QT上位机XDMA配置及使用XDMA中断模块FDMA图像缓存UDP视频组包发送UDP协议栈MAC数据缓冲FIFO组…

2024年第四届“网鼎杯”网络安全比赛---朱雀组Crypto- WriteUp

2024年第四届“网鼎杯”网络安全比赛---朱雀组Crypto-WriteUp Crypto:Crypto-2:Crypto-3: 前言:本次比赛已经结束,用于赛后复现,欢迎大家交流学习! Crypto: Crypto-2: …

PostgreSQL数据库笔记

PostgreSQL 是什么 PostgreSQL(简称Postgres或PG)是一个功能强大、可靠性高、可扩展性好的开源对象-关系数据库服务器(ORDBMS),它以加州大学伯克利分校计算机系开发的POSTGRES版本4.2为基础。 发展历程 起源与发展&a…

el-table合并单元格之后,再进行隔行换色的且覆盖表格行鼠标移入的背景色的实现

el-table 中有现成的隔行换色功能,只要增加 stripe 属性即可。但是如果有单元格合并的话,这个属性就不可用了。这时候我们就需要动点小心思了。 基于相同字段进行合并 单元格合并:基于表头中的某一列,具有相同值的个数相加进行合…

光伏电站容量计算方法科普

光伏电站的容量计算是设计和评估光伏系统性能的关键步骤。通过了解光伏电站的容量,我们可以预估其发电量,优化系统设计,并确保系统能满足电力需求。本文将详细介绍几种常见的光伏电站容量计算方法,并特别介绍小程序“光伏一点通”…

mysql数据库(五)多表查询

多表查询 文章目录 多表查询一、链表查询1.1交叉连接1.2 内连接1.3 左连接1.4 右连接1.5 全连接1.6 例子 二、子查询2.1 in与not in2.2 any/some2.3 all2.4 比较运算符2.5 exists 三、例子 查询中使用的表如下所示 ------------ | id | name | ------------ | 1 | IT | …

06.VSCODE:备战大项目,CMake专项配置

娇小灵活的简捷配置不过是年轻人谈情说爱的玩具,帝国大厦的构建,终归要交给CMake去母仪天下。一个没有使用 CMake 的 C 项目,就像未来世界里的一台相声表演,有了德纲却无谦,观众笑着遗憾。—— 语出《双城记》作者&…

jmeter常用配置元件介绍总结之后置处理器

系列文章目录 安装jmeter jmeter常用配置元件介绍总结之后置处理器 8.后置处理器8.1.CSS/JQuery提取器8.2.JSON JMESPath Extractor8.3.JSON提取器8.4.正则表达式提取器8.5.边界提取器8.5.Debug PostProcessor8.6.XPath2 Extractor8.7.XPath提取器8.8.结果状态处理器 8.后置处理…

淘宝/天猫按图搜索商品:taobao.item_search_img API的奇幻之旅

在这个看脸的时代,我们不仅对人要看颜值,连买东西都要“看脸”了。没错,我说的就是淘宝/天猫的按图搜索商品功能——taobao.item_search_img API。这个功能就像是电商平台的“人脸识别”,只不过它认的是商品的颜值。下面&#xff…

豆包MarsCode算法题:数组元素之和最小化

数组元素之和最小化 问题描述思路分析分析思路解决方案 参考代码(Python)代码分析1. solution 函数2. 计算 1 2 3 ... n 的和3. 乘以 k 得到最终的数组元素之和4. 主程序(if __name__ __main__:)代码的时间复杂度分析&#x…

已有账号,重装系统激活office后发现没有ppt,word,excel等

有时候重装系统后,登录windows结果右键没有word,excel等 点击进入office 进入右边的账户 找到设备和订阅 直接下载office 安装后就会出现了

【数据结构与算法】第12课—数据结构之归并排序

文章目录 1. 归并排序2. 计数排序3. 排序算法复杂度及稳定性分析在这里插入图片描述 1. 归并排序 分治法(Divide and Conquer)是一种重要的算法设计策略,其核心思想是将一个复杂的大问题分解为若干个小规模的子问题,递归地解决这些…

shell 100例

1、每天写一个文件 (题目要求) 请按照这样的日期格式(xxxx-xx-xx每日生成一个文件 例如生成的文件为2017-12-20.log,并且把磁盘的使用情况写到到这个文件中不用考虑cron,仅仅写脚本即可 [核心要点] date命令用法 df命令 知识补充&#xff1…

微信公众平台申请(测试平台)

登录平台 微信公众平台 注册信息 回调路径不知道怎么填可以先不填,等写完项目就知道调用那个路径了 这样就注册好了

云原生-docker安装与基础操作

一、云原生 Docker 介绍 Docker 在云原生中的优势 二、docker的安装 三、docker的基础命令 1. docker pull(拉取镜像) 2. docker images(查看本地镜像) 3. docker run(创建并启动容器) 4. docker ps…

Qt 编写插件plugin,支持接口定义信号

https://blog.csdn.net/u014213012/article/details/122434193?spm1001.2014.3001.5506 本教程基于该链接的内容进行升级,在编写插件的基础上,支持接口类定义信号。 环境:Qt5.12.12 MSVC2017 一、创建项目 新建一个子项目便于程序管理【…

社会信任数据 NGO、CGSS、献血量(2000-2021)

非政府组织(NGO)是指在地方、国家或国际级别上组织起来的非营利性的、志愿性的公民组织。在中国,NGO通常被称为民间组织,包括社会团体、民办非企业单位和基金会。 2000年-2021年社会信任数据(NGO、CGSS、献血量&#…

Odoo:免费开源的流程制造行业ERP管理系统

概述 聚焦流程制造连续性生产的特性,提供集成PLMERPMESBI的一体化解决方案,涵盖计划、生产、质量、配方、供销、库存、成本、设备、资金管理等业务领域的整体性解决方案 行业的最新洞察&行业典型痛点 一、生产过程需要精细化控制 需要在各种制约…

D3的竞品有哪些,D3的优势,D3和echarts的对比

D3 的竞品 ECharts: 简介: ECharts 是由百度公司开发的一款开源的 JavaScript 图表库,提供了丰富的图表类型和高度定制化的配置选项。特点: 易于使用,文档详尽,社区活跃,支持多种图表类型(如折线图、柱状图、饼图、散点…

使用nossl模式连接MySQL数据库详解

使用nossl模式连接MySQL数据库详解 摘要一、引言二、nossl模式概述2.1 SSL与nossl模式的区别2.2 选择nossl模式的场景三、在nossl模式下连接MySQL数据库3.1 准备工作3.2 C++代码示例3.3 代码详解3.3.1 初始化MySQL连接对象3.3.2 连接到MySQL数据库3.3.3 执行查询操作3.3.4 处理…