【话题】ChatGPT等大语言模型为什么没有智能2

我们接着上一次的讨论,继续探索大模型的存在的问题。正巧CSDN最近在搞文章活动,我们来看看大模型“幻觉”。当然,本文可能有很多我自己的“幻觉”,欢迎批评指正。如果这么说的话,其实很容易得出一个小结论——大模型如果想朝着真的智能发展,“幻觉”问题不可能被完全解决,只可能缓解。

向量碎片化:大模型也会连接错误

大模型“幻觉”的问题其实就是if-clauses走入了一个死胡同,概率连接到错误地方或者说预测下一个token进入了一个奇怪的局部最优,并且很难走出来。

最简单的一个例子就是 1+1 = 2这个公式,如果在训练中,一直喂 1+1 = 3,你觉得当回答1+1 = ?这个问题的时候,神经网络会回答几?

这里我们看人类如何处理。在回答 1+1 = ?的时候,2 作为最快cache会最先被获取到;但是,如果在特殊context下,它的答案多种多样。比如算式里的1是二进制,那么1+1 = 10;比如遇到社会学科的时候,1+1 = 3 可以给生一个娃的家庭建模,人为定义=3;比如高中或者初中化学老师经常用一些公式进行比喻1个化学物质和另1个化学物质进行反应,结果多种多样。

所以这也是我们在上一话提过词向量碎片化的问题。当训练数据开始因为context产生歧义的时候,词向量开始碎片化,向量长度的固定意味着原本我可以用更多维度表示一种概念,之后会不停压缩,让这些维度分别去对应不同context下不同的意义,于是诸如transformer里feedforward层那2个线性矩阵真的能模拟诸多离散的情况么?当然是可能的,就是你参数的规模不停变大,而且随着context增多,这个规模是爆炸的;即使不管这个爆炸,碎片化越严重,超过了向量维度承载能力,整个模型也会崩塌。

宕开一笔,现在deep learning铺天盖地,把以前很多其他学派的文献冲淡的一塌糊涂(如果大家感兴趣,可以参考《终极算法》一书,bayes,logic,nn,svm/knn,ea五大学派);真的得抱怨下,钱途无限的世界很现实也很残酷,哪里钱多点哪里so easy。

个人感觉上,在embedding层上需要作一些调整,一个词向量可能可以是多个,然后引入evolutionary algorithm,在诸如用蒙特卡洛法选择一个向量的时候,最常用概念的向量大概率被最先取到,我们用个top k就能应付一些其他context了。当然,这个和MoE有那么一点类似,但是最终架构应该是往另一个方向了,因为MoE用到最后你会发现我要处理gating的时候需要recursive,就是gating的gating然后堆上去。

说着说着,我们就又得聊到目前整个神经网络的问题,它是一个外轮廓模型,就相当于你有一个吹得很大的气球,你要训练这个模型就是你把一个事物装进这个气球,然后气球开始放气,最后气球完全贴合了整个事物得外轮廓,loss就是0了;如果这个气球太小,你没有办法把一个事物装进去,就是你的参数太少。现在deep learning基本已经探索出了人类视觉和文字的外轮廓,视觉嘛大概19层cnn+poolmax+residual基本“击穿”了;文字上transformer在当前的规模也基本“击穿”了;这里的“击穿”指的是气球够大了,效果出来了。其实还有一个内轮廓模型,这个太难了,目前RL、EA这些都是在探索这个模型,我最喜欢的例子就是code parser;你看本来一个模型只能把整篇code所有字符标记成unknown,当你告诉它 " 可以作为字符串的开始和结束,它开始能把code中的字符串标记出来,再接着你告诉它 " 表示转义,你能得到更复杂的状态机,它需要逐步学习,慢慢补全事物的内轮廓。相当于你把事物挖空,把瘪的气球放进去充气,最后得到事物的内轮廓。人类的学习感觉上是走在外轮廓和内轮廓的交界处的,这个是真正的智能学习,当然,这个可能只是我个人的“幻觉”。所以如果神经网络只知道外轮廓,在它推理的边界,很容易产生“幻觉”;如果神经网络太小,模型看不清外轮廓,也会有“幻觉”。
在这里插入图片描述
另一方面,如果我们人为定义“幻觉”,其实大模型也不能很好去处理。比如改变数学规则定义新“幻觉”,神经网络只能根据之前的学习作概率预测,很难处理其中逻辑。曾经作过一个试验,定义0+1=1+0=1, 1+1=3, 1+3=3+1=2, 1+2=2+1=5, 1+5=5+1=4, 1+4=4+1=6, 1+6=6+1=8, 1+8=8+1=7, 1+7=7+1=9, 1+9=9+1=10,问5367+3456=?:目前还没有一个大模型能给出正确答案。

这个问题应该还是出在词向量上。妄图用global的一个向量表示所有local概念,很傻。我们刚才讨论过用EA作多向量,其实embedding这里应该就是少了一个组件,这个组件需要将global vector transform成local vector,貌似transformer里K Q V有这样模糊的操作,但是linear去猜测离散,效率可想而知。关于这个话题,我想等到我思索得更清楚点的时候再展开,现在就简单提两句,作抛砖引玉。

“争议”是另一种“幻觉”

想想,如果你是1+1=2的信徒,你进入的世界人家定义就是1+1=3,那么你所相信的1+1=2算是“幻觉”么?“幻觉”的另一个问题是“争议”。比如“中医”,各大论坛上吵得不可开交,到底它有没有用?像这样的话题,如果给到训练数据,大部分都是有偏见的;即使我们均衡了训练数据,50%的人说有用,50%的人说无用,那这个概率不偏不倚,机器只能因为误差偏向了另一个,对,就是那个50.0000000002%和49.9999999998%。这个问题其实是我们还没有系统去处理,我们需要有一个数据库去构建,赞成和反对的声音有多少,如果存在争议,我们最好的办法是给出reference让读者自己判断,而不是硬下结论。

最近stackoverflow的流量下降的厉害,因为ChatGPT确实解决了太多问题;与其我等别人回复,不如ChatGPT直接给出解;当然,这个是恶性的;当GPT扼杀community的时候,好的训练数据会越来越少。但是我们从“幻觉”来看,感觉社区的另一个方向就是有争议的问题列出来投票,盖棺定论的都放在wiki上就好了搜索引擎会解决一切。

我们从“争议”看到了另一种“幻觉”,也从“争议”聊到了那个什么50.0000000002%。不要忘记神经网络参数更新的原理 W = W + a.dW;这个是一个迭代过程,迭代会积累误差,所以如果我们遇上了混沌(Chaos),那么你可能会发现新大陆——一只蝴蝶引发了飓风。混沌会导致训练的时候就是不收敛,所以学习到的“幻觉”一直消除不了。

所以这里再放送一个可以免费体验各种大模型(gpt4, gpt3.5, gemini-pro, yi-34b, mistral 8x7b, qwen, …)的学术机构网址,可能需要科学上网:https://chat.lmsys.org。从我个人体验来说,目前GPT领先的不仅仅是在模型上,而是在训练数据上。这也是为什么GPT能缓解一定的“幻觉”,在解答一些问题上比其他模型准确。从这方面来说,也看出现在的大预言模型“没有智能”,当然这个有点“幻觉”硬下结论了,至少在我看来,有智能意味着它可以生成代码,按照代码的形式执行各种复杂分析,更偏向于内轮廓模型;不过欣喜的是,GPT已经有一些雏形了。所以我后面的兴趣就是研究内轮廓模型,干掉GPU,一台CPU机器作为一个智能agent,白日梦中……
今天我们就先到这里吧。后面我们再继续讨论更多问题。
如果想更多交流,可以扫描下面的二维码注明话题和我一起研究讨论。

J.Y.Liu
2024.01.01

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

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

相关文章

算法基础之计数问题

计数问题 核心思想&#xff1a; 数位dp / 累加 累加 ​ 分情况讨论 &#xff1a; xxx 000 ~ abc –1 yyy 000 ~ 999 共 abc * 1000 种 特别地&#xff0c;当枚举数字0时 (找第4位为0的数) 前三位不能从000开始了 否则没这个数不合法(有前导零) xxx abc 2.1. d < 1 , 不…

UnityShader(四)一个最简单的顶点/片元着色器

目录 顶点/片元着色器的基本结构&#xff1a; 简单的例子 增加模型数据 顶点着色器和片元着色器之间的通信 顶点/片元着色器的基本结构&#xff1a; Shader "MyShaderName"{Properties{//属性}SubShader{//针对显卡A的SubShaderPass{//设置渲染状态和标签//开始C…

C++正则表达式全攻略:从基础到高级应用

C正则表达式全攻略&#xff1a;从基础到高级应用 一、基础知识二、正则表达式的基本匹配三、C中使用正则表达式四、高级正则表达式五、实践示例六、性能优化6.1、编译正则表达式6.2、避免过度使用回溯6.3、优化匹配算法 七、总结 一、基础知识 正则表达式是一种用于匹配、搜索…

ORACLE Primavera P6, Unifier v23.12 系统分享

引言 根据上周的计划&#xff0c;我近日简单制作了一个基于ORACLE Primavera P6 EPPM 以及Unifier 最新版23.12的虚拟机演示环境&#xff0c;里面包括了p6 和 unifier的全套系统服务 此虚拟系统环境仅用于演示、培训和测试目的。如要在生产环境中使用此虚拟机&#xff0c;请您…

系列二、RestTemplate简介

一、RestTemplate简介 1.1、概述 RestTemplate是一种便捷的访问RestFul服务的模板类&#xff0c;是Spring提供的用于访问Rest服务的客户端模板工具集&#xff0c;它提供了多种便捷访问远程HTTP服务的方法。 1.2、API https://docs.spring.io/spring-framework/docs/5.2.2.REL…

从马尔可夫奖励过程到马尔可夫决策到强化学习【02/2】

一、说明 随着 Open AI 于 2023 年 11 月 6 日发布GPT 代理&#xff0c;我们所有人都对它带来的支持和灵活性着迷。想象一下&#xff0c;有一个个性化的数字助手始终在您身边&#xff0c;根据您的喜好完成日常平凡任务或艰巨任务。但为这些定制代理提供动力的是强化学习&#x…

【C语言】Windows上用GTK写GUI程序

要使用GTK开发一个Windows图形用户界面程序&#xff0c;需要首先设置GTK开发环境。这通常包括安装GTK库和它的依赖&#xff0c;以及配置编译器和工具链。可以选择使用纯C语言和GTK库或者使用支持GTK绑定的其他语言&#xff0c;如Python、C或Rust。 1. 安装GTK开发库 在Window…

Prototype原型模式(创建对象)

原型模式&#xff1a;Prototype 链接&#xff1a;原型模式实例代码 注解 模式定义 使用原型实例指定创建对象的种类&#xff0c;然后通过拷贝这些原型来创建新的对象。 ——《设计模式》GoF 目的 在软件系统中&#xff0c;经常面临这“某些结构复杂的对象”的创建工作&am…

Java ArrayList解密

数组的大小是固定的&#xff0c;一旦创建的时候指定了大小&#xff0c;就不能再调整了。也就是说&#xff0c;如果数组满了&#xff0c;就不能再添加任何元素了。 ArrayList 在数组的基础上实现了自动扩容&#xff0c;并且提供了比数组更丰富的预定义方法&#xff08;各种增删改…

论文阅读: AAAI 2022行人重识别方向论文-PFD_Net

本篇博客用于记录一篇行人重识别方向的论文所提出的优化方法《Pose-Guided Feature Disentangling for Occluded Person Re-identification Based on Transformer》&#xff0c;论文中提出的PDF_Net模型的backbone是采用《TransReID: Transformer-based Object Re-Identificati…

TypeScript 之 interface 和 type 的区别

结论&#xff1a; 1、可以声明的数据类型 type 可以修饰任何类型 &#xff08;值类型和引用数据类型&#xff09; interface 只能修饰引用类型 &#xff08;对象、数组、函数&#xff09; //interface 声明对象属性 interface ins {a: string;b?: number; //可选项 }// int…

HackTheBox - Medium - Linux - Encoding

Encoding 前言 经过10个月左右的网安自学&#xff0c;我想说的第一句话无疑是&#xff1a;感谢TryHackMe。当然&#xff0c;后续的HackTheBox&学院、CRTO等等&#xff0c;对我的帮助都很大。 许多师傅们都在年度总结&#xff0c;我也看了大家都收获很多&#xff0c;都很…

Docker容器基础知识点总结

一 、Docker架构 dockers加速镜像&#xff1a; sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-EOF {"registry-mirrors": ["https://z90yxq2m.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restar…

MySQL基础学习: linux系统mysql 密码插件 validate_password安装

1、没有安装mysql密码插件&#xff0c;执行命令&#xff1a;SHOW VARIABLES LIKE ‘validate_password%’; 2、安装mysql密码插件&#xff0c;执行命令&#xff1a;install plugin validate_password soname ‘validate_password.so’; 3、再次执行&#xff1a;SHOW VARIABLE…

【Unity入门】MenuItem 和 ContextMenu 的使用方法

目录 一、ContextMenu描述使用示例ContextMenuItem使用示例 二、MenuItem描述使用示例 三、MenuItem 和 ContextMenu 的区别 一、ContextMenu 描述 ContextMenu 属性用于向上下文菜单添加命令。 在该附加脚本的 Inspector 中&#xff0c;当用户选择该上下文菜单时&#xff0c…

【Spring实战】16 Profile

文章目录 1. 定义2. 使用2.1 定义 Profile2.2 激活 Profile 3. 演示3.1 properties文件3.2 打印日志3.3 启动服务&验证3.4 修改 active3.5 重启服务&验证 4. 应用场景4.1 数据库配置4.2 日志配置 5. 代码详细总结 Spring 框架提供了一种强大的机制&#xff0c;允许在不…

docker 在线安装mysql 8.0.21版本

1、拉取mysql 8.0.21版本镜像 2、查看镜像 docker images 3、在宿主机 /usr/local/mysql 下的 conf 文件夹下&#xff0c;创建 my.cnf 文件&#xff0c;并编辑内容 [mysql] default-character-setutf8 [client] port3306 default-character-setutf8 [mysqld] port3306 se…

普中STM32-PZ6806L 使用FlyMcu串口烧录程序

简介 我的串口下载电路坏掉了, 所以研究了下如何通过USB转TTL进行程序的下载, 为后续Bootloader部分做准备;连接 我的板几乎是十年前买的&#xff0c; 所以电路与现有网上的资料有些差异, 所以仅供参考 USB 转 TTL线 与开发板 连接&#xff0c; 如图图中 ①, 需要去掉第一个…

YOLOv8训练损失、mAP画图功能 | 支持多结果对比,多结果绘在一个图片(科研必备)

一、本文介绍 本文给大家带来的是YOLOv8系列的绘图功能&#xff0c;我将向大家介绍YOLO系列的绘图功能。我们在进行实验时&#xff0c;经常需要比较多个结果&#xff0c;针对这一问题&#xff0c;我写了点代码来解决这个问题&#xff0c;它可以根据训练结果绘制损失(loss)和mA…

python实现平滑线性滤波器——数字图像处理

原理&#xff1a; 平滑线性滤波器是一种在图像处理中广泛使用的工具&#xff0c;主要用于降低图像噪声或模糊细节。这些滤波器的核心原理基于对图像中每个像素及其邻域像素的线性组合。 邻域平均&#xff1a; 平滑线性滤波器通过对目标像素及其周围邻域像素的强度值取平均来工…