Logo Ernie.SG

给人用的 A.I.:打造 A.I. 原生产品和……

2024年3月25日
2 分钟阅读
暂无标签

用 WhatsApp 完成新用户引导与创建

通过互联网异步地完成用户引导和新用户创建,这样同一时间就能处理多个用户。结果这类问题做到最后很像:我到底为什么要折腾这个?这不就是 Web 开发者的活吗。我只想跑数据、建模型。可话说回来,能靠 GPT-4 驱动的 Cursor 把它弄明白,我还是挺高兴的。

我非常期待有一天我侄女长大之后来一句:你们当年到底怎么忍受那些蠢软件和蠢服务那么久的!?比如,公司为什么要部署那种唯一用途像是把你拖进挫败感里的聊天机器人,还有那种自动电话录音,听完之后你这辈子都不想再打给他们?一旦你尝过智能系统能马上回你一个够用的答案,就很难不拿你遇到的每一个真人客服去和它比较。

我这阵子一直在优化自己的写代码流程。以前勉强默认的做法,就是把一个 ChatGPT 窗口和 Visual Studio Code 并排开着,但这个搭档实在不怎么靠谱。我讨厌重复解释,讨厌 A.I. 忘记我的上下文;当它开始偷懒时,我通常会在扯头发和砸键盘之间选择后者。然后一段对话一拉长就会变得很慢,UI/用户端时不时冒出一些随机怪错误,最糟糕的还是速率限制。天啊,那个速率限制。所以我一直在找更好的替代方案。

我跳过了 GitHub Copilot,因为网上没看到太多推荐,而且它似乎不能让你和代码库聊天,而这一点我很喜欢。于是我试了 Gemini Advanced、LM Studio 上的一些本地模型、VSCode 搭配 Continue 等等,但在我看来 GPT-4 的综合能力仍然是同类里最强的。Continue 加 LM Studio 又实在笨重,所以我也没怎么用……直到最近参加一个活动时,有位讲者提到 Cursor。这个名字之前也出现过,只是我一直没试,于是决定上手看看。然后我觉得,我好像短暂瞥见了未来的软件和服务应该怎么构建:做成把数据当一等公民的 A.I. 原生产品。它的感觉和运作方式,都比硬把东西改装进既有工作流里顺太多。

要给 Cursor 记一功:我终于完成了一个通过 WhatsApp 做用户引导和用户创建的功能,底层是由 Firestore 和 FastAPI 支撑的无状态设计。我用的是同一个底层模型,但在我默认那套配置里,这个问题解决起来痛苦到不行,我都快打算整个放弃了。有几件事尤其突出,也很有 A.I. 原生产品的感觉;我之所以能在 Cursor 里做成这些事,而在之前试过的那些工具和流程里只会原地打转,大概就靠它们:

  • 用 ReAct 调试

    • 这对我来说是一个让我当场买账的杀手级功能。单是能实时看着 A.I. 思考、行动、观察,对我自己的学习就极其有用。我觉得很多时候我们自己使用 A.I. 时,会被自己的知识和想象力限制住;所以看到 A.I. 接过一段指令,然后在解法空间里搜索,实在非常迷人,也很适合拿来做元学习,去理解我自己的软件工程需要哪些心智模型和基本构件。
  • 代码库索引

  • 在上下文中生成和替换

  • 长文本块的截断与处理

  • 联网获取最新代码库

对我来说,构建把数据视为一等公民的 A.I. 原生产品和体验,感觉像是“软件吞噬世界”又被可并行化、数据和指数级规模一起打了加强针;也许这就是为什么一切曾经慢得要死、难得要命,然后突然之间,所有东西在所有地方同时发生。更有意思的是,这里面很多其实都是旧架构,是几十年前的想法,只是我们终于有了足够的算力和互联网规模的数据让它们跑起来。所有基础、积木、数据和基础设施明明都在 Google 手里,可到目前为止,在公众感知里它却显得这么落后。这是一个全新的范式,所以现在就是这么一个奇怪的新世界:老人年轻人都一边学,一边往未来搭。所有东西都跑得太快了,而它归根结底又只是 X -> ŷ,中间夹着数量不等的层。我觉得这太、太迷人了。四月迫不及待想在西藏好好待一阵子,和概率、统计,以及 A.I. 坐一坐。

旧习难改,所以我预期今天许多巨头会一边把 A.I. 拍进自己的系统里,一边继续活得长长久久、繁荣昌盛。但我真的等不及想住进一个以数据为一等公民的 A.I. 原生世界。一旦这个基本构件成立,不去构建那种会随着用户数据变多而变得更好的软件和/或服务,不就很蠢吗?这个 A.I. 冷呼叫智能体音乐生成真的是野到不行。Google 传说中那个能帮人预约理发的 A.I. 助手,大家后来都忘了,所以我猜它应该没跑起来,但感觉也就是昨天的事。智能手机在很大程度上改变了我们消费信息的方式,可大多数工作仍然需要某个人类处理输入,放进他们体内那台计算机里跑一遍,最后产出结果。人类历史上第一次,我们不必把所有业务逻辑都编码进“人力”这台具身计算机里,而可以调用更可扩展、更可复现的算力。也许这值得好好想一想,我不知道有没有一个名字可以形容这个现象:我们对技术的期望值几乎拉到很高,可对人类却总是网开一面。我今天状态不好。睡不够。事情很糟。我们也不知道人生要怎么办,所以就先混着。但与此同时,我们又期待技术能够始终如一、持续稳定地工作。这其实完全合理,只是,写软件和构建由软件驱动的服务这件事,越来越让我想问:为了有效且规模化地管理这些工具,一个人到底需要理解多少底层机制?

我高度怀疑,正确混合几种能力会变得越来越关键。首先是技术专长。我的意思是,尤其当你做的事情是利用智能来获得竞争优势时,你至少要能专业地咬进去,推理这些系统。我还没想清楚,只知道机器会从数据中学习模式并做预测,究竟够不够;还是说必要时你得能自己写损失函数。因为如果不懂灵活的函数形式、损失最小化和反向传播,一个人到底要怎么对这些预测机器为什么这么离谱地好形成好的直觉?当然,就算懂这些,也不必然意味着你能对世界和进展方向形成更好的预测模型。所以你要么自己懂,要么把这个角色托付给别人;而为了那个“别人”,我猜你会和世界上最大的公司们抢人。其次是沟通与领导能力。说白了,推理和批判性思考短期内不会消失。

说到底,这些在深海电缆里奔跑的比特和字节,竟然传递了这么多东西,让这么多事情成为可能,而且就这么运作起来,甚至在政府和机构有时失灵的地方也照样工作。这难道不有点像奇迹吗?也不正是经济学、资本和算力汇合在一起时的美吗?当然,这不是说技术是什么银弹,也不是说这个行业没有一堆问题;关于获取权的问题我在这里谈过。但此刻我只想短暂泡在 A.I. 温热的光里。:)

我也希望用自己的时间,在这个领域里做出一点有价值的东西。人生里有些事就是这样:如果它成了,而我又足够幸运,也许能赚很多钱;如果没成,反正我也会玩得非常开心,那为什么不呢!?


最初发表于 PubPub:erniesg.pubpub.org/pub/161hmmds