ChatGPT等大语言模型为什么没有智能

今天我们来闲聊聊chatGPT,然后带出一些目前神经网络或者更大一些人工智能存在的问题,仅作抛砖引玉。我不管OpenAI用什么方式炒作,Q*也好,AI自我意识也好,董事会内斗也罢;首先它的成绩还是非常出色的,并且chatGPT这个产品在大规模使用深度模型上算是非常成功的,however,chatGPT只能算是 Artificial If-clauses(AI, 姑且命名为人工条件生成器),算不上人工智能(Aritificial Intelligence, AI);我们离真正的人工智能还有一定的距离。

ChatGPT没有智能

ChatGPT的效果是惊艳的,大量数据被压缩成了vector,折叠起来,存储起来,需要的时候播放出来。我们要肯定它在数据压缩技术上的突破。
我们可以先参考这两篇论文,诉说着现在的深度神经网络和数据压缩的关系。

Opening the Black Box of Deep Neural Networks via Information, 2017
White-Box Transformers via Sparse Rate Reduction, 2023

简单来说,第一篇是想探索没有BP过程如何能训练神经网络(这篇是探索人工智能很重要的一步),第二篇则是将Transformer用信息论的方式导出了一个更明确的解释(相当于sigmoid和二分类问题的关联解释);具体的话知乎和CSDN上专家们比我解释得详细得多,有兴趣可以自行搜索查阅。深度神经网络的可解释性一直备受关注,大家都希望通过解释各个层的用途,从而更好控制整个网络的性能。

discriminative(判别式,和generative生成式对应)从一开始我们就知道其实它是一个大型穷举算法。我们通过注入不同的参数,然后用tensor的形式让参数们相加相乘,然后配上激活函数,就像是程序员在写的一个个if语句,当某个数值达到某种条件的时候,会让这个层上的这个参数给与后续参数一个正向激活,最终输出结果,所以我们说现在的神经网络,其实就是Artificial If-clauses (AI)。相当于,以前程序员写图像处理,用数学公式简化步骤后,最后能用lisp写个几百个if就能进行图像分类了;然后慢慢发展为大型决策树,if更多一些;到现在的深度神经网络,if已经可以达到亿万了;但是if就是if,是离散的,所以一定会有过拟合,判断不准不一定是写得不好,人类测量精度在那里,只能概率论只能量子效应了。

不过能让神经网络模型有那么一点智能,其实是训练过程。这才是人工智能的根。这方面不发展,人工智能只能是天方夜谭。

神经网络忽略的东西

困惑的Embedding

第一个让人困惑的是Embedding;这里可以引出目前神经网络在NLP上的一个问题,就是想用一个global vector表示语言。这个搜索引擎挥之不去的印记,余弦夹角快捷方便,真香。但是目前它的表示是碎片化的,就是说比如768维的vector,可能在某个领域作预测的时候有30维是有效的,另外738维都是噪声,这样的话,网络里的一些层里的一些channel需要遍历各种可能将30维都用1乘出来其他配0…当然开源的大语言模型都是以词为单位的,到了ChatGPT其实还在前面做了character字符为单位的tranform,这样可以检测拼写错误,让理解更精准,但是负面影响是可能人为需要这个错误的时候,要花更多tokens去解释这个故意的“错误”。对于多义性,可能要用到搜索排序的beam search top k,要根据上下文才能确认哪一个是真正的表述…

……蒋劲科大校长叹道……
……蒋劲(人名) 科大(学校) 校长 叹道……
……蒋劲科(人名) 大校 长叹道……
……蒋劲科大(学校) 校长 叹道…… 

所以vector还需要更细致地动态生成,这个已经有不少研究在路上了。从感觉上,至多可以将vector压缩到3维;为什么是感觉上,这个是收到求解自然底数e极限的启发:

e = lim ( 1 + 1/n )^n
    n->∞

强行幻觉就是,(1 + 1/n) ^ n = ( (n + 1) / n )^n,相当于现有知识增加n微量新知识1,用现有知识n分解,再用现有知识n包装,极限是2.71....向上取整就是3维。当然,这里还是当我在一本正经胡扯比较好。

for语句在哪

我们看到神经网络有了 if-clauses,但是见不到 for,目前我所知道的尝试有一个skipNet的,但是基本上目前的循环就是靠if硬生生套了,就是本来我们写for语句是

sum = 0
for i = 1 to n
   sum += i

现在用if就是类似于

sum = 0
if i && 1 then sum += 1
if i && 2 then sum += 2
if i && 4 then sum += 3
if i && 8 then sum += 4
……

并且这个是有限的比如根据模型参数的数量max最大到100,不像上面用for的时候n可以是任意的。还有一个比较典型的案例就是SPP,Yolo里识别多尺度大小的物体的时候做的尝试,是有限地设计成几个bounding box尺度大小。

dropout竟然这么有效

曾经有幸和Google的data scientist一起探讨过,如何连接机器学习五大学派(SVM/kNN 类比学派,贝叶斯学派,NN 连结学派,逻辑学派,EA 进化学派),他认为dropout其实构建了random forests。而从穷举空间来看,我感觉dropout能工作,更像是因为drop到参数大动脉是一个小概率事件,换句话说,我们现在discriminative出来的大量参数,只有很少量是起到主要作用的,参数自身sparse…就比如一个团队,你把捣乱的人踢走了,团队更有效率往一个方向发展;但是从EA来说,你还必须得保留一些捣乱分子,因为他们会干扰方向,当参数收敛遇到问题的时候,可以靠他们把整个团队拉出坑;这个很神奇,也是曾经说神经网络坑爹的地方,就是在穷举搜索空间,你永远不知道这个“坑”的“爹”(比当前最优解更优的解是否存在并且)在哪个地方。所以几年前EA带着autoML火了一段时间。

其实还有不少问题,今天就到这里吧。以后再说。
休息了…打烊…

J.Y.Liu
2023/12/02

p.s 最近发现ChatGPT比如4-Turbo确实已经降“智”(性能大不如前)了。六个月前的问题:“写一个python程序,输入是2个字符串,最终要打印出这2个字符串,并且对齐这两个字符串,相同的字符尽可能多地显示在同一列上,可以用空格分割一行上的字符串”

这个问题ChatGPT3.5-Turbo在6个月前可以1@Pass一次通过写出正确的答案。现在4-Turbo则需要加一个提示请使用LCS算法;而后其他模型都答得牛头不对马嘴。失望。

国内的大模型确实还有很大提升空间,差距也很明显。但是目前的大模型,有一定比技术,但主要还是在比拼财力,颇有当年星球大战的氛围…

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-06 11:58:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-06 11:58:02       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-06 11:58:02       82 阅读
  4. Python语言-面向对象

    2023-12-06 11:58:02       91 阅读

热门阅读

  1. ArcGIS根据相邻关系提取相邻面&提取面公共线

    2023-12-06 11:58:02       54 阅读
  2. 检查您的手机浏览器是否支持WebRTC技术

    2023-12-06 11:58:02       67 阅读
  3. 微信小程序实现下拉刷新事件、上拉触底事件

    2023-12-06 11:58:02       64 阅读
  4. 利用Python爬虫爬取豆瓣电影排名信息

    2023-12-06 11:58:02       64 阅读
  5. (软件、服务、应用程序和协议)的默认端口号

    2023-12-06 11:58:02       54 阅读
  6. spark sql基于CBO的优化

    2023-12-06 11:58:02       67 阅读
  7. 自动化工具之-影刀RPA

    2023-12-06 11:58:02       55 阅读
  8. 后端架构的一些知识

    2023-12-06 11:58:02       57 阅读