【话题】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
相关文章:

【话题】ChatGPT等大语言模型为什么没有智能2
我们接着上一次的讨论,继续探索大模型的存在的问题。正巧CSDN最近在搞文章活动,我们来看看大模型“幻觉”。当然,本文可能有很多我自己的“幻觉”,欢迎批评指正。如果这么说的话,其实很容易得出一个小结论——大模型如…...

通过大量生物、地球、农业、气象、生态、环境科学领域中案例,一起探索如何优雅地使用大模型吧!
以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮,可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…...

slf4j+logback源码加载流程解析
slf4j绑定logback源码解析 Logger log LoggerFactory.getLogger(LogbackDemo.class);如上述代码所示,在项目中通常会这样创建一个Logger对象去打印日志。 然后点进去,会走到LoggerFactory的getILoggerFactory()方法,如下代码所示。 public …...
KVM虚拟机部署K8S重启后/etc/hosts内容丢失
前言 使用KVM开了虚拟机部署K8S,部署完成后重启,节点的pod等信息无法获取到,查看报错初步推测为域名解析失效,查看/etc/hosts后发现安装k8s时添加的内容全部消失 网上搜索一番之后发现了 如果直接修改 /etc/hosts 文件࿰…...
Redis使用场景(五)
Redis实战精讲-13小时彻底学会Redis 1.计数器 可以对 String 进行自增自减运算,从而实现计数器功能。 Redis 这种内存型数据库的读写性能非常高,很适合存储频繁读写的计数量。 2.缓存 将热点数据放到内存中,设置内存的最大使用量以及淘汰策略…...

【UnityShader入门精要学习笔记】(2)GPU流水线
本系列为作者学习UnityShader入门精要而作的笔记,内容将包括: 书本中句子照抄 个人批注项目源码一堆新手会犯的错误潜在的太监断更,有始无终 总之适用于同样开始学习Shader的同学们进行有取舍的参考。 文章目录 上节复习GPU流水线顶点着色…...

CSS免费在线字体格式转换器 CSS @font-face 生成器
今天竟意外发现的一款免费的“网页字体生成器”,功能强大又好用~ 工具地址:https://transfonter.org/ 根据你设置生成后的文件预览: 支持TTF、OTF、WOFF、WOFF2 或 SVG字体格式转换生成,每个文件最大15MB。转换完成以后还会生成一…...

Codeium在IDEA里的3个坑
转载自Codeium在IDEA里的3个坑:无法log in,downloading language server和中文乱码_downloading codeium language server...-CSDN博客文章浏览阅读1.7w次,点赞26次,收藏47次。Codeium安装IDEA插件的3个常见坑_downloading codeiu…...
C-C++ 项目构建指南:如何使用 Makefile 提高开发效率
Makefile是一个常用的自动化构建工具,它可以为开发人员提供方便的项目构建方式。在C/C项目中,Makefile可以用来编译、链接和生成可执行文件。使用Makefile的好处是可以自动执行一系列命令,从而减少手动操作的复杂性和出错的可能性。此外&…...
基于SpringBoot的图书管理系统
文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 🚀🚀🚀SpringBoot 阿博图书管理系…...
矩阵对角线遍历
Diagonal 2614. 对角线上的质数 class Solution {public int diagonalPrime(int[][] nums) {int n = nums....

【教程】Typecho Joe主题开启并修复壁纸相册不显示问题
转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] 背景说明 Joe主题本身支持“壁纸”功能,其实就是相册。当时还在网上找了好久相册部署的开源项目,太傻了。 但是网上教程很少,一没说如何开启壁纸功能,二没说开启后为…...
MR混合现实情景实训教学系统在法律专业课堂上的应用
MR混合现实情景实训教学系统是一种将虚拟现实(VR)、增强现实(AR)相结合的先进技术。在法律教学课堂上,MR教学系统为学生模拟模拟法庭、案例分析等多种形式,让学生在实践中掌握法律知识,提高法律…...

车载 Android之 核心服务 - CarPropertyService 的VehicleHAL
前言: 本文是车载Android之核心服务-CarPropertyService的第二篇,了解一下CarPropertyService的VehicleHAL, 第一篇在车载 Android之 核心服务 - CarPropertyService 解析-CSDN博客,有兴趣的 朋友可以去看下。 本节介绍 AndroidAutomotiveOS中对于 Veh…...

年底了,准备跳槽的可以看看...
前两天跟朋友感慨,今年的铜九铁十、裁员、疫情导致好多人都没拿到offer!现在已经1月了,具体明年的金三银四只剩下两个月。 对于想跳槽的职场人来说,绝对要从现在开始做准备了。这时候,很多高薪技术岗、管理岗的缺口和市场需求也出…...
Bagging算法_随机森林Random_Forest
Bagging B a g g i n g Bagging Bagging是并行式集成学习方法最著名的代表,这个名字是由 B o o t s t r a p A G G r e g a t I N G Bootstrap AGGregatING BootstrapAGGregatING而来,顾名思义,该算法由 B o o s t s t r a p Booststrap Boos…...

物理与网络安全
物流环境安全 场地选择考虑抗震、承重、防火、防水、供电、空气调节、电磁防护、雷击及静电 场地因素: 自然灾害,社会因素(加油站、化工厂),配套条件(消防,交通,电力,…...

torch.meshgrid和np.meshgrid的区别
numpy中meshgrid: 把数组a当作一行,再根据数组b的长度扩充行。 把数组b当作一列,再根据数组a的长度扩充列。 torch中meshgrid: 把数组a当作一列,再根据数组b的长度扩充列。 把数组b当作一行,再根据数组a的…...
【PostgreSQL】约束-唯一约束
【PostgreSQL】约束链接 检查 唯一 主键 外键 排他 唯一约束 唯一约束是数据库中的一种约束,用于确保某个列或字段的值在该列或字段中是唯一的。唯一约束可用于确保数据库表中的某个列中的值是唯一的,也可用于确保多个列的组合值是唯一的。 在创建表…...
学习使用js/jquery获取指定class名称的三种方式
学习使用js/jquery获取指定class名称的三种方式 简介一、获取元素的class名称1、通过原生JS获取元素的class名称2、通过Jquery获取元素的class名称 二、应用1、样式修改2、动画效果实现 简介 在开发网页时,我们经常需要通过JS获取元素的class名称进行一些操作&…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...