距离How I Uses LLMs (Oct)又过去一段时间了,记录一下最新的情况以便之后考古。要论有什么trigger的话,要数最近公司给了不限量的Claude,让我爽玩了一把,甚至玩到主动加班到深夜。

LLM解决了什么问题

从GPT 3.5出来我就在想,这个东西到底改变了什么?三年半过去了,我的答案竟然几乎没有变化。

  • 冷启动:开始一个项目,不再需要所谓机器学习/深度学习专家,几句自然语言就可以开始vibe,但大体抹平了不同规模的组织之间的差异。自己做一个“智能”的产品或者服务,不再是拥有海量数据和工程师的所谓大厂的专利,中小厂不再一定需要通过采购和vendor lock-in来获得这个能力,街边的咖啡店如果想的话,也能亲自糊一个出来。哪怕是slop呢,又不是不能用,哪有那么多并发高可用的屁话,服务好社区的几百个用户更有价值
  • 长尾:旧时代放弃掉的需求,现在因为实现成本显著降低,都可以捡回来了,解决的长尾问题越多,产品的个性化越深入,替代成本也就越高。哪怕一个产品日活只有几十万,如果一个需求只能服务上一百个用户,从优先级和ROI的角度来讲一般都是战略性放弃或者至少是拖延,但如果这是一个小时可以开发完的小需求,那就是另一说说法了(是不是味很冲)。或许还没有到每一个人的每一个诉求都能满足,但也是巨大的进步了

两个综合下来,行业的蛋糕更大了,有更多的人可以加入软件生产,通过“人人都是程序员”释放了天量的生产力,边缘用户能拥有更好的产品和服务,也能刺激消费,二者互相促进,增进了全社会的产出。

LLM有什么问题

LLM成也概率败也概率。因为概率,LLM的产出代表了一定约束条件下的概率上的最优解,所以每个人可以在自己可以表达出的约束条件下获得一个最好的答案,最终提升了全体用户获得答案的中位数品质。但是,中位数意味着平庸,如果你的成功不是依赖高概率,而是依赖小概率事件,LLM不说无能为力,但至少效果要打很大的折扣,例如一个程序员写的不是web app而是linux kernel。当然了,概率是相对的,模型能力也是在持续进步的,可惜只要模型架构还是基于概率,这个问题永远存在。

好消息是,因为这个问题的存在,人不会完全被异化,因为总有需要人工介入的部分,随着这个空间的比例被不断的压缩,人的潜能或许也可以进一步释放,配合上述做大蛋糕的效果,我们会有一个光明的未来。

LLM如何解放个体(我)

组织内个体的变革,钱、闲、agency缺一不可。

最近大概花了两周的时间,对自己日常工作的流程进行了一个大的改造。其实有这个想法已经很久了,大概在Claude Sonnet 3.5出来的时候就有,但为什么直到现在才执行呢?就是因为最近我内部转岗到了一个新部门,刚来的两个星期,因为要从零开始给新部门搭建数据pipeline,我才有精力边工作边研究这些,也是希望在setup的过程中顺便整理好以后给LLM的context,在之前的部门literally每时每刻都在救火,根本没有时间思考。再加上安全限制,我曾经有过一些小的尝试,但是都被安全发现并且警告了,最后甚至连Cursor也不让装了。在我转岗到新部门的第一天,正好全公司范围内开放了Claude Code的使用,没有了所谓安全问题,并且还有不限量的token,所以也是一个很好的契机。

除了可以自由探索的技术环境和组织环境,又因为语言模型到今天它还是一个基于概率的输出,所以跟抽卡一样,唯一能够获得好的结果的方式就是靠自己大量的抽,量变引起质变。所以除了要有足够的时间和资源,一个人还必须有足够的agency长时间进行思考,勇于推翻自己的过去,创造自己的未来。我恰好又是一个比较喜欢折腾的人,所以能够完成最近的这些对工作流程的根本性的改造。

至于说我具体做了什么?我的工作现在市场上的title叫做analytical engineer,一半做数据开发、数据工程,一半做面向业务的分析和决策。目前改造的核心的原则还是把语言模型当做手,而不是当做脑。一方面因为我们的数据质量很差,基础的指标缺失,没办法一上来就做分析,另外也是因为工作中的业务场景LLM只能产出一些正确的废话,抽卡效率太低没必要。

为了将自己从麻烦又易错的手搓SQL中解放出来,我首先做的事情是将需求用到的上游表的元数据从数据平台copy出来保存到本地文件,然后让Claude老师基于已知的信息推断数据结构和业务信息,再根据需求生成SQL,最后我复制粘贴到数据平台运行。其中的核心步骤是需要Claude老师澄清对于数据的理解,包括不限于通过diagnostic SQL来确认数据分布,通过问我问题来吸收数据之外的业务知识,等等。因为解决了最烦人的一步,即便整体上还有非常多手动复制粘贴,对工作体验的提升也是巨大的。

在基本跑通SQL生成之后,下一个痛点便是数据平台的操作。我一度认为要想把操作自动化,依赖于数据平台开放API,或者提供直连数据库的方式,但Claude老师还是太强了,我随口问了一句,它便给我搞定了通过Chrome DevTools Protocol来操作浏览器。常用的功能其实只有临时跑数、查看元数据、创建定时任务、回刷历史数据,我从告诉Claude我怎么操作让它复现,到现在只需一个入口URL,Claude老师便可自行搞定一切。

但随着保存的元数据和生成的CLI越来越多,context很容易用完也很容易被污染,所以下一步得开始研究“什么是一个好的context”。

效率迷思

LLM解决不了效率问题。或者说,如果一上来什么都不做就指望LLM通过提升单点效率来解决组织的全局效率问题,是不可能的。一个组织有无数个节点和无数条边,即便LLM可以消灭掉其中的一些点,对整张网来讲,效果也等于没有,甚至会陷入麻烦守恒,少了一些节点,但另外更多节点变得更复杂,整体复杂度反而提升,全局效率反而降低。所以收手吧,阿祖,不要再用效率当(唯一的)卖点了。

Fun

除了工作,最近发现的一个好玩用例是让Claude老师给我收集演出信息,并生成日历。All you need is说出诉求,哪个城市,什么类型的表演,十几分钟后就可以在Apple calendar上看到所有的演出了,妈妈再也不用担心我复制粘贴到怀疑人生了。