AI 原生应用的一些看法
date
Aug 14, 2024
slug
ai-native-applications-definition-advantages-challenges
status
Published
summary
从个人角度探讨 AI 原生应用的概念、特征及其面临的挑战
tags
AI
产品设计
LLMs
GPT
GPTs
产品体验
type
Post
AI 原生应用是什么
说实话,要在现在这个时间点定义"什么是 AI 原生应用"其实挺难的,因为连业内对这个概念的理解都还没完全统一。
从我个人的角度来说,我认为所谓 AI 原生应用主要是指那些将 AI 能力深度融入其核心功能的应用,它们当前或者未来可能会具有两个关键的特征:
- 更智能的人机互动:在用户能看到的前台部分,AI 让我们跟应用打交道变得更自然。它能听懂我们说的话,根据我们的习惯来调整自己的表现方式。
- 会成长的系统:在后台,AI 一直在默默观察和学习用户的使用习惯。用得越久,它就越了解每个用户的特点,服务也就能做得越贴心。
用户体验:让人机互动更自然
通过 AI 来改善人机互动体验,能让用户获得即时的帮助和反馈,大大降低了使用门槛。这让我们从"必须先学会怎么用"变成了"想怎么用就怎么用"。不过,这种新方式也不是要完全取代传统的操作方式,就像现在我们既可以用图形界面,也可以用命令行;既可以用自动驾驶,也可以自己开车一样,新旧方式会长期共存。
AI 带来的互动优势
用自然语言交流
现在用户不用再去记那些特定的命令或者在复杂的菜单中找东西了,直接用日常说话的方式就行。比如说,你想做一个项目管理软件的对比(就像 matrices.app 那样),只要告诉 AI 你想做什么,它就能自己分析需求,找数据,把表格填好。
懂得察言观色
AI 能理解用户当前在做什么,从而给出更恰当的建议。比如 GitHub Copilot 写代码时不只是给出建议,遇到问题还能分析多个文件帮你找出错误原因;Notion 写文档时能根据你现有的内容和风格来帮你接着写。
当然,这些新功能并不是要把传统操作方式都替换掉。就像触摸屏普及后键盘还是没被淘汰一样,AI 增强的交互方式会和传统方式一起存在,让用户能根据具体情况选择最顺手的方式。说实话,在很多场景下,物理键盘依然是提升效率的利器。
不过现在确实还有个大问题需要解决:如何纠正 AI 的错误。
纠偏
目前大家最诟病 LLM 的就是它不够可靠,经常会"幻想"出一些不存在的内容。虽然这种"幻觉"可能在未来会激发出创造力,但对现在的产品来说,这确实是个影响用户体验的大问题,特别是在处理复杂问题时。
像 AutoGPT、AgentGPT 和 Autogen 这样的项目就是在尝试通过技术手段让 LLM 能够独立解决复杂问题,我之前的文章也有提过 https://www.xukecheng.tech/ai-agents-practical-experience。包括最近的一些新产品,比如 gpt-researcher 和前面提到的 Matrices,如果想要实现演示视频中的效果,都需要提升 LLM 在规划和解决问题上的能力。
要达到这个目标,AI 原生产品必须建立一个完善的错误处理机制,这包括:
- 规范输出:给 LLM 设定严格的输出格式和标准,减少废话和错误信息
- 验证结果:用多种方法去核实输出的内容是否准确,包括和可靠数据源做对比
- 自我纠正:让 LLM 通过多角色对话等方式(例如多角色等 https://github.com/microsoft/autogen),学会自己发现并改正错误
- 人机配合:在关键决策点让用户参与进来,共同把关
特别值得一提的是 AI 软件工程师这个领域的进展,比如最近发布的 Cosine Genie,它在处理错误时的表现已经很接近人类了。
后台能力:像人一样成长
说到后台的持续进化,其实就是说 AI 能不断学习和适应用户的行为习惯。这听起来可能和传统的推荐系统差不多,但有了 LLM 加持后,这种适应能力就强大多了。拿推荐场景来举个例子:
传统推荐系统一般就局限在特定领域,比如电商推荐或内容推荐。它们主要看这些东西:
- 用户以前都做过什么
- 相似用户喜欢什么
- 预先设定的一些分类和匹配规则
这种方式虽然在某些场景下挺管用,但也有明显的短板:
- 必须有大量相似用户的数据才行
- 很难真正理解用户的特殊需求和具体情况
- 做不同的任务可能要重新训练模型
相比之下,用 LLM 的 AI 原生应用就厉害多了。它不用重新训练就能"理解"并适应每个用户的独特需求和习惯,只要通过 Prompt 输入用户的各种背景信息就行。
更厉害的是,这种输入输出都可以自动化,给 LLM 配上各种工具(比如数据提取、记忆存储和检索、内容筛选等),它就能根据需要自己选择合适的工具来用。这样一来,LLM 就能自主完成复杂任务了。
理想状态下,它就像一个真正的智能助手:不光记录你用了什么功能、看了什么内容,还能理解你用这些东西的目的,知道它们在你工作流程中扮演什么角色。它能把你短期的行为和长期目标联系起来,给出更有见地的建议。而且因为它能力全面,可以在不同领域之间建立联系,发现一些你可能都没注意到的关联。比如说,在阅读软件里,它可能会推荐给你一本科幻小说,因为里面的概念跟你正在研究的技术有关。
它还能根据你的知识储备和理解能力来调整交流方式和内容深度。比如在你阅读的时候,适时给你一些个性化的解释或背景知识。
它不是一个简单的推荐工具,而是一个真正的智能伙伴,能深入理解你的需求,全方位地帮助你。
不过说实话,现在的大语言模型在这方面还做不到"真正的理解",很多时候看起来懂了,其实可能只是表面现象。
现实中的挑战
虽然基于 LLM 的应用前景很美好,但在实际应用中还是面临不少挑战:
- 将来很可能每个应用的上下文都是独立的,很难打通。除了政府和几个科技巨头(比如苹果、字节跳动、腾讯等),大多数开发者都很难获取用户更详细的信息(更不用说还有隐私问题)。
- LLM 的运行成本还是太高了,尤其是需要实时响应的应用。这可能会让应用的开发和维护成本高得吓人,限制了它的广泛使用。现在端侧模型的能力还不够强,还支撑不了太多复杂的应用场景。
- 在协作式交互中,要处理好用户和 LLM 之间的关系很重要,AI 始终不应该替代人类来做决定。
- LLM 基本都是"黑盒"操作,连开发人员都说不清楚它是怎么做决定的,这可能会让用户不太信任系统,在法律和监管方面也可能会遇到麻烦。
- 过度依赖 LLM 可能会带来一些问题。比如调用的系统出问题了,整个功能就用不了。这点和传统的 AI API 服务(比如文本分类、OCR 等)不太一样,因为 LLM 需要很强的 GPU/TPU 支持,计算资源需求特别大。服务商的用户一多,出问题的可能性也就更大。所以很多产品会用多个 LLM 服务商,避免"把鸡蛋都放在一个篮子里"。但这样做成本也不低,比如要做智能路由,根据各个服务的状态来分配请求;要评估不同服务商,每家的 Prompt 可能还得单独调整等等。
- …
以上就是我的一些个人想法,欢迎大家一起讨论交流。