大模型关键技术:上下文学习、思维链、RLHF、参数微调、并行训练、旋转位置编码、模型加速、大模型注意力机制优化、永久记忆、LangChain、知识图谱、多模态

news2024/12/29 10:46:20

大模型关键技术

    • 大模型综述
    • 上下文学习
    • 思维链 CoT
    • 奖励建模
    • 参数微调
    • 并行训练
    • 模型加速
    • 永久记忆:大模型遗忘
    • LangChain
    • 知识图谱
    • 多模态
    • 大模型系统优化
    • AI 绘图
    • 幻觉问题
    • 从 GPT1 - GPT4 拆解
      • GPTs
    • 对比主流大模型技术点
      • 旋转位置编码
      • 层归一化
      • 激活函数
      • 注意力机制优化

 


大模型综述

你知道嘛,那个叫大规模语言模型,简单说就像是个超级大的脑袋,里头装的东西比咱们想的还要多,参数得有几百亿那么多。

这玩意儿就像是自学成才的,它通过看特别多的书、文章啥的,不需要别人教,自己就能学会说话和写字。

它的工作就像是个算命先生,总想算出来你下一句话可能会说什么。

比如有一堆词儿,它能算出这些词连一块儿说出来的可能性有多大。

就好像你掷个骰子,算命先生能告诉你可能掷出的点数一样。

要算这些词的联合可能性可不简单,因为要考虑的东西实在太多了。

就好比咱们手头有个《现代汉语词典》,里面有7万多个词。

你想,要是咱们随便组个20个词的句子,那可能的组合比天上的星星还多,数量大得惊人,高达 7.9792x1096 这么个天文数字。

要简化这个算法,咱们可以这么想:一个词出现的可能性,可能就跟前头几个词有关系。

就像咱们盖房子,一块砖接着一块砖,后面这块砖放的位置,得看前面几块砖放哪儿。

用一种叫前馈神经网络的方法,就能算出来每个词跟前面的词搭配的可能性。

例如,要算“把努力变成一种习惯”这句话的可能性,就是算“把”出现的可能,再算“努力”跟在“把”后面的可能,依此类推。

  • P ( 把 努力 变成 一种 习惯 ) = P ( 把 ) × P ( 努力|把 ) × P ( 变成|把 努力 ) × P ( 一种 ∣ 把 努力 变成 ) × P ( 习惯 ∣ 把 努力 变成 一种 ) \begin{aligned} P(\text{把 努力 变成 一种 习惯})=& P(\text{把})\times P(\text{努力|把})\times P(\text{变成|把 努力})\times \\ &P(\text{一种}|\text{把 努力 变成})\times P(\text{习惯}|\text{把 努力 变成 一种}) \end{aligned} P( 努力 变成 一种 习惯)=P()×P(努力|)×P(变成| 努力)×P(一种 努力 变成)×P(习惯 努力 变成 一种)

恩,这就是大语言模型,就像是个自学成材的超级计算机,它能通过看大量的书和文章,自己学会怎么用词造句。

这模型的本事就是算出来你下句话可能说啥,就像个现代算命先生。

但因为要考虑的可能性太多,就像是从词典里随便拼凑出天文数字那么多的句子一样,所以得用一些巧妙的方法来简化计算。

这就像盖房子,一块砖一个脚印,后面的得看前面的摆放。

用这个方法,这大脑袋计算机就能算出一个词跟它前面的词搭配的可能性,帮我们更好地理解和用语言。
 


上下文学习

和以前不同的地方在于,他不仅仅是学习单纯的词和句子,还学会了词和词之间的关系。

你想啊,一个词在不同的句子里,意思可能完全不一样,就像“苹果”在“打开苹果电脑”和“我想吃苹果”里的意思就不一样。

这大模型得学会这些变化,才能真正明白咱们说的话。

之所以有今天,都是因为他们发现了一本秘籍。

前置:《【史上最本质】序列模型:RNN、双向 RNN、LSTM、GRU、Seq-to-Seq、束搜索、Transformer、Bert》

秘籍:《从【注意力机制】开始,到【Transformer】的零基础【大模型】系列》。

 


思维链 CoT

最初的语言模型都是基于经验的,只能根据词汇之间的相关性输出答案,根本没有思考能力……

但是从使用思维链后,大模型已经是有思考能力的。能进行一定的推理。

2021年,OpenAI在训练神经网络过程中有一个意外发现。

神经网络他可以很好地模仿现有的数据,很少犯错误。

可是如果你给他出个没练过的题目,他还是说不好。于是你就让他继续练。

继续训练好像没什么意义,因为现在只要是模仿他就都能说得很好,只要是真的即兴发挥他就不会。

但你不为所动,还是让他练。


1 0 2 10^2 102 1 0 5 10^5 105 训练完全没有成果。

就这样练啊练,惊奇地发现,他会即兴演讲了!给他一个什么题目,他都能现编现讲,发挥得很好!

  • 一千步乃至一万步,模型对训练题的表现已经非常好了,但是对生成性题目几乎没有能力
  • 练到10万步,模型做训练题的成绩已经很完美,对生成性题也开始有表现了
  • 练到100万步,模型对生成性题目居然达到了接近100%的精确度

这就是量变产生质变。研究者把这个现象称为「开悟(Grokking)」。

2022年8月,谷歌大脑研究者发布一篇论文,专门讲了大型语言模型的一些涌现能力,包括少样本学习、突然学会做加减法、突然之间能做大规模、多任务的语言理解、学会分类等等……

而这些能力只有当模型参数超过1000亿才会出现 —— 涌现新能力的关键机制,叫 思维链

思维链就是当模型听到一个东西之后,它会嘟嘟囔囔自说自话地,把它知道的有关这个东西的各种事情一个个说出来。

思维链是如何让语言模型有了思考能力的呢?

比如你让模型描写一下“夏天”,它会说:“夏天是个阳光明媚的季节,人们可以去海滩游泳,可以在户外野餐……”等等。

只要思考过程可以用语言描写,语言模型就有这个思考能力。

怎么用思维链呢?

思维链的主要思想是通过向大语言模型展示一些少量的样例,在样例中解释推理过程。

那大语言模型在回答提示时也会显示推理过程,这种推理的解释往往会引导出更准确的结果。

既然如此,只要我们设置好让模型每次都先思考一番再回答问题,ta就能自动使用思维链,ta就有了思考能力。

CoT(链式思考)已被证实能够改善大型AI模型在算术、常识和符号推理等任务上的表现。

用户发现,当他们在问题中添加“让我们一步步来思考”时,模型仿佛被施了魔法,之前答错的数学题突然能够正确解答,原本无理的论述变得有条有理。

不过,CoT对模型性能的提升与模型的大小成正比关系,模型参数至少达到100亿才有效果,达到1000亿效果才明显。

研究中指出,处理策略性问题通常需要大量的世界知识。

然而,小型模型由于其有限的参数,往往难以存储这些庞大的知识信息,这限制了它们在产生正确推理步骤方面的能力。

 


奖励建模

【挑战全网最易懂】深度强化学习 — 零基础指南

大模型 RLHF 实战!【OpenAI独家绝技RLHF!RLHF的替代算法DPO!Claude 暗黑科技 RAIHF!】

 


参数微调

大模型微调方法:冻结方法 Freeze、P-Tuning 系列、LoRA、QLoRA

 


并行训练

大模型并行训练、超大模型分布式训练

 


模型加速

【所有方法一览】大模型推理优化:在更小的设备运行、推理增速

 


永久记忆:大模型遗忘

大部分方法都是临时修补,帮助那些大型计算机(LLM)临时记住些东西。

但MemGPT,能让大模型能永远记住东西!

  • https://github.com/cpacker/MemGPT#loading-local-files-into-archival-memory

他们搞了个叫虚拟上下文管理的玩意儿,灵感是从电脑操作系统里那一层层的记忆体系里来的。

就好像是给计算机装了个超级大的储物间,让它能记住更多的东西。

这个MemGPT就像是一个聪明的仓库管理员,懂得怎么在快速记忆(内存)和慢速记忆(硬盘)之间转移东西。

就好像有些东西经常用,就放在手边,不常用的就放远点。

这样,计算机就能在有限的记忆空间里,更聪明地处理大量的信息。

而且,它还会自己决定啥时候跟用户聊天,啥时候专心处理信息。
 


LangChain

【解决复杂链式任务,打造全能助手】LangChain 大模型 打造 钢铁侠的全能助理 Jarvis

 


知识图谱

统一大语言模型和知识图谱:如何解决医学大模型-问诊不充分、检查不准确、诊断不完整、治疗方案不全面?

 


多模态

ViT:视觉 Transformer

Swin Transformer:将卷积网络和 Transformer 结合

CLIP 对比预训练 + 文字图像相似度:离奇调查,如何训练视觉大模型?

 


大模型系统优化

【附带大模型训练数据】大模型系统优化:怎么计算模型所需的算力、内存带宽、内存容量和通信数据量?

 


AI 绘图

【史上最小白】变分自编码器 VAE:从降维本质,到自编码器,再到变分自编码器

Diffusion 扩散模型:论生成领先多样性,GAN太单一;论尊贵清晰度独占鳌头,VAE常失真

DALL-E 系列:AI绘画背后的惊人真相!!【1个离奇内幕、3个意想不到、5大秘密揭示】
 


幻觉问题

如何解决大模型的「幻觉」问题?

 


从 GPT1 - GPT4 拆解

从 GPT1 - GPT4 拆解

 


GPTs

 


对比主流大模型技术点

当前绝大多数大语言模型结构都采用了类似GPT架构,使用基于Transformer架构构造的仅由解码器组成的网络结构,采用自回归的方式构建语言模型。

但是在位置编码、层归一化位置以及激活函数等细节上各有不同。

旋转位置编码

层归一化

激活函数

注意力机制优化

 


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

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

相关文章

天锐绿盾有哪些功能?

天锐绿盾是一款企业内网安全管理软件,具有多种功能来保护企业的信息安全。 PC地址: https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfedee 以下是天锐绿盾的主要功能: 文件加密保护:天锐绿盾可以对文件…

C# 线程间操作无效: 从不是创建控件的线程访问它--多线程操作

我们在用线程操作的时候,可能会出现异常:线程间操作无效: 从不是创建控件richTextBox1的线程访问它。因为windows窗体控件不是线程安全的,如果几个线程操作某一控件的状态,可能会使该控件的状态不一致,出现争用或死锁状…

黑马 Javaweb - MySQL 精华篇

我是南城余!阿里云开发者平台专家博士证书获得者! 欢迎关注我的博客!一同成长! 一名从事运维开发的worker,记录分享学习。 专注于AI,运维开发,windows Linux 系统领域的分享! 知…

华为交换机配置NQA DNS检测IP网络DNS解析速度

华为HCIA视频教程:超级实用,华为VRP系统文件详解 华为HCIA视频教程:不会传输层协议,HCIA都考不过 华为HCIA视频教程:网络工程师的基本功:网络地址转换NAT 华为HCIP视频教程:DHCP协议原理与配…

Hadoop集群配置及测试

Hadoop集群配置及测试 NameNode与SecondaryNameNode最好不在同一服务器 ResourceManager较为消耗资源,因而和NameNode与SecondaryNameNode最好不在同一服务器。 配置文件 hadoop102hadoop103hadoop104HDFSNameNodeDataNodeDataNodeSecondaryNameNodeDataNodeYAR…

如何通过IDEA创建基于Java8的Spring Boot项目

上次发现我的IDEA创建Spring Boot项目时只支持11和17的JDK版本,于是就通过Maven搭建SpringBoot项目。 究其原因,原来是Spring官方抛弃了Java8!!! 使用IDEA内置的Spring Initializr创建SpringBoot项目时,已…

设计模式——1_5 享元(Flyweight)

今人不见古时月,今月曾经照古人 ——李白 文章目录 定义图纸一个例子:可以复用的样式表绘制表格降本增效?第一步,先分析 变化和不变的地方第二步,把变化和不变的地方拆开来第三步:有没有办法共享这些内容完…

【数据结构】堆的实现和排序

目录 1、堆的概念和结构 1.1、堆的概念 1.2、堆的性质 1.3、堆的逻辑结构和存储结构 2、堆的实现 2.1、堆的初始化和初始化 2.2、堆的插入和向上调整算法 2.3、堆的删除和向下调整算法 2.4、取堆顶的数据和数据个数 2.5、堆的判空和打印 2.6、测试 3、堆的应用 3.1…

AIGC之视频图片生成工具gen-2

最近无事时研究了一款图片和视频生成工具,先说结论: 1.可以生成视频,生成方式有三种 通过文本的方式生成视频可以通过图片的方式生成视频也可以通过图片文本的方式生成视频 2.可以通过文本描述的方式生成图片 3.生成的视频有瑕疵&#xf…

Eureka整合seata分布式事务

文章目录 前言一、Seata配置1.1、Seata下载1.2、修改conf目录中 flie.conf 文件1.3、修改conf目录中 registry.conf文件1.4、初始化seata数据库 二、微服务整合Seata2.1、父工程项目创建引入依赖 2.2、Eureka集群搭建2.3、搭建账户微服务2.3.1 新建seata-account-service微服务…

React全局状态管理

redux是一个状态管理框架,它可以帮助我们清晰定义state和处理函数,提高可读性,并且redux中的状态是全局共享,规避组件间通过props传递状态等操作。 快速使用 在React应用的根节点,需要借助React的Context机制存放整个…

安卓apk加固后重签名

背景 等保检测,安卓apk使用第三方加固后签名信息会丢失,需要我们重新进行签名 使用jarsigner签名遇到的问题 APP失效无法安装 如何解决签名失效 我们在这里使用Android SDK的apksigner进行签名 mac系统,apksigner 需要设置环境变量 1、…

leedcode刷题day2

题目: 根据这道题我的思路是用python首先将第一个值赋给a,然后将下一个值赋值给b在这里写一个循环计算下一个值是否等于a,不等于就进入数组当等于a的时候输出数组长度,然后比较数组长度输出最长长度对应的元素不过显然这很慢。 然…

【Linux】权限的深度解析

前言:在此之前我们学习了一些常用的Linux指令,今天我们进一步学习Linux下权限的一些概念 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:Linux的学习 👈 💯代码仓库:卫卫周大胖的学习日记&a…

行列转化【附加面试题】

在MySQL中,行列转换是一种常见的操作。它包括行转列和列转行两种情况。 行转列:行转列是将表中的某些行转换成列,以提供更为清晰、易读的数据视图。例如,假设我们有一个包含科目和分数的表,我们可以使用SUM和CASE语句…

一款轻量级、基于Java语言开发的低代码开发框架,开箱即用!

数字化时代,企业对于灵活、高效和安全的软件开发需求日益旺盛。为了满足这些需求,许多组织转向低代码技术,以寻求更具成本效益和创新性的解决方案。JNPF基础框架正是在这一背景下应运而生,凭借其私有化部署和100%源码交付的特性&a…

011:vue结合css动画animation实现下雪效果

文章目录 1. 实现效果2. 编写一个下雪效果组件 VabSnow.vue3. 页面使用4. 注意点 1. 实现效果 GIF录屏文件太卡有点卡&#xff0c;实际是很丝滑的 2. 编写一个下雪效果组件 VabSnow.vue 在 src 下新建 components 文件&#xff0c;创建VabSnow.vue组件文件 <template>…

C++系统笔记教程----vscode远程连接ssh

C系统笔记教程 文章目录 C系统笔记教程前言开发环境配置总结 前言 开发环境配置 Ubuntu20.24VScode 如果没有linux系统&#xff0c;但是想用其编译&#xff0c;可以使用ssh远程连接。 首先进入vscode,打开远程连接窗口&#xff08;蓝色的小箭头这&#xff09; 选择连接到主机…

三菱plc学习入门(创建属于自己的FB模块)

在现实生活中&#xff0c;往往会需要修改一些属于方便自己的库&#xff0c;1&#xff0c;自己创建的库方便自己使用与查看2&#xff0c;提高自己编程能力&#xff0c;3&#xff0c;保护自己的程序不被外人修改&#xff01;&#xff01;&#xff01;下面就让我来操作一下 导入需…

响应式Web开发项目教程(HTML5+CSS3+Bootstrap)第2版 例4-4 label

代码 <!doctype html> <html> <head> <meta charset"utf-8"> <title>label</title> </head><body> 性别: <label for"male">男</label> <input type"radio" name"sex&quo…