让vscode支持按package.json exports中规定的路径查找引入
新版本的nodejs支持在package.json中使用exports字段导出特定的路径,具体的使用方法就不说了,总之对于webpack而言,要开启resolve.conditionNames,而对于vscode而言,则也需要处理才能支持按exports指定的路径查找。
vscode的提示主要还是依赖typescirpt的设定,但对于我们不需要引入typescript的项目,可以用jsconfig.json替代tsconfig.json来使用。在项目目录下创建jsconfig.json,并写入:
{ "compilerOptions": { "module": "nodenext" } }
同时,为了让vscode认定当前的环境需要使用import字段而非required字段,需要在当前项目的package.json中增加:
"type": "module",
这样就能让vscode支持在import时,识别到package.json中的exports配置。
前端使用流(Stream)
像AI一样学习和思考
在过去几十年里,我们行业无数人都在奉行一条理想,即“让机器像人一样思考”。但是今年,2023年,我想情况已经发生变化了,我们可以反过来奉行另外一条方法论,即“像AI一样学习和思考”。
ChatGPT等LLM应用的出现,让我们突然发现AI已经跨越了“智能”的门槛,上个月发布的GPT-4将拥有比之前任何一代AI都更智能的通过图灵测试的能力,可以说,在这个世界上,大部分人类无法和GPT-4的应用进行智力的对抗,可以说它对任何一个人类个体或群体形成了无限碾压,当然,人类目前还有一个法宝,就是“创意”,GPT-4仍然还是机器,它的主动创意仍无法和甚至当个人类个体抗衡。不过,随着社会上抵制的声音越来越大,我却从另外一个角度去思考,人类的智能未来有没有可能让渡给AI,并由此出现物理层面的社会共治。
紧接着上面的思路,我们先需要明确,人类作为地球上最智能的存在,拥有计算能力超强的大脑,因而非常强大。但是,我们也可以看到,历史是螺旋式上升,人类大脑的容量以及发达程度,是在历史长河中随着时间不断成长的,而不是物理上不变的。也就是说,即使原始人社会拥有现代社会完全相同的知识,也无法做到当代社会的智能,因为他们的大脑在物理上不如当代人类。人类的大脑在智能方面,核心功能是处理信息,但被处理的信息并不一定存储于大脑内部,甚至80%以上的信息来自外部,而且大脑并不持久化存储信息,它和CPU缓存是一样的,持久化信息必须依赖于其他物体。人类的知识是分布式存储的,人类社会的计算也是分布式的,能够形成人类社会,本质上是这种分布式计算的调度具有持续性,当这种持续性被破坏,这一文明就会面临灭亡。人类为了维护这一持续性,最好的办法是通过降低大脑的智能计算消耗来达到持久的演进。而AI从另外一个侧面,可以承接这一职责。在未来社会,智能方面的职责交由AI,人类保留创意,同时,社会权利让渡一部分给AI,这是必然的情况。当然,对于不少当代人而言,对这一预测会感到恐惧,因为他们会认为AI可以利用这部分权力对自己进行剥削。但我认为,这种让渡的目的就像当代社会法律中的权利和义务一样,是一种依存关系,如果不让渡权利,则无法获得对应的利益。
回到主题,AI已经具备了基础的思考能力。
在LLM迭代过程中,人们发现它涌现了多项智能。所谓“涌现”是指在人们设计之外,AI自己出现了一些我们未曾想到的能力,这证明我们已经完全不知道AI内部是怎么运行的了。ChatGPT涌现的能力主要有三项:知识积累、上下文学习(ICL)、思维链(CoT)。知识积累的结果就是AI具备基本的常识,能对和人类交互过程中遇到的信息进行甄别,理解人类表达的内容,成为脱离肉体的人类可交流对象。上下文学习的结果是AI可以在具体语境中自学习,按照语境下的设计完成任务,最核心的点在于AI具备了举一反三的能力,例如它的知识储备只有A1,但是在举一反三的加持下,它可以给出A2, A3...等等。思维链即预示AI具备了推理能力,我看到网上有一个故事:
我在某地向南走了1公里,再向东走了1公里,再向北走了1公里,回到了原地,此时我看到了一只熊,这只熊是什么颜色?
我看到这个故事的时候,一脸懵逼,走了一走,跟熊的颜色有什么关联性?我一度怀疑,这是无聊的人为了捉弄ChatGPT故意设计的错逻辑,但是没想到ChatGPT给出了答案:白色,并且做出了解释,“向南走了1公里,再向东走了1公里,再向北走了1公里,回到了原地”说明你此时处于北极点,而在北极看到的熊大概率是北极熊。
好,那么现在让我们换一个场景,我们现在把自己的身份换成物理学家,把一个我们未解的问题作为故事告诉AI,就像我们作为一个知识储备不足或者脑子没反应过来的普通人给它讲上面那个走来走去看到熊的故事一样,或许,作为物理学家的你,此刻就可能得到这个未解问题的答案。我们作为人类,在思维链上有些时候可能不及AI。AI并不是物理学家,也没有研究能力,但它能利用已有的知识储备和思维链能力,预测出一种可能的结果,当然,这个预测的准确性会根据不同场景而不同。
前段时间,大学封杀了ChatGPT,教育界对此感到害怕,当下,我们对教育的认知无外乎“传道授业解惑”,而以考试分数为导向的教育,可能更集中的把“知识传授”作为核心目标,至于知识传授外,学生在思想政治和品德上的修为全靠自己。AI时代的到来可能打破这一教育习惯。
我们从ChatGPT身上可以看到,它自身的知识储备并不多,40G的模型容量除了知识储备外,还要容纳各种算法,很难说它已经具备了比一个普通人更多的知识。但是,我们会认为它在知识上的全面性比普通人大得多得多。我们可以打一个不恰当的比方,如果它储存了1k的知识,但是却能使用1M的知识。而这里的储存,不是简单的“压缩”,1M无论如何不可能压缩到1k。对于LLM而言,它储存的知识是元知识、常识,而其他可被使用的知识是基于元知识的推理结论。这就像我们只储备了三大定律,却能使用所有物理学理论一样。因为所有的理论都是基于最原始的定律发展推理而来,因此,掌握了最原始的定律,就掌握了全部理论。
我们人类终其一生,是无法掌握全部知识,甚至是自己所处行业的全部知识。知识这种东西,它是动态的,而人类大脑是缓存,长期不用就会忘记,如果靠大脑来存储知识,那么终其一生都无法存储其中的一部分,会非常痛苦。但如果我们按照AI的方式存储元知识,同时掌握了行业知识的推理方法,那么就能架构出一个壳,这个壳在未运行时空空如也,而运行起来之后,就能基于元知识和未被遗忘的知识快速被充满。这样,我们自己也能使用1k的容量,具备1M的解决问题的能力。
未来的教育,必然会发生翻天覆地的变化。人类学习本身,不是“学习知识”,而是“学习方法”。而“方法”就是“模型”,是那个运行起来就可以被快速填满的壳。况且,即使我们想偷懒,也可以直接问ChatGPT,我们以往认为,只有自己掌握的知识才是真正的知识,并且杜绝使用辅助工具作为自己的知识。但是未来,类似ChatGPT一类的工具,将会成为人类大脑的延伸,你可以说它不属于人体,但是它会是人体的体外器官,而这个,就像如今的手机一样。
一旦在我们的体外拥有一个可以存储知识和提供运算的器官,那么,我们自己的大脑就可以被解放,对于人,特别是年轻人而言,不需要学习太多的知识,只需要学习底层知识和基础逻辑,让GPT类的体外器官帮我们解决需要知识的地方,而学习,应该去掌握各种“方法”。可能不少人不理解,举个例子,你知道“思想的方法”吗?这个事情我是很感兴趣,先贤是怎样思想的,我们自己应该怎样思想?如果掌握了真正的“思想的方法”,那么人类将拥有无限潜力。但是由于这个领域还比较年轻(2000多年),所以目前还有很多“思想的方法”论,即“哲学”。掌握了“思想的方法”,那么我们就会真正的“思想”,做一些人类更有意义的事情,而不是在寻找生存的方法。
现实一点的讲,未来10年,中国教育需要有较大的改革,降低知识传授的比重,提升方法论的教学,而且重点是非形式主义的方法论教学。