作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。
热门文章推荐:
(1)《为什么很多人工作 3 年 却只有 1 年经验?》(2)《一文掌握大模型提示词技巧:从战略到战术巧》(3)《AI 时代,程序员的出路在何方?》(4)《如何写出高质量的文章:从战略到战术》(5)《我的技术学习方法论》(6)《我的性能方法论》(7)《AI 时代的学习方式: 和文档对话》概括:
一、背景
最近很长一段时间,工作中在探索如何将大模型更好地运用在业务上。
最近看到了零一万物的“万知” 这款产品,发现和目前自己对 AI 应用到业务上的一些想法比较类似。
所以打算以万知为例,简单谈谈自己的理解,希望对大家在日常大模型落地能够带来一点启发。
二、一些浅显的看法
现在新闻上 AI 被吹的神乎其神,几乎无所不能,程序员马上要被取代。然而,实践中受限于模型能力和自然语言的局限性,当前 AI 落地问题众多。
2.1 模型能力问题
(1) 问题复杂度和模型能力之间的矛盾
相对简单的任务可以做的挺好,但是复杂的任务就会有各种问题。
在实践中我们通常需要将任务拆分成目前 AI 可以相对完成得很好的粒度,然后通过工程化方式串联起来。
(2)上下文长度、幻觉和用户体验之间的矛盾
我们需要给 AI 充分的上下文它才能做的更符合你的意图,才能将任务做的更好。然而,现在模型的上下文长度是有限制的,当提示词过长时,模型的注意力机制会导致中间的部分信息被“忽略”,模型也可能出现幻觉,导致效果并不理想。
比如我们想通过 AI 来生成代码,如果我们只给 AI 当前的类的代码,代码生成效果也一般,如果能够给出该类中引入的所有相关类,甚至整个仓库的代码信息,那么代码补全效果通常会更好。
比如我们想通过 AI 来生成 SQL ,我们如果直接通过用户描述生成 SQL 效果往往不太理想,我们可以将用户描述转为知识,知识中包括业务含义和表信息,用户对知识进行确认,然后再生成 SQL 效果会好很多。
实践中,可能会使用 RAG 技术,处理之前只将最相关的信息传给模型(需要对信息进行筛选,甚至重新排序等)或者对输入信息进行概括总结,降低上下文的长度。
大模型应用中可能会出现幻觉,现在的生成还是根据 “概率” 来的,有可能会出现“发挥失常”的情况。通常可以提供更充分的信息,提供重试甚至同时提供多个候选版本等方式降低模型发挥失常的影响。
2.2 自然语言之殇
虽然现在我们可以像和其他人沟通一样,通过自然语言和大模型进行沟通。但是,自然语言也具有局限。
自然语言的准确性:每个人的表达能力不同。有些人表达能力不好,容易提出误导大模型的一些描述。很多人在说话的时候可能自己也根本没想清楚。很多时候用户也许根本不知道自己想要什么,只有看到了效果,才知道这不是自己想要的。
自然语言的完整性: 实际生活中有些人会表述不完整,甚至自以为表述完整但缺乏隐含的知识**。 比如有个人自己创了一个概念,叫 XX 指标,如果不能够将这个概念解释给大模型,大模型只能靠猜测,很难给出准确的答案。比如不同公司的输入 “请帮我写一段公司缓存框架的示例代码”同样的提示词,想要的内容是不一样的。
自然语言的局限性: 自然语言很难精准描述复杂的事件。比如某人想要用大模型从心理学角度去分析相亲对象的行为。此时,她可能需要提供从见面开始,相亲对象的每一句话和每个表情变化,语气的变化,单纯使用自然语言来描述是非常困难的。
三、万知 AI 创作分析
基于模型的能力限制(如无法通过单轮对话解决复杂问题,上下文长度有限制,多轮对话容易丢失上下文等)和自然语言的局限性(如用户可能没想清楚,可能提供的信息不全,可能很难精准描述复杂的事情等),目前在工程落地中可以采用: 步骤拆解 + 工程编排 + 模型生成相结合的方式。
为了避免生成的内容不符合用户预期,万知将任务拆分成多个步骤:
第一步:基本信息填写,包括页数、字数、受众、场景、图片来源、参考文档和幻灯片主题
第二步:幻灯片大纲的生成
第三步:幻灯片的生成
在主要任务执行之前让知识显性化,而且尽可能详尽,让用户在模型执行主要任务之前进行确认、调整(删减、补充等)。
如万知通过了通过自然语言创建演示文档的功能,此时将关键的信息然用户做选择而不是输入,并将最常见的情况默认选项,避免用户输入时没有考虑到页数、字数、受众、场景等关键信息。
为了确保信息尽可能完整,万知也提供通过附件的方式上传相关文档。
AI 可能会误解用户的意图,此时需要人工来调整。比如这篇文章的开头有我的主要作品介绍,其中提到 “性能优化方法论”,AI 会将性能优化作为这个 PPT 的主题,显然不对,此时需要手动进行修改。
AI 生成大大纲也可能有问题,万知也允许我们对大纲内容进行修改和确认,如果对大纲不满意可以生成大纲。
大纲确认无误后,可以生成幻灯片,当然幻灯片不满意也可以重新生成和下载二次修改。
通过步骤拆解,一方面让用户输入更完整和准确,一方面降低交给大模型任务的难度。为了应对 AI 发挥失常的情况,也提供了重试功能。
虽然,我对 AI 生成的 PPT 并不满意,但是万知的 AI 创作理念确实值得学习。
四、总结
当前在 AI 落地时,可以借鉴万知 AI 创作 PPT 的设计理念。如将复杂任务拆分成多个步骤,让用户的输入成本降低,输入的准确性和全面性更好,让用户可以及时对中间过程进行干预避免产出不符合预期的结果。任务的拆解降低了AI 的难度,同时通过用户的纠正和确认,让 AI 更好地理解用户意图,同时通过通过重试机制降低AI “发挥失误” 带来的影响。
大家在实践中可以将更多先进的设计理念融合进来,进一步优化,让 AI 不只是“噱头”,而是真正能够服务好业务发展的“发动机”。
相信随着模型能力的不断增强,更多 Agent 设计模式得到应用,上面的很多问题将会得到解决。