LLM 实现Malleable 软件

154 阅读7分钟

All computer users may soon have the ability to author small bits of code. What structural changes does this imply for the production and distribution of software?

图片

如果每个终端用户都能修改一部分代码, 这个将会对软件的生产和分发有何重大改变?

来源:www.geoffreylitt.com/2023/03/25/…

所有计算机用户都将有能力从头开始开发小型软件工具,并描述他们希望对已在使用的软件进行的修改。换句话说,LLM 将代表对最终用户编程的工具支持的重大变化:普通人能够充分利用计算机的一般功能,而无需借助常规编程的复杂性。

到目前为止,这一愿景的瓶颈在于将模糊的意图转化为正式的可执行代码;现在,由于 LLM,这一瓶颈正在迅速打开。

人们使用软件的方式发生一些令人惊讶的变化:

  • 一次性脚本

    普通计算机用户的人工智能每天会创建和执行数十次脚本,以执行数据分析、视频编辑或自动执行繁琐的任务等。

  • 一次性 GUI:

    人们使用 AI 创建整个 GUI 应用程序仅用于执行单个特定任务 - 仅包含他们需要的功能,没有任何膨胀。

  • 自行开发而非购买:

    企业内部开发更多满足其定制需求的软件,而不是购买现成的 SaaS,因为现在根据用例定制软件更便宜。

  • 修改/扩展:

    消费者和企业要求扩展和修改其现有软件的能力,因为现在可以更轻松地指定新功能或调整以匹配用户的工作流程。

  • 重组:

    从您最喜欢的不同应用程序中选取最好的部分,然后创建一个将它们组合在一起的新混合体。

聊天 Chatbot

从一个基本问题开始:在 LLM 时代,用户交互模型将如何发展?具体来说,聊天机器人可能会接管哪些类型的任务?

聊天 UI 无法很好地完成许多任务,我们仍然需要图形用户界面。然后我将讨论 LLM 帮助我们构建 UI 的混合交互模型。

最后,我们将到达设计空间中我认为有趣的一点:open-ended computational media, 用户可直接学习和塑造,LLM是该媒体的合作者。到那时,这张奇怪的图表就会有意义了 🙃:

图片

GUI(图形)界面→ LUI(Language) → CUI(Command)  == 短期内 LUI 无法替换掉 GUI!

当我们使用一个好的工具时——锤子、画笔、滑雪板或汽车方向盘——我们会在潜意识中与工具融为一体。我们可以进入心流状态,运用肌肉记忆,实现精细控制,甚至产生创造性或艺术性的输出。**无论机器人有多好,聊天永远不会让人感觉像开车。**特里·维诺格拉德和费尔南多·弗洛雷斯在 1986 年出版的《理解计算机和认知》一书中详细阐述了这一点:

In driving a car, the control interaction is normally transparent. You do not think “How far should I turn the steering wheel to go around that curve?” In fact, you are not even aware (unless something intrudes) of using a steering wheel…The long evolution of the design of automobiles has led to this readiness-to-hand. It is not achieved by having a car communicate like a person, but by providing the right coupling between the driver and action in the relevant domain (motion down the road).

演示

通过 Slack 和顾问团队或者通过一个 app 解决问题差别, 来看看LLM 能做什么?

目的: 你需要分析一组数据,得到一些你销售预测的指标。

直接问顾问团队

  1. 好处: 灵活
  2. 坏处:
    1. 反馈慢:小时或者天

    2. 昂贵

图片自助平台

  1. 好处:

    1. 迅速
    2. 便宜
  2. 坏处: 不灵诺

图片

基于这个比较, LLM方案:

图片

更甚, 有一个 LLM 开发人员团队可供使用(注意没有开发者了),会怎么样?

  1. 首先,我们可以向 LLM 询问如何使用该应用程序,这可能比阅读文档更容易。

  2. LLM 开发者(不是人类开发者) 可以超越这一点并更新应用程序。

图片

当我们提供有关添加新功能的反馈时,我们的请求不会在无限队列中丢失。他们会立即做出回应,我们只需要来回沟通即可实现该功能。当然,新功能不需要发送给每个人;它只需为我们的团队启用即可。

请注意,这只是一个粗略的设想。我们缺少很多关于如何将这个模型变成现实的细节。当今软件构建的许多细节使得这种即时定制变得相当具有挑战性

两个循环:

  1. 快速直接的操作界面与工具融为一体, 借助LLM 助手
  2. 现有应用程序的极限时,有意识地向 LLM 开发器 提供反馈并构建新功能

Excel

这种双重互动循环是否让你想起了什么?

想想电子表格是如何工作的。如果你在电子表格中有一个财务模型,你可以尝试更改单元格中的数字来评估某种情况——这就是直接操纵的内循环。

但是,您也可以编辑公式! A spreadsheet isn’t just an “app” focused on a specific task; it’s closer to a general computational medium which lets you flexibly express many kinds of tasks.

图片

我们可以像这样绘制电子表格交互的双循环。您可以在电子表格中编辑数字,但也可以编辑公式,这会编辑工具

原始方式

图片

  1. 优点:
    1. 迅速
    2. 便宜
    3. 灵活 (部分)
  2. 缺点:无

本地专家

平台由微软开发,但本地开发人员能提供更直接的帮助来定制工具,由于同属一个团队,获取支持更为便捷。用户通过参与开发过程,会逐渐学会更多电子表格的使用技巧(用户心智培养和习惯教育)。

图片

当然你可能没有这些本地开发者, 或者专家, 这个时候智能 baidu/google 了,想象你大海捞针一样在网络上寻找 excel 的一些公式!

**如果让 LLM 扮演本地开发人员的角色会怎么样?**也就是说,用户主要负责创建电子表格,但在需要时寻求一些公式的技术帮助?LLM 不仅会创建完整的解决方案,还会教用户下次如何自己创建解决方案。

LLM 开发器

图片

这幅图展示了一个我认为非常引人注目的世界

  1. 内交互循环,充分利用了直接操作的全部功能(GUI)。
  2. 外部循环,用户还可以在开放式媒介(open-ended medium)中更深入地编辑他们的工具

他们通过 AI 的辅助来编辑工具,同时提高自己使用工具能力。随着时间的推移,他们可以学习公式的基础知识或工作原理如:VLOOKUP。这些结构化知识可以帮助用户思考该工具的可能用例,还可以帮助他们审核 LLM 的输出。

随着用户对工具越来越熟悉,他们对人工智能的依赖会随着时间的推移逐渐减少

到目前为止,开放式计算媒体(open-ended computational media)的设计一直受到LLM编程瓶颈的限制。

LLM 一直在试图解决高效灵活地将自然语言转化为代码!大家可以看到 Claude Artificat, OpenAI canvas 都在尝试解决这部分问题, 包括各种编程助手,如 cursor, windsurf, blot.new continue.dev 等等!

PS: 根据美国业界的说法:如果一个模型能够在生成良好代码方面表现更出色,那么通常它也能对非代码生成类型的其他用户查询产生更好的答案。

玩耍AI 编程助手工具 ApiSmart