
与模型打交道
本来很久之前就想写一个最近的工作总结,但又觉得过于沉重,所以还是仅仅讨论几个具体的事情吧。
首先,AI在过去的一年里面的成长是显而易见的——远远大于你自己的成长。我记得刚刚入职的时候用GPT去修一个前端的BUG都有点困难,现在别说修BUG了,找BUG修BUG评审一条龙都和我没关系。有时候我也很怀疑这个工作还需不需要我,因为大部分时候都是在等待Claude Code把代码递给我。
其次,两个关键的感悟都是在和模型打交道的时候发现的,是否具有普遍性有待观察。第一是,我们会倾向于用脚本去解决有限的问题——譬如说,我们用脚本去检测用户输入的到底是什么语言的文字,类似中文或者英文或者日语,然后针对每个不同的语言给对应的回答,这个其实也是我的同事一开始去做Chat的思路(现在看上去很蠢,但我自己也高明不到哪里去)。而LLM在这里解决的是一个无限的问题,譬如说你用LLM去判断用户到底是不是在阴阳怪气——你当然可以学共产党搞一个十万行的列表把现在中文里面所有的阴阳怪气的词全部穷举出来,但只要用户稍微动点脑筋你就歇菜了。譬如说,我可以说习近平大傻逼,也可以说“洗脚盆大傻逼”,或者“新加坡多少倍”,其实都是一个意思,而且这个仅仅是谐音梗。简单来讲,如果你面对的是一个无限的分类,那么LLM就能派上用场了,反之则是脚本。
第二件事,是用一个模型给另外一个模型输出prompt。我们的场景用是需要让sonnet(或者同一个级别的模型)去输出一个prompt,然后把这个prompt原封不动地教给谷歌的img模型去生成一个图片。我们尝试了很多种方法,包括我的另外一个同事最早做了一个接近4000字的规则库,结果生成的结果惨不忍睹,而且每次生成的时候都会消耗大量的token,让我们的老板怀疑我们是不是在故意搞破坏。到我接手后,我一开始是完全不干涉,规则为0,让sonnet自由发挥,结果时好时坏。后面则是看了Anthropic他们自己是怎么做的——不用规则,而是用例子,让sonnet去模仿。这个方法非常麻烦,假如说规则有问题,你改一行就可以了(譬如说,加入一条规则“请不要在图像里面画人脸”),但如果是例子有问题,你可能要推翻重写(是的,你要重写不止一个例子,说明白我们应该如何处理人名)。当然,你也可以让另外一个模型(Opus)去生成这些例子,但这个就是别的话题了。顺便一提,在这一点上sonnet和小朋友有点像,你很难用命令直接教会一个小孩不要用手吃饭,而要用叉子或者筷子。你应该做的是,让他模仿你怎么吃,他看到你没有用手吃饭(不需要知道为什么),用工具吃饭(你甚至不用教他到底该怎么去握筷子或者叉子),然后他就自然而然地学会了。






