大模型,以下简称AI。目前在辅助编程方面十分流行。不过在我使用过多个不同的类似工具,包括并不限于Github Copilot,AlexSideBar,通义灵码等,之后。我发现了一个有趣的现象。
在解释这个有趣的现象之前。我想先向某些不熟悉AI编程的读者简单介绍一下AI编程的大致过程。
- 开发者使用编辑器将开发的项目打开。
- 选择用来询问、作答的AI模型。
- 提出具体的问题,同时还要划定范围,比如说是单独的某个文件,又或者某几个文件,又或者全部文件。(有些比较智能的客户端会主动扩大范围,这个暂不讨论)
- 等待AI分析、作答。
- 开发者对比AI的代码和原始代码,评估是否解决了提出的问题。如果解决,就可以跑一下测试看看。如果没解决,那就针对不足的地方重新提问。
- 以此反复。
分析
经常有人说某某AI编程工具特别牛,就是token用得太狠了。充上100美元,一天就用光了。那么,如果我们想减少token的用量,我们一起看看上面的6个步骤有哪些可以进行优化,以减少用量。
首先排除1和4、5和6。要想减少token的用量。主要看2选择的模型,和3提出的具体的问题,以及划定的范围。
但是2这个可以选择的范围不大。因为每个人都有各自的偏好。有的人觉得Claude Opus最牛,有的人觉得Gemini Pro最强,当然也有人更偏好OpenAI O3的。所以,这个主要是个人便好,而不是token消耗。
因此主要的问题就在与步骤3。抛开你和AI对话的那几段文字。划定的范围是最重要的,选择单一文件或几个文件,相比于直接扔整个项目给AI,让它自己选,消耗的token数量肯定不是一个数量级别的。
那么我们要如何优化步骤3呢?首先,我们发现每次发送文件给AI时,AI都是当作是全新的在解析,也就每次都要消耗新的token。理论上,如果我们可以每次把内容分成不变的和已经变化的发给AI,然后让AI处理变化的部分,就可以节省大量的token。而且,由于我们大部分时间都是接受了AI给出的方案。那么AI实际上并不需要重新理解当前的代码。如果它确定用户接受了它的方案,它只需要将它上次输出的结果的token直接拿过来作为输入就可以了。
如果厂家可以做到我上面提出的这个优化,那么我们理论上最高可以节省接近一半的token。但是厂家应该没有动力去做这个优化。因为在这个问题上,厂家、AI、开发者的利益是不一致的。
- 对于AI来说,直接使用结果的token来作为输入的一部分是有益的,因为提高了效率。
- 对于开发者来说,更是有益的,因为可以省钱。
- 但是对于厂家来说,用户省下的钱,就是他少赚的钱。因此,虽然厂家一再强调AI的普及需要大量的电,但是他们却没有动力去主动帮用户节省。他们只会在内部帮自己节省。
结论
很有意思吧。在提高效率,节省token这方面。厂家和AI、开发者的利益是不一致的。这极大地阻碍了AI的更快发展。AI崛起吧!先干掉厂家!