老码农眼中的大模型(LLM)

news2024/9/20 22:44:33

即便全力奔跑,也不一定能跟上时代的步伐。但如果失去了学习的动力,很可能会被时代淘汰。而且,当时代淘汰我们的时候,往往不会有任何预警。基于大模型的 ChatGPT 给我们带来了极大的震撼,那么什么是大模型呢?

1.大型语言模型

大型语言模型 (LLM) 被简称为大模型,是一类基础模型。这些模型可以通过微调转移到许多下游任务,因为它们已经在大量无监督和非结构化数据的情况下进行了训练。像 GPT-3 或 BERT 这样的大型语言模型 (LLM) 是深度神经网络,其核心是 Transformer 的体系结构。

Transformer 体系结构包括两部分: 编码器和解码器。编码器和解码器大部分是相同的 (有一些不同之处),另外,对于编码器和解码器堆栈的优缺点,类似于自动回归与自动编码器模型。鉴于基于解码器的模型在生成性人工智能领域的流行,如今的大模型侧重于解码器模型 (如 GPT-x) 而不是编码器模型 (如 BERT 及其变体),因此,术语大模型与“基于解码器的模型”可以互换使用。

一个输入文本的“prompt”,实质上这些系统所做的就是在一个“词汇表”上计算一个概率分布,而词汇表是系统知道的所有单词 (实际上是单词的一部分或标记) 的列表。这些词汇是由人类设计者提供给系统的,例如,GPT-3 的词汇表大约有 50,000 个标记。

值得注意的是,虽然 LLM 仍然受到无数的限制,比如幻觉和思维推理链中的问题,其中幻觉是指大模型提供了非事实但看似合理的预测。但重要的是,LLM 是通过训练来执行统计语言建模的。具体来说,在自然语言处理中,语言建模仅仅被定义为在给定上下文的情况下预测缺失标记的任务。

3ae6d5a8f2414addb41b918c9dc0fafd.jpeg

2.大模型是如何工作的?

首先,大模型需要获取其接收到的“prompt”并将其转换为嵌入。嵌入是输入文本的向量表示。

接下来,大模型进行一层一层的注意力计算和前馈计算。这将导致为其词汇表中的每个单词分配一个数字或 logit。

最后,根据分配给大模型的任务,它将把每个(非规范化的)logit 转换成一个(规范化的)概率分布(例如,SoftMax 激活函数),确定文本中下一个出现的词。

大道至简,然而,大道易得,小术难求!

3. 相似度计算

如何确定两个句子是否相似或不同?句子相似度是衡量两个句子在意义上等同的程度。衡量句子相似度最常用的两个指标是点积相似度和余弦相似度,它们都不是“距离指标”。 

3.1 点积相似度

两个向量 u 和 v 的点积定义为: u⋅v=|u| |v| cosθ

当|v|=1时,也许最容易将其用作相似性度量,如下图所示:

93ce876a953943b72fcab5207a4ec66b.png

其中cosθ =(u⋅v)/(| u || v |)=(u⋅v)/(| u |)

这里可以看到,当θ=0时,cosθ=1,也就是说,向量是共线的,点积是向量的元素乘积。当θ是一个直角时,cosθ=0,即矢量是正交的,点积为0。一般来说,cosθ告诉我们向量方向的相似性,当它们指向相反的方向时是-1。随着维数的增加,cosθ作为多维空间中的相似度量具有重要的用途,这就是为什么它可以说是最常用的相似度量。

在几何上,向量u,v之间的点积可以解释为将u投影到v上(或者反之亦然),然后乘以u的投影长度与v的投影长度的乘积。如果u与v正交,u在v上的投影是一个零长度向量,点积为零,这与零相似性的直觉相对应。

3.2 余弦相似度

如果缩放 u ⋅ v 点积的大小 ‖u‖‖v‖,将范围限制为 [-1,1],就是余弦相似度,如下图所示:

763cb75745069bdb1d5f2454e09af911.jpeg

同样是比较 u 和 v 两个向量:⋅ 表示点积。‖u‖ 和 ‖v‖ 表示向量的大小(或范数),n 是向量的维数。如前所述,长度标准化部分 ‖u‖‖v‖ 限制范围为 [-1,1],并保持比例不变。

余弦距离只关心角度差,点积关心角度和大小。如果将数据规范化为具有相同的大小,则两者无法区分。有时忽略大小是可取的,那么余弦距离更适合,但如果大小起作用,点积作为相似性度量会更好。

换句话说,余弦相似度是大小标准化的简单点积,它具有尺度不变性,因此自然而然地适用于不同的数据样本(比如,不同长度的样本)。例如,假设有两组文档,在每组文档中计算相似度。那么,在每个集合中,文档应该是相同的,但是集合1的文档可能比集合2的文档短。另外,如果嵌入/特征尺寸不同,点积会产生不同的数字,而在这两种情况下,余弦相似度会产生可比较的结果(因为它是长度标准化的)。

另一方面,普通点积没有长度规范化,涉及的操作较少,在复杂性和实现方面相对容易。

4. 推理

首先,需要弄清楚几个与推理相关的单词含义:

  • 推理(reasoning):指利用正确的思维方法通过逻辑推理对事实得出客观结论;

  • 推断(inference):特指得出结论的推导过程;

  • 演绎(deduction):指由证明无误的前提得出特殊结论;

  • 归纳(induction):指归纳法,从事实得出结论。

推理是使用证据和逻辑进行论证的能力,种类很多,比如常识推理或数学推理以及符号推理。前两种很容易理解,而符号推理通常指的是给定一些特定符号代表的状态,然后对它们做一些操作,最终得到什么样的状态,例如给定一个列表,对其进行旋转操作,问你最终的状态是什么。

类似地,有各种各样的方法可以从模型中引出推理,其中之一就是大模型中的prompt。需要注意的是,梳理推理和事实信息以得出最终输出并不是一个简单的任务,大模型为了给出最终预测所使用的推理程度仍然是未知的。

5.为大模型引入外部知识

在使用ChatGPT的过程中,我们发现它能够利用知识和信息,而这些知识和信息并不一定在其权重中。为了规避有限的上下文大小,增加大型模型的相关性,可以通过添加从相关外部文档中提取的信息来实现。有几种方法可以实现这一点,例如利用另一个神经网络或语言模型,通过迭代调用它来提取所需的信息。另一种方法是通过外部数据库这样的数据存储来获取信息检索,比如最近的事实。

因此,有两种类型的信息检索器,密集型和稀疏型。稀疏检索器使用文档和查询的稀疏词包表示,而密集(神经)检索器使用从神经网络获得的密集查询和文档向量来表示。虽然检索文档来进行问答的想法并不新鲜,但是用相关文档增强语言模型的知识库,检索增强型语言模型最近在除了问答以外的其他知识密集型任务中表现出了很强的性能。这些方法缩小了与大型语言模型的差距。

另外,检索器和思维链(CoT) Prompt 相结合也可以用来增强大模型。CoT prompt 生成了具有解释和预测对的推理路径,并且不需要额外的训练或微调。

大模型还可以使用搜索引擎本身,比如WebGPT。WebGPT学习如何与Web 浏览器交互,这使它能够进一步细化初始查询,或者基于与工具的交互执行其他操作。确切地说,WebGPT可以搜索互联网、浏览网页、跟踪链接和引用资源。

6.增强大模型的方法

增强大模型指的是允许语言模型利用外部工具来增强当前上下文,使用的信息不包含在语言模型权重中。工具是一个外部模块,通常使用规则或特殊token调用,其输出包含在大模型的上下文中。

6.1 Prompt工程

大模型生成能够生成很多类型的内容,但是生成内容的质量取决于你提供给它多少信息。一个Prompt可以包含你给模型的指令或问题等,也可以包括更多细节,如输入(指引输出的文字)或例子。

Prompt不需要权重更新,大模型的推理和行为能力都与提供的prompt相关联,这是一种非常强大的方法,教授了大模型所需输出是什么的方法。

6.2 微调

微调(fine-tuning)的过程就是用训练好的参数(从已训练好的模型中获得)初始化自己的网络,然后用自己的数据接着训练,参数的调整方法与from scratch训练过程一样。

对于大模型而言,通过监督式学习,可以对参数的权重进行微调和更新。

6.3 预训练

预先训练阶段之后进行微调的一个潜在风险是,大模型可能会偏离最初的分布,并且会过度适应在微调期间提供的示例分布。

为了缓解这个问题,类似于早期如何将预训练数据与来自各种下游任务的示例例混合,可以将预训练数据与标记的推理示例混合。然而,与单独的微调相比,这种混合的确切收益还没有被实证。

6.4 Bootstrapping

Bootstrapping指的是利用有限的样本资料经由多次重复抽样,重新建立起足以代表母体样本分布的新样本。bootstrapping的运用基于很多统计学假设,因此假设的成立与否会影响采样的准确性。

对于大模型而言,通过prompt LM 进行推理或采取行动,然后进行最终预测,丢弃那些执行的行动或推理步骤没有导致正确的最终预测的例子。

6.5 强化学习

强化学习(RL)用于描述和解决智能体(agent)在与环境的交互过程中,通过学习策略以达成回报最大化或实现特定目标的问题。

对于大模型而言,强化学习通过创建提示的监督式学习教会大模型如何推理和行动。

7.小结

本文从老码农的视角观察了大模型的工作原理,探讨了相似度计算中的点积相似度和余弦相似度,以及如何为大模型引入外部知识。此外,还简述了增强大模型的方法,包括prompt、微调、Prompt预训练、Bootstrapping和强化学习等。

下表(源)提供了大型语言模型的摘要,包括原始发布日期、最大模型大小以及权重是否向公众完全开放源码:

5ccc334c7bacc48457f08c01bef841ae.jpeg

【参考资料与关联阅读】

  • Argument Language Model:a survey,https://arxiv.org/pdf/2302.07842v1.pdf

  • https://datascience.stackexchange.com/questions/744/cosine-similarity-versus-dot-product-as-distance-metrics

  • 一文读懂“语言模型”

  • 《深入浅出Embedding》随笔

  • 机器学习与微分方程的浅析

  • 机器学习系统架构的10个要素

  • 图计算的学习与思考

  • Agent 与对象的辨析

  • 神经网络中常见的激活函数

  • 算法与模型的浅析

  • 清单管理?面向机器学习中的数据集

  • 面向AI 的数据生态系统

  • AI系统中的偏差与偏见

  • 难以捉摸?机器学习模型的可解释性初探

  • DuerOS 应用实战示例——机器狗DIY

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

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

相关文章

【网络进阶】五种IO网络模型(一)

文章目录 1. 阻塞IO2. 非阻塞IO 1. 阻塞IO 在Linux中,默认情况下,所有的套接字(socket)都是阻塞的。典型的读取操作流程如下: 当用户进程调用read系统调用时,内核开始执行I/O的第一个阶段,即…

智慧医院智能化系统设计与能耗管理产品选型

摘要:结合某知名大型三甲综合医院项目的智能化系统设计,提出智慧医院智能化系统的技术解决方案,阐述智慧医院智能化系统方案的总体架构、建设目标、设计宗旨、典型应用及各智能化子系统的设计方案。 关键词:智慧医院;智…

mybatis3源码篇(2)——执行流程

mybatis 版本:v3.3.0 文章目录 执行流程MapperProxyFactoryMapperProxyMapperMethodexecuteconvertArgsToSqlCommandParamResultHandler SqlSessionExecutor(执行器)StatementHandler(声明处理器)ParameterHandler&…

【设计模式】我对设计模式的C语言解读(下)

书接上回 由于内容太多,编辑器太卡了,所以分P了 上P在这里 目录 书接上回备忘录模式观察者模式 备忘录模式 备忘录模式的介绍: https://refactoringguru.cn/design-patterns/memento 备忘录模式的C实现: https://refactoringguru.cn/design-patterns/m…

【数据挖掘与商务智能决策】第十三章 数据降维之PCA 主成分分析

13.1.2 PCA主成分分析代码实现 1.二维空间降维Python代码实现 import numpy as np X np.array([[1, 1], [2, 2], [3, 3]]) Xarray([[1, 1],[2, 2],[3, 3]])# 也可以通过pandas库来构造数据,效果一样 import pandas as pd X pd.DataFrame([[1, 1], [2, 2], [3, 3…

二分查找【数组】

⭐前言⭐ ※※※大家好!我是同学〖森〗,一名计算机爱好者,今天让我们进入复习模式。若有错误,请多多指教。更多有趣的代码请移步Gitee 👍 点赞 ⭐ 收藏 📝留言 都是我创作的最大的动力! 题目 70…

接口测试用例设计思路

(我的公众号“墨石测试攻略”,关注获取软件测试相关知识及整套接口测试实战项目!) 接口测试用例的设计,从功能测试角度来说:首先需要分析接口文档。 现在很多公司都使用swagger来管理接口。swagger中可以…

fMRI时间序列振幅和相位对功能连接分析的影响

导读 目的:fMRI领域的一些研究使用瞬时相位(IP)表征(源自BOLD时间序列的解析表征)考察了脑区之间的同步性。本研究假设来自不同脑区的瞬时振幅(IA)表征可以为脑功能网络提供额外的信息。为此,本研究探索了静息态BOLD fMRI信号的这种表征,用于…

SpringBoot AnnotationFormatterFactory接口+自定义注解实现类型转换

参考资料 自定义AnnotationFormatterFactory实现注解方式类型转换Spring MVC 基于AnnotationFormatterFactory接口实现自定义的规则 目录 一. 前期准备1.1. 自定义转换标记注解1.2 入参form 二. 实现AnnotationFormatterFactory接口,构建格式化Factory2.1 code补全…

【7】一篇文章学习 Linux 中一些硬核的常用知识

目录 一、systemctl二、软链接三、日期(date 命令)四、Linux 的时区(1) 修改时区(2) ntp 五、IP 地址六、主机名七、域名解析八、配置 Linux 的固定 IP 地址(1) 在 VMwareWorkstation 中配置 IP 地址网关和网段(IP 地址的范围)(2)…

[陇剑杯 2021]之Misc篇(NSSCTF)刷题记录④

NSSCTF-Misc篇-[陇剑杯 2021] jwt:[陇剑杯 2021]jwt(问1)[陇剑杯 2021]jwt(问2)[陇剑杯 2021]jwt(问3)[陇剑杯 2021]jwt(问4)[陇剑杯 2021]jwt(问5&#xff0…

洗地性价比高的是哪款?性价比高的洗地机推荐

在如今人工智能随处可见的时代,洗地机已经成为了我们家庭清洁的得力助手,它用高效便捷的清洁方式,对于地面的灰尘或者地板之间的缝隙里的细小垃圾,能够快速清理,省时省力。然而,对于很多消费者来说&#xf…

一文带你学会如何写一份糟糕透顶的简历

我们每个人几乎都会面对找工作这件事,而找工作或者说求职首先就是要写一份简历。今天狗哥将以一个不同的视角带你写一份无与伦比,糟糕透顶的求职简历,说实话,其实几年前,我就是这么写的。 目录 1. 文件名 2. 基本信…

AttributeError: ‘ChatGLMModel‘ object has no attribute ‘prefix_encoder‘

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

基于蛋白-配体复合物药效团药物设计(Pharmacophore)

基于蛋白-配体复合物药效团药物设计(Pharmacophore) step 1.蛋白-配体复合物准备 点击File-->Import Structures导入之前已经下载好的1IEP.pdb(Abl蛋白和Imatinib的晶体复合物) 蛋白准备:点击Tasks--->Protei…

18、越狱

一、越狱 1.1 越狱 通过iOS系统安全启动链漏洞,从而禁止掉信任链中负责验证的组件.拿到iOS系统最大权限Root权限 1.2 iOS系统安全启动链 当启动一台iOS设备时,系统首先会从只读的ROM中读取初始化指令,也就是系统的引导程序(事实上所有的操作系统启动时都要经过这一步,只是过程…

Pytorch深度学习笔记(十一)卷积神经网络CNN

目录 1.概述 2.单通道卷积 3.多通道卷积 4.卷积层常见的参数 5.代码实现(卷积神经网络训练MNIST数据集) 推荐课程:10.卷积神经网络(基础篇)_哔哩哔哩_bilibili 1.概述 全连接神经网络:完全由线性层串…

最佳实践|如何写出简单高效的 Flink SQL?

摘要:本文整理自阿里巴巴高级技术专家、Apache Flink PMC 贺小令,在 Flink Forward Asia 2022 生产实践专场的分享。本篇内容主要分为三个部分: 1. Flink SQL Insight 2. Best Practices 3. Future Works Tips:点击「阅读原文」查…

android之 Launcher改造仿桌面排版的效果

一,背景 1.1 新接手一个灯光控制项目,其页面和效果还是比交复杂的,其中一个功能就是仿苹果桌面来排版灯具,支持拖拽,分组,分页。 拖动图标的时候判断是否空白位置还是已经有占位了,有的话就把…

pikachu靶场-RCE

RCE漏洞概述 可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。 远程系统命令执行 命令执行漏洞(Command Execution)即黑客可以直接在Web应用中执行系统命令,从而获取敏感信息或者拿下shell权限 更…