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

本节我们自顶向下看看大模型的相关概念,了解其基本架构以及从零手撸大模型的基本流程。自从 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.mzph.cn/news/886448.shtml

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

相关文章

爬虫——JSON数据处理

第三节:JSON数据处理 在爬虫开发中,JSON(JavaScript Object Notation)是最常见的数据格式之一,特别是在从API或动态网页中抓取数据时。JSON格式因其结构简单、可读性强、易于与其他系统交互而广泛应用于前端与后端的数…

SpringBoot集成itext导出PDF

添加依赖 <!-- PDF导出 --><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.11</version></dependency><dependency><groupId>com.itextpdf</groupId>&l…

【快速解决】kafka崩了,重启之后,想继续消费,怎么做?

目录 一、怎么寻找我们关心的主题在崩溃之前消费到了哪里&#xff1f; 1、一个问题&#xff1a; 2、查看消费者消费主题__consumer_offsets 3、一个重要前提&#xff1a;消费时要提交offset 二、指定 Offset 消费 假如遇到kafka崩了&#xff0c;你重启kafka之后&#xff0…

查询DBA_FREE_SPACE缓慢问题

这个是一个常见的问题&#xff0c;理论上应该也算是一个bug&#xff0c;在oracle10g&#xff0c;到19c&#xff0c;我都曾经遇到过&#xff1b;今天在给两套新建的19C RAC添加监控脚本时&#xff0c;又发现了这个问题&#xff0c;在这里记录一下。 Symptoms 环境&#xff1a;…

用OMS进行 OceanBase 租户间数据迁移的测评

基本概念 OceanBase迁移服务&#xff08;&#xff0c;简称OMS&#xff09;&#xff0c;可以让用户在同构或异构 RDBMS 与OceanBase 数据库之间进行数据交互&#xff0c;支持数据的在线迁移&#xff0c;以及实时增量同步的复制功能。 OMS 提供了可视化的集中管控平台&#xff…

IDEA一键部署SpringBoot项目到服务器

安装Alibaba Cloud Toolkit插件 配置部署环境 1&#xff1a;设置服务名称 2&#xff1a;选择文件上传的类型 3:选择打包之后的jar文件 4: 添加需要上传的服务器信息 5:需要上传到服务器的地址 输入绝对路径 6: 选择上传文件后执行的脚本 可以参考另一篇文章 Linux启…

渗透测试之信息收集 DNS主机发现探测方式NetBIOS 协议发现主机 以及相关PorCheck scanline工具的使用哟

目录 主机发现 利用NetBIOS 协议发现主机 利用TCP/UDP发现主机 PorCheck scanline 利用DNS协议发现主机 主机发现 信息收集中的一项重要工作是发现内网中的主机、数据库、IP段网络设备、安全设备等资产&#xff0c;以便于更快地获取更多权限和密码&#xff0c;更加接近红…

打造专业问答社区:Windows部署Apache Answer结合cpolar实现公网访问

文章目录 前言1. 本地安装Docker2. 本地部署Apache Answer2.1 设置语言选择简体中文2.2 配置数据库2.3 创建配置文件2.4 填写基本信息 3. 如何使用Apache Answer3.1 后台管理3.2 提问与回答3.3 查看主页回答情况 4. 公网远程访问本地 Apache Answer4.1 内网穿透工具安装4.2 创建…

基于java的医院门诊信息管理系统

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 数据…

67页PDF |埃森哲_XX集团信息发展规划IT治理优化方案(限免下载)

一、前言 这份报告是埃森哲_XX集团信息发展规划IT治理优化方案&#xff0c;报告中详细阐述了XX集团如何优化IT治理结构以适应新的要求。报告还分析了集团管控模式的变化&#xff0c;提出了六大业务中心的差异化管控策略&#xff0c;并探讨了这些变化对IT治理模式的影响。报告进…

【AI大模型】ELMo模型介绍:深度理解语言模型的嵌入艺术

学习目标 了解什么是ELMo.掌握ELMo的架构.掌握ELMo的预训练任务.了解ELMo的效果和成绩.了解ELMo的优缺点. 目录 &#x1f354; ELMo简介 &#x1f354; ELMo的架构 2.1 总体架构 2.2 Embedding模块 2.3 两部分的双层LSTM模块 2.4 词向量表征模块 &#x1f354; ELMo的预…

【srm,招标询价】采购电子化全流程,供应商准入审核,在线询价流程管理(JAVA+Vue+mysql)

前言&#xff1a; 随着互联网和数字技术的不断发展&#xff0c;企业采购管理逐渐走向数字化和智能化。数字化采购平台作为企业采购管理的新模式&#xff0c;能够提高采购效率、降低采购成本、优化供应商合作效率&#xff0c;已成为企业实现效益提升的关键手段。系统获取在文末…

优选算法 - 4 ( 链表 哈希表 字符串 9000 字详解 )

一&#xff1a;链表 1.1 链表常用技巧和操作总结 1.2 两数相加 题目链接&#xff1a;两数相加 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* …

小鸡模拟器 1.8.11 | 街机怀旧重温经典游戏,支持手柄

小鸡模拟器是一款支持多种经典游戏机模拟的游戏应用&#xff0c;包括街机、索尼(SONY)、世嘉、任天堂等主流掌机游戏以及PSP、GBA、NDS、SFC(超级任天堂SNES)、FC(红白机NES)、MD(世嘉MEGA DRIVE)、PS1、PS2等。应用支持手柄完美操作&#xff0c;兼容安卓手柄&#xff0c;让玩家…

用go语言后端开发速查

文章目录 一、发送请求和接收请求示例1.1 发送请求1.2 接收请求 二、发送form-data格式的数据示例 用go语言发送请求和接收请求的快速参考 一、发送请求和接收请求示例 1.1 发送请求 package mainimport ("bytes""encoding/json""fmt""ne…

针对股票评论的情感分类器

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;编程探索专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年11月16日13点39分 神秘男子影, 秘而不宣藏。 泣意深不见, 男子自持重, 子夜独自沉。 论文链接 点击开启你的论文编程之旅…

Transformer学习笔记(一)

Transformer学习笔记 基于 3B1B 可视化视频 自注意力机制 1.每个词的初始嵌入是一个高维向量&#xff0c;只编码该单词含义&#xff0c;与上下文没有关联 2.对初始向量进行位置编码&#xff0c;在高维向量中编码进位置信息&#xff08;单词在语言序列中的位置信息&#xff…

antd table表格设置最小宽度,列宽等比例显示

最近ui有个设计稿&#xff0c;表格要求如图&#xff1a; 由于本地antd table列宽column没有设置最小宽度minWidth属性&#xff0c;只有width属性&#xff0c;所以开发时我考虑按照列宽等比例计算后去设置width属性&#xff1b; 一、实现&#xff1a; 1.表头数组中设置minWidth…

算法沉淀一:双指针

目录 前言&#xff1a; 双指针介绍 对撞指针 快慢指针 题目练习 1.移动零 2.复写零 3.快乐数 4.盛水最多的容器 5.有效三角形的个数 6.和为s的两个数 7.三数之和 8.四数之和 前言&#xff1a; 此章节介绍一些算法&#xff0c;主要从leetcode上的题来讲解&#xff…

若点集A=B则A必能恒等变换地变为B=A这一几何常识推翻直线(平面)公理

黄小宁 关键词&#xff1a;“更无理”复数 复平面z各点z的对应点z1的全体是z1面。z面平移变为z1面就使x轴⊂z面沿本身平移变为ux1轴。R可几何化为R轴&#xff0c;R轴可沿本身平移变为R′轴&#xff0c;R′轴可沿本身平移变为R″轴&#xff0c;...。直线公理和平面公理使几百年…