UX-企业级-ChatGPT-解决方案-全-
UX 企业级 ChatGPT 解决方案(全)
原文:
zh.annas-archive.org/md5/deb936420637b9c6913d5fad595e1e5b译者:飞龙
前言
本书将用户体验(UX)专业知识与ChatGPT和相关的大型语言模型(LLMs)相结合,以创建能够解决真实商业问题的企业级应用程序。这种方式使得书中几乎所有的学习内容都将继续适用于最新版本的LLMs,随着它们的演变和改进。我们专注于LLMs与商业解决方案的集成。这包括为客户服务创建客户聊天机器人,创建推荐解决方案以提供销售和服务建议,做出购买选择,解决任何垂直领域的其他商业问题,或帮助创建更有效的幕后解决方案,这些解决方案包含很少或没有UX。我们将UI设计的科学和艺术以及研究方法、技术和建议结合起来,使LLM解决方案功能化、可用、必要且引人入胜。分享将UX应用于LLM解决方案设计各个阶段的规模应用技巧和专家秘诀。几乎所有这些材料都未在互联网上或供应商网站上共享,因此它是设计和设计相关社区的独特资源。
本书面向对象
这本书将吸引那些希望增强他们在UI/UX设计方面的知识和技能,并寻找将最新技术融入其中以应用UX原则创建企业级ChatGPT解决方案的全面指南的个人。它适合寻求扩展知识的资深设计师,以及作家、语言学家、产品经理和需要了解UI/UX设计基础以应用于ChatGPT的设计型工程师。
本书采用以设计为中心的方法,提供基于ChatGPT的解决方案来解决商业或“企业”问题。它帮助决定并优先考虑生成式AI的客户用例,加速大型语言模型(LLM)的价值,扩展平台以满足客户需求,并解释监控和提升服务质量。掌握这些技能将赋予你对话式AI设计的超级能力。企业级或商务级的ChatGPT解决方案应专注于为客户提供独特的技能,比他们从通用生成式AI中获得的更智能、更专注的技能。为了想象和创建世界级的LLM解决方案,这本书是为您准备的。
本书涵盖内容
第一章,认识ChatGPT中设计的力量,从设计与LLMs之间关系的简要介绍开始,包括UX的艺术和科学以及LLMs的历史。讨论了部署LLM的各种设计框架,包括聊天UI、包含聊天和图形用户界面的混合UI、非交互式的推荐UI以及旨在与后端解决方案在幕后协同工作的设计。有一个小型的动手实验室,用于使用无代码游乐场构建一个简单的模型。
第2章, 进行有效的用户研究,提供了许多使用一些最关键的用户研究工具来评估将ChatGPT和LLM添加到企业解决方案中的技巧和窍门。我们涵盖了调查、需求分析、访谈以及深入数据以创建对话分析的方法。
第3章, 确定ChatGPT的最佳用例,教授如何确定LLM可以增加价值的解决方案范围,并解释何时LLM不适合某个用例。我们简要介绍了经典用例设计,然后花时间将LLM的能力与用户目标对齐。我们确保您了解ChatGPT的限制和偏见,以及如何处理不适当的回应。
第4章, 评分故事,帮助您成为优先处理用户故事的专家。这一章节在产品或服务推向客户后也非常有价值。您将学习如何优先处理更新、补丁和错误修复,以便客户从团队的努力中获得最大价值。您将能够平衡客户优先事项与开发成本,做出合理的决策,以帮助规划和交付成本最低的价值。它以简单的方式解释了如何应用一些特殊的敏捷工具来优先处理所有这些工作。没有一条路是没有一些颠簸的,但我们分享了一些复杂性,以便您能够与整个团队一起成功导航。
第5章, 定义期望体验,是我们深入了解ChatGPT内部工作原理之前的最后一章。您将发现特定考虑因素、设计问题和解决方案,涵盖使用范围的全系列情境。这些包括聊天体验、混合UI(图形用户界面与聊天智能合并)、推荐UI和后端解决方案(没有面向客户的UI)。我们将讨论这些期望体验的总体考虑因素,确保您知道如何在创建信任和处理任何这些解决方案的同时处理可访问性和国际化。
第6章, 数据收集 – 内容为王,深入探讨了企业数据的复杂性质,这对于根据客户需求创建ChatGPT解决方案至关重要。探索知识库、数据库、电子表格和其他系统等数据源如何提供真实信息。这有助于将客户与行动联系起来,并解释产品人员如何在此阶段做出贡献。动手活动和关于标注和清理数据的案例研究有助于解释关键点。我们将涵盖检索增强生成,以帮助弥合企业大量数据源和LLM之间的差距。
第7章, 提示工程,指导你创建指令,以控制、适应和人格化LLM与客户之间的沟通。你将了解任何人都可以给LLM的提示与为企业解决方案设计的更精细的指令提示之间的区别。
第8章, 微调,解释了微调过程中发生的事情,提供了如何开始微调的教程,并继续我们的深入研究案例。你将看到不同的方法,在训练模型时应用。这包括一个实际操作练习,以微调一个非常讽刺的聊天机器人。
第9章, 指南和启发式方法,超越了ChatGPT设计的技术性质,考察了如何解释ChatGPT的风格、语气和声音。回顾了适应并应用于评估ChatGPT解决方案的必要指南和启发式方法,以便你学习如何使用设计思维来从你的LLM解决方案中创造清晰度。提供了数十个示例,以及一个案例研究和示例提示,这些提示将本章涵盖的启发式方法串联起来。
第10章, 监控和评估,专注于了解解决方案是否表现良好。它涵盖了评估成功和失败、定义质量和判断UX是否改进。我们的方法是一种关怀和培养的方法,遵循从产品的用户那里学习的生活周期,并将任何学习反馈回去,以使其成长和成熟。涵盖了模型性能的统计指标、用户质量指标和启发式评估方法,并提供了提高质量的技巧。
第11章, 流程,专注于将传统的敏捷和现代开发方法适应更互动和以客户为中心的需求,以快速改进ChatGPT解决方案。我们涵盖了将关怀和培养方法整合到传统敏捷或类似敏捷开发中的实用策略,同时解释为什么你应该倡导持续改进的生命周期。
第12章, 结论,是本书的最后一章,提供了额外的建议和指导,以总结本书涵盖的整个生命周期,并为你成功奠定基础。
为了充分利用这本书
我们不对ChatGPT在构建商业解决方案中的现有使用做出任何假设。我们期望每个人都能以某种形式使用LLM进行个人使用。我们希望你对UI术语和技术有基本的了解,即使你不是专家或UI专业人士。我们讨论了创建调查、进行客户访谈以及提供大量技巧和窍门,但假设你对这些技术有基本理解。在可能出现知识障碍的地方,提供了参考以帮助你跟上进度。
您可以在不编码的情况下遵循整个书籍;我们依赖于ChatGPT的免费游乐场体验。我们还涉猎了一些其他免费资源和LLM。您需要账户才能访问我们的GitHub文件和ChatGPT。如果您编码或更技术性,可以探索一些更高级的主题和链接。尽管本书和教程专注于ChatGPT,但书中的学习内容可以应用于任何LLM。
对于数字版书籍的读者,您可以直接将示例粘贴到ChatGPT中。然而,不需要编程或代码示例,所以漏掉一个逗号,例如,不会影响您学习和跟随的能力。我们提供带有样本数据的文件;您可以使用它们而不会出现问题,并测试和实验最新的LLM。
对于想要快速访问参考和资源或注意到链接过时的纸质书读者,我们有一个解决方案。我们维护一个包含书中提到的所有链接、文章、演示、视频和书籍的单页在线参考指南。每一章都有一个二维码,可以链接到每一章列出的在线参考。这意味着随着这个新兴领域的增长,链接将在参考网站上更新。
在线参考和链接:书籍参考 (https://uxdforai.com/references)
下载示例和文件
您可以从GitHub下载本书的示例代码文件,网址为https://github.com/PacktPublishing/UX-for-Enterprise-ChatGPT-Solutions。如果文件有更新,它们将在GitHub仓库中更新。
本章的链接、书籍推荐和GitHub文件已发布在参考页面上。书籍参考 (https://uxdforai.com/references)
我们还有其他来自我们丰富的书籍和视频目录的代码包,可在https://github.com/PacktPublishing/找到。查看它们吧!
使用的约定
本书使用了几个文本约定。
文本中的代码:表示文本中的代码单词、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟URL、用户输入和Twitter昵称。以下是一个示例:“我们可以比较基础模型提供的答案与添加了几乎200页的Full Thesis.pdf文件后对同一问题的回答。”
将代码块或要输入到ChatGPT中的示例设置为以下格式:
You are a helpful assistant named Alli, short for the name of our bank. Be courteous and professional. Prioritize information in any files first. Format output using lists when appropriate.
当我们希望您注意示例的某个特定部分时,相关的行或项目将以粗体显示:
(Mac operating systems only)</li></ul><p><strong>Note:</strong> Our latest site features will not work with older unsupported browsers. </p><p>
我们有时会包括用户和聊天解决方案之间的对话。您可以通过遵循标准的聊天约定来阅读:发送给聊天的消息右对齐,而回复则左对齐。
Is solar power a renewable resource?
Solar power is a renewable resource.
Because solar power is an infinite
resource, it has unlimited potential.
粗体:表示新术语、重要单词或屏幕上看到的单词。例如,菜单或对话框中的单词以粗体显示。例如,“Alistair Cockburn的《编写有效的用例》是我教授用例设计时的权威指南”
小贴士、次要资源或重要注意事项
它看起来像这样。
联系我们
我们始终欢迎读者的反馈。
一般反馈:关于本书任何方面的疑问,请通过电子邮件发送至customercare@packtpub.com,并在邮件主题中提及书名。
勘误表:尽管我们已经尽一切努力确保我们内容的准确性,但错误仍然可能发生。如果您在这本书中发现了错误,我们将非常感激您能向我们报告。请访问www.packtpub.com/support/errata并填写表格。
盗版:如果您在互联网上以任何形式发现我们作品的非法副本,我们将非常感激您能提供位置地址或网站名称。请通过copyright@packt.com与我们联系,并提供材料的链接。
如果您有兴趣成为作者:如果您在某个领域有专业知识,并且您有兴趣撰写或为书籍做出贡献,请访问authors.packtpub.com。
分享您的想法
一旦您阅读了《企业ChatGPT解决方案的UX》,我们非常乐意听到您的想法!请点击此处直接转到该书的亚马逊评论页面并分享您的反馈。
您的评论对我们和科技社区都非常重要,它将帮助我们确保我们提供高质量的内容。
下载此书的免费PDF副本
感谢您购买此书!
您喜欢在路上阅读,但无法携带您的印刷书籍到处走吗?
您的电子书购买是否与您选择的设备不兼容?
别担心,现在,您每购买一本Packt书籍,都可以免费获得该书的DRM免费PDF版本。
在任何地方、任何设备上阅读。直接从您最喜欢的技术书籍中搜索、复制和粘贴代码到您的应用程序中。
优惠远不止这些,您还可以获得独家折扣、时事通讯和每天收件箱中的优质免费内容。
按照以下简单步骤获取优惠:
- 扫描下面的二维码或访问以下链接

https://packt.link/free-ebook/978-1-83546-119-8
-
提交您的购买证明
-
就这样!我们将直接将您的免费PDF和其他优惠发送到您的电子邮件。
第一部分:企业ChatGPT的用户体验基础
每一个好故事都有一个开始、一个中间和一个结尾。在这一部分,我们将通过探索如何将传统的用户体验方法和最佳实践应用于创建由ChatGPT驱动的世界级解决方案来开始我们的旅程。然后,我们将探讨关键的用户研究方法,并提供在创建对话式设计时有效的行业技巧和秘密。这将引导我们探索如何定义和选择最适合解决大型语言模型(LLMs)的用例。用户体验方法被教授以优先考虑用例。当与一种将开发成本纳入考虑的方法相结合时,这种敏捷方法允许优先考虑最有价值的解决方案进行构建。尽管我们将考虑这些用例如何在ChatGPT中发挥作用,但几乎所有学到的知识都可以应用于任何LLM模型。我们将研究由LLM驱动的应用程序、仅聊天体验和强大的聊天驱动的图形用户界面,甚至还会解释在没有UI的情况下如何与ChatGPT合作。
本部分包括以下章节:
第一章:认识到设计在ChatGPT中的力量
如果你只想玩玩ChatGPT,这本书可能不适合你。继续阅读,通过结合ChatGPT或各种替代语言模型(涵盖成本、质量和专业知识范围)来为客户创造优质的用户体验。每一种新技术都有太多的人盲目跟风,最终以失败告终。这是普遍现象。为什么?因为他们不知道自己不知道什么。但我们知道如何为企业成功创建ChatGPT解决方案。我们将带你从零开始,成为你组织中的英雄。你想要的是低质量的互动,还是与客户产生共鸣的精准、智能的结果?他们是否应该感到赋权,并能够有信心进一步探索,因为他们知道自己是被理解的?如果是后者,这本书将专注于用户体验设计方法、实践和工具,帮助你决定做什么,设计最有效的解决方案,并验证它们是否按预期工作。我们可以将用户界面实践应用于ChatGPT的生命周期,让你有信心创造出高质量的解决方案。
这本书旨在为设计师或与设计相关的专业人士,如产品经理、产品所有者、作家、语言学家或开发者,提供如何将设计原则和实践应用于改善客户和员工的生成式人工智能体验的指导。对于那些接触过设计方法论的人来说,这些内容可能并不新颖,但它们的运用将是。对于那些对用户体验设计(UX)的科学(或UXD)了解有限的人来说,我们将提供足够的学习内容,让你能够胜任并帮助企业级ChatGPT解决方案的创建。
你可能还没有在生产环境中使用过像ChatGPT这样的生成式人工智能产品,也许只是在家或工作中使用了一些这些工具。在我们先介绍一些基础知识之前,我们只会涉及到一些关于ChatGPT工作原理的解释,比如在第6章,“数据收集 – 内容为王”。这本书遵循典型的设计流程。首先,我们帮助确定要做什么,优先考虑这项工作,然后是如何去做,最后是如何解释和改进所做的工作。我们发现这本书中的设计技巧和提示适用于广泛的设计挑战,并且通过我们过去七年与人工智能解决方案的经验以及30年的用户体验设计(UXD)经验,我们将这些见解应用于生成式人工智能解决方案的创建。遵循设计流程将帮助人们创造出由ChatGPT驱动的优质解决方案。
在本章中,我们将涵盖以下主要内容:
-
探索对话式人工智能的历史
-
重视用户体验设计的重要性
-
理解用户体验设计(UX)的科学和艺术
-
设置自定义模型
技术要求
与这本书一起工作的有两种方式:跟随学习原则和实践,并使用OpenAI的游乐场之一,这通常是一种无代码方法,或者使用ChatGPT提供的API。
我们在书籍的GitHub仓库中有示例。如果您是第一次使用GitHub,这是一个我们将存储所有需要下载以完成书中示例的材料的地方。它是一个在线资源文件夹。
GitHub: 书籍材料仓库 (https://github.com/PacktPublishing/UX-for-Enterprise-ChatGPT-Solutions/)
GitHub是书中所有文件的仓库。点击图1.1中突出显示的下载按钮,将文件下载到桌面。GitHub仓库中的大多数文件都没有查看器。

图1.1 – 如何从GitHub下载文件
确保您有ChatGPT账户。
网站:OpenAI聊天 (https://chat.openai.com/)
这很简单;每个人都应该有。我们将逐步尝试一些材料。这将使我们能够使用Playground,这对于一些演示是必不可少的。我们每个章节的末尾都有一个二维码,因此我们提供的所有参考,如前面的链接,都可以在线上更容易地访问。
方法1 – 无代码方法
您可以通过阅读了解80%的内容,但有些人通过实践效果更好。如果您选择这条路,请专注于设计实践和方法,并学习如何将这些应用到任何生成式AI解决方案中。我们将提供无需编码的演示和示例。尝试这些示例;理解LLM的反应方式至关重要。
方法2 – 使用Node.JS、Python或curl编写代码
如果您还没有ChatGPT账户,请设置一个账户。然后,前往快速入门指南以确保Node.js(curl或Python)正常工作。该URL有逐步说明,用于设置您的环境并运行。
网站:开发人员快速入门指南 (https://platform.openai.com/docs/quickstart?context=node)
注意
这本书不需要编写代码。对于更技术性的读者,可以使用代码版本来模拟一些无代码方法,但我们不会讨论这条路径。
要使用API,请遵循链接上的说明:
-
安装必要的软件(Node.js、Python或curl都在同一页面上有文档说明;选择适合您的选项卡)。
-
安装OpenAI库包。
-
设置您的API密钥。
尝试一下!如果你使用过其他大型语言模型(LLMs)或者从未使用过,尝试一下并提问任何问题;我们称用户的这种输入为提示。这本书中的内容可以不进行任何编码就能快速学习。一些模型没有最新的数据,所以询问今天的天气或体育比分可能不会起作用,但如果要求给出五种清理堵塞马桶的方法,它就有答案。我们想要展示的力量是这种强大的体验和UX设计实践的组合,以创造高质量、以客户为中心的体验。现在我们有一些东西可以讨论了!
我们应该在对话式人工智能的基本历史问题上达成共识。鉴于所有的新闻,ChatGPT应该很为人所知,因此我们可以简要地回顾一下基础知识几分钟。
横跨对话式人工智能的历史
交互设计与人工智能在LLM革命之前就已经很好地结合在一起了。了解这段历史有助于我们应用设计原则到最新的对话体验中。任何关于人工智能的讨论至少会提到艾伦·图灵以及他在《心灵》杂志(一本同行评审的学术期刊)上发表的文章提出的问题。
文章:《计算机与智能》(1950) (https://redirect.cs.umbc.edu/courses/471/papers/turing.pdf)
这通常被称为图灵测试。机器看起来智能并且与人类无法区分的能力。
文章:维基百科上的图灵测试 (https://en.wikipedia.org/wiki/Turing_test)
当这篇文章在1950年发表时,我们离一台计算机在纯文本交互中与人类无法区分还相去甚远。我们必须跳到20世纪60年代中期,才能看到一些似乎在参与对话的东西。
如果我们尝试使用1964年至1967年间的ELIZA的对话界面,我们会很快看到其基于识别关键词或短语时的自然响应的限制。
文章:维基百科上的ELIZA (https://en.wikipedia.org/wiki/ELIZA)
其中一个著名的版本被称为DOCTOR。它将向其提出的书面问题转回到患者身上。尝试与心理治疗聊天机器人互动看看。
演示:ELIZA – 心理治疗聊天机器人 (https://web.njit.edu/~ronkowit/eliza.html)
ELIZA被认为是最早尝试通过图灵测试的尝试之一。通过简单的心理治疗师对话来模拟医生(“你为什么会有这种感觉?”),它被认为具有人类特征。不过不深入探讨,关于其设计的讨论关注了关键词的重要性,并包括了转换规则,这些规则决定了它如何处理用户输入的内容。也许LLMs是在向这一点致敬,因为它们基于转换器。我们将在后面的章节中解释转换器和LLMs中常见的术语。ELIZA表面上看像是一场对话,但不能偏离主题,甚至无法提供答案。对话互动的心理学是这一体验的基础。但它并不能解决任何人的心理问题。然而,随着聊天机器人的出现,情况确实有所改善;这仅仅花了几十年。访问维基百科了解聊天机器人的简要历史。
文章:维基百科上的聊天机器人历史 (https://en.wikipedia.org/wiki/Chatbot)
从20世纪60年代到2000年代,研究界并没有失去对自然语言体验的想法。然而,随着大约2016年左右出现的对话助手或聊天机器人的出现,进化中的下一步才到来。尽管大多数聊天机器人不值得任何人花费时间,但交互设计在这里产生了重大影响。在Facebook Messenger支持的第一年,就创建了大约10万个聊天机器人。我建议其中99%很快就失败了。非常少数的聊天机器人能够存活下来,这主要是因为我们很快就会解释的原因。但是,当团队愿意使解决方案成熟时,一些聊天机器人仍然存活下来。例如,在航空公司的支持案例中(“第二个行李箱要多少钱?”或“我可以为取消的机票退款吗?”),它们可以提供具体的答案来回答具体的问题。虽然这似乎很明显,与电话相比,这可以为企业节省大量的支持成本,但这对消费者也有价值。对他们来说,时间同样宝贵。如果客户能在几秒钟内得到可靠的答案,他们很乐意为此放弃10分钟的电话等待时间。这是一个双赢的局面。此外,这种体验还可以作为与人类进行必要交互的前端。在支持案例中,它可以在与人类接触之前可靠地收集详细信息,这使得更有可能与正确的人类建立联系,并为他们提供帮助所需的详细信息。
想象一个孩子在上学之前。如果没有人与他们互动、教他们或者和他们玩耍,当他们上一年级的时候,他们可能缺乏基本的语言能力和人际交往技能,甚至可能还没有学会使用马桶。即使是伟大的喜剧演员史蒂夫·马丁也理解这一点。请花一分钟时间欣赏他的小段表演。
视频:史蒂夫·马丁为第一天上学的孩子授课 (https://www.youtube.com/watch?v=40K6rApRnhQ)
然而,通过投资孩子的成长和照顾,以及身体和心理健康,可以带来显著的变化。这种成熟度正是我们在聊天机器人中可以看到的。它们通常不会成为博士,但可以通过指导变得比五年级学生更聪明。我们可以利用设计技能使聊天机器人(或任何基于LLM的解决方案)变得知识渊博、可靠和表达清晰。我们将把所学应用到用ChatGPT构建的下一代对话助手上。我们将批判性地探索ChatGPT以形成稳健的解决方案,你将学会注意何时可能还有其他工具可以与ChatGPT一起使用。
值得一提的还有一个与之相关的领域。每个人在给企业打电话时都有过使用电话树的体验。我们之前已经提到了这个例子。最终,“按1获取服务,按2获取销售……”这样的选项被更注重倾听的体验所取代。但有多少人曾经为此感到困扰呢?可能我们所有人都有过。为什么?因为这种体验设计得并不好,而且技术可能也存在缺陷。这些领域也将从ChatGPT中受益。所以,如果你来自创建语音体验(可能使用Voice XML,多年来建模交互的事实标准)或来自Alexa、Siri、Google或其他数十家供应商的聊天机器人,那么制作出色体验的学习和实践经验也适用于ChatGPT。我们将在本书中详细探讨这一点。
维基百科:维基百科的Voice XML背景 (https://en.wikipedia.org/wiki/VoiceXML)
然而,许多这样的聊天机器人、电话树或对话体验未能帮助主要用户完成他们的任务。为什么?以下是一些关键原因:
-
聊天机器人的功能或服务与用户的需求不匹配
-
模型不支持用户语言的复杂性
-
用户的主要口语可能不受支持,需要他们用次要语言理解,或者根本无法理解
-
聊天机器人只知道他们所知道的信息,因此会返回看似随机的结果,这会令人沮丧
-
聊天机器人不会以客户期望的语气或语调回应
-
聊天机器人应该被监控和改进以解决这些问题
你的目标应该是设定一个比人类执行相同任务时预期的质量标准更高的标准。听起来疯狂吗?其实不然。一个典型的支持人员可能只能帮助解决一个狭窄的话题(比如,网站密码重置)。另一个代理需要解决账单问题或找到缺失的付款。因此,平均支持人员的帮助将不如未来经过良好训练、能够访问所有机构数据和流程的ChatGPT顾问。
这带我们来到了像OpenAI这样的公司的创立。机器学习模型的长久历史和计算能力的提升使得这个非常大的语言模型能够工作。OpenAI并不是在2022年12月ChatGPT 3.5发布时进入世界视野的,该公司早在七年前的非营利性基础上成立。从能够生成类似人类文本的GPT-2版本到引起全球关注的3.5版本,花了超过三年时间。对于那些喜欢科技历史的人来说,可以深入了解OpenAI的简要背景。
文章:OpenAI的起源 (https://www.britannica.com/money/OpenAI)
就像许多硅谷公司一样,来自Google Brain(以及与Google合并的DeepMind)、Facebook和其他AI的工程师聚集在OpenAI。然后,大约在2021年初,11位OpenAI员工离开,成立了Anthropic。这一切都不是一夜之间发生的,因此我们需要提醒自己,这项新技术将需要数年才能融入我们的日常生活。电话、汽车、计算机和移动电话都已经成为当今现代社会的基石。这将比所有这些之前的发明对我们所有人产生更大的影响,但这需要时间。在这个过程中会有很多失败。
想象一下,一个解决方案在每次交互中都有60%的准确性。对于一个计算机来说,60%的时间正确似乎很高吗?在ChatGPT之前,有些人并不认为这很糟糕。我经常在我的课堂上(通常每班有20到100人)提出这个问题,关于对话式人工智能。许多人认为50-80%的成功率是“相当不错的”。
通过一些简单的假设,我们可以理解这些系统为什么会失败。每次提问时,失败的可能性都会增加,正如图1.2所示。为了保持简单,我们基于每次轮转独立失败概率相同的原则。系统不知道它已经失败了,如果用户信任它,他们甚至可能不会注意到失败,从而造成更多的失败。

图1.2 – 每次轮转失败的可能性增加
当以60%的成功率提出六个问题时,有95%的可能性其中一个答案是错误的。如果你的下一个问题依赖于前一个答案呢?交互将偏离轨道。我一次又一次地看到这种情况。如果用户信任(错误的)答案,他们就会基于那个(不正确)的答案做出下一个决定。失败是可以保证的。这种关系会恶化。如果客户看到这些失败(可能是一个更昂贵的渠道)来满足他们的需求,或者更糟糕的是,他们会转向另一个供应商。
我们可以考虑改进这些曲线的策略,以便每个转折点更有可能成功。第6章、第7章和第8章解释了使用多个生成式AI组件进行不同形式验证的策略。是的,AI可以监管另一个AI。虽然传统的LLM,如ChatGPT已经改进并将继续改进,但我们希望提供工具和测量技能,以确保成功。但再次看看图1。2。看看将标准提高到97%准确性的情况。在相同的转折次数后,有很高的可能性(85%)所有交互都是成功的。所以,提高对期望的标准。
实现这些质量水平是可能的。我们还将展示如何衡量和扩大改进的范围,以获得最大的投资回报。
聊天机器人失败
要了解“坏”可以有多糟糕,请阅读这篇关于聊天机器人失败的文章。我们的目标是教授足够的设计方法,以避免陷入这些耻辱的黑洞。
文章:聊天机器人失败 (https://research.aimultiple.com/chatbot-fail/)
例如,通过专门设计的体验,专注于提交业务费用或回答关于内部业务流程的常见问题,用户在尝试打破聊天体验或提出离谱的问题上花费的精力更少。这种行为在广泛可用的公共ChatGPT和聊天机器人体验中是预期的,但在构建定制的ChatGPT工具时,这种情况可能不到1%。它仍然会遇到它可能无法回答的问题,但更有可能的是,这些问题最终应该能够回答。我们将展示如何优先处理这些积压的问题,以保持持续改进的业务。
这将我们引向ChatGPT和新的LLM类别,它们在许多方面与人类无法区分。谷歌的LaMDA、Meta的Llama、Anthropic的Claude和OpenAI的GPT模型都属于同一类软件。
即使它们像人类一样,我们也必须问它们模仿的是企业空间中的哪类人类。这代表我的公司吗?它是否拥有解决我客户问题的所需知识?我的客户将如何处理错误的答案?大型语言模型(LLMs)具有很大的潜力,并将迅速发展。我们的目标是为您提供工具,以评估LLM解决方案是否适合您发展的每个阶段。
ChatGPT用户体验设计的重要性
到现在为止,ChatGPT还需要介绍吗?OpenAI开发的创新模型属于一类新的LLMs,这些模型在互联网上大量文章、书籍和知识的数据元素上进行训练。它在大约两个月内达到了超过一亿用户。它可以在多种语言中生成类似人类的文本或语音对话,并在广泛的信息上进行交流。而且它做得非常快。
ChatGPT无疑是一场火热的浪潮。独特、有趣、快速、智能?然而,当为您的企业或企业设计解决方案时,它们应该是准确的,拥有最新的与业务相关的信息,并且以企业期望的语气、风格和语调与客户沟通。那么,如何将这样一个快速移动的目标包裹成一个超出客户期望的产品呢?能否确保它不会给出随机的、不符合品牌形象的答案?您可以做到,但这需要设计。需要对其进行监控。最好有一个流程来改进它。为此,这里是正确的位置。
让我来定义一下“设计”,因为我看到很多非常糟糕的定义。设计是为用户清晰传达体验的过程和实践。好的软件用户体验设计通过应用科学方法来解决人类和机器界面问题,从而考虑到人类行为和局限性。这意味着我们可以利用我们对视觉、听觉和动觉系统的了解,结合对大脑工作方式的了解,来决定如何创建一个功能性强、易用、必要甚至引人入胜的体验。我们周围到处都是设计:视觉设计、图形设计、软件设计、对话设计、建筑设计和许多其他领域。我们利用用户研究专家的专长,根据客户的主观和客观反馈来指导我们的设计,使用正式和非正式方法更好地了解用户的需求。然后,我们将来自客户、初级研究和产品及公司目标的信息结合起来,加入一点魔法,创造出卓越的体验。
如果您只是在这些努力之外在屏幕上放置图标或编写对话性文案,您做的就是生产工作,而不是设计。我们希望每件事都有其目的。通过创造适合目的的更多工作,我们的客户体验将得到改善。我们并不总是做得正确。如果我们知道如何满足用户的需求,我们将得到一个质量更高的产品。这就是迭代设计概念发挥作用的地方。即使我们没有做得正确,我们也会从我们的设计中学习和改进。
用户体验设计、界面设计、人机工程学、用户研究、人机交互(HCI)或任何形式的交互设计和科学艺术集合,是一系列专家和专业知识,可以帮助塑造这个功能性强、引人入胜、易于使用且有趣的体验。我们可以通过直接将这些学科从“聊天”体验中吸取的丰富知识应用到“聊天”解决方案中,或者通过将我们从对话人工智能和图形用户界面设计中学习到的知识适应到这个新世界中,来构建成功的基于聊天的解决方案。用文字与计算机进行交流并不新鲜;它只是得到了改进。
这就是您学习如何根据公司知识和业务需求为客户设计ChatGPT解决方案的地方。企业ChatGPT涵盖了广泛的经验。这可以包括创建一个支持网站,一个虚拟助手以帮助员工或求职者,一个为销售电话个性化电子邮件的销售参与服务,一个培训应用,一个产品搜索或推荐工具,一个用于分析法律文件不一致性的工具,或者为律师的专家证人工具。代码审查(评估用Java或其他数十种流行语言编写的软件并识别问题或错误)是技术领域的另一个热门话题。本书将避开这个用例,专注于更常见的经验,这些经验将影响大多数人,大多数时间,对他们的生活作为企业客户来说非常重要。开发者生产力工具是必不可少的,但这个话题在其他地方已经得到了很好的覆盖。这些学习也适用于那个领域;我们不会使用来自开发者生产力工具的任何例子或案例研究。我们将从讨论下一节中良好的设计和科学艺术开始。
理解用户体验设计的科学和艺术
每枚硬币都有两面(好吧,加上边缘!)。通常,我们看待用户体验设计有两个方面:那些有视觉背景的人和那些从科学角度出发的人。现在,学校几乎都在大量培养视觉和图形艺术家以满足需求,而随着对话式人工智能的出现,用户体验中确实有一些艺术元素,但并非总是视觉元素。生成式人工智能的引入影响了交互设计的各个方面。设计角色将适应或消亡。适应是更好的选择。随着图形用户界面(GUIs)适应并包含对话元素,视觉设计师的角色仍然相关,即使只是创建正确的提示来帮助他们生成与组织目标相符的外观和感觉。设计科学的这一方面对于需求、理解和沟通仍然至关重要。即使在撰写这本书的时候,ChatGPT也提供了一些关于用户体验的良好答案。但本书所涵盖的内容并不是ChatGPT或任何生成式解决方案可以迅速回答的。它们像所有工具一样帮助我们推动设计文化的发展,但它们不知道何时出错,仍然需要我们决定在哪里应用解决方案,收集正确的数据以帮助它们形成答案,并理解和改进结果。
设计科学
“任何人都可以设计”,“只需把按钮放在那里”,“我可以写这个文案。”设计和制作某物之间是有区别的。任何人都可以制作某物。它可能或可能不起作用;它可能对某些人有效,对其他人无效,“我为自己设计了它,我没有任何问题”,或者它可能很好。我们希望使用工具、专业知识、智慧和领域知识来确保设计决策产生最高质量的产品。有大量研究通常支撑着高质量的交互,我们希望避免陷阱。
当我们提到研究时,我们包括有受试者的人类主体的控制研究,其中团队已经经历了严格的过程,以返回可靠、可重复和有效的结果。然后我们将这些结果应用到我们的情况中。有些人会说,“这不适合这个,因为它不同。”好吧,它可能不同,这就是为什么我们与交互设计师分享这些结果,以指导我们什么是有用的。随着ChatGPT的成长和与其他产品及功能的集成,它将与视觉元素、形式、交互图表和可视化以及典型的GUI(带有按钮、表格、过滤器、标签以及我们在任何移动、桌面、网页或嵌入式体验中看到的所有组件)更加紧密地结合。这将使用户体验设计的科学和历史专业知识变得更加关键。
让我们以 Hick 的法则为例;设计师们都知道并经常使用 Hick 的法则。“决策所需的时间随着可选方案数量的增加而增加。”这就是为什么我们将菜单分成小段,为复杂流程提供向导,以及讨论对话框中应该有多少按钮。在对话流程中,我们保持决策简单,以减轻用户的负担。
Hick-Hyman 法则
这个法则于1952年发表在《实验心理学季刊》上。它是一个方程式,
,其中反应时间(RT)是决策中不包括的时间(a)加上一个常数(大约0.155秒)乘以可供选择的选项数量(n)的对数函数。
文章:维基百科对 Hick-Hyman 法则的解释 (https://en.wikipedia.org/wiki/Hick%27s_law)
我们不期望你知道或记住这些,但这只是 UX 设计决策背后的科学的一个例子。有时,了解指南、法则和科学可以帮助你做出更好的决策,避免别人的错误,你必须学会纠正这些错误。
在这种情况下,我们知道长列表的选项对用户来说很复杂,当生成式 AI 返回10到15个选项时,做出决定所需的努力会显著增加。通过这个例子,我们可以将这些选项分组到更小的逻辑段中,并将它们减少为一系列中两个更简单的决策。这就是为什么我们有文件、编辑、查看、窗口和帮助菜单。通过分组菜单项,选择动作是一个更简单的决策。这也是为什么当有太多选项且对这些选项的组织没有明确理解时,菜单会失败。让我们告诉 ChatGPT 返回更逻辑和组织的大决策树。我们将在第7章,提示工程中介绍这一点,以给 ChatGPT 指示我们希望我们的响应如何构建。
再举一个经典的例子如何?给一个企业打很多电话,可能会听到有5-6-7-8甚至9个选项的语音提示;打电话的人如何跟踪正确的选项?你是否需要再次听提示?也许你分心了,无法回忆起前几个选项。你是否曾经用几个手指代表一个数字来提醒自己,当有多个可行的选项时,哪个答案可能最好?这是一个人类工作记忆问题,一个经典的设计问题。
文章:维基百科解释工作记忆 (https://en.wikipedia.org/wiki/Working_memory)
这些人类因素影响了许多体验的设计——尤其是基于大量文本的体验。我们不会在这本书中计算Hick定律或测试工作记忆。然而,应该认识到,应用设计原则将是帮助创建成功的ChatGPT体验的基石。在没有指导的情况下,没有人应该在第一个菜单上被提示35个选项。这是一个不可接受的用户体验。因此,我们可以使用现有的、组织良好的树状结构,让ChatGPT(语音到文本)确定客户请求,一步跳过几个级别。
设计书籍愿望清单
如果你刚开始学习设计并想学习基础知识,有许多丰富的资源。我建议阅读一些非技术性的入门书籍,例如Don Norman的《日常事物的设计》或Steve Krug的《别让我思考》。
熟悉这些作品的人可能会想要更深入、更复杂的书籍。我建议阅读Jeff Johnson的书籍《以心为本的设计》,这本书能帮助你理解心理学的基本原理是如何被用来推导出许多这些指南,并帮助你应用这些原则。《设计原理的通用原则》由Lidwell、Holden和Butler所著,是一本优秀的参考书。更多资源可以在我们的书单中找到。
网站:推荐书单 (https://uxdforai.com/references#C13)
要使这些体验成功,要像设计师一样思考。考虑用户将如何互动,利用他们的期望、偏见和假设,以及他们的独特经历将如何塑造他们的未来互动。设计思维的力量在于学习如何确保使用你产品的人能够成功。
为了明确起见,这与“当我看到它时我会知道”大不相同。你希望将艺术和风格应用于产品,并理解成功的科学基础。其中一些来自心理学和相关学科。在计算机时代的过去50年里,人类的认知和身体能力并没有改变。我们仍然使用相同的感官来处理信息。我们的反应和响应能力没有改变;只是我们的经验在进化。我们可能现在知道如何用两只手指打字,但处理信息、点击小目标、做决定或学习复杂模式的能力是有限的。例如,尽管今天的汽车马力是20世纪60年代的二到五倍,但这并不意味着我们在事故中能更快地做出反应。当ChatGPT提供见解或理解时,我们可以通过良好的UX实践来克服一些认知或身体的人类限制。
设计的艺术
我敢打赌你们一直在等待我们在这里讨论视觉设计。这将在某些地方适用,但不会成为本书的基石。我们本可以涵盖如何设计聊天窗口或哪种视觉处理效果最好,但我怀疑这些信息在许多资源中都是独立的,而不仅仅是关于ChatGPT的书籍。品牌身份有其主观标准,以及其科学和专业知识。现在,将生成式AI和传统用户界面结合起来的经验将会出现,并且可以应用视觉风格和专业知识到这种经验中,但这对于企业来说是独特的。我们希望涵盖可以跨越任何企业的设计艺术,并将这与其他支持设计的科学相结合。所有这些努力都是为了创造对观众来说既预期又舒适的东西。
在会议中,我们经常听到,“戴上你的设计师帽子。”这意味着要成为客户的代言人,通过他们与产品的互动来满足客户的需求。这属于以用户为中心的设计的基本原则。我们让客户参与到过程中,因为我们有时需要学习得更好。倾听客户意味着比客户说的“正确”更有意义。它不是,也不会是。很多时候,客户所要求的东西和他们真正需要的东西是不同的。他们想要绕过问题,但也许解决方案是首先消除问题。这就是为什么这也是一门艺术。你必须知道在哪里寻找值得解决的问题。
将用户融入设计过程中将帮助我们理解他们的期望,并看到设计如何影响他们的行为。我们知道生成式AI有时才会给出预期的结果。设计师的工作之一是改进这种交互,可能通过书中将要讨论的工具间接地实现,例如数据清洗、提示工程、微调、用户研究、用户测试和监控。在生成AI生成响应的过程中,我们还需要控制并完善一些艺术技巧。正如凯文·穆尔特在为本书的一次对话中解释的那样,“科学描述了事情应该如何做,而生成式AI描述的(理想情况下)是它们今天通常是如何做的。设计师的任务(始终如此)是将这些不同的输入整合成一个单一的、连贯的解决方案,最好地映射到用户的需求和愿望。”因此,我们需要运用我们的技能深度来确保我们的ChatGPT解决方案准确无误。
为了公正地对待这个过程,只有一些决策可以基于逻辑或研究方法,特别是关于你希望ChatGPT如何响应的问题。让我们将艺术概念分解,以应用于产品声音、风格和语调中使用的词汇。
让我们以一家销售冲浪服装、冲浪板和海滩设备的的大型公司为例。网站或风格应与古板、老式的银行区分开来。对吧,伙计,还有姑娘们?同样,银行旨在给人一种可靠、安全、可信赖和值得信赖的印象,顾客女士。因此,网站应以符合顾客对品牌期望的方式与顾客沟通。
你对话的整体语气应反映品牌形象。
互动的风格应与用户的需求、愿望和期望相匹配。
对话的语调可以根据当前情况调整或变化。
我们将详细讨论这些问题,以确定何时以及如何在一个风格中调整语调,以适应ChatGPT助手的整体语气。
没有一种正确的方式来写。语气、风格和语调在概念上可以重叠。同样的事情可以用许多方式表达,仍然可以被理解:
Your appointment is now scheduled for this coming Monday.
I have scheduled you to see the doctor on Monday.
Confirmed. I have a Monday appointment in the books.
我们将讨论如何确保回复清晰、简洁,并包含正确的细节水平(也许顾客想知道约会的时间?或者是在哪个办公室?)。或者也许他们期望一个日历(.ical或类似格式)附件,以便更容易地将这次约会添加到日历中:
Got it. Monday at 3:00 pm at the Palo Alto office. Here is the calendar entry.
如果一位经理在我们提到的冲浪店安排了这次约会,他们会使用适合顾客的语言和语调,让顾客感觉自己是其中一员:
Akaw! We got you, grom. Swing by for your intro lesson on Mondo at 3 at the Santa Monica beach shop.
一个聪明的设计师会知道,即使受众不知道Akaw(棒或酷)和grom(新冲浪者),他们仍然可以理解信息,并对开始冲浪感到一丝兴奋。
本书的应用场景
这就是艺术与科学在设计中的交汇点。在我们旅途中,我们会看到很多这样的例子。我们将要求我们的ChatGPT实例清晰、完整、具有对话性(当需要时)。使用ChatGPT在非对话用户界面中创建答案也是完全合理的。ChatGPT可以在后端系统中处理和生成数据。UI可以使用ChatGPT补充的警报、按钮或警告对话框。我们称之为混合用户体验。这是传统UI元素和生成式AI的结合。在撰写电子邮件时,语法或风格建议可以在建议窗口中提出,而不必是对话式的。我们将把这些称为推荐者。它们提供推荐以帮助内容生成或影响流程,例如销售线索。
让我们用图片来阐述这些概念。每张图片都能传达书中示例中涵盖的体验感。如果你的用例不同,但仍然是一个用户界面,那么我们讨论的大部分内容可能都适用。
消息传递
简单文本消息(SMS),语音体验或简单聊天是只能使用文本或语音的双向用户体验。这些体验在SMS中的交互有限:文本、图片、文件上传和链接。图1.3展示了通过短信与我的费用助手在电话中交互的例子。它易于访问且简单,但其在支持的交互类型上存在限制。

图1.3 – 在手机上通过SMS进行简单消息的例子
如果这是一个语音体验,比如在汽车里,或者在亚马逊Alexa中的技能,那么创建高质量的纯语音解决方案比使用SMS更具挑战性。我们将在书中讨论语音体验,但我们应该接下来讨论混合用户界面,因为那是未来。
混合用户界面
Slack、Teams和Web界面可以结合对话文本的用户界面元素。简单的体验可以包含链接、按钮、图表、图形或表单。这种混合体验结合了LLMs和GUIs,允许处理仅由生成文本或GUI组件单独处理的问题的复杂性。在图1.4中,我展示了一个来自Slack的简单例子,其中按钮鼓励探索任务。
文章:ChatGPT AI for Slack (https://www.cityam.com/slack-to-offer-users-a-chatgpt-ai-tool-which-will-write-messages-for-them-in-seconds/)

图1.4 – 混合用户体验的例子
总体而言,在更健壮的渠道中的体验可以利用更多创意元素。例如,Web渠道可能支持交互式图表或可视化、购物车项目、信息、工具和企业产品。生成式对话可以细化结果或改变视角或过滤器,而UI组件也控制视图的某些方面。这是迄今为止最健壮和最具创造性的生成式解决方案空间。
推荐器用户界面
通常,推荐器是一种作为文本提示的建议,以鼓励特定的行为。它可以通过操作按钮来实现,但用户不会与系统进行交互或对话。总结或写作建议工具通常是这种体验。即使它有“生成电子邮件”的按钮,如果用户没有与生成代理进行对话式交互,它更像是一个推荐器。在图1.5的Salesforce例子中,Einstein为销售流程提供了上下文。
文章:Salesforce中的AI (https://www.salesforce.com/products/ai-for-sales/)

图1.5 – 推荐用户界面的例子
ChatGPT的后端使用
生成式AI解决方案的一个隐藏用途是处理信息,并向用户提供数据、信息或智慧,然后这些信息被传递到不同的用户体验中。用户并不直接与生成式AI互动,因此不存在UI。可能会有管理UI或使用处理结果的UI。在图1.6中,我们看不到用户界面。我们看到的是将被摄取、处理并分析以返回干净、规范化的数据。我们将在从第6章开始的案例研究中探讨这个例子,收集数据 – 内容为王。只是要意识到,我们不必有UI就能从ChatGPT和生成式解决方案中获得很多价值;我们可能将其作为更大流程中的一个工具。

图1.6 – 在后端ChatGPT解决方案中处理的电子表格
我怀疑这四个概念几乎涵盖了文本生成式AI的所有应用。对我们来说,最有意思的是那些具有更丰富或更稳健的用户体验的例子,而像纯后端解决方案这样的东西,留给改善用户体验的讨论空间很小。但我们也确实有例子!有时候,工作开始时是一个后端解决方案,然后,随着控制和反馈机制的需求,这些体验才走到前台。这些工作不能孤立完成。这需要一支团队。
创建卓越的用户体验需要整个村庄
如果你认真对待创建世界级体验(我希望每位读者都是这样!),考虑一下那些能帮助你在设计方面获得最大价值的资源。如图图1.7所示,你所需要的专家集合超出了典型软件团队的范畴。让我们简要探讨他们的贡献,因为这并不是传统软件开发中常见的团队组织。

图1.7 – 建立解决方案需要整个村庄
写作之所以至关重要,是因为在企业设计领域,我们有一个假设,即存在材料、常见问题解答、文章、手册、帮助文档、安装流程和错误修复等内容,这些内容可能不容易在互联网上获得。这些材料将被添加到私有的ChatGPT实例中,以便付费客户能够获得价值。我们希望业务雇佣作家和编辑来创建高质量的内容。内容是如何撰写、吸收并在ChatGPT中呈现的,将强烈反映出其原始写作的质量(输入的质量有助于输出的质量)。设计师必须帮助理解目标、设计工具甚至可能优化用户体验的集成。客户是应该单独回答15个问题,还是使用表格来上下文性地查看问题答案的块?我们必须设计出与我们需要解决的问题(用例)相匹配的体验。在复杂环境中,当预期会有技术语言甚至多种书面或口头语言时,语言学家将成为团队的一部分,以帮助培训和改进沟通。作家和语言学家在设定对话的风格和语气方面也至关重要。我们将在稍后更详细地探讨这一点。
最后,我们不要忽略用户研究。除了审查日志和分析产品的使用情况外,研究人员可以与客户合作,了解他们希望如何使用助手,他们可能在何时何地需要它,以及他们将如何与之互动。这些见解对于规划战略方向和帮助解决战术问题非常有价值。我们将提供一套启发式方法,可以帮助你戴上研究帽,理解问题可能出现在哪里以及如何分类它们。
这只是设计方面的一个方面。我们知道工程师团队、产品经理、质量工程师和其他人将参与这一过程。他们也可以从这本书中受益。请分享它。好主意可能来自任何地方,所以总是要不断学习。保持学习的最佳方式不是重新学习我们从对话式人工智能的历史中已经知道的东西。
因此,我们现在知道谁应该参与这个过程,我们理解OpenAI的ChatGPT是基础性的,但仍然缺少一个部分。为什么需要一个定制的ChatGPT版本?因为在世界范围内训练的ChatGPT实例中,专有数据和定制答案不可用。让我们探讨如何通过设置个性化的ChatGPT实例来添加独特的内容。
设置定制模型
因此,我们现在对所需的人员和工具有了概念。拼图中的另一块是使ChatGPT解决方案具有价值的内容。在LLM(大型语言模型)中包含内容有许多方式,例如ChatGPT。然而,我们假设重点在于隐藏在安全付费墙后面或仅对认证用户可用的独特、专有内容。如果公司的答案已经在世界上,并且由基本的ChatGPT回答,问问自己,我的定制版ChatGPT将如何提供价值?我们可以通过将内容讨论集中在构建私有模型和包含公司数据(而不与世界分享)来帮助找到这个答案。
“企业”助手的概念正是如此。确保公司数据仅对客户可见,并且将数据添加到ChatGPT实例中不会将其暴露于世界。当ChatGPT首次推出时,只有少数人如此小心。不要将敏感数据添加到竞争对手使用的模型中,或者作为一名医生,不小心泄露患者机密。企业市场需要安全性。阅读这篇文章可以深入了解:
文章:向ChatGPT提供敏感数据 (https://web.archive.org/web/20240119052608/https:/www.darkreading.com/cyber-risk/employees-feeding-sensitive-business-data-chatgpt-raising-security-fears))
让我们提出一个简单的请求,看看添加数据如何显著改变答案的格局。我将为这个例子在游乐场中设置一个ChatGPT助手。我选择gpt-3.5-turbo-1106模型,因为它支持“检索”并允许我上传我的文件。检索意味着我可以与AI分享内容,使其能够根据我提供的信息进行回答。这使得企业解决方案与我们对公共对话助手的日常使用区分开来。企业解决方案知道特定于企业的内容。在这个例子中,所有操作都可以从游乐场用户界面完成。我们不需要设置或运行任何代码。你需要一个免费账户来运行它。不要上传你不舒服分享的内容。
新的模型,如Chat GPT 40-mini,总是不断推出;在你的游乐场中使用最新的模型。在我的例子中,我包含了一份200页的文档(我关于界面设计的硕士学位论文草稿)。这些材料在网上不容易获取,因此我们可以看到其包含如何改变结果。
上传此文档仅用了几秒钟,模型就准备好回答了。当然,添加数千或数百万个文件是非常不同的。不过,我还是想分享这种力量感以及ChatGPT优先考虑上传内容而非基础模型的天生能力。请按照我的示例内容进行操作,如图图1.8所示。
![]() |
|---|
-
注册账户。
-
网站:OpenAI https://chat.openai.com/
-
前往游乐场。
-
网站:OpenAI游乐场 https://platform.openai.com/playground
-
从顶部菜单中选择助手。
-
选择支持检索的模型。
-
在上传文档之前测试模型,提出问题。
-
创建指令(这是提示工程)来要求它“只关注从文档中收集的答案”。
-
上传文档并重新测试 – 提出仅文档内已知的问题。
|
图1.8 – 设置游乐场进行简单测试
我们可以将基础模型提供的答案与添加Full Thesis.pdf文件(近200页的草稿)后对同一问题的答案进行比较。
GitHub:Chapter1-Full_Thesis.pdf (https://github.com/PacktPublishing/UX-for-Enterprise-ChatGPT-Solutions/blob/main/Chapter1-Full_Thesis.pdf)
如表1.1所示,我们比较了通用模型与附加文档的模型的结果。结果非常不同。我们可以深入分析这些差异。
| UI设计中存在哪些类型的不一致性? |
|---|
| 通用模型 |
| --- |
| UI(用户界面)设计中的不一致性可能以各种方式出现。一些常见的不一致性类型包括:
-
视觉不一致性:这些涉及UI视觉元素的不一致性,如字体样式、颜色、布局和间距。例如,大小不同或间距不一致的按钮或图标可能会创建视觉不一致性。
-
交互不一致性:这些发生在UI元素(如按钮、链接或菜单)的行为在不同应用部分不一致时。例如,不一致的悬停效果或在不同屏幕之间导航的不同方式可能会使用户感到困惑。
-
命名和标签不一致性:(为简洁起见已删除) …
-
功能不一致性:(为简洁起见已删除)
-
平台特定的不一致性:(为简洁起见已删除)
-
在UI设计中努力追求一致性,以向用户提供熟悉且直观的体验至关重要。一致的UI设计可以提高可用性、减少认知负荷并提升整体用户体验。
| 在一项关于用户界面(UI)设计不一致性的研究中,确定了各种类型的不一致性,包括物理位置不一致性、句法不一致性、语义不一致性和反馈不一致性。研究发现,受试者在界面中识别物理位置不一致性更容易,而且在不同版本的应用程序中播种的物理位置不一致性的数量高于其他类型的不一致性。此外,观察到不同组别的受试者在他们版本的界面中发现了不同数量的一致性,即使在不同组别中播种的不一致性数量几乎相同[1]。这表明,UI设计的不一致性可以以不同的方式表现出来,包括视觉、交互、命名和标签、功能和平台特定的不一致性,如前所述,但该研究进一步突出了在研究环境中确定的具体类型的不一致性。如果您需要更多详细的信息或其他特定类型的不一致性,请随时提问! |
|---|
表1.1 – 添加自定义数据后的答案比较
现在,即使没有阅读200页的文档,这也相当不错。在我们讨论的早期阶段,这里有一些亮点:
-
它优先考虑文件中的答案,而不是通用的互联网答案。
-
它进行了某种程度的总结,包括将其作为一项研究进行引用。
-
尽管没有展示,但它展示表格和详细结果有困难。
-
将ChatGPT扩展到新颖内容很容易。
-
它可以立即提供。这应该表明,可以利用这些模型来为顾客定制和打造独特的产品。
-
注意,结果中包含了一个参考文献[1],但没有提供参考文献。这有点像是幻觉。我们将在书中讨论这一点。
-
注意,第一个答案是编号列表,而第二个是段落。只有当我们指定我们想要的结果时,我们才能获得一致的结果(见第7章,提示工程)。
我们做了这个示例,并鼓励您亲自尝试。这展示了如何让ChatGPT优先考虑企业数据而不是它在基础训练模型中知道的内容。在接下来的章节中,我们将进一步深入探讨这一点。
OpenAI支持基本检索
在他们的知识页面(2023年12月),OpenAI表示,“在这个示例中,通过将所有内容添加到模型调用中,对内容检索进行了优化,以提高质量。未来,ChatGPT将引入其他策略来帮助优化质量和成本之间的权衡”
这里有一个这样的策略:
文章:OpenAI的文件搜索 (https://platform.openai.com/docs/assistants/tools/file-search)
如果你阅读有关 OpenAI 检索的内容,它存在显著的局限性和成本,可能会阻碍企业解决方案的实施。生成式 AI 解决方案的其他部分可以解决规模问题。这一点在第 6 章,“数据收集 – 内容为王”中有详细说明。
摘要
到目前为止,这仅仅触及了表面。我们将深入探讨如何制定用户研究计划,并将标准研究方法应用于对话世界,然后深入探讨用户界面模式、指南和启发式方法,以帮助指导和提高企业 ChatGPT 解决方案的质量。一旦我们有所成果,就是时候应用我们的关怀和培养方法来监控和改进客户体验的质量,将其进一步扩展到更多客户用例中,以满足他们期望的质量。我们将把所有这些成果打包成一个漂亮的礼物,这样新发现的专长就可以与开发人员和产品管理的朋友分享。没有人是一座孤岛。确实需要团队。
接下来,让我们探讨基本研究工具,我们可以使用这些工具来了解我们的用户以及我们如何了解客户的需求。一些合适的研究方法可以大大缩小未知未知之间的差距...
“那些说某件事没有发生的报道总是让我感到很有趣,因为我们知道,有已知已知;有我们知道我们知道的事情。我们也知道有已知未知;也就是说,我们知道有一些我们不知道的事情。但还有未知未知——那些我们不知道我们不知道的事情。如果我们回顾我们国家和其他自由国家的历史,后者往往更难。”
– 唐纳德·拉姆斯菲尔德(国防.gov 新闻稿:国防部新闻发布会 – 拉姆斯菲尔德部长和迈尔斯将军。美国国防部。2002 年 2 月 12 日)
让我们开始吧!
参考文献
![]() |
本章中的链接、书籍推荐和 GitHub 文件已发布在参考文献页面上:网页:第 1 章 参考文献 (https://uxdforai.com/references#C1) |
|---|
第二章:进行有效的用户研究
我们都想要立即深入工作——这是人的本性。有计划的努力会更有价值。如果这个计划包括对用户有深入的理解,那么任何努力的价值都会得到回报。这就是用户研究发挥作用的地方。让我们利用这个领域的专业知识来理解用户的需求,倾听问题,然后推动解决方案。探索一些基本方法,了解ChatGPT项目该往哪里走。在开发圈子中有一个众所周知的谚语,即改变在开发过程的每一步都会呈指数级增加成本。所以,为什么不采取适当的初步步骤,以减少后续的昂贵变更呢?这并不意味着你不能适应和改进。
LLM的世界完全关于精炼和渐进式改进。让我们从正确的起点开始,以减少复杂性和成本。我们可以通过更多地了解客户将如何使用产品,哪些需求将是关键的,以及解决方案需要深入到什么程度来实现这一点。
我们不会对所有可能存在的用户研究方法进行概述。但我们总是鼓励进行更深入的探索。让我们探讨一些主要话题,这些话题对于研究投资的价值最大:
-
调查用户体验研究方法
-
理解用户需求分析
-
创建有效的调查问卷
-
设计有洞察力的访谈
-
尝试对话分析
调查用户体验研究方法
本节将重点关注一些流行的用户体验研究方法。
我希望尊重所有可能的方法。我们倾向于选择技术来解决特定问题,但并不是所有方法都适用于所有情况。但提醒自己有选择是好的。这里所涵盖的只是冰山一角。
文章:研究方法概述 (https://www.nngroup.com/articles/which-ux-research-methods/)
从那篇文章中得到的启示是要注意我们的审查方法在尼尔森·诺曼集团文章的克里斯蒂安景观图上的位置,如图2.1所示。
我画出了我们将要讨论的三种方法,并突出了可用性测试。我们将在本章中讨论的方法,对于决定要构建什么以及开始构建一个随着时间的推移与客户互动的集合提供了最大的价值。可用性测试也是至关重要的;当我们有东西可以测试时,它将发挥作用。一旦我们有了产品,我们将讨论方法和工具来帮助评估LLM解决方案的质量。

图2.1 – 用户体验研究方法的广泛景观
更多关于用户体验研究方法的内容
尝试一些研究方法书籍,以进行更深入的探索,这有助于设计生成式AI解决方案。
书籍:深入探讨用户体验研究方法 (https://amzn.to/3zYtzN1)
我们投入精力进行研究,以了解用户的需求。我们不问他们想要什么;我们学习他们的需求,并利用这些需求来推动设计和功能决策。这就是需求分析,我们将在下一节中讨论。
理解用户需求分析
让我们回顾一下需求分析的基础知识。需求分析帮助我们识别、评估和优先排序用户的需求和需求。我们希望了解用户的成果,并确保我们能够应对他们将要面临的挑战。产品经理通常领导这一产品定义,但一个由设计师和研究人员组成的跨学科团队有助于提高成果。
我们希望通过将ChatGPT引入我们公司的资源库中,实现一些重大的成就。让我们确保我们知道这将如何解决用户旅程中正确客户在正确时间面临的真实问题。在本书的后面部分,我们将深入探讨确保我们为那些经常使用我们的服务并解决重大问题的正确客户提供服务。现在,让我们了解需要什么,并收集一些关于ChatGPT解决方案可能解决我们产品中差距的知识:
-
定义目的:通过引入LLM解决方案,我们想要实现什么目标?一个服务示例可能是通过引入聊天助手来解决简单问题或收集信息,然后再将其转交给人工客服,从而降低成本。但这并不是用户的目标。用户的目标是以尽可能快和准确的方式解决问题。而且不是通过解决错误的问题或使事情变得更糟来使事情变得更糟。这是他们从老板的角度来看的。销售的需求分析可能表明,达成交易的时间比行业平均水平长30%。那些佣金基于达成交易的销售人员应该希望推动他们的流程,因此缩短交易时间的目标有助于他们和公司。
-
识别利益相关者:识别并涉及利益相关者,包括最终用户、客户、决策者以及其他对产品或服务感兴趣的人。这很重要,因为我们所讨论的方法可以应用于客户和内部决策者。
-
用户画像:创建代表不同目标受众群体的用户画像或角色。注意不要将客户描绘成漫画化的人物。避免那些会分散用户与系统之间联系的描述。例如,如果角色或画像包括他们在上班途中在当地的咖啡馆喝咖啡,让我们确保这与用例相关。稍后,当我们想要根据经验水平、工具的先前使用或技术理解来调整信息以适应用户的个别需求时,我们应该能够利用这种知识在画像中调整对话风格和语调。如果喝咖啡只是因为你认为这很酷,那就去掉它。
-
进行调查和访谈:通过调查、访谈或焦点小组讨论直接从用户那里收集信息。提出开放式问题以了解他们的目标、挑战、偏好和期望。提出具体问题以轻松地细分和量化结果。这对客户和内部利益相关者都很有用。
-
观察用户行为:进行可用性测试或观察用户与现有系统或原型交互。分析他们完成任务的方式,识别痛点,并遵循他们行为中的任何模式。我们将在日志分析讨论中看到一些这方面的内容。生成式 AI 解决方案不一定已经运行起来,因此请使用其他渠道来分析用户行为并收集这些数据。
-
分析反馈和支持数据:审查客户支持渠道、用户评论、博客文章以及任何其他可以提供对用户问题、关注点或建议洞察的信息来源。这是一项耗时且难以量化的任务。分析现有的日志文件也是耗时的工作,但更容易量化。我们将深入挖掘像聊天日志文件这样的数据源。
-
定义用户故事:用户故事是描述用户与系统交互的叙述,侧重于期望的结果和用户目标发生的背景。让我们简要探讨这一点,并将大部分内容留到下一章。使用案例或以案例驱动的开发和设计在以客户为中心的公司中很普遍。这被鼓励作为一种比上述第三项中讨论的配置文件方法更系统化和战术性的方法。有些人会制作卡通或像漫画书一样视觉化地编写故事。这些非常受欢迎,并允许广泛的受众快速掌握目标。Chris Spalton 的这个例子提醒我们,我们不必总是从规格开始。我们也可以使用我们的创造力和视觉方面来解释我们的故事。图 2.2 展示了 Chris 将 UX 概念表达为故事板的例子。
文章:使用漫画条展示 UX 概念 by Chris Spalton (https://uxdesign.cc/using-comic-strips-and-storyboards-to-test-your-ux-concepts-cccad7ac7f71):

图 2.2 – 作为漫画条的 UX 故事示例
-
优先考虑用户需求:根据其重要性和对用户体验的影响,优先考虑已确定的需求。这可以在设计和开发过程中“驱动关注”。我们将通过提供一个可重复使用的工具来解决这个重大问题来深入探讨这一点。
-
创建用例:开发描述用户与系统之间逐步交互的用例。这有助于可视化用户如何完成特定任务。Alistair Cockburn的《编写有效的用例》是教授用例设计的权威指南(第3章,为ChatGPT识别最佳用例)。
-
文档研究:整理并记录用户需求分析的结果。这份文档为设计和开发团队提供了参考。
-
迭代过程:用户需求可能会演变,因此分析应被视为一个迭代过程。定期回顾和更新用户需求,以适应不断变化的需求和用户期望。
注意
无论如何实施,ChatGPT解决方案在可预见的未来仍需要精心照料和培养,因此在生产中应计划定期进行交互。这可能是一周或更快。这在本章的第11章中进行了回顾,过程。
通过彻底理解用户需求,您可以调整产品或服务以满足目标受众的期望,提高用户满意度和整体成功。不太可能有人会使用或需要列出的所有步骤。这就是为什么我们可以将设计思维应用于我们的问题。不要为每个项目重新发明轮子。选择和选择工具来解决团队理解中最重大的差距。
记住,这是进行更改的时候。一旦产品建成并发货,提高质量的成本就会呈指数级增长。对问题的早期理解越好,决策就会越好,对组织的成本就越低。这并不是说我们不会在发货后继续改进解决方案,但后期阶段的增量更改成本更高。
图2**.3 展示了在从一步开发到下一步开发的过程中如何考虑变更成本。我们在需求上不可能全部做对,使用ChatGPT解决方案,我们期望通过迭代来达到正确,但它提醒我们每一步的学习都有价值,因为学习和修复的成本会迅速增长。

图2.3 – 变更成本在每一阶段都会上升
我更喜欢专注于少数几个基本方法,并在研究生成式AI解决方案时提供一些额外的技巧和窍门,使它们更有效。让我们深入了解我们工具包中的第一个工具,它有时帮助我们细化需求分析:一份调查。
创建有效的调查
在所有可用的方法中,为什么选择调查?构建调查存在挑战,但当一个新项目开始时,有时几乎没有数据来帮助围绕用户需求形成设计空间。与其仅仅依赖客户反馈,有远见的领导者和设计创新者预测需求并创造客户可能没有想象到的解决方案。苹果公司的联合创始人史蒂夫·乔布斯曾说过:“人们不知道自己想要什么,直到你把它展示给他们。”但对我们中的一些人来说,当我们开始时,我们需要一个线索知道该去哪里,要解决什么问题,或者帮助决定哪些问题解决最有价值。我们不建议询问客户他们想要什么;我们想要提出问题,帮助我们了解他们的需求,以及当前的产品和服务在哪里未能满足他们的需求。我们不问他们如何解决问题。让我举一个如何提出错误问题的例子。
吉姆正在厨房里做饭,这时凯莉从跑步回来。他们俩都伸手去拿柜子上的橙子。他们都想要那个橙子。吉姆建议把它切成两半。凯莉说这样不行。凯莉问:“你打算怎么用这个橙子?”吉姆回答说:“我在做饭,需要橙皮。”凯莉说:“太好了,你可以拿整个橙皮,而我将吃橙子内部,因为我刚从健身房回来。”
这不仅仅是关于谈判和冲突解决;理解用例是至关重要的。如果设计团队知道某人想要如何使用一个产品,你可以帮助设计一个更好的产品。我们不会在调查中问“你需要什么”。我们专注于理解意图。一旦我们有一些可以分享的生成性输出,我们可能会调整风格和语气,使其更好地引起共鸣。在发布软件(或通过在软件或服务中嵌入调查)后进行一项调查,并征求他们对体验的反馈是很常见的。在任何情况下,都要提出质量高、无偏见的、你知道如何分析结果的问题。
编写调查是一项科学,也是一项专业知识。即使是专家也能从该领域的科学中受益。我们为此提供了资源。
书籍:问卷设计 由 Bolton 和 Bolton 著(第5版,2022年)(https://amzn.to/3AemWWY)。
对话式人工智能的调查
调查非常适合扩大对新或新颖领域客户的理解。我们只能提供通用的问题和睿智的建议。特定于您领域的问题必须由您提供。但有一些问题我们不应该问。我们在清单中涵盖了一些内容。例如,不要问,“你想使用对话式人工智能来回答问题吗?”或者“我可以基于算法或生成式人工智能分析提供推荐吗?”。这些问题让我们回到了我们询问客户是否想要一匹更快的马的时代。马不是答案;一辆他们无法想象的车,才是解决方案。
将焦点问题放在客户的问题上,他们解决这些问题的挫败感,或者他们用来与公司互动的工具和技术。这是一种深入了解他们如何体验品牌以及深入探究为什么和如何的方法。通过推荐用户界面,你可以在调查中探索风格、语气和内容。调查用户对不同推荐的可能反应,以及哪些推荐更有价值(通过给出多个例子并要求他们选择最有用的一项),推荐何时最有帮助,甚至如何分享它(当我们知道时,我们应该通过电子邮件发送给用户,还是只在他们到达交易页面时在用户界面中显示?)。这是一个询问为什么的绝佳机会。让他们填写为什么他们做出选择的详细信息,并花时间组织和评估这些反馈。在做出推荐之前进行这项研究,因为如果我们的目标准确,用户可能只会接受未来的改进。从坚实的基础开始。这项研究将决定如何形成提示,收集分析所需的数据,并生成结果。我们可以深入研究在开发调查时需要注意的问题。
调查清单
我们直接进入调查技巧,假设有一定的调查专业知识;如有需要,请获取我们的资源。如果您有基础知识,请继续,因为这是一些我们在构建有效调查时有时需要记住的课程集合。一个设计不良的调查可能比没有调查更糟。它可能会给人一种虚假的希望感,并引导团队做出错误的假设。构建解决方案所需的所有人都会在调查中处于极佳的位置做出贡献。对话式作家、设计师、研究人员、产品所有者和经理都将从一项精心完成的研究结果中获得价值。因此,请确保他们参与帮助创建问题。以下是一些确保有效调查的清单项。
-
只问你知道如何分析的问题:计划分析每一个问题。这迫使每个问题都有一个目的,当需要裁剪时,判断其价值就更容易了。
-
不要提出引导性问题:让用户形成自己的观点。问,“你对今天早些时候的支持体验满意吗?”不要问,“考虑到我们的优秀支持流程和员工在处理问题方面的改进,你对最近的互动满意吗?”
-
问题越简单,用户回答起来就越容易:多项选择(a, b, c, d)和简单选择(a或b)问题更容易、更快地分析。尽可能使用它们,并在可能的情况下重新设计开放式问题。
简单的选择性问题应该是直接的。尽量避免使用是/否问题。
我们在UI中避免使用是/否问题,因为它们需要更多的认知努力。这里有一个来自银行业的例子:
Do you wish to cancel your transfer? [ Yes ] [ No ]而我们应该使用这个:
Do you wish to cancel your transfer? [ Cancel Transfer ] [Continue Transfer ] Were you happy with your support call today? [ Yes ] [ No ]而应该使用这个:
Were you satisfied with your support call today? [ Satisfied ] [ Not Satisfied ]这比引导性问题更直接。决定调查需要什么样的结果。
-
选择性问题应该是文氏图完整的:这是我幽默的说法,意思是确保问题选项覆盖所有可能的后果。这可以避免有人尝试回答问题,却看不到与他们的用例相匹配的响应。看看这个:
What is your current age? Younger than 20 20 to 50 Older than 70哎呀!问题遗漏了一组用户。这是一个明显的例子,但不要惊讶这种情况发生的频率。当有一个长列表(比如,5到10个选项)覆盖90%以上的答案时,包括一个“其他”选项,他们可以可选地填写一个文本答案来详细说明其他答案。手动输入确实需要更多的分析工作。
结果有时需要归一化。如果你问了一个关于客户最喜欢的流媒体服务的问题,例如没有包括迪士尼,他们可能会选择“其他”,然后输入答案,如“迪士尼”、“迪士尼+”、“Disney+”、“华特迪士尼频道”。结果必须汇总成一个答案。尽量在答案选项中做到完整,以避免这个问题。
-
当需要完成可能的用例时,包括一个“不适用”选项:这将通过不强迫用户选择错误答案来确保更好的结果。
-
考虑需要哪些问题:大多数问题通常需要用户不能意外地跳过整个部分。
-
在选择题列表中创建平衡(单选):
让我们用一个例子来询问年龄范围:
What is your current age? < 20 20 to 30 30 to 50 50 to 60 60 to 70 > 70几个问题值得关注。首先,我们可能试图排除某个特定群体(可能只需要20岁以上的成年人),因此该群体包含20年,这可能没问题。因为我们对老年群体感兴趣,所以我们把这些部分分解成10年一个段,但年轻群体我们使用20年作为一个组。请注意这些决定。使用一致的组,特别是在范围的中间,并且用这些一致的组超出范围。让我们使用70-80岁组,然后是80岁以上组。这样,当数据被图表化时,它会被更好地分割。然后,图表不会在30-50岁组显示出显著的峰值,这可能是由于该组是其他组大小的两倍。最后,预期要对这类数据进行交叉表分析(例如,比较年龄范围与收入以验证是否针对正确的受众群体,然后绘制图表)。因此,一致的组大小会使该图表更具吸引力。但如果客户是30岁,他们应该选择哪个选项?我们不希望有重叠的值。假设这些较大的组是数据边缘的小、不重要的组(几个百分比或更少)。
我会这样修改:
What is your age? Younger than 20 20 to 29 30 to 39 40 to 49 50 to 59 60 to 69 70 to 79 80 or older这作为一个下拉菜单是好的。每个人都知道自己的年龄。他们不需要在屏幕上比较答案,可以快速从列表中选择。我们没有询问他们的年龄,所以我改变了提示。它占用的空间更少,用户体验更干净。我移除了那些大于和小于的箭头,并使用了英文。没有必要让他们努力理解像<或>这样的符号来选择一个简单的答案。我选择了20到29岁这样的范围,而不是21到30岁。这与我们的说话方式一致(20多或30多岁的人)。

-
如果下拉菜单默认选择一个答案,那么用户就不需要选择一个选项,这可能会影响结果:因此,在这些情况下,确保你使用的软件默认为未选择状态,如上图所示。
-
在询问特定问题(如年龄)时,数据总是可以在之后合并。如果问题使用分组,之后就不能更改分组:分组在你想要关联数据时很有用。例如,对于技术支持客户,人们想知道他们拥有多少产品。如果从他们的账户信息中已知,就不需要询问这个问题。它可以与他们在网站上使用的次数或每个产品论坛上的帖子数量相关联。这些信息可能有助于解释他们的专业知识水平。使用这些信息来调整生成答案的详细程度、风格或语气。在GUI中,系统可以提供专家建议而不是新手UI。它还可以进一步适应,只为用户的新产品提供新手生成建议,并为已知他们经常使用的产品提供更高级的建议。然后根据他们对这些建议的使用进行调整。
-
显示所有多选选项,并保持整个列表在屏幕上可见:在有众多选项的情况下,特别是如果对选择数量有限制,所有选项都应该可见。如果不这样做,用户可能会达到最大选择数,然后看到其他答案,这会导致他们需要重新调整选择,他们可能不会费心去做。因此,通过确保所有选项都可见,他们可以扫描并决定选择哪些。
-
使调查简短:在完全设计后,尝试将其减少30%。寻找不需要再次提出相同问题的地方,或者询问不需要的问题。在某些情况下,以稍微不同的方式再次提出相同的问题,以验证第一次回答。
-
在调查中使用分支,以将特定用户集中在特定问题上:如果用户的回答走向一个方向,我们就不需要让他们在另一个方向上回答额外的问题。这是不必要的。例如,只向iPhone用户提出有关iPhone的问题。请不要向他们提出不适用的问题,如Android问题。
-
抵制收集不必要的人口统计信息(年龄、位置、也许性别)的冲动:如果它不会增加分析的价值,就别问。
-
查看是否存在调查机制,例如季度客户调查:在这种情况下,向现有流程中添加问题,并获取结果,而无需运行新的调查的开销。当然,这将在他们的日程安排上,并且在某些方面会受到限制,但它可能是一个选择。
-
使用带有中间值的锚定利克特量表进行评分:可以使用多点量表询问意见、感知和行为,通常为每个或某些值提供标签(锚点)。我建议使用1到5的范围,最多1到7(除了净推荐者得分之外,不要更多)。锚点是量表两端的标签(差到好,以及如果合理定义,则为常见UX问题周围的易用性问题:非常困难,困难,中立,容易,非常容易)。我们在使用后的一题调查中看到这些,例如:“请对我们的聊天助手今天的使用体验进行评分。”
SurveyMonkey的入门指南对于一些基本内容来说很容易理解。
文章:SurveyMonkey的利克特量表入门 (https://www.surveymonkey.com/mp/likert-scale/)
-
利克特量表的强力技巧:在一组量表中改变1的含义。一些1可以代表不良或较差的概念(非常困难,从未,不推荐),而一些可以代表正面或好的选项(非常容易,总是,强烈同意)。这迫使用户阅读并审查每个量表。如果没有注意到,数据无效,但同样,如果他们阅读并使用相同的选项标记所有内容,那么也没有价值。
-
用试点用户(友好用户)测试调查:验证措辞、语法和流程。检查所有分支并审查结果以确认它们是有效的。鼓励他们坦率地反馈。
-
考虑为顾客和内部利益相关者设计不同的调查。利益相关者可能深刻理解顾客的需求,收集利益相关者的反馈,并将这些数据与顾客结果分开。
-
考虑添加一个关于参与未来用户研究活动的最终问题:这可以为访谈、用户测试或参与式设计会议生成额外的客户来源。
-
不要打扰顾客:公司有规定。发送一封电子邮件和一次跟进可能是可以的。但我们不建议发送更多。如果顾客没有时间回复第二次请求,就放弃。此外,跟踪用户响应(许多工具允许这样做),只向尚未参与的人发送跟进。
-
不要期望调查的回复率超过10-20%:如果公司允许,可以激励顾客。给每个参与者发送礼品卡既昂贵又耗时。将顾客登记在抽奖活动中并仅分发少量重要激励措施(我过去曾赠送过iPod;根据调查的复杂性,100美元的礼品卡或更多是合理的)可能更节省时间和费用。这可以稍微提高回复率(但也要求调查包括姓名和联系信息)。如果通过给100名参与者发送电子邮件,只有5%的回复率,将没有足够的主语来获得有价值的结果。我们将在稍后讨论参与者的数量。
-
没有关于需要多少受访者才能获得可靠数据的良好规则。由于一些调查问题是主观的和定性的,一个特定项目可能需要30到200个答案。然而,一个更广泛的调查,包括分支和多个受众群体,可能需要1000个或更多的受访者以在每个分支上获得足够的结果。对于统计上具有显著性的定量结果,需要使用统计学书籍中的数学来计算所需的受访者样本量。
-
一些调查示例:图2.4展示了问题和用户界面如何交互。学习如何使用调查工具的功能以获得最佳结果。我强烈建议使用一些已经存在了一段时间的强大第三方工具。大型公司的内部调查工具可能缺乏部署高质量调查所需的鲁棒性和灵活性。

图2.4 – 利克特调查问题的示例
-
如果需要清晰度,请咨询ChatGPT:它拥有大量关于创建调查的知识。用它来了解如何设置调查流程以及如何编辑问题使其清晰简洁。然而,正如我们将在本书中看到的,生成式AI的结果也可能偏离目标,所以请确保你理解其结果。这里有一个尝试的例子。
I want to ask in a survey how the agent performed in a support session. How would I ask this question and use an anchored Likert scale to collect responses?
现在,让我们应用这些知识来学习如何制定一个有效的调查。
有效的调查案例研究
我根据一封关于我使用的产品的电子邮件在我的手机上完成了一份调查。他们给了我大约20个李克特量表。我不想截图供应商,因为没有理由让他们难堪。我可以设定场景。这是一份一页的调查,专注于我使用他们的在线服务。页面上没有问题,只有像国际化、报告和审计、性能、记录集成系统和Web界面这样的标签,从1(较少)到7(优秀)。我们不会提及公司,但许多人使用他们的产品。我们将它们称为CircleRize。
让我们讨论从这个案例研究中学到的积极和消极方面。
积极方面包括以下内容:
-
在这个页面之前,他们问了一个净推荐值问题(1到10的刻度)。我们将在第10章“监控与评估”中更详细地介绍净推荐值。这个单一的市场研究问题决定了客户是否会推荐一个公司或产品。
-
他们对问题使用了1到7的合理范围。
-
他们标记了1和7的锚点。了解它们的含义是好的。
-
他们为项目提供了标题。
消极方面如下:
-
那些锚点?他们使用了“较少”和“优秀”标签。这些不是对立的。它们需要平衡和清晰。我不知道“较少”作为与“优秀”一词的锚点意味着什么。他们是指“差”吗?
-
问题没有“不适用”选项。我被迫回答我不理解的问题,例如关于记录集成系统的问题。他们可以通过将20个问题分成组并根据产品使用问题进行分支来消除混淆。他们还应该使用我能理解的语言。
-
在实际的调查页面上没有问题。它是一个标记为“功能排名”的页面。我需要通过查看页面标签来获得澄清。我最初以为他们想让我按重要性对每个项目进行排名(Web UI比国际化更重要)。然后我意识到他们是在询问个人评分。需要更好的措辞来使其清晰。
-
我不知道如何回答没有上下文的问题,例如“国际化”。他们是否想看看我是否使用它、需要它,甚至注意到它被支持?没有实际的问题被问及,只有像“国际化”这样的通用标签。我完全不知道他们想要什么。
-
除非他们计划定期提问,否则他们期望从这次调查中学到的东西不清楚。例如,调查可以询问性能以衡量改进或退化。这些问题必须在随后的调查中重复,以查看时间上的差异。
-
本次调查的电子邮件主题为“审查您的CircleRize计划,获得25美元礼品卡!”。我最初将其理解为“检查您与我们CircleRize订阅的详细信息是否正确”,而不是他们原本意图的“提供您使用CircleRize计划的体验反馈”。我建议用词要明确。他们应该清楚地标记电子邮件,以减少混淆并提高参与度。
抛出一些简单问题,其背后远不止表面看起来那么简单。这个调查的结果,可能发送给了像我这样的正在查看各种计划的客户,是毫无价值的。比花费时间和精力进行这项调查以及浪费客户时间更糟糕的是,他们不知道更好的做法,很可能会用这些数据来做决策。用户测试或更有经验的人可能会捕捉到这些问题。很难说为什么这些问题会出现。利用您的资源创建有效的调查。如果每个人都点击四分(中间值)因为不理解问题,那么这将是一大笔努力,却不会带来很多回报。
我们已经讨论了要问什么和不要问什么,但具体的例子更有帮助。我们不知道您的用例,但我们可以提供如何使用ChatGPT解决客户问题的建议。
在调查中通常会提出的一些问题以及它们可能的分析方式。
-
人口统计信息:
-
示例:年龄、性别、教育水平、产品使用年数、专业知识
-
分析:风格或语气可以与对支持的期望、专业知识水平、年龄和其他人口统计信息相关联
-
-
多选题:
- 示例:对您来说,服务最重要的三个属性是什么?
哪些产品给您带来最多的麻烦?
他们已经使用的竞争对手产品列表。
- 分析:判断用户目标;准确性可能是其中之一,但在他们使用背景下的可用性比与其他服务的集成更重要。需要适当的选项,以免大量数据进入“其他”类别。调查可以探索客户使用并喜欢的其他产品,以了解竞争对手可能的优点。
-
李克特量表(1到5,1到7的量表,带有标记的锚点):
- 示例:您今天对客服电话的满意度如何?
您对产品x的经验水平如何?
向代理或机器人提供机密信息的舒适度。
对服务水平、响应速度、可用性、准确性和成本的满意度。
- 分析:寻找改进支持的机会,并在改进或变化发生时衡量整体质量。确定24/7支持和服务水平之间的权衡。
-
净推荐值:
-
示例:在0到10的量表上,您有多可能向朋友或同事推荐[公司、产品或服务]?
-
分析:这是一张快速的客户情绪快照,可以轻松地与其他公司或服务进行比较,或用作改进的基准。第10章,监控与评估将更详细地介绍这一点。
-
-
开放式问题:
- 示例:你最喜欢流媒体服务有什么特点?
告诉我们您使用产品Y的最佳体验。
告诉我们使用产品X时的任何恐怖故事。
- 分析:这是一个与竞争对手进行基准测试的机会;开放式问题有助于深入了解一个感兴趣的领域。这可能是对探索他们使用的竞争性产品多项选择题的后续问题。向他们提出具体问题。这可以与上述人口统计问题相关联,以确定特定人口群体更有可能享受不同的服务。这些需要更多的努力来分析、分类和关联。
-
定量数据:
- 示例:你每天在我们网站上花费多少小时?
上个月你为流媒体服务支付了多少钱?
您每月的汽车贷款是多少?
你上次是什么时候给我们发邮件寻求支持的?
在技术支持电话中,多长时间算太长了?
- 分析:关于每天小时数的问题与表面看起来的不一样。可以对他们在网站上花费的时间进行数据分析;这更多是关于感知。如果他们报告的少于他们支付的,或者报告的比实际多,比较实际使用数据可能会有所帮助。这也可以与他们在网站上进行的各种活动信息交叉对比。这可能揭示某些活动比其他活动耗时更长,并有助于了解如何投资资源以减少耗时活动。通过客户数据,你可以将感知时间、成本和使用与实际时间、价格和使用相关联。这可以解释客户的感知是否与期望相符。
-
趋势:
-
示例:以下哪些在线支付服务您使用过?
-
分析:调查可以捕捉竞争信息。这些数据可以用来研究合作伙伴机会或了解特定人口群体如何看待某些趋势。
-
-
行为:
- 示例:访问我们网站的主要原因是?
如果你今天要告诉朋友你对客户支持的经验,你会说什么?
你在社交媒体上发布关于产品Y的可能性有多大?
- 分析:希望这是一个简单的单选题列表,但它可以分支到更详细的细节(例如,他们是否遇到产品问题、寻找新产品、下载某些内容或提供评论)。
-
比较分析:
- 示例:将这些五个服务按对您需求的价值排序。
以下哪些销售信息最有价值?
按从最理想到最不理想对以下属性进行排序。
哪种表述方式让您感觉最自然?
- 分析:让客户对功能进行排名比让他们对它们进行评分要好。排名只将功能按重要性排序。这并不能帮助你了解它们有多重要。排名问题对用户来说很难回答。将排名限制为五个项目,但如果某些项目被认为是相同的,强迫排名可能会引起挫败感。这类问题可以用来尝试不同的风格和语气。看看是否有与人口统计或其他信息的关联,以创建适合对话风格的定制角色。在有效写作中有很多心理学。
哇!希望这没有太多需要处理而没有提供成为调查专家所需的所有培训。增长专业知识,利用资源,与其他专家合作,并做你需要做的事情!当是时候进行调查时,请返回此处并勾选项目以确保得到一个可靠的研究结果,团队可以信赖。
正如提到的,调查是遇到值得采访的人的好地方。这真是一个很好的过渡,让我们讨论下一个用户研究方法:访谈。
设计有洞察力的访谈
访谈可能不是你的首选,但我们鼓励探索访谈作为理解用例的有价值工具。使用调查收集一般信息,并进行点击分析(或日志分析)以获取实际行为。访谈对于获得对客户的整体感觉至关重要。它有其缺点:难以扩展,结果更容易被解释,有时很难获得正确的客户组合。优点是你在客户身上获得的感觉,以及在设计过程中作为客户倡导者所体现的同情心。这将丰富项目。在调查中,考虑以关于参与未来用户研究的问题结束。尽管这是自我选择的,但几乎总是有益的。
可能会有时间进行五到十次访谈,但大多数团队不太可能投资超过20次。针对正确的受众是有价值的。设置访谈的成本可能比进行访谈所需的时间(典型会议持续30到60分钟)更为显著。客户很忙,与现有客户合作时,激励可能不是一种选择。他们往往需要重新安排,因为这对他们来说是一个低优先级。尽管有缺点,我仍然推荐访谈过程。
在处理对话解决方案时,不要期望通过共享演示或视觉内容来获取反馈。请他们在面试期间准备好现有产品或网站支持站点。通过介绍一些用例可以围绕增强机会进行讨论(关注他们的需求,而不是他们的解决方案)。不要将他们限制在被认为是AI问题的事情上;如果他们去其他地方,请接受他们的反馈,转交给团队(或代表他们提交错误报告或增强请求),然后将他们的讨论重新聚焦。建立一个关系,让他们信任您正在努力帮助公司帮助他们完成工作或任务。
构建一个支持收集所需信息的面试框架。如果您正在尝试构建一个围绕支持方面的对话助手,那么重点在于理解他们在试图获取答案时遇到的复杂性。如果您正在构建一个推荐引擎,那么寻找讨论他们目前获取推荐的地方、谁提供这些推荐以及他们信任这些信息的程度。也许的想法是替换或改进现有提供销售信息(成交可能性、定制解决方案的发货时间表、促销捆绑优惠、产品推荐)的算法。然后,关注他们何时需要这些信息,哪些渠道有助于或令他们烦恼(短信、电子邮件、自动电话呼叫或网站),以及信息在流程中的位置或展示频率可能如何影响他们的观点。
有许多面试脚本示例。将这些模板适应到面试脚本中,注入适当的内容。
文章:示例用户面试脚本 (https://guides.18f.gov/ux-guide/interview-script/)
让我为您介绍一些面试的技巧和建议。
定义研究目标
明确说明面试的目标和目标。例如,通过调查,我们想知道为什么在事先提出这些问题。请保持面试专注于适合面试流程的结果。请不要将其变成现场调查。如果您需要人口统计信息,请提前获取。这种预面试允许根据结果调整面试。
面试可以使用样本、演示或视觉材料。但目标是让他们开口说话,并给出反馈、见解、知识和智慧。利用这个机会深入了解,并适应他们的说法和表达方式。他们回答的方式可能会有细微差别,这可能揭示隐藏的真相。探索现有的或之前的客户互动、竞争产品的使用和反馈、风格和语气讨论,以及大量的用例示例,如调查中所示。然而,与调查不同,要深入挖掘,轻松调整或深入追问问题,即兴登录网站,展示不同的示例,并尝试更深入地理解和同情客户。
选择参与者
根据研究目标定义目标参与者群体。确保所选参与者具有与研究主题相关的知识或经验。如果他们是现有客户,考虑客户档案(长期客户、新客户、拥有大量产品的客户、仅拥有特定产品的客户、提交大量故障报告的客户、技术型、非技术型、通过社区网站自助服务的客户等)。建立寻找和面试正确受众的流程。有时,调查可以解决这个问题。以下是一些有助于这一过程的提示:
-
为10到20名参与者的面试安排比所需时间多20-30%。如果有人取消,你不必重新开始招募过程,结果也不会延迟。如果幸运地每个人都到场,不要取消;这不尊重人。要么遵循流程,要么寻找机会通过不同的提问方式扩展理解。也许可以进一步深入到之前受访者没有时间探讨的领域。
-
如果贵公司有人负责招募和安排,那就太好了。预计招募所需时间将长于实际面试时间。因此,在安排中要考虑到这一点。还有外部公司可以协助招募。
-
不要将面试安排得过于紧密。中间留出一个小时。这样,如果客户同意,可以加班,同时也有时间在记忆清晰时写下额外的笔记。
-
我为一个项目进行的最多面试是20个。没有规则可以确定正确的数量;在广泛的主题领域或许多不同的客户档案中,需要更多的受访者。然而,与折扣可用性方法一样,重叠的反馈将开始占主导地位,你不想在面试进行到10%时,反复注意到相同的结果。如果这是一个用户测试,我们有数据表明,对于某些测试,五个受访者就足够了。然而,面试比使用软件产品要少一些结构,因此要考虑成本效益权衡。阅读这篇文章,了解如何应用折扣可用性方法,这是一种用于迭代小型研究的实践,即使在面试过程中也很有用。
文章:折扣可用性方法 (https://www.nngroup.com/articles/discount-usability-20-years/)
高级技巧
为了提高出席率,在会议前一天打电话(实际电话),提醒他们会议时间。他们可能会欣赏这种个性化的确认方式,如果他们不能出席,他们可能会立即告诉你,这样你就不会坐着等待。到了时间,提前五分钟加入网络会议(我假设大多数会议都是通过网络会议进行的;如果他们是面对面的,那太好了!),并再次发送带有链接的消息。“我提前几分钟加入,以确保我准备好让你加入。我期待几分钟后的会议。”
制定结构化面试项目
创建一个详细的面试项目,包括标准问题和可选后续问题。问题应该是清晰、无偏见,并旨在获取必要的信息。请鼓励他们大声思考并扩展他们的推理。认识到有些客户可能对某个主题没有话可说。准备好跳过或转向感兴趣的话题。没有规则说每个人都必须回答每个问题或讨论的每一行。然而,在进行分析时,说“6位客户在没有提示的情况下对XYZ缺乏支持表示了相同的看法。”这是一个有力的声明。
在脚本中包含提示,提醒客户大声思考或扩展他们的思考。如果他们已经在做,那很好,但在“状态”中,你可能会忘记;这是一个很好的提醒。
将偏见留给自己。我们可以很容易地表达我们希望客户通过反馈去哪里。有时,提供诚实反馈存在文化问题。也就是说,有些人只会给出积极的建议。了解你的受众。给他们提示,以探查正面和负面的讨论。这将有助于调整方法,以从参与者那里获取最有价值的反馈。
领导面试流程和项目
与一小组参与者进行试点,以识别面试过程中可能存在的问题。这应包括技术、声音和质量检查,以及检查整个流程以测试时间和安排问题。按照预期提问。这将验证预定时间是否足够,以及问题在口头表达时是否自然。记录会议。注意需要更改或复查的地方。这是一个试点。现在犯错误并纠正。利用这些学习经验更新和编辑项目,然后再次尝试:
-
即使进行了一些访谈后,也可以调整程序。对于访谈转向的内容,你不会得到太多数据,但如果意识到需要不同的策略,就进行更改。关注更令人担忧的领域。
-
即使一个用户给出了很好的反馈,也不意味着它会被多个用户听到。如果过早地转变方向,请谨慎行事。
-
ChatGPT 可以编辑程序,使其更具自然和对话感。
进行结构化访谈
按照访谈程序进行,按照预定义的顺序提问。在语气上保持中立,避免提出可能引导回答的问题。通过笔记、录音、记录员或其他方法准确记录回答:
-
在开始访谈之前,确保参与者了解研究的目的,并同意自愿参与。通常,我们会阅读一份简短的声明,说明目的、信息的使用方式(视频或音频录音、引用和简介信息),以及如何尊重参与者的隐私。我们还告知他们可以随时停止并退出研究。用户研究员可能已经准备好了这些模板信息。如果你是设计师或产品人员,请使用研究员来运行研究。
-
如果你正在屏幕录制,请在开始录制之前帮助用户隐藏或删除机密或不相关的材料。这将有助于建立信任,并使录制更专注于项目。
-
如果你担任访谈者,让一个同谋做笔记。这可以让你在访谈时更加专注。有多种用户体验工具可以实现同步笔记。访谈者的口头提示,如“这是一个非常有趣的观点”、“我们应该记下这一点”和“感谢你的观察”,可以帮助记录员知道对你来说什么是最重要的,并让参与者参与进来。
-
允许其他内部人士、所有者或倡导者观看或加入通话。在访谈期间,要清楚他们只是沉默的观察者。
-
那些沉默的观察者可以在私人频道聊天。他们可能对你不知道的答案有见解,或者可以提供有助的后续问题提示。
-
寻求澄清并鼓励参与者详细阐述他们的回答。我们希望得到他们的见解,这比来自调查的简单答案更有价值。访谈是填补空白和理解他们的需求、为什么、何时、用什么、如何以及谁的时间。
-
确保提问和记录回答的方式保持一致。音频或屏幕共享录音非常适合回放。至少为审查预留录音时间的两倍。
-
回放录音以确保引用的内容正确且符合上下文。当客户说“这是最好的!”但完全脱离上下文(或讽刺地说)时引用客户的话是错误的。
-
这一点值得重复几次:避免在面试过程中引入个人偏见。强调特定的特征或任务是可以的,但要让客户发言。不要推动他们走向一个方向或另一个方向。相反,让他们感到轻松,以便解决复杂问题并给出真诚的反馈。如果面试官对解决方案投入太多,并想要为其辩护,受访者会感觉到这一点,并且不会完全分享。
-
避免偏见的一种方法是与一个对结果不感兴趣的研究员进行访谈。如果你是设计师或产品经理,让他们进行访谈,做笔记,并在幕后提供帮助。这是我们能够分享的最有价值的建议之一。
-
成为一名积极的倾听者。使用诸如“我理解”和“明白了”这样的口头中性插入语,并重复他们所说的话。使用非言语提示(点头和眼神交流)来表明你在倾听。
记录和记录发现
记录详细的笔记或转录访谈以进行分析。生成式AI工具是转录的绝佳资源。一些网络会议工具具有内置功能;打开它或事后进行转录。这可以使标记对话的关键要素变得容易。在访谈期间记录任何模式、趋势或显著的见解。一旦你有了这些注释数据,就可以进行分析了。一些工具允许带有时间戳的笔记。这是一种记录事件以便稍后返回的好方法。即使你一个人,没有时间做笔记,也可以键入占位符(如**)并返回录音以捕捉这个见解。笔记越多越好。稍后忽略与主题无关的内容。与跨学科团队合作评估可能对你来说不相关但对组织其他部分来说在范围内的项目。最好是捕捉并丢弃,而不是没有捕捉到然后在事后意识到可能有些信息是有用的。
数据分析
分析收集到的定量(针对封闭或人口统计问题)和定性(针对开放式问题)结果。将它们结合起来形成更稳健的结果。例如,如果四分之三的新手用户没有想到要求提供运输信息,而所有四位专家用户都明确表示需要运输信息?因为这个讨论线被探索,揭示了专家知道公司运输速度慢,这过去一直是个问题,而新手用户期待亚马逊式的运输,没有想过也没有足够的经验知道这不是事实。只有通过将数据按新手/专家角色进行细分,我们才能认识到如何解决这个问题:
-
预计至少需要三倍的访谈时间来记录发现(2倍)然后进行分析(1倍)。如果花了整整一周时间收集了10小时的访谈,那么接下来的一周将用于完成这项分析。
-
即使是小的结果(由一两个客户发现)也可能很有价值,所以务必捕捉所有数据。在第4章,评分故事中,我们解释了如何根据可能受到影响客户的数量来优先排序。即使只有一两个客户报告了某些情况,这并不意味着只有少数人将从中受益。深刻的见解可能来自一个人;你必须认识到它。
报告研究结果
以清晰和有序的方式展示研究结果。使用用户需求评分方法(第4章,评分故事)来优先排序结果。按照从最有价值到最无价值的结果顺序进行审查。这样,当讨论某个项目时,与会者的注意力就会集中在最有价值的反馈上:
-
包含参与者的引言和关键见解以支持结论。务必正确引用,并在参与者意图的上下文中引用。
-
将超出范围的发现与适当的团队分享。
-
将错误或增强功能提交到公司跟踪工具中。将它们分配给适当的人员以解决问题。
-
包含参与该过程的同事的反馈。
-
包含研究中出现的问题或小插曲,以便自己和团队进行后续跟进。
-
与团队进行回顾,学习并记录下次如何做得不同和更好。
面试流程总结
进行良好的面试是一项技能。它需要练习、专业知识和良好的人际交往技巧。特别是对于新晋面试官,在第一次正式面试之前进行几轮额外的练习。请一位设计研究员参与试点访谈并给出反馈。做好这件事既是一门艺术也是一门科学。Nielsen Norman Group的文章提供了一些有用的内容。他们甚至提供关于如何进行成功的用户访谈的课程。
文章:用户访谈 (https://www.nngroup.com/articles/user-interviews/)
此外,一旦我们运行起ChatGPT解决方案,就重新审视这个过程,对使用过该解决方案以及没有使用或故意不使用基于ChatGPT的解决方案的人进行访谈。这适用于任何实施,而不仅仅是对话解决方案。一旦解决方案可用,将会有不同的主题可以探索。
问卷调查和访谈只是两种方法。我们鼓励使用正确的方法来揭示用户的态度和期望。稍后,你可能需要进行用户测试或启发式评估。关于这些方法,在第第10章,监控和评估中有更多介绍。然而,在这个研究阶段,我们有一些工作背景。因此,我们涵盖了两种直接与客户互动的方法,主要关注他们的态度,并产生主要是定性结果。现在,我们将转向基于点击流分析的行为和态度研究。
开始进行对话分析
我们想要涵盖的最后一类研究是会话分析。我们目前还没有ChatGPT解决方案,那我怎么能有所分析呢?也许没有,但让我们考虑其他来源。是否存在现有的故障报告或服务请求?也许有真人聊天或电话渠道。甚至审查论坛中的社区帖子也是一个很好的数据来源。也许现有的会话AI没有包含ChatGPT集成。这是一个现有数据的绝佳来源。会话分析对于后端解决方案甚至推荐系统来说都是有价值的。在其他地方使用其他研究和需求分析工具。
在一家公司,我们记录了支持电话的数量和类型。不出所料,密码重置请求和账户激活被单独列出。我们精确地知道这些服务的电话百分比,然后可以计算出改进该任务流程后的节省。例如,每个人都通过网页表单进行过密码重置。在提供一些额外的个人信息后,这些天,还需要提供一个电话号码来发送双因素认证码,然后发送一封包含重置密码链接的电子邮件。这并不总是这样。通过电话进行这项操作与通过网页表单相比,很容易计算出成本节省。按百分比分解的服务类型列表是用于用例分析的有价值工具,可以确定ChatGPT驱动解决方案的可能机会。正如我们将看到的,某些用例更适合生成式AI解决方案。
考虑所有客户互动的来源;可能会有值得调查的数据。是的,一旦运行了带有ChatGPT的会话AI,它就成为了继续关怀和喂养过程的主要学习来源。
审查日志以寻找支持、销售、服务或其他功能中的差距的线索有优点和缺点。
一些优点包括以下内容:
-
这是关于当前形势的准确信息
-
它可能已经被分组和细分,因为现有的人员和团队支持这些互动
-
现有的AI工具可以帮助对数据进行分类和组织(我们将在几分钟内分享HumanFirst的一个例子)
-
对于新进入这个领域的人来说,了解支持痛点是有帮助的
-
它可能是知识的一个很好的来源,可以用来丰富解决方案
也有一些缺点:
-
它并不代表解决方案应该走向何方
-
需要处理的数据量很大
-
这需要花费时间(一些部分可以自动化)
-
它可能会自我选择,并让用户只关注它所能做的,而不是用户来做什么
会话分析是一个有价值的工具。我们将努力解决一些缺点,但我还想要关注如何使用这些数据以及如何使用这个研究工具来确定组织的需求。让我们使用这些方法来推动需求、优先级和改进路线图。
分析最佳的日志应该是那些最接近新ChatGPT解决方案的日志。例如,现有的聊天机器人日志是寻找现有需求和了解当前解决方案失败情况的一个完美地点。次优的选择是带有真人客服的聊天日志。这些日志中包含更多的对话噪音,而且交互并不是针对解决问题(我们称之为闲聊)。分析这些日志需要更多的时间来过滤。其他位置包括社区社交互动或公共支持站点。它们解析起来更具挑战性。有时,支持人员会监控这些站点,将具有挑战性的交互转移到私人渠道,而一些社区成员则回答常见问题。
在这些情况下,需要正确的答案来分析日志。我们称之为基线真实信息:我们知道的事实准确的信息。有时,这很简单。用户得到答案,尝试它,然后报告。有时,你得不到那种反馈。了解空间或与专家合作可以帮助确定当前解决方案的效果如何。需要一个基准来了解改进后的解决方案表现如何。
有自动化工具可以帮助组织和解析日志以及使用信息。例如,humanfirst.ai(https://www.humanfirst.ai/conversational-ai)提供工具来管理数据。这比手动标记和标签要快。它通过示例然后提供类似短语的列表,如图图2.5所示。这适用于许多用例。我们将审查这些过程的手动版本,以便您了解如何标记和组织数据,并了解自动化是否表现良好。

图2.5 – HumanFirst工具将输入分类到集合中的示例
寻求必要的批准以访问和分析材料。有时,聊天日志可能包含个人身份信息(PII),这使得安全团队担心其分发。我们同意。因此,与他们合作屏蔽这些信息,因为我们不需要访问这些PII。在适当的时候,与他们合作防止这些信息最初就被存储。我们已经看到一些合理的解决方案,它们使用自动化系统进行支付、验证或屏蔽敏感数据,因此永远不会有人有机会接触到他们不应该接触的东西。
这里是我的建议,用于衡量和创建一个基准来评估未来的改进,以及一个用于识别当前流程中成为ChatGPT解决方案候选者的差距的工具。
-
收集最近的日志文件,希望是一个聊天日志文件,如前所述。收集至少1,000次交互(一个问题和一个回答算作一次交互)。
-
根据需要屏蔽任何个人身份信息(PII)。
-
将每次交互标记为成功或失败。对交互进行子分类,以了解需要解决的问题。
-
分析结果以寻找改进的机会(或ChatGPT解决方案可能解决现有问题的位置)。
-
对1000次交互进行评分,并使用这个评分(成功率%)作为改进基准。
要完成所有这些,我们希望教授标记交互和分类改进机会的技能。一旦完成,分数应该很容易衡量。该领域的专家,即使是非常技术性的材料,也可以用大约99%的准确性判断每个回合的成功或失败。即使是新手也可以正确判断90%的交互。因此,在专家可用性有限的情况下,请他们帮助解决那10%的差距。随着时间的推移,新手将缩小这10%的差距。让我们从如何标记日志文件开始吧。
标记日志文件应专注于每个交互。
每次来回都是一次单独的交互。如果提出了一个问题,应该得到回答。如果多个问题在得到答案之前被提出(例如,来自社区论坛),我们可以分析每个问题。答案可能涵盖所有问题、部分问题或全部问题。每个答案可能是一次成功或失败,每个都单独计数。
图2.6 是我们将在我们的钻取分析中使用的对话日志的预览。我们将提供用于您数据的电子表格模板。

图2.6 – 分析中的对话日志快照
掩码技巧
有时,团队因为个人身份信息(PII)的原因对纯日志文件感到不舒服。如果这些数据仍然存在于文件中,一个建议是将其进行掩码处理。通常,需要掩码的数据是数值型的,例如社会保险号或信用卡号,或者人们的姓名和电子邮件。一些国家可能对PII有特定的规则,所以了解你的区域是很重要的。
希望你已经有了自动化的脚本用于掩码用户数据。来自IBM、Oracle、ServiceNow和Salesforce等供应商的工具具有数据掩码功能。第三方工具也随时可用。如果没有,我们将帮助您采用简单实用的方法。手动操作,然后将其转换为脚本:
-
数值数据可以通过任何电子表格中的简单查找和替换功能进行替换或掩码。寻找数字的模式(社会保险号、电话、金额)并将它们替换为1。
-
@ 符号可以找到并用作标记,将电子邮件地址替换为电子邮件模式中的通用内容。我建议在文件中保留相同的模式,不要删除现在已掩码的数据。
-
你可能有一些关于特定类型掩码数据的记录,这些数据在自动化或流程改进中可能很有用。例如,客户多久向人工客服提供一次PIN码或安全码?这可以给出问题的规模感,涉及多少工作量,以及是否有机会通过自动化或生成式AI解决方案来解决这个问题。
-
日期可以被操纵。考虑是否必须保持数据的有效性顺序(例如,在绘制进度图时)。
-
考虑是否应该使用随机值来掩盖,这样别人就不能快速逆向工程原始数据。
-
我很少发现掩盖数据会影响理解。
表2.1 展示了一些掩盖的示例。
| 类型 | 原始数据 | 掩盖数据 |
|---|---|---|
| 社会保障号(****SSN) | 123-45-6789 | --6789 |
| 信用卡号码 | 1234-5678-9012-3456 | --****-3456 |
| 姓名 | John Doe | J*** D** |
| 电子邮件地址 | john.doe@company.ai | j*.d@company.ai |
| 电话号码 | (555) 123-4567 | (***) ***-4567 |
| 地址 | 5622 Main St, City, Country | 5622 Main St, C*** |
| IP地址 | 192.168.1.1 | 192.*.. |
| 用户名 | Johndoe123 | J******* |
| 员工ID | EMP-00123 | EMP-***** |
| 出生日期 | 07/15/1975 | 01/01/1980 |
表2.1 – PII的典型掩盖示例
数据掩盖后,考虑外包或使用云分析工具。通过审查和分析日志,我们可以定义成功和失败。
定义成功和失败类别
在电子表格中代表响应(来自人工代理、机器人或社区网站上的某人)的每一行,要么是有帮助的,要么是没有帮助的。我们将交互分类为成功、失败、不可分类或忽略。然而,根据日志分析和可能需要解决的问题类型,更稳健的分类方式具有价值。问题可以被汇总并分配给不同的团队解决。如果同一团队将解决类似的项目或如果收集的数据类型使它们变得不必要,可以考虑合并类别。
考虑用户的意图,它应该与答案相匹配。展示的内容是用户的响应,并且以结构化的形式组织,例如项目符号列表或纯文本。我们可以判断我们是否给出了一个好的答案,一个需要一些改进的答案,或者由于各种原因未能击中目标的答案。这形成了分类系统。
分类目标不仅仅是看到问题所在,因为这种分类可以用来评估不同团队为提高整体质量所需付出的努力。选择类别应该在一个可管理的短时间内完成。日志文件中的时间被用来获得整体质量感,然后确定具体要解决的问题,并且它们还可以为未来的迭代创建新的测试案例。
不要将这些类别视为完美;根据分类的价值和团队将解决的问题,添加或删除一些,并对其他进行注释。一些可能由提示工程师完成,其他由微调团队完成,并且在使用语音界面的情况下,测试到语音团队将致力于改进。此外,确定知识库文章需要改进的地方。以下是详细的类别。
类别 – 成功
问题得到了回答。我们对它完整、正确和及时感到满意。将成功分类比处理任何问题都要成本低得多。以60%的成功率对前1000个响应进行分类将比以95%的成功率进行的后续迭代花费更长的时间。只需继续努力,并根据每个交互的优劣进行判断。
类别 – 合格的成功 > 响应 > 内容
合格的成功,但响应存在一个内容问题。
即使答案正确,但它包含了额外的内容,这可能会引起一些问题。内容可能包括无关或不重要的信息,或者内容过多或过少,这可能与知识库问题有关。例如,在要求地址时包含电话号码是合理的,但如果答案还包含了公司的使命声明,那么它就是不相关的。一个包含与无关内容引用的推荐器就是一个内容问题。这需要在数据和训练中解决。
类别 – 合格的成功 > 响应 > 结构
合格的成功,但系统或代理的响应存在一个结构问题。
结构包括那些结果顺序很重要的情况。答案可能会多次重复步骤,将某些内容放置错误顺序,或包含应该排除的结果。结构类别包含格式问题,例如应该使用表格或编号列表的地方。这可能是内容团队的问题,可以通过提示工程或更复杂的多个模型的使用来解决。
类别 – 合格的成功 > 响应 > 语法
合格的成功,但响应存在一个语法问题。
任何拼写、语法或编辑问题都符合条件。错误可能来自源文档,而格式,如正确使用冒号前不加空格,可能具有挑战性,因为这可能来自基本模型训练。如果它们可以被复制,请在与模型的训练会议中指出它们,并告诉模型这些是错误的以及应该如何修复。编辑团队可能会解决这个问题。
类别 – 合格的成功 > 响应 > 语气和语调
合格的成功,但响应存在一个语气和 语调问题。
这包括正确的答案,但沟通应该采用更合适的语调。冗长的答案可以归类在这里。如果语气与上下文不一致(例如,在谈论悲伤的主题时感到高兴或处理轻松话题时过于严肃),请将其包括在内。语言学和设计应通过提示工程(第7章,提示工程)来解决这个问题。审查文章以了解它们可能是如何编写的。文档至关重要,并在第6章,收集数据 – 内容 为王中进行了讨论。
类别 – 合格的成功 > 响应 > 临时处理
合格的成功,响应被临时处理。
这是一个专门用于处理答案的独特部分,其中计划在未来提供更好的答案。它允许您跟踪即将到来的事物。例如,助理将在Q3版本中处理实时天气报告。在这种情况下,在天气API可用之前暂时链接到天气服务是一种临时处理用例的方法。这是产品经理跟踪和优先处理这些问题的。
类别 – 失败 > 语句 > 不匹配
失败:输入与错误答案不匹配。
问题与答案之间存在不匹配。这就是我们问了一个问题(美洲豹有多快?),而AI对错误的问题提供了答案。用户是指动物还是汽车品牌?或者它没有给出明确的答案,给出了适当的指示,但对于不完整的问题。例如,它回答了如何重启手机的问题,但没有确认手机的型号,就给出了错误的指示。这些都是AI团队需要解决的关键重要问题。
类别 – 失败 > 语句 > 未知 > 当前
失败:输入未识别,但我们有一个当前的响应。
这意味着我们(人类或AI)没有理解这个问题,但如果以另一种方式提问,我们本可以理解。有时,这可能是由于模型没有针对这些额外细节进行微调(在第8章,微调)时的自定义语言或公司特定的缩写词。如果这些通常未识别,请在此处记录;如果它针对特定的自定义单词或短语,请使用自定义类别。在生成式AI的前端,这种情况将很少见。AI是取悦人类的,所以它会尝试提供答案。但如果ChatGPT在另一个工具或流程中,输出可能会导致下游系统、响应或推荐系统失败。这可能是内容或AI问题。
类别 – 失败 > 语句 > 未知 > 未来发展
失败:输入未识别;我们应在未来支持此功能。
这些是增强或新功能的基本内容。如前所述,ChatGPT实例将想要回答任何问题,所以您的系统可能会返回不匹配的答案。根据数据,如果所有这些都被标记为不匹配,这是可以接受的。如果您正在运行传统的聊天解决方案或针对人类代理进行记录,请在系统或人类无法回答因为它不受支持时使用此功能。通常,这些条目是待办事项,由产品经理处理。此待办事项可以审查、评分和优先排序。这通常作为冲刺计划的一部分定期进行。我们将在第4章,评分故事中介绍这些条目的流程。
类别 – 失败 > 语句 > 未知 > 客户独特 – 未来
失败:输入未识别,但未来应由另一团队处理。
与未来意图类似,如果这是另一个团队或姐妹组织(或者当多个ChatGPT实例合并在一起,而这个实例不支持这个意图,但另一个应该支持)的事情,请在这里记录问题。另一个团队的产品经理应该处理这些新要求。
类别 – 失败 > 话语 > 未识别(遗漏)实体
失败:需要识别的输入。需要一个自定义或公司特定的词来理解。
我们仅将此类问题单独列出,因为这通常是一个更直接的问题,更容易解决。通过微调或使用检索增强生成(RAG),我们将在第6章“收集数据 – 内容为王”中解释,可以解决这个问题,但首先,尝试提示工程。如果公司有同义词库,请充分利用它。在Oracle,有许多针对命名产品的缩写和快捷方式(RDBMS、Oracle DB、Oracle Server Enterprise Edition、DB12、Oracle Server、Oracle SQL Database、OraDB以及其他名称都代表Oracle数据库)。系统应理解公司和文化特有的术语。这也是一个普遍的提醒。人类支持代理可能知道很多这方面的信息。AI也需要训练来学习这些材料。AI团队应该解决这个培训问题;团队中的作家应该有数据。
类别 – 失败 > 话语 > 假阳性
失败:误解(一个假阳性)。
答案是错误的,但有人或某物认为它是正确的。这对于人类答案也很重要。人类往往过于自信,因此识别他们的真相是否是真实真相至关重要。这有助于更好地理解解决方案的质量。这与不匹配之间有一条细微的界限。这可能是过于繁琐的,所以合并这两个分类是可以的。AI团队通常处理这些问题。我们包括这一点是为了完整性。
类别 – 失败 > 话语 > 不相关
失败:输入未被识别且不相关。
如果我们在实时日志中有客户响应,例如“你在吗?”或“你好???”,它们应该被编目,但从模型或用例的角度来看,它们主要是无关紧要的。我们在实时代理聊天日志中看到它们。代理可能同时处理四到五个聊天;因此,延迟是不可避免的。对话式的ChatGPT代理不会被数千个其他同时进行的交互所打扰。混乱或垃圾信息也将被放在这里。
类别 – 失败 > 交互
失败:失败是由于提供的用户体验类型或响应中的结构性问题。
答案可能是正确的内容,但可能需要UI组件根据产品的版本过滤选择。在这种情况下,该渠道不支持下拉菜单来做出选择。或者,在答案中渲染了一个按钮以启动一个过程(例如上传文件),但用户点击按钮时没有任何反应。我最近看到了这种情况,问题是特定于浏览器的。解决方案需要理解使用上下文。你需要知道它在一个具有交互元素的强大渠道上工作。如果相同的生成解决方案在不太强大的渠道上使用,对话式AI必须适应渠道的限制。工程师需要推动提示工程和开发工作。或者,可以为每个渠道提供独特的说明。说明是一种提示工程的形式,在第7章,“提示工程”中进行了讨论。
类别 – 失败 > 响应 > 内容
失败:响应内容错误,或者内容正确但仍有不准确或不正确的细节。
有时候,这些需要时间来确定。我们是否返回了正确的文档或代理响应,但缺少一些额外的上下文来提供正确的细节?或者可能是文档本身是准确的,但事实是错误的。这与“不匹配”不同,其中文档可能是有效的,但匹配到了错误的问题。在这里,我们需要纠正我们写下的内容。内容团队应该更新文档。
类别 – 失败,无互动
失败:没有响应。
这在社交和社区帖子中更为常见,而在始终尝试提供答案的对话式AI中则较少见。对于某些系统,没有响应可能被分类为错误,但我们将其包括在内以保持完整性。产品经理可以决定是否应该考虑这些。
类别 – 失败 > 系统错误 > (如有需要,进一步分类)
失败:由于超时、错误消息、无限循环或无响应导致的系统错误。
通常,这是在与可能宕机的聊天解决方案或集成工作时发现的。当然,我们绝不想让我们的客户看到这些。它们并不常见,但它们在发生时值得记录和修复。一个设计良好的用户界面可能会抑制一些这些错误,因此扫描系统日志以查找错误。例如,如果知识库连接已断开,而ChatGPT解决方案忽略了它已断开的事实,那么问题的答案可能会错误,并且由于系统错误,这个问题在日志中可能不会明显。监控资源或设置警报,以便在检测到服务宕机时通知适当的管理员。开发和运维应处理这些故障。
类别 – 不可分类
有时,我们不知道客户试图做什么,而且很可能,他们在对话中只有很少的交互,我们无法拼凑出足够的信息来推断他们的目标。无法分类的表述可能不会得到处理。这只会在新分析师中频繁发生。提供有经验的专家支持,这些专家在分类此类数据方面有更多经验。
类别 – 忽略
这可能是闲聊、测试数据或垃圾交互。如果没有其他类别适合,而且你不想处理这些,请将其放入这个垃圾场以忽略。我发现,在企业日志中,这种情况非常罕见(不到1%的交互)。
我们正在寻找分类的组别,以便我们能够继续改进模型。其中一些可能直接作为ER或增强措施回到现有解决方案中,但也构成了对新解决方案所需内容的基础。如果新的ChatGPT解决方案取代或补充了这些工具,请使用这些基准来了解未来的迭代是否更好。将这些内容汇总为三个类别(成功、合格成功和失败)可以制作出优秀的图表,用于跟踪进度。
开发分析类别
在这个阶段,我们专注于了解哪些是有效的,哪些是无效的。我们使用这些信息来理解现有的内容来源,并将它们输入到我们的对话AI流程中。你可能在构建生成式解决方案的同时修复现有的系统。类别可能对这项工作有价值。当我们有生成式AI日志时,我们可以使用相同的过程,也许使用不同的类别,来分析我们的表现。通过将交互压缩到围绕特定问题的组中,我们可以确定有多少客户受到问题的影响。我们可以根据对严重性的理解,看到我们问题的优先级(以及解决方案)。我们将在第4章“评分故事”中教授如何评分这些发现,以创建和维护问题清单。
一旦我们部署了ChatGPT解决方案,我们可以在其使用上重新运行此分析,并使用结果来推动进一步的改进。
高级技巧
使用对数据进行有意义的分类。这是一个权衡。分类越多,每个分类所需的时间就越长。分类越少,就需要更多的解释和细节来理解问题。
“衡量过的东西才能管理”——彼得·德鲁克(质量大师和世界著名管理顾问)。通过创建衡量标准,我们可以传达质量并提高它。随着时间的推移,改进变得越来越复杂。从67%到97%的成功率是一回事;而从97%到99%的成功率则要困难得多。
让我们看看我们如何在实践中做到这一点。
尝试对话分析
我已经在GitHub上放置了两个文件以供探索。第一个是一个针对人力资源工具的案例研究对话分析。可以想象一下公司人力资源部门会收到哪些问题。我的工资什么时候发放?我还有多少假期?我需要更改我的姓氏。我可以在公司商店享受折扣吗?在文件中,探索我们对数百个示例的分类理由,看看我们如何总结和汇总数据。以此为基础进行数据分析。
GitHub: 分析日志文件 (https://github.com/PacktPublishing/UX-for-Enterprise-ChatGPT-Solutions/blob/main/Chapter2-ConversationalLogAnalysis-2024.xlsb)
这就带我们来到了第二个文件:
GitHub: 空白日志分析文件 (https://github.com/PacktPublishing/UX-for-Enterprise-ChatGPT-Solutions/blob/main/Chapter2-ConversationalLogAnalysis-2024-empty.xlsx)
这是一个空白的案例研究文件,用于你的数据(来自我们之前讨论的其中一个来源),因此进行数据分析。*使用自动化此过程的工具不会给你带来对用户体验的良好感觉。进行一些这种手动分析迫使从顾客的角度思考他们的体验,并着眼于改进。文件包含各种电子表格技巧,如数据透视表,这些技巧可能难以维护、分析和生成摘要。网上有关于这些主题的视频和文档,可以用来开始使用数据透视表。我提供这些文件以展示使用标准工具可以实现的可能性。请使用它们开始或从其他工具中找到类似的支持。
探索案例研究中的示例
来自GitHub文件的示例帮助我们形成对如何分类交互的共同理解。认识到对被分类材料的专长对于做好这项工作至关重要。一个对分类材料完全陌生的人可能只能正确标注80%的回复。如果你是专家,这个数字可以上升到99%。
我从表2.2中的GitHub文件中选择示例作为成功示例,从表2.3中选择失败示例,因为它们应该对在大企业工作过的人都很熟悉。这是一个对话式AI日志中预期的文件。每个提示都会有一个响应。一次性提出多个问题可能不会得到所有答案,可能会发生系统错误,并且由于模型的原因,某些实体可能没有经过训练,因此会缺失。这种类型的日志文件将使我们接触到大多数解释的分类。其他文件,如社交媒体帖子,不会有这种多样性。
| 行号 | 用户提示 | 失败 | 原因 |
|---|---|---|---|
| 514 | 我找不到欺凌政策,该政策解释了我要采取哪些步骤来提出欺凌申诉(原话如此) | Qualified Success > Response > Content | 响应正确,但额外的内容和直接行动会比仅仅链接到政策更好。这是一个关键但不太常见的交互。它需要立即关注。 |
| 1113 | 2024年假日 | Qualified Success > Response > Grammar | 答案书写不佳,并要求他们说出“预订缺勤”以便系统知道该做什么,而不会这么做。 |
| 1546 | 我如何在HR Cloud上更改职位名称 | Qualified Success > Response > Structure | 用户在允许的情况下可以更改他们的自由标题。有很多链接和选项,响应的结构可以改进。 |
| 1588 | 提交服务请求 | Success | 开始了SR流程。 |
| * 在电子表格中按行号排序以查看正确的对话顺序。 |
表2.2 – 成功交互的示例和解释
按用户ID、日期和时间排序电子表格,以查看用户的完整线程。这样可以按顺序查看整个对话,而无需其他交互介入。要按原始顺序排序文件,请按行号排序。
日志文件遵循不同的格式。目前没有标准。关键信息是用户说了什么,系统以日期、时间和用户ID进行响应。像我们那样扩展标签信息。注意我在电子表格的菜单和提示标签页中构建分类菜单。然后,当我们把这一列包含在日志表中时,我们可以快速且可重复地从分类列表中进行选择。我们还根据用户的意图进一步对数据进行分类。由于这些意图大致分为不同的团队,我们可以与相应的团队分享与缺勤、HR细节、福利等相关的事项。
表 2.3 只是我们所看到的提示类型的一个样本。探索 GitHub 电子表格中的示例以获取更多内容。这是一项具有挑战性的科学。即使在审查这些数据时,我也看到了一个更适合重新分类话语的地方。你越成为专家,分类就越容易。分类越直接,就越能更好地判断问题。
| 行号 | 用户提示 | 失败 | 原因 |
|---|---|---|---|
| 141 | 平衡(sic) | 失败 > 交互 | 他们试图查找他们的假期余额。他们输入中的错误阻止了成功。返回了错误的响应。 |
| 219 | 动作晋升请求的服务水平是什么 | 失败 > 系统错误 > 无响应 | 系统没有响应。 |
| 604 | 加薪(sic)未显示在 HR Cloud 上 | 失败 > 话语 > 不匹配 | 应该查看当前的工资条详情以获取加薪。也可以考虑是否应该比较新旧工资以揭示是否有变化。 |
| 750 | 车费报销 | 失败 > 交互 | 应该开始一个费用,或者至少检查是否有正在进行的现有索赔。 |
| 915 | 如果我需要请病假,我该怎么办 | 失败 > 话语 > 不匹配 | 缺失的回答可能不正确。他们需要帮助才能实际请病假。 |
| 1341 | 我应该把我的 P45 发往何处 | 失败 > 话语 > 不匹配 | P45 是一份英国表格,显示本年度已缴纳的税款。我们返回了最终工资结果,这不仅不太可能,如果他们仍在公司工作,还会令人不安。 |
| 2578 | 我想要晋升 | 失败 > 响应 > 内容 | 系统响应用户没有权限。这很有趣,因为可能用户不是经理,或者我们需要更多的上下文。 |
| 3851 | 出生日期 | 失败 > 话语 > 识别失败 > 当前 | 只有通过查看线程,我们才知道他们实际上想要查看团队成员的出生日期,而不是编辑或确认他们自己的。我们没有识别这一点。 |
表 2.3 – 失败交互的示例和解释
电子表格显示的不仅仅是日志数据、菜单和提示标签。探索其他总结结果的标签。表 2.4 解释了其他标签:
| Tab | 目的 |
|---|---|
| 成功摘要 | 绘制和总结正在分析交互的整体质量。有助于比较结果以绘制改进趋势。 |
| 日志数据 | 这是原始数据标签。生成了一些额外的摘要和分析列。我们建议至少有 1,000 个交互。 |
| 话语计数 vs 成功 | 这根据提示长度衡量交互的质量。LLMs 从较长的提示中受益。在传统的对话式 AI 中,较短的提示更准确。在这个例子中,返回了最高成功率的是三到四个单词。 |
| 每日用户 | 这对于观察较长时间段内的趋势是有用的。粘性是有价值的。人们越来越多地返回并使用这些技能。使用每日图表标记触发使用增加的事件,例如发薪日、合并或产品发布。 |
| 重复用户 | 如果相同的用户返回,这尤其有趣。这意味着他们正在获得价值,并继续看到价值。这取决于日志在一段时间内支持唯一标识符。具有认证用户的系统应始终有此标识符。这可以跟踪重复使用趋势。这个指标应该正在上升。 |
| 唯一用户 | 这涉及到营销和增长。消息是否传开了?是否有新的人参与?在此标记公告或电子邮件营销活动的日期以寻找相关性。 |
| 意图分类 | 这非常具体于数据。在示例的情况下,这些是日志覆盖的重要任务和区域。这是一张有价值的图表,可以帮助我们决定如何投资改进。使用使用频率最高的意图的失败率作为重要指标。对于常用意图的高失败率值得调查。 |
| 系统错误 | 这也特定于服务。希望没有错误。如果发生错误,将它们编目,并让正确的团队解决它们。 |
| 对话式按钮 | 这与数据相关。对话式AI有一系列可能根据流程出现的按钮。当它们出现时,用户是否点击了它们?哪些按钮没有被使用?这在移除没有价值的按钮和为有价值的按钮创建良好标签方面很有帮助。 |
| 菜单和提示 | 用于日志数据的下拉菜单。还包括一些分析建议和注释。下拉菜单可以根据分析的数据类型进行定制和缩减。 |
表2.4 – 对话日志分析电子表格中的选项卡
我们现在将专注于分组问题来管理这个问题的大量涌入。在这种情况下,我们假设有一个对话日志来解释这个过程。然而,如果日志来自论坛、人工代理日志或服务请求线程,可能需要更多时间或精力来生成错误。 |
从一系列问题生成增强功能和错误
因此,按特定问题分组通常是直接了当的,但需要一些时间。例如,在案例研究中,我们根据我们期望解决该问题线的功能和内容来标记用户交互。像“职业中断”和“休假”这样的表述应该分组形成一个要解决的问题。如果关于银行余额的问题中关于风格和语调的五个条目过于负面,那么最好有一个记录五个支持例子的一个问题。我们分组是为了了解特定主题的量级。这也很有帮助,因为没有人愿意看到1000次交互中的错误;可能只有80个问题值得报告,每个问题是一组2到50个类似的交互。
例如,在一次日志分析中,我们围绕系统如何处理直接存款(将工资直接存入银行账户的自动化)有19次交互。系统支持这个答案,但模型没有识别出直接存款交互中的间接词汇(纸质支票、储蓄、新账户、银行存款)。因此,一个针对直接存款问题的标签使我们能够收集所有相关示例并形成一个语料库来训练AI。
评分结果
当部署新解决方案时,有一个基准进行比较是好的。评分相当直接。取测量的总交互次数,可能有一些无法分类的,然后总结成功和失败。从数据中创建一个百分比。使用这个作为基准,并在每个重要迭代上对ChatGPT解决方案进行相同的分析。我们还将探索其他工具来绘制你的成功图表。但在所有情况下,始终衡量性能。现在,随着ChatGPT解决方案的成熟,有一个基准要超越。评分结果,并在每个里程碑进行比较。
目的是在组织内部分享进度,展示每个助手如何改进。它可以比较不同的助手或同一助手在不同渠道上的表现。使用这些信息来帮助实现质量目标。图2.7显示了三个助手的实际数据。最小可行产品(MVP)线是进行实时客户测试的地方,高质量条形图,在97%,是我们希望达到的地方。产品C的第三个版本当时正在开发中,因此有虚线。产品B晚些时候才进入市场,所以它显示了产品A从第四个版本开始的第一和第二次迭代。迭代不一定意味着发布。如果质量下降,就像产品A那样,不要发布那个版本。

图2.7 – 比较迭代间的助手评分
结果
通过一个简单的电子表格总结结果,可以回答一系列与质量相关的问题:
-
当前解决方案的成功和失败率是多少?
-
根据最高到最低的用户需求评分识别和排序问题
-
记录每个问题的交互次数
-
从外部事件或触发器中图表使用量的增长
-
识别和计算粘性 - 重复用户的可能性
识别和分割问题以确定要完成的工作:
-
在当前解决方案的范围内(应该工作)
-
当前解决方案中缺少的(应该添加)
-
这与当前解决方案无关(应该有其他解决方案来解决)
-
不相关(乱码,超出范围)
这项工作将形成一个设计愿景,说明ChatGPT解决方案应该如何工作,它需要回答的答案类型的目标,甚至如何建立适当的风格和语调。这种分析在数字和数据之外提供了丰富的学习资源。
摘要
因此,通过任何方法,我们都可以开始理解用户需求。调查和访谈过程相关但非常不同。结合日志分析,这是一个良好的开始。你可能会意识到,我们所有人最终都必须意识到,工作比时间多。那么,团队如何决定先做什么呢?显然,先做最重要的事情似乎是正确的,但这种情况并不总是如此。而且,有一些数学原理可以帮助你相信这一点。在第4章的评分故事中,我们将探讨如何优先考虑研究和客户需求(用户需求)。这种方法适用于任何活动列表、项目、任务、升级、补丁或新功能。我怀疑为了构建一个有效的ChatGPT解决方案,你可能会专注于创建或编辑要包含在模型中的内容。你首先应该做什么?这就是用户需求评分和加权最短作业优先(WSJF),一种敏捷方法,派上用场的地方。我们需要将收集到的所有这些宝贵信息用于良好。我们专注于ChatGPT,但它并不总是能提供好的解决方案。当我们使用它时,它将在哪些用途中发挥作用?在探索评分之前,我们还需要确定企业ChatGPT解决方案的最佳用例。
在本章中,我们试图建立关于已经做了什么以及我们可以从客户那里学到什么来做什么的学习。在接下来的章节中,我们将专注于完成这些工作。为了使您作为用户体验或产品领导者的角色更加明确,我想再次引用彼得·德鲁克的话:“管理是正确地做事;领导是做正确的事。”因此,现在是时候利用来自内部和外部的研究和反馈来确定我们解决方案可以识别的使用案例了。
参考文献
![]() |
本章中的链接、书籍推荐和GitHub文件已发布在参考页面上。网页:第2章参考文献 (https://uxdforai.com/references#C2)。 |
|---|
第三章:确定ChatGPT的最佳用例
用例是对讨论中的系统与其外部参与者之间可能交互序列的描述,与特定目标相关。
- Alistair Cockburn
关于编写用例的解释有很多。我怀疑我们每个人都创建过一些我们称之为用例的东西。我们首先将明确一个稳健的定义,以便从相同的角度理解。然后,我们可以进入用例中的示例,寻找将生成式AI融入其中的机会,同时考虑ChatGPT集成可能具有挑战性或可能出现问题的领域。到本章结束时,你将具备使用第2章,“进行有效的用户研究”文档中的用例,并为第4章,“评分故事”中的用例优先级做好准备。用例开发专家将从学习如何将ChatGPT应用于用例流程中受益。我鼓励所有读者了解用例开发,因为它不仅对设计师有用!
在本章中,我们将涵盖以下主题:
-
理解用例基础知识
-
将大型语言模型(LLMs)与用户目标对齐
-
避免ChatGPT的限制、偏见和不适当的响应
理解用例基础知识
这五个基本用例组件多年来一直保持一致:
-
主要参与者:谁将使用这个案例?
-
前提条件:为了使用此用例,必须发生什么?
-
触发器:为什么这个用例现在发生?
-
路径:过程中的步骤以及系统对这些步骤的响应。
-
扩展:应考虑并处理主要路径的例外和变体。
如何选择合适的用例
我在第2章,“进行有效的用户研究”中建议Alistair Cockburn的书作为用例的最佳入门书籍,因为他解释了如何有效地编写它们。在选择合适的用例时,我们也应该保持敏感。有可能编写一个结构良好的用例,但它并不代表重大的商业价值。Cockburn的书涵盖了用例的正确构建并提供示例。考虑打印出第1章,“认识到ChatGPT设计力量的重要性”中的一页摘要。它提供了许多有用的建议,有助于编写准确的使用案例。
书籍:编写有效的用例 (https://amzn.to/3YnbGSp)
书籍(PDF):《编写有效的用例》Writing Effective Use Cases (https://www-public.imtbs-tsp.eu/~gibson/Teaching/Teaching-ReadingMaterial/Cockburn00.pdf)
用例或用户故事
有些人听说过用户故事,与用例的重叠性很大。用户故事通常更通用,被视为一种叙事。正如我们在第二章中解释的,进行有效的用户研究,我们通过故事板卡通讲述一个真实的故事。同时,用例更多地描述了交互。讲故事可以设定氛围并整合上下文和参与者,而用例则提前定义这些内容。从用例编写故事更容易,因为已知应该发生什么以及事件的顺序。从用户故事到用例的转换更复杂,因为需要处理每个步骤的细节。这里的重点是使用用例方法来提供细节,以估计和理解交互的价值以及解决该问题所需的工程工作量。要求ChatGPT从一个用例中创建故事,比从故事中创建用例要容易得多。
我们可以创建用例并使用该过程来识别适合ChatGPT的步骤。我们还可以了解何时不应用ChatGPT。
这里有一个逐步指南:
-
理解如何编写引人入胜的用例。
-
识别用例和任何需要的用户故事。
-
将用例分解为步骤。
-
识别那些步骤中ChatGPT可以提供支持的地方(以及它不适合的地方)。
-
与开发团队合作,探索ChatGPT在解决问题具体步骤中的价值。优先考虑价值最高、成本最低的用例(关于这一点,下一章将详细介绍)。
-
忽略不适合ChatGPT的问题。
我们将使用一个示例用例来探索如何将ChatGPT纳入流程。首先,我们可以回顾ChatGPT在用例中可能如何被应用。
使用ChatGPT建立基线
考虑到客户所做的所有活动,甚至公司内部员工的活动,这可以累积成许多现有的用例。其中一些可以通过整合生成式解决方案(如ChatGPT)进行改进。相反,当ChatGPT的价值有限或没有价值时,应避免应用它。
在整本书中,我们介绍了理解ChatGPT擅长什么以及不擅长的不同方法。因为我们预计解决方案将合并企业数据与一个或多个生成模型(以及在第第六章中讨论的一些特定模型,这些模型在特定任务上表现更好),了解它能做什么以及不能做什么是很好的。
在此背景下,可能会有聊天交互、推荐用户界面、企业工作流,甚至后端解决方案,但ChatGPT可能只应用了部分问题。ChatGPT被问及其擅长什么,并在表3.1中提供了结果。
| 擅长 | 不擅长 |
|---|
|
-
通过 逻辑流程 进行指导
-
将复杂程序 分解为步骤
-
提供解释 和示例
-
根据 用户查询 调整响应
-
针对 特定需求 定制指导
-
构建和 解释工作流程
-
协助 故障排除 和任务
-
提供 个性化帮助
|
-
实时交互
-
控制物理设备
-
高度专业化的知识
-
快速变化的信息
-
敏感或争议性话题
-
细腻的情感或人际动态
-
提供专业建议或判断
|
表3.1 – ChatGPT对其能力的看法
本书涵盖了表3.1中的一些这些项目。对于敏感、情感或关系建议等具有挑战性的领域,仅简要提及。大多数企业解决方案将需要通过使用可适应以支持企业知识的模型来处理专业知识的问题。我们将在后续章节中介绍这一点。即使ChatGPT也未能解释,在某个流程步骤中应用ChatGPT可能会获得更多价值,将其优化和调整以执行序列中的特定任务。ChatGPT不必做所有事情(正如我们所说,不要大水漫灌)。这就是创建用例将流程分解为一系列步骤的美丽之处。比较步骤细节与ChatGPT的能力更容易。
让我们举一个例子。客户通常为各种产品部署补丁或固件更新。手机会定期更新,企业软件也会打补丁,甚至在云中也是如此。在云中,消费者很少将其视为补丁,因为补丁通常在幕后进行,通常不会导致关键系统中断。有人在为我们解决这个问题。对于个人设备,如手机、电视,甚至烤面包机,用户管理这个过程:下载软件更新,安排稍后进行(可能是在睡觉时),或选择何时以及更新什么。对于企业来说,在部署之前可能需要测试数十个补丁和更新。这是更新手机的“大哥大”版本。
这里是一个简化企业系统的用例示例,该系统由步骤、意图和系统响应(由于定制、集成、法律或区域要求,补丁流程可能更加复杂)组成:
-
主要操作者:
- 系统管理员、补丁管理员或由运维人员
-
先决条件:
-
用户已登录系统
-
软件补丁可用
-
-
触发因素:
- 推荐的可用补丁详细信息通过电子邮件发送给操作者
下一个部分将通过对ChatGPT可以应用的地方进行识别来扩展这个基本的修补用例。这是一个头脑风暴:在用例中寻找存在的差距,并确定ChatGPT在每一步可以为客户做什么。
ChatGPT实例的示例用途——软件修补
这个用例是针对传统的图形用户界面的。即使在单个用例中,也可能有多个生成增强的应用来适应用户体验(UX)。我们考虑这样的箴言:“最好的用户界面是没有用户界面”。虽然一个总的目标可能是自动化一切,但在这个例子中,我们假设一个复杂的场景,其中需要人工交互。但沿着这个旅程的步骤自动化是可能的。
我们可以扩展一个企业级软件修补示例的细节。大型企业经常管理他们的软件部署。即使将这项工作外包给云服务提供商,也只是将问题转移给了云服务提供商。对于这些供应商来说,问题仍然是相同的。这个软件比我们的个人更新复杂100倍,包含1,000到10,000个可能的修补程序,有数百个该软件的实例在不同的部门和多个开发、测试和预发布服务器上运行。精确地知道修补了什么以及这可能会如何影响计算机变得至关重要。这是一个复杂且耗时的过程。这也是为什么我们在新闻中看到这么多安全漏洞的部分原因。这不是因为软件不安全,而是因为流程复杂,充满了可能出错的风险。在大多数情况下,供应商已经提供了修补程序来修复安全问题,有时甚至是在几年前。公司由于修补的复杂性和有时涉及关闭软件的风险而不愿进行修补,这意味着他们的系统是脆弱的。
这里是这个复杂过程的简化版本,以帮助我们处理这个用例。注意表3.2中的每个步骤是如何转化为系统需要解决的问题或经验的。UI将从这个用例中设计,但我们不是在用例中定义UI。每个步骤的高级需求都有文档记录。确定确切的信息、布局和细节以与UI设计进行修补的时机更好。有一个专门的流程和细节仅用于修补详情视图;主要用例不涵盖这一点。对于在步骤3中引入的计划概念也是如此。计划是我们可以同时测试和部署的一组修补程序。计划不仅包括名称。一个单独的用例可以帮助定义计划(谁参与过、日期、内容、状态和部署细节)的元数据。审查用例中的步骤以了解我们可能在每个阶段需要处理的交互类型。这个用例是关于查看修补建议,决定哪些修补程序包含在计划中,然后安排和部署这些修补程序。根据我们对ChatGPT擅长什么的理解,我们可以思考它如何在这些步骤中帮助我们。
表格的最后一列标识了ChatGPT的机会。对于那些更熟悉用例的人来说,有一些扩展用例,它们处理的是每个步骤中不典型但预期出现的情况。我已经将用例的扩展移除并放置在表3.3中,以便更容易阅读。要知道,有许多方式来展示用例。这只是我们为了方便使用的一种方式。
| 步骤 | 描述 | 系统责任 | ChatGPT机会 |
|---|---|---|---|
| 1 | 显示推荐修补程序。 | 显示为系统推荐的修补程序。 | 从现有修补程序和已知错误中提出更好的建议。 |
| 2 | 用户选择一个或多个建议。 | 显示有关修补程序和可用选项的详细信息。 | 推荐一组协同工作的修补程序集合。 |
| 3 | 用户审查并选择要添加到计划中的建议。 | 添加修补程序。任务完成情况得到通知。计划更新。 | |
| 4 | 用户重复审查过程,直到所有修补程序决策完成。 | 显示详细信息、更新和计划中的修补程序数量。 | |
| 5 | 用户启动计划。 | 将用户带到计划。 | |
| 6 | 用户审查计划,检查冲突和问题。 | 显示计划内容和状态。运行冲突检查。 | 预测修补计划的结果,以及缺失或冲突修补程序的影响。 |
| 7 | 用户在测试实例上部署计划。 | 系统允许选择测试实例。 | |
| 8 | 运行测试实例的评估。 | (本例中不涉及结果和反馈。) | 从现有案例生成测试。识别测试中的差距。 |
| 9 | 根据测试结果调整和评估计划。 | (使用新计划循环通过之前的步骤并跟踪计划的版本。) | |
| 10 | 安排在生产实例上部署。 | 安排并通知用户成功或失败。 | 提出部署建议。 |
| 11 | 已部署补丁;系统在新补丁状态下可用。 | 生成测试用例。识别可能的问题。 | |
| 12 | 安排和部署到其他实例。 | (例如,添加更多实例到计划中,如生产实例。) | 监控异常情况。 |
表3.2 – 补丁系统的示例用例
主要用例在多个地方有机会插入ChatGPT。如果有关已安装补丁及其版本和发布结果的大量数据,可以训练一个模型来建议一组协同工作效果更好的补丁。LLM可以提出补丁计划,或者至少找到可能导致冲突或解决冲突的补丁集合的问题。这个模型可以在过程之前、过程中和之后使用。这绝非微不足道。这只是ChatGPT适合的机会;它擅长提供示例和测试用例。事后,可以从监控软件性能的不同数据中训练ChatGPT来理解甚至预测异常情况。补丁、测试和监控可以使用不同的训练模型,具有不同的提示、API和结果。在这种情况下,表中确定了LLM的使用。我们将步骤分解到更详细的程度,以便更容易想象LLM解决方案。尽管实现它可能是一项重大工作,但问题已被限制。可以评估是否有有价值的数据,这将允许模型成功执行。
在第6章的案例研究中,“数据收集——内容为王”展示了将一打调整好的模型部署到生命周期中执行特定任务的例子。过程中的每一步都使用不同的模型。在这种情况下,一些补丁推荐步骤可能不会直接向客户展示,而是由其他模型用来细化或支持对客户的建议。
补充过程或不是预期路径的附加序列被称为用例的扩展;一些扩展包含在表3.3中。通常,主要流程是成功路径,大多数人可能会遵循这条路径以实现成功。扩展通过其他必要功能补充成功路径。成功路径并非唯一路径。一个健壮的企业设计必须考虑边缘情况、错误条件、慢速连接和性能瓶颈、可访问性、国际化和其他问题。
在这个案例中,有一些扩展需要指出。向计划中添加是标准且典型的,但没有计划的情况下,首先发生的事情(即使自动化)是一个新的计划,这就像在桌面上创建一个新的文件夹一样。在计算机上,文件夹被创建为untitled。一个设计良好的系统会自动选择该文本,以便用户可以立即输入并命名它。用例没有描述这一级别的行为。这是好事,产品经理可以交付用例,设计师可以据此开发UX设计。基于主要流程和ChatGPT能力的一般理解,有一些地方ChatGPT可能被包含以提供整个计划或提出解决冲突的建议。
| 步骤 | 描述 | 系统责任 | ChatGPT机会 |
|---|---|---|---|
| 3a | 创建并命名一个新计划。 | 创建一个新计划。将选定的补丁添加到新计划中。完成任务的消息响应和计划链接。 | |
| 3b | 用户选择现有计划并添加推荐。 | 计划更新并显示新细节。 | 建议可能重叠的计划。 |
| 6a | 用户被通知存在冲突。 | 将用户引导至冲突解决步骤。 | 提供解决冲突的建议。 |
| 6a1 | 用户将计划保存为命名计划(适用于将同一计划应用于其他实例)。 | 保存一个唯一的命名计划。 | |
| 10a | 警告用户有关已弃用的补丁;补丁无法部署。 | 提供建议。 |
表3.3 – 补丁用例的扩展
假设我们拥有关于在野外安装的补丁以及由此版本和发布版本产生的故障报告的数据。在这种情况下,可以训练一个模型来建议一组可以协同工作的补丁。该模型可以推荐一个补丁计划或建议一个替代补丁集合来解决冲突。冲突是指与其他补丁不兼容的补丁。这绝非微不足道。这正是一个适合ChatGPT的机会。
根据使用和价值优先级使用案例 - 人力资源示例
理解每个流程的重要性至关重要。如果10个或20个流程每个都有5%或10%的使用率,这些流程几乎代表了所有使用率。然而,如果主要流程只占交互的一小部分,这被称为长尾效应。如果某些流程和路径服务于少数人并且使用频率较低,这些流程将会有长尾分布。这意味着任何单个流程对用户社区的影响都将是微小的。当只有少数案例代表大多数交互时,对这些流程或任务的改进比那些使用率低的改进更有价值。长尾用例不会像使用率最高的用例那样显著提升客户体验。这些用例之间的价值差异是可以量化的。如果开发使用率最高和最低的用例的成本相同,那么选择是显而易见的。这将在第4章“评分故事”中解释。
常见的分布(对于统计学家来说,这看起来类似于单尾正态分布;现实世界的数据并不总是看起来像正态曲线)通过将使用频率最高的用例排序到最不频繁的用例,看起来类似于图3.1。这个数据集来自一个人力资源(HR)系统,因此它不是一个完美的平滑分布。在这个例子中,少数顶级案例代表了最多的使用率(就像80/20规则一样)。在这种情况下,80%的使用率来自20%的功能或能力。

图3.1 – 典型的单侧分布,少数案例具有最大的影响
在长尾分布中,较少的大宗用例出现,它进一步延伸到使用频率较低的应用场景,如图3.2所示。需要超过40%的用例才能达到80%的使用率。

图3.2 – 长尾分布的一个示例 – 许多案例具有相似的使用率
根据80/20规则进行优先级排序 – 亚马逊购物
亚马逊网站上的功能是我们无需介绍就能解释的。这个购物网站的功能代表了80/20的分布。例如,搜索产品、将其添加到购物车和结账等功能构成了主要的使用。其余的小功能包括创建愿望清单、注册账户或添加新地址等。然而,如果你从产品的角度来切换视角,最畅销的产品可能只占销售额的一百分之一以下。即使是基于搜索流量的热门产品,如苹果手表、Crocs、AirPods、空气炸锅和iPad,它们的搜索量总和可能达到六百万次,但它们只是长尾产品搜索的顶端。与超过两亿的搜索量相比,即使是销量最高的产品也只占销售额的一百分之一以下。这是一个长尾。本文讨论了超过274,000个关键词搜索中的这五个搜索词,以使长尾问题看起来更加令人印象深刻。
亚马逊上搜索量最高的100个商品 (https://www.semrush.com/blog/most-searched-items-amazon/)
亚马逊的例子表明,最有价值的可能是少数几个功能(如添加到购物车功能)。同样,专注于内容(如亚马逊上要购买的商品)可能会产生长尾问题。在任何情况下,如果AI被用于曲线的右侧,它提供的价值将小于左侧的价值。
回到图3.1和3.2,我们可以将亚马逊的例子应用到人力资源数据上。注意,缺勤余额项目(关于员工的剩余休假时间)在图3**.1中几乎有350次交互。在长尾(图3**.2)中,这个数字只会超过250次。在长尾情况下,没有哪个用例突出。在长尾环境中对这一用例投入同样的努力,回报将不同。
了解使用的分布情况是有帮助的。更正常的分布意味着价值很可能会从改进几个关键用例中产生,而长尾则意味着在不涵盖更多用例的情况下,影响将更具挑战性。
但即使是小案例也可能相关。与注册后的使用相比,注册客户的使用频率较低。尽管如此,没有人会争论正确注册和减少注册过程中的摩擦不是至关重要的。现在我们已经涵盖了用例,我们仍然可以考虑用户故事的影响。
从用例创建用户故事
记住,用例和用户故事的概念是重叠的。形式不同。让我们回到打补丁的例子。它提供了一套健壮的步骤,为应用ChatGPT提供了各种机会。在表3.1的用户故事上运行ChatGPT产生了与用例相关的以下故事:
I will give you a use case that includes the user's steps and the resulting system response. Please summarize this into a user story using storytelling techniques. Then, summarize the story into a book synopsis.
ChatGPT对这个用例的回应如下:
In the magical kingdom of Systemia, the wise and diligent IT wizard, Merlin, sets out on a quest to secure the kingdom's digital fortress. Armed with the magical tool "PatchMaster," Merlin navigates through a series of enchanting chapters to review, select, and deploy patches across the kingdom's instances.
The story unfolds as Merlin discovers a captivating array of patch recommendations, meticulously builds a Patch Plan, and navigates through the patching odyssey, ensuring every decision is made with precision. The wizard crafts a masterpiece – the Plan – checking for conflicts and issues to guarantee a flawless defense against vulnerabilities.
Testing the waters, Merlin bravely deploys the Plan on a test instance, adjusting and evaluating based on results, showcasing the wisdom of iteration. A grand deployment ensues, scheduled and executed with magical finesse, fortifying the kingdom's defenses.
In a grand finale, Merlin expands the kingdom's shield by deploying the Plan on multiple production instances, declaring victory as the patches are deployed and the kingdom's instances stand secure at their new patch state.
The epilogue reflects on the enduring legend of PatchMaster, as Merlin's wisdom ensures the kingdom's digital realm remains resilient against the forces of vulnerabilities. "Patch Perfect" stands as a testament to the enduring power of thoughtful patch management in the ever-evolving landscape of technology and security.
这个从 ChatGPT 生成的故事没有进行任何编辑(包括语法错误)。我想用它来提出几个观点。首先,ChatGPT 在我们的设计过程中具有价值。这个故事富有创意和魅力,可以进一步定制,通过在提示中给出更多方向来匹配特定的风格和语气。其次,从用例到用户故事很容易转换,尽管可能需要编辑输出。这可以提供给卡通或素描艺术家来开发引人入胜的营销故事板。还可以对 ChatGPT 进行额外的细化,以完善故事,使其超越快乐路径。可以要求将其分解为八个故事板单元格,这将更容易作为故事板可视化。
最好认识到,使用用例中的逐步方法比这种讲故事格式更容易识别 ChatGPT 的机会。用户故事的目标受众不同。用例包含开发团队需要的信息,但故事是为高层管理、其他团队和市场营销准备的。
从用例中优先考虑 ChatGPT 机会
这个补丁示例很有用,因为应用 ChatGPT 解决方案在每一步都有实际成本,包括设计和开发,以及运行生产、预演和测试 LLM 的实际成本。不要期望在所有这些机会中部署 ChatGPT,所以让我们在 表 3.4 中重新列出被确定为 ChatGPT 支持位置的步骤,并对每个步骤进行评分,以查看哪些可以为客户带来最大价值。然后团队可以将时间和金钱投入到最有价值的步骤中。
每个可能的故事都根据三个指标进行评分。第 4 章,评分故事 教授 用户需求评分,这是三个评分的乘积。评分越高,对客户的价值就越大。在下一章中,我们还将考虑开发成本。从这个分析中,我们有三篇最有价值的故事。
| 为 ChatGPT 支持识别的步骤 | 影响客户 (1 到 3) | B 需要频率 (1 到 3) | C 问题严重性 (1 到 4) | 用户需求评分(**ABC) |
|---|---|---|---|---|
| 步骤 1:从现有补丁和客户错误中提出更好的建议 | 2 | 1 | 3 | 6 |
| 步骤 2:推荐能够良好协作的补丁集合 | 2 | 1 | 3 | 6 |
| 步骤 6:预测补丁计划的结果,以及缺失或冲突补丁的影响 | 2 | 1 | 4 | 8 |
| 步骤 8:从现有案例生成测试。识别测试中的差距 | 2 | 1 | 2 | 4 |
| 步骤 10:提出部署建议 | 2 | 1 | 1 | 2 |
| 步骤 11:从现有案例生成测试。识别测试中的差距 | 2 | 3 | 2 | 12 |
| 步骤 12:监控异常 | 2 | 1 | 4 | 8 |
表 3.4 – UX 中 ChatGPT 的机会(前两项加粗)
让我分解一下评分。所有这些故事都影响相同数量的客户。只有我们的一些客户会打补丁,所以我们在这个三点的尺度上将其评为2。3点是最高分,是为大多数客户执行的任务保留的。补丁很少执行并不奇怪。个人每年更新手机几次;企业客户更不愿意更新。每个步骤都大约执行相同次数,通常每季度执行一次,所以这种需求的频率是1(再次强调,在3点的尺度上,2代表大多数时候,3代表总是)。但是测试用例是不同的。这是一个持续的过程,所以在频率尺度上评分为3。这也是在客户遇到问题之前捕捉潜在问题的唯一地方。
用户评分中的显著差异源于严重程度。可以这样理解,这是bug严重程度的倒数。在大多数公司中,严重程度为1的bug是个大问题。每个人都应该同意这需要立即修复,并且应该得到最高的评分,所以是4分。3分代表一个重大问题,而2分则不那么严重,1分则是最轻微的问题(通常是严重程度为四的bug)。
我们记录了评分的解释,这样多人就可以学习这个过程,并能够对类似问题进行评分。由于评分范围从1到4分,这使得解释和评分变得简单。我们希望人们能够重复评分、分享并学习共同的方法。团队可能会发展出更复杂的过程,这也可能会造成阻碍。这一点将在下一章中进行讨论。
可以根据这些评分和值来优先排序这个列表。我们将深入解释如何评分故事,以及如何将工程成本纳入这些解决方案的开发中。我们知道至少有三个故事(在步骤6、11和步骤12中)具有显著的用户价值。我们将在第4章,评分故事中使用这些相同的故事来更详细地解释评分。
因此,我们从一个简单的例子开始。我是这个领域的专家,这使得这个例子很容易解释。商业专业知识对于解决LLM(大型语言模型)的问题至关重要。如果你不是专家,就组建一个团队,平衡客户同理心与商业专业知识。
这个修补案例是一组已知的任务,我们可以快速确定ChatGPT解决方案可能适合的位置。但是,当需要更多的工作时怎么办?你可能需要探索或进行研究来确定最佳匹配。用例从哪里来?我们试图实现的是谁的目标?你知道足够的信息来识别ChatGPT应该被考虑的地方吗?这是挑战性的问题。我建议成为你产品领域的专家。对产品或服务了解得越多,对用户目标的理解就越深入,对ChatGPT能力的理解就越透彻,识别机会和解决方案就越容易。ChatGPT的每个新版本都不同,可能会改变计划。正如我们将在第6章中探讨的,“数据收集——内容为王”,不同的模型可以用于其他任务。我们无法说哪个模型更好;这每几个月就会变化。
让我们来探讨如何定义这些目标。记住,这些是用户的目标,而不是组织的需要。
将LLM与用户目标对齐
假设我们有一个客户或角色在心中,并希望定义他们的目标。这本书关注的是用户的目标,而不是营销、工程或销售。产品领导者负责找出有效的用户目标以及目标对整体产品的价值。可行性也是至关重要的,通常由工程提供。令人信服的用例可以来自任何地方;公司负责人可能有一个愿景,客户可能提出投诉,产品经理可能从客户那里得到一个想法,QA工程师可能识别出一个捷径,用户研究人员可能发现一个关键的解决方案,或者设计师可能想象出一个解决客户痛点的方法。不要过于关注是谁提出了解决方案,而应更多地关注它提供了多少价值。不要纠结于需要哪种LLM供应商。随着OpenAI和行业的演变,将会有各种具有特定功能和成本的模式可供选择。这种按需匹配允许在一个产品中构建一套LLM的解决方案。
ChatGPT的应用
有一个等待被解决的解决方案世界。在企业解决方案的空间中,有一些ChatGPT可以帮助解决的问题。让我们抛出一个可以与ChatGPT结合使用来改进的用例集合。不要害羞;向ChatGPT寻求针对业务的特定建议。与它深入探讨细节。这个过程可能不会突出公司最重要的方面,但产生想法是开始这个过程的关键。拥有一个广泛的想法集合是可以的,但使用提供的技能根据价值进行优先排序。
如果你借鉴了其他人使用ChatGPT的经验,了解他们是否做得好是至关重要的。以下是一些ChatGPT可以处理的领域。有数千个值得探索的想法。利用这一点来激发一些思考。将这些例子重新思考到你们公司的业务和实践中。考虑以下想法以帮助进行头脑风暴会议:
-
在广泛的知识库中寻找关键信息,以解决特定版本产品的具体解决方案。
-
为销售人员提供有助于关闭客户交易的因素的建议。
-
诊断服务问题,引导客户完成解决问题的步骤,在所有其他方法都失败时派遣维修人员到现场,跟进服务预约的变更,并在完成后关闭请求。
-
考虑其他交互方式、基于视觉的分析、监测声音或传感器数据(温度、压力、空气质量、接近度、光、振动、光学、水平、运动或速度)是否支持一个过程、一个建议或一个指导机会。
-
根据之前的购买周期(直接与客户互动或在销售代表的支撑角度)推荐产品和解决方案。
-
为世界语言进行翻译,以拓宽支持渠道。
-
生成代码、任务自动完成和回归测试套件创建。
-
协助处理人力资源(HR)、财务、会计、服务、销售以及其他请求或表格。包括费用报告、月末资产负债表、服务票、销售订单、休假申请,或帮助匹配候选人到职位(这不会比今天的工具更糟)。
-
在使用区块链完成交易之前验证并确保满足合同条件。
-
与用户头脑风暴,探索和诊断问题的替代方案。
-
汇总、起草、撰写或编辑材料。
-
人力资源在安排面试、指导新员工、帮助撰写职位描述、分析离职面试以了解离职原因、确定最适合指导新员工的员工(注意偏见),以及在这些过程中检测偏见等方面有许多用例。人力资源总是进行可以由LLM分析的调查。
-
财务是一个热门领域——预测、市场趋势以及基于支出模式、目标和容忍度的建议。一些公司的财务报告、每日股价和波动评论已经自动生成。
许多这些工作可以由一个全天候的虚拟助手处理,该助手支持业务并补充或取代琐碎和简单的人机交互。
让我们从帽子里随机抽取一家公司,看看AI的可能性有多么丰富。我选择了世界上第2,000大的公司(这样我们就包括了各种规模的大型企业)。这次搜索结果落在The Gap,这是一个标志性的零售组织,通过许多品牌如Old Navy、The Gap、Athleta、Banana Republic和Intermix销售服装。它是福布斯全球2000强公司的末尾。让我举一个如何通过生成提示来与ChatGPT进行头脑风暴的例子
Our company is called the Gap; it includes many brands that sell apparel in retail settings in stores worldwide. We deal with a very competitive and dynamic space, handling customers in stores, handling returns, promoting and advertising, designing clothes, manufacturing products worldwide, and dealing with logistics and over 70,000 employees while managing a significant web presence. Provide me with a numbered list of detailed important use cases that ChatGPT can inject into to give my customers a more effective customer experience.
我已经截断了描述,除了最后一个,以展示它是如何构建用户利益的。为您的业务运行这个练习,看看结果如何。
-
店内客户协助:实施由ChatGPT驱动的自助终端或移动应用…。
-
虚拟试衣间:开发虚拟试衣间(以)接收个性化的推荐…。
-
退换货协助:…对常见的退换货咨询提供回应…。
-
个性化产品推荐:…根据过去的购买、浏览历史和互动分析客户偏好,生成个性化的产品推荐…。
-
在线聊天支持:…对客户咨询提供即时回应…。
-
时尚建议和造型技巧:…客户可以输入他们的偏好、体型和场合,获得个性化的造型建议…。
-
供应链透明度:…向客户提供关于(订单)状态的实时更新…。
-
客户反馈和调查:(收集)客户反馈和进行调查…。
-
多语言支持:…为不同语言的客户提供支持和帮助…。
-
AI视觉搜索:使用图像搜索产品,使他们能够快速找到类似商品或完整的造型…。
-
定制忠诚度计划:利用ChatGPT分析客户数据和消费模式,创建针对个别客户的定制忠诚度计划和激励措施,奖励他们的参与和购买,并培养品牌忠诚度。
-
将ChatGPT整合到这些用例中不仅将简化您业务运营的各个方面,并将显著提升整体客户体验,推动客户满意度、留存率,并最终促进收入增长。
我们可以继续。它出色地探索了ChatGPT的机会。这些例子得益于ChatGPT擅长的地方。当优质的企业数据通过提示和安全性智能控制传递给一个LLM(大型语言模型)时,它可以在许多客户互动步骤中创造价值。第6章,数据收集 – 内容为王探讨了将企业数据纳入其中。
在进行竞争研究时,可能会很清楚其他公司正在构建类似的LLM解决方案,这可能是一场追赶游戏。例如,服装推荐将成为常态。公司未来必须拥有这一点。在这些为服装推荐者部署的任何应用中,都可能会有失败。大多数失败将来自不关心和培养LLM;一些将失败是因为选择了错误的使用案例;少数将失败,很可能是因为LLM不完美。主动监控、迭代设计和微调是成功的关键,并将有助于避免失败。我们将讨论第9章,指南和启发式方法,以确保对成功和未来改进的理解。我们将借鉴这些早期章节来完善和改进。请保持关注。我希望我们灌输的理念是,不是每个问题都可以用ChatGPT来解决。专注于可以尽早交付的问题中最有价值的部分。
聊天以外的生成式AI示例
尝试跳出思维定势。伟大的想法总是可以来自非常不同的领域。我们有了Velcro®,因为一位工程师注意到他在和狗散步后衣服上粘着的芒刺(1941年),Post-it®便签是因为Spencer Silver尝试创造一种超级强力粘合剂失败(1968年),还有Dr. Harry Coover在Eastman Kodak(1942年)从尝试创造一种透明塑料的失败中得到了超级胶水®。所以,总是跳出思维定势思考是很好的。我总是建议从整个业务的角度来看待问题。有时,我们陷入了解决细节问题的困境,而需要抬头看看整个森林。正如我提到的补丁示例,有时解决方案是移除UX并自动化整个流程。这是最终的简化。ChatGPT可以解决的创新列表每天都在增长。然而,我把这些放出来,因为它们可能连接了经验和公司的需求。创新可以来自任何地方。这些广泛不同的空间中的任何一个能帮助我们在寻求解决方案的过程中吗?让我们看看:
-
用于检测、分类、计数或分析的对象视觉分析:是否存在库存、运输、处理或零售问题?亚马逊已经实施了商店,顾客可以在购物车中将物品放入购物袋(或改变主意时取出),商店计算费用,然后他们就可以出门。这里不需要结账。
-
视觉艺术、市场营销或社交媒体中的图像创作:尽管这个领域比示例大得多,但艺术家在提示下可以生成图像,而不会出现媒体许可问题。在LLMS训练未经许可的材料时可能会有问题。我们稍后会讨论这个问题。
-
音乐创作:我对ChatGPT如何调用Mathematica来创建逐音符旋律印象深刻。我无法评论这些旋律是否动听……
-
系统模拟和测试:创建流程或建筑物的虚拟模拟(我们听到“数字孪生”这个术语)非常流行,所以看看有哪些地方可以使用ChatGPT来模拟或测试条件。
-
原型设计和用户界面设计:这是我们本应该写的书,但我认为世界还没有准备好。将模型作为工具使用。外面有人会为我们写这本书。
-
药物发现:谷歌搜索一下。如果制药公司可以根据研究和结果搜索新的化合物,我敢打赌企业数据中就有一个金矿。去挖掘它。
-
寻找解决古老问题的新方案:有了合适的工具和框架,生成式解决方案可以解决具有未知答案的问题。
我们有很多ChatGPT的用途,但它并不总是最佳解决方案。以下是一些ChatGPT可能不是最佳匹配的地方。
避免ChatGPT的限制、偏见和不恰当的回应
一个拼图碎片可能不适合拼图,因为它来自不同的拼图。我们喜欢将新工具应用到每个解决方案中。锤子除了敲钉子还有很多用途,但这并不意味着它是完成这项工作的正确工具。ChatGPT预测接下来要说的话的独特能力并不总是完美地适合特定的用例。有很多空间可能没有好的匹配。或者,正如企业补丁示例所示,没有必要将ChatGPT应用到每个步骤以获得价值。不仅用例应该是最重要的,而且它们还应该是ChatGPT集成有意义的用例。以下是一些可能难以将ChatGPT应用于解决方案的领域,以及一些创造性思维,以帮助应对这些情况。
缺乏实时信息
基础模型有对新材料摄入的截止日期。一个新模型可能只有一年前或更早的数据。这个问题会随着时间的推移而改善;我们已经看到摄入的材料日期最近不到一年。然而,如果存在滞后,并且客户需要那个时间敏感的信息,它必须提供。如果公司发布2.0版本的小部件,新的文档可以在发布时更新带有该信息的自定义模型。然而,如果LLM解决方案依赖于保持第三方细节更新,也需要摄入最新的第三方数据。第三方在其网站上发布信息没关系,因为基础模型不会那么及时。由于模型更新有限,正如在第6章“收集数据 – 内容为王”中解释的检索增强生成(RAG),可以摄入这些数据并保持更新。认识到随着模型的变化,需要新的测试和验证。
复杂或专业化的主题
法律和医疗建议是可能引起问题的两个领域。然而,在构建这些服务的企业版本时,存在许多机会。它们不必是法律或医疗问题的答案;它们可以帮助细化该领域或寻找可能对人类来说过于困难(例如,患有15种不同药物的患者可能的副作用或相互作用)的关联。法律领域的支持工具可以是审查大量法律文件,以突出与特定专业知识相关的信息。专家证人必须审查证词以形成他们的结论。然而,如果期望它知道一切,那么它缺乏实时数据。通过专家仔细监控结果质量,逐步改进、记录和精炼成功,创建高质量的解决方案。
长篇内容生成
对于企业用例来说,需要长篇内容是很常见的,比如撰写一本书。我们有许多知识和技术文档的需求,但这并不是ChatGPT的有效用途。ChatGPT可以帮助编辑材料、缩短测试、精炼语言,甚至进行基本的翻译,但有其局限性。不要期望在没有技术编辑的情况下发布如此长的材料。ChatGPT可能会偏离主题,引入无关内容,并重复措辞。甚至可能会重复主题。我见过很好的例子,一个十步指南中,有两个步骤被略微不同地标记,但与前面的步骤完全相同——在复杂且冗长的文档中创建和维护组织和层次结构,对生成式AI的长期记忆限制提出了挑战。此外,事实也不再像以前那样。特别是在技术文档中,我们总是需要额外的测试人员运行文档中的流程和任务,以验证解决方案是否有效。ChatGPT可能会首先识别并引导用户到正确的高质量文档片段。然后,如果用户认识到该文档适用于他们,他们可以信任结果准确无误。例如,当我们知道他们使用的是苹果Macintosh时,我们不想向他们展示适用于微软Windows的有效步骤指南。
长期记忆
ChatGPT虚拟助手可能在连续的评论之间表现良好,但不适合长时间。跨越一周的对话不太可能保持上下文或信息以继续该对话。然而,可以开发一些解决方案。考虑是否可以保存和长期属性或对话以提醒LLM之前的讨论。随着时间的推移,可以逐步建立一组上下文细节。甚至可以将对话的早期元素的历史列表存储起来。让LLM看起来有长期记忆是非常令人兴奋的。供应商正在努力提供更好的长期记忆的基础模型。例如,我们在ChatGPT 4o中看到了这一点。想象一下公司内部的目录服务:
-
目录应用提供人们的姓名、电话号码、电子邮件地址和头衔。
-
许多人多次询问该应用。它可以查看搜索历史以了解流行人物和人们姓名的缩写(例如,Ben代表本杰明)。
-
如果用户一个月后回来,他们不想滚动查看历史记录(或者可能是UI没有这些数据)。
-
因此,用户问道,“他的电话号码又是多少?”
-
一旦AI以名称回应,用户回应说,“不,是另一个人,”应用就会返回一个其他可能名称的简短列表。
-
通过存储人们的历史记录,它查找并提供了该上下文(或通过其他解决方案)。这重新创建了历史并呈现了长期记忆的外观。
-
关于此用户及其组织的背景信息可能允许LLM提供之前未使用但可能是正确答案的名称。“我之前没看到我们提到过本,但你可能指的是本杰明·巴顿。以下是他的详细信息……”
因此,长期记忆可以被构建来为新对话提供上下文。每次构建时,我们都可以确认用户有权访问这些信息。这是保护敏感信息的一种方法。在企业中,敏感信息有多种形式。
敏感信息
理解什么是私密的并保持该信息的机密性是一个真正的挑战。回想一下,LLM并不理解它在说什么;它擅长预测。我们一次又一次地看到聊天模型被迫泄露应该敏感的信息。一种解决方案是不直接在模型中使用该信息。例如,如果应用需要收集信用卡信息,开发一个安全的服务来在用户和信用卡后端之间传递这些信息。这不必在对话模型内完成。使用GUI元素这样做可能会支持建立与用户的更多信任。我们还可以在LLM的偏见思维方面建立信任并遇到问题。
偏见思维
模型的好坏取决于其训练数据。如果模型对某种思维方式有偏见,对用户群体有害,或包含冒犯性内容,它可能会对结果产生意想不到的后果。这可能是来自基础模型。对专有数据要谨慎。这可能不是个人或文化偏见,而是讨论产品或竞争对手产品的方式可能影响结果。如果基础模型有偏见,可能需要一些工程来通过向LLM提供指令来保护用户免受这些偏见的影响。但无论指令有多好,有些事情很难教授,比如情感和同理心。
情感和同理心
我们在第一章,“认识ChatGPT中设计的力量”中讨论了原始聊天机器人ELIZA的历史;因此,使用AI进行心理支持是我们AI旅程的起点。但在这里要小心。它缺乏同理心和情感理解。可能有方法可以使用ChatGPT来支持心理健康社区,但AI尚未准备好回答911(或988心理健康)电话(这些是美国紧急电话号码)。使用护栏,进行广泛测试,并在人类可能处于敏感状态的地方监控结果。即使与大型语言模型(LLM)的对话可能被视为具有同理心,这也可能很快出错。它只是在做可能的事情,而不是基于同理心或情感的细微差别。在某种程度上,LLM听起来具有同理心是不道德的。
伦理和道德指导
大多数企业解决方案通常不会深入探讨伦理或道德困境。其中很大一部分问题源于在做出可能对双方产生不利影响的决策时,所面临的电车问题。这个问题基于一个情况,即一辆失控的电车即将在轨道附近杀害人们,或者它可以被转向并杀害在另一条轨道上的人们。你将如何做出这样的决定?
电车问题
本文描述了电车问题所描述的道德和伦理困境。
维基百科:电车问题 (https://www.britannica.com/topic/trolley-problem)
自动驾驶汽车必须考虑这些决策,因此已经商业部署的系统必须处理这些艰难的决策。ChatGPT不是用来做出伦理决定的;它将使用其预测模型来形成答案。传统的机器学习已经存在这个问题,LLM也不例外。大多数流行的模型避免回答伦理问题。需要深入探讨这些领域的企业解决方案可能会受到模型中内置的安全保障的影响。仔细应用最佳实践以防止这些情况。与伦理和道德问题相关的是如何处理具有重大后果的关键决策。
关键决策制定
我们已经讨论了道德、道德观、安全和同理心。在做出具有深远后果的时间敏感决策时,这些因素可能会发挥作用。根据基于模型的商业决策,并且模型是在多样化的互联网数据上训练的,它是否会给出与受信任的专家提供的相同结论?密切监控这种交互,用公司特定数据对其进行训练以避免偏见,并为推荐引擎提供指导和护栏是至关重要的。记住,它是基于它所看到的模式来得出结果的。第6章,收集数据 – 内容为王介绍了ChatGPT如何与企业数据合作,使大型语言模型以业务知识作出响应。它不会用人类的道德指南针来回答,也不处于根据其人类用户的期望来决定其判断价值的位置。也许更具挑战性的是一些更极客的事情,比如编程。
编程和调试
这是一个正在获得大量关注领域。我认为这主要是因为极客们喜欢极客事物。此外,让ChatGPT完成工作非常出色。然而,如果你不知道你不知道的东西,对其回答要非常小心。生产级别的代码需要比ChatGPT能提供的更强大的鲁棒性。大型语言模型可以针对模型编写的代码编写测试用例。它可以轻松地敲出许多常见语言的简单脚本和模板。而这不仅仅局限于编程。不同的模型可以用来生成测试用例,并为回路中的人类提供支持。我怀疑这个领域在接下来的几年里会迅速成熟。它能学到更多关于良好模式和高质量代码示例的知识,这个领域就会变得越重要。只需知道并预期它并不完美。但有时这些编程语言比世界语言更好。
翻译准确性
大多数模型可以处理翻译,但在技术和科学领域有时并不成功。训练模型传统上非常以英语为中心。由于它们是在可用的网络资源上训练的,而互联网上55%到60%的内容是英语,因此翻译的复杂性根据可用的训练数据而有很大差异。
克服技术和公司特定词汇的显著障碍是一项挑战。测试并验证这些术语在其他语言中的处理方式或是否需要翻译。测试并验证在单一交互中使用多种语言的情况。此外,品牌名称只翻译到某些文化中。
使用用户的语言具有极大的价值。我们有一个用户体验原则,即将工具带到用户面前,而不是让用户去找工具。翻译语言也是如此。客户会欣赏在他们的母语环境中工作,而不是放弃支持或用另一种语言进行沟通。语言的质量反映了可用的培训。期待西班牙语、法语和德语的支持质量会更好,而在俄语、阿拉伯语和印地语中,尤其是在习惯用法、正式用语和技术语言方面可能会遇到挑战。再次强调,监控结果并投资于培训技术术语和独特的公司词汇。一些世界语言有较小的训练集、语法、句法和语音学的复杂性、与其他语言的重叠或混淆,以及有限的人类反馈循环。没有伟大的老师是无法替代的。
教育替代
人类训练师和培训或教育材料在各个领域有着长期的成功(和失败)历史。我上过最好的课程是在沙漠中100度高温下的三天实操课程。我们很少坐下,即使有十年的大学学历,我也每小时比在教室里学到的东西更多。不要期望ChatGPT能够有效地训练或教育学生。它不知道学生如何反应,并且将面临适应他们需求的挑战。实操技能培训很难,甚至更具有挑战性(但并非不可能)分析并分享给LLM。例如,一个培训应用程序可能会教授和指导如何更换飞机发动机上的故障传感器。LLM可以指导用户,而摄像头可以检测情况并指导用户按正确顺序执行步骤,指向正确的工具(使用激光笔),并确定应用工具的位置。辅助维护是一个广阔的领域,考虑到错误的成本,这个领域的投资将会很大。因此,它即将到来,但会很难,准确性将是关键。
不要强行匹配解决方案
认识到对于ChatGPT应用的每一个瓶颈,ChatGPT可能会提出如何避免或减轻问题的建议。然而,不要试图将ChatGPT强行纳入解决方案。似乎有丰富的机会将ChatGPT应用于几乎任何垂直市场。关注那些提供最大价值并匹配生成式AI解决方案独特能力的使用案例。
ChatGPT可能被用于本书未涵盖的领域。试着去询问它,审查它,并深入其回答:
What problems would ChatGPT have with identifying legal challenges if I gave you a collection of depositions to review?
What issues would ChatGPT have with providing a summary of knowledge articles on resolving complex technical problems with airplane engine repair?
摘要
开发用户故事有时可能很简单。如果需求明显、直接,并且理想地适合ChatGPT,就将其写下来并开始工作。我们也意识到有些事情需要澄清。利用研究、与内部利益相关者的讨论以及你敏锐的问题解决能力来寻找LLM的机会。
开始思考在你的业务中哪些机会最适合采用生成式解决方案,并解释为什么某些问题不适合使用ChatGPT。
希望这一章能够激发大家对介绍我们下一个关于评分和优先级排序故事主题的兴趣。我们将直接进入下一个主题,因为我们只是简要地解释了用户需求评分。这将有助于我们优先考虑到目前为止我们已经探索过的待办事项功能和用例。当我们将ChatGPT解决方案运行起来并想要测试或监控它时,了解这一点也将非常有帮助。
一旦我们找到了解决方案,我们可以利用其中的一些技能来验证我们所做的工作,并持续关注和改进解决方案。这样,我们将拥有数据和一定的信心,相信我们正在做正确的事情。
参考文献
![]() |
本章中提到的链接、书籍推荐和GitHub文件已发布在参考文献页面上。网页:第3章参考文献 (https://uxdforai.com/references#C3) |
|---|
第四章:得分故事
成功开发工作的一个秘诀是专注于正确的工作。敏捷方法有助于将努力分解成可管理的部分,但一些概念,如估算扑克(我们将解释),关注的是工作的成本,而不是价值。我们希望分享一种系统性地分解故事的方法,以便可以根据对客户的价值来优先排序。ChatGPT解决方案需要大量的决策。我们需要优先考虑这些决策。添加或编辑知识、进行更多测试、添加新的集成、更改模型、改进微调或完善提示都必须优先考虑。这看起来可能很明显,但应尽快完成那些提供最大价值的工作。价值较小或只对一小部分客户有益的项目可以稍后处理。我们有一种方法可以将这份工作待办事项按照团队可以理解的方式排序。
我们将深入讨论“用户需求评分”的概念,并将其与开发成本联系起来。这将为第5章“定义期望(用户)体验”奠定基础。
本章将涵盖以下主要内容:
-
优先处理待办事项
-
创建更复杂的评分方法
-
评分的实际情况
优先处理待办事项
首先,一些背景和历史。待办事项意味着团队需要评估的已知工作的集合。待办事项中的项目越接近被处理,就需要越多的细节来理解和界定它。这就是为什么我们有不同的方法来管理这份工作清单上的项目。有时,一个大型团队会有许多冲刺团队,每个团队管理自己的工作待办事项。然而,由于所有团队都朝着同一个目标前进,理解每个人都在用最有价值的方式处理待办事项是至关重要的。我们将更好地有一个可重复和一致的理解,知道哪些工作应该首先进行。加权最短作业优先(WSJF)是这些方法之一。
WSJF
敏捷概念WSJF帮助人们决定哪些工作/任务/项目/特性/内容应该首先获得资源来完成。
我们了解到,最重要的任务并不总是最先完成的,因为它们的价值取决于开发成本。有时,对待办事项进行不同的处理可以为开发投资提供更好的价值(在美国,我们称之为“物有所值”——一美元是美元的另一种说法)。
我有一位优秀的敏捷教练,他对此解释得最好,我将尽力做到公正。WSJF根据延迟成本(CoD)对客户进行工作优先级排序。客户从未发布的特性中得不到任何价值。尽早发布最有价值的特性可以最小化延迟成本。然而,对于价值相等的两个特性,先交付成本较低的那个。为什么?因为客户可以更早地从产品中获得价值,而不是等待成本更高的特性。
让我们检查图4.1,来自敏捷缩放框架(SAFe)。

图4.1 – 解释CoD
文章:WSJF (https://scaledagileframework.com/wsjf/)
在SAFe中,这个例子基于项目C具有较小的CoD。然而,由于其完成时间较长,其开发阻碍了从交付B和A中获得价值,这在低WSJF优先的图形中用它们的1.0和0.1 WSJF值表示。考虑到CoD是一种无法恢复的未实现价值。相反,考虑高WSJF优先的例子,其中A首先完成,然后是B,接着是C。现在,由于A包含较高的CoD并且是首先完成的,剩余的CoD就较少。客户可以更早地获得价值。浪费的价值更少,就像在低WSJF的例子中,我们首先交付了C。
这允许比较生成式AI产品所需的后备功能。让我们尝试一个有两个功能的例子:密码重置支持和订购更换部件。假设它们对客户的价值相等(我们将在稍后深入探讨如何计算它们的价值)。哪一个应该先做?
密码重置功能开发需要45天,而更换部件功能需要90天。由于人员配置限制,团队只能专注于一个功能。如果密码重置功能发布,客户在更换部件功能发布之前将获得45天的价值。他们从第46天开始从这个功能中获得价值。经过135天,两个功能都完成之后,客户将从重置功能中获得90天的价值。如果他们首先完成更换部件功能,那么他们从这两个功能中总共只能获得45天的价值。通过改变开发顺序,客户实际上将价值翻倍。
我发现很难理解CoD中的负面词汇。CoD发生是因为工作延迟交付给客户,直到它发货之前无法为客户提供价值。这样做实际上假设了一个开发成本估计。我们都可以同意估计是困难的。所有开发团队都知道这一点。相对成本是合理的,可以与特征的一致成本进行比较。我们会犯估计错误。对于敏捷Scrum团队,在每个冲刺结束时使用回顾会来持续改进估计成本。
注意
CoD关注的是对消费者的成本。CoD的大小是客户获得价值延迟的函数。延迟一个更有价值的工作以交付一个不那么有价值的工作会产生更大的CoD。
CoD是指因延迟或未在特定时间内完成工作而损失的钱。它是衡量工作随时间推移的经济价值的一种方法。 —— SAFe网站
Scaled Agile网站上的图4.2显示了CoD模型具有一些以用户为中心的元素。

图4.2 – CoD
在与 Scaled Agile 团队交谈后,我们采用了不同的方法,可以提供类似的价值。实施一个可重复、可培训的过程,提供一致的结果是最重要的考虑因素。一个 评分标准,一套标准,以及描述创建了一个一致的判断方法。这使得团队外的人更容易理解和欣赏,比传统的 CoD 更容易。
想要了解更多关于 WSJF 的详细信息,请访问 Scaled Agile 网站:
文章:加权最短作业优先 (https://scaledagileframework.com/wsjf/)
丽恩特森(Reinertsen)的书籍对于改进开发过程来说非常出色:
书籍:产品开发流程原理 由唐纳德·丽恩特森(Donald Reinertsen)撰写 (https://amzn.to/3A3u34C)
对于那些想要了解 WSJF 之外的开发过程的人来说,这本书是宝贵的。在企业开发中,SAFe 是一个经过深思熟虑、稳健且成熟的模型,用于支持大型组织中的敏捷开发。我强烈建议探索和深入研究可用的内容。
在了解了 WSJF 的基础知识后,你会知道在更短的时间内提供等效价值是有价值的。然而,并非所有功能都是等效的。我们提出了一种新的方法来计算以用户为中心的 CoD 版本。它被称为 用户需求得分(UNS)。
用户需求评分
UNS 是一种以用户为中心的 CoD 方法,考虑了问题或功能的范围、频率和严重性。
UNS 是基于布鲁斯·托格尼奇尼(Bruce Tognazzini)的书籍 Tog on Design(1992 年)中发现的精细工作,这本书是菲尔·海恩(Phil Haine)在我担任顾问期间与我分享的。然后我将这项工作改编成了 WSJF 计算的分母。
托格(Tog)的书籍引用了罗宾·杰弗里斯(Robin Jeffries)等人的研究,评估了寻找可用性问题的不同技术,包括启发式评估和指南,我们将在 第 9 章 指南和启发式 可用性测试 (第 2 章 进行有效的用户研究) 和认知遍历(一种可靠的技术)中介绍。
文章:现实世界中的用户界面评估:四种技术的比较 由罗宾·杰弗里斯(Robin Jeffries)等人撰写 (https://dl.acm.org/doi/pdf/10.1145/108844.108862)
在杰弗里斯(Jeffries)的研究中,参与者被要求分析问题,以“考虑问题的影響、遇到频率以及受影响的相对用户数量。”他们使用从 1(微不足道)到 9(关键)的指标。我们将以更可重复的方式来构建这个概念进行评分。
SAFe的官方CoD是用户业务价值 + 时间关键性 + 风险降低和/或机会参与,如图图4**.2所示。CoD的元素是有意义的;做对客户有益的工作(用户业务价值),尽早交付而不是晚些时候交付具有价值(时间关键性),并通过降低风险帮助改变竞争格局。
我们需要一个一致且可重复的指标,非专业人士可以轻松解释和重复。方法是遵循三个类似的指标,并提供可以一致应用的评分标准。
这里是用户需求评分模型。这个分数将用于功能/错误修复/增强,并将作为我们WSJF计算的分子:
-
范围:它影响了多少用户?(3 – 所有,2 – 一些,1 – 几个或有限角色)
-
频率:它有多频繁地被使用?(3 – 总是,2 – 有时,1 – 不常)
-
严重性:问题有多严重?(4 – 严重,3 – 临界,2 – 重要,1 – 次要重要性)
然后,我们将CoD建模为范围乘以频率乘以严重性。这意味着值从1(111)到36(334)。我们将通过许多示例解释每个值和如何评分,以便任何人都可以应用此模型。
对用户价值进行评分并将其除以成本,可以使讨论的双方都发挥作用。评分可以在团队之间进行比较,在SAFe中,它们可以用来将其他团队需要完成的故事以公平和可管理的顺序排列(或者至少进行讨论)。在WSJF中评分最高的最重要的事项应该首先完成。我们通过为每个项目评分来进行这种排序。这比在敏捷跟踪工具中移动事物直到看起来正确更可重复。


我们可以采用敏捷团队用来评估这些UNS估算的方法,这些方法可能因团队成员而异。在敏捷中,有一个称为估算扑克的概念。想法是独立计算一个特性的成本,然后讨论当值不同时选择这些值的原因。这有助于揭示成员可能没有考虑到的未知元素。我们可以将相同的方法应用于估算用户需求,并继续为开发成本进行估算。
在估算扑克中,团队成员可以协作审查和讨论未完成故事(UNS),并揭示我们对理解和期望的差距。两到三个人必须比较估算以判断UNS。这将教会团队如何进行这种评分。一个人可以单独评分,但会错过其他人的观点价值。一个简单的一到三级的评分方法更有可能达成一致。然而,扑克方法旨在帮助沟通和澄清差异,并在出现分歧时达成共识。评分还将帮助决定是否在添加新功能之前修复错误。通过许多示例可以使这种方法更加直接。
估算扑克(也称为计划扑克)出现在本文的中间部分。请阅读它以了解更多信息。
文章:故事估算文章中的估算扑克 (https://scaledagileframework.com/story/)
评分企业解决方案
学习如何创建评分方法最好的方式是尝试进行评分。我们提供规则,展示典型企业应用中的示例,并指导如何评分一些棘手的故事。然后,用你自己的故事进行练习。
如何评分项目
首先,优先处理待办事项的错误方式。
看一下列表,看看产品负责人认为应该先做哪些;考虑那些开发者可以快速完成的任务。另一个常见的错误来自最有意志力的团队成员,他们通过大声说话来让自己的工作上升到最前面。这是我们想要避免的。对故事进行无偏见的评分方法允许故事的价值驱动需求。故事的价值应该自我表达。故事可能与前一章中的用例相匹配或为软件错误。有时,用例会被分解成多个故事,以便在冲刺中完成一个故事。在我们的讨论中,故事是我们计划在开发期间交付的用例的一部分。
正确的方法是使用无偏的方法,通过三步评级系统对项目进行排序。任何了解故事的人都可以生成分数。希望产品负责人、设计师、工程师或其他相关团队成员可以这样做,然后讨论和解决所有各方都没有考虑过的问题。这是通过回答以下问题来完成的。我们将用许多示例和描述来支持这些标准和每个分数的性能水平:
-
范围:它影响了多少用户?用3到1的分数回答。
-
频率:它有多频繁地被使用?用3到1的分数回答。
-
严重性:问题有多严重?用4到1的分数回答。
-
通过将它们相乘来计算每个项目的得分(例如,322 = 12)。
-
按得分对故事进行排序。随着新故事的到来,对它们进行评分。它们将自然地落入用户价值的正确顺序。
-
开发团队估算这些故事的成本。
-
将得分除以估计的成本。通常,从最重要的用户需求评分项开始工作。
-
如果某件事物花费过高,它可能需要分解成更小的故事。
如何保持评分的一致性
通过学习一些简单的规则,具有对分数有共同理解的独立人员应该能够对相同的项进行类似的评分。然而,差异是存在的。让其他人评分相同的文章,如果他们给出了不同的分数,讨论原因。十有八九会达成共识。如果对问题范围有困惑,某人可能低估了它。范围很少随着时间的推移而缩小,所以保守一些。使用较大的值。我们将深入挖掘UN中的每个分数的评分标准。我见过团队在中间值上达成一致(他们无法决定是2还是3,所以评分2.5)。这是一个选项,但这种规避方法通常是不必要的。需要确保故事跟踪工具支持这一点。我开发了与Jira和Oracle内部缺陷系统的集成,使用下拉菜单来简化选择整数的操作。然而,我们欣赏不浪费时间,所以只在需要时进行。不要在意见不一致的情况下自动取中间值。讨论分数背后的原因。我们可以解释每个分数背后的评分标准。
备注
在评分功能时,隔离正在评分的维度至关重要。忽略其他两个因素。独立于其他两个因素对每个因素进行评分。
范围 – 它影响了多少用户?
3 – 所有,2 – 一些,1 – 几个或有限的 用户角色
当考虑为谁进行此更改时,请考虑该群体在产品总客户数中的背景。它不能仅基于使用特定功能的人。每个人都会登录到安全门户以访问企业ChatGPT或其他服务 - 因此,登录问题得分为3。同时,只有少数人自定义他们的主页。有人可能会将其评为1。不要改变范围,并说,“好吧,在自定义的人群中,所有人都会使用这个功能。”这不是那样工作的。分数需要与其他故事和不同团队进行比较。目标是确定通过应用资源可以获得最大好处的地方,因此作弊对产品没有帮助。只关注受影响的用户数量。在此步骤中忽略严重性和问题的严重程度。
事实上,无法登录与在手机上“登录”字样奇怪地环绕的情况不同。我们将在最后一个用户指标中处理这个问题。
企业解决方案可能位于聊天界面中;部分可能是混合UI中的对话结果或从ChatGPT后端渲染的数据。无论形式如何,每个都可以影响少数或许多用户。
这里有一些可以得3分的范围示例:
-
常见问题和答案(因为“每个人”都会这样做)
-
登录
-
阻止登录或注册的着陆页问题
-
设置账户
-
几乎在所有情况下都响应非常缓慢
-
缺失主要用例
这里有一些可以得2分的范围示例:
-
常见问题和答案
-
服务、门户或网站的注册
-
自定义用户资料
-
在某些条件下响应缓慢
-
导出聊天记录的能力(分数取决于用例)
-
缺失的次要用例
这里有一些1分的范围示例:
-
不常见的问题和答案
-
在他们的资料中添加头像
-
导出聊天记录的能力(分数取决于用例)
-
在特定条件下响应缓慢
-
在小众群体使用的功能中缺少帮助链接
-
缺失的支持用例
我们希望对每个人都保持灵活,就像在图4.3**中那样。把它想象成几乎每个人,或者大约80%或更多,2代表下一个15%,1将是5%或更少的用户。

图4.3 – 所有用户都是80%或更高,而一些和少数用户在尾部
讨论和辩论,但努力保持评分的一致性。有时,每个人这个词意味着非常接近每个人,比如登录在线银行的客户。然而,我们知道一些老年人可能会避免在线银行,而且其中一些登录的人是高价值客户。如果所有事情都平等,为所有用户做某事比为少数人做某事更有价值。一旦了解了受影响的用户数量,请考虑问题、任务或动作发生的频率。
频率 - 使用频率如何
3 – 总是,2 – 有时,1 – 不常
如果每次用户来这里时问题都存在,那么很容易将其评为3级。如果只在特定的模式或状态下发生,那么它就是2级,那些偶尔出现的烦人错误就是1级。判断问题是否偶尔或很少发生,因为乘以1没有任何作用。考虑到间歇性错误难以重现。如果在日志分析或反复出现的错误中记录了错误,将其评为2级。有一定的灵活性,但总是意味着总是;使用一致的方法来判断2级和1级。如果不到5%到10%的时间,它就是1级。不要考虑所评分的重要性。这将在第三项评分中判断。
这里是一些3级频率的例子:
-
问题的答案总是错误的
-
每次打开对话框时,它都是空的
-
总是出现的拼写或语法错误
-
即便不需要或想要,滚动条总是会显示
-
对话的语气或风格需要调整
-
聊天不会回忆起在此会话中设置的上下文
这里是一些2级频率的例子:
-
问题的答案有时需要更正
-
如果你保存的名称太大,则会被截断
-
使用产品10分钟后出现超时错误,这太早了(如果通常超时是4小时)
-
有时对话框会出现在屏幕之外
-
在许多情况下,对话的风格或语气需要调整
-
聊天有时不会回忆起上下文
这里是一些1级频率的例子:
-
在特定的使用场景中,对话的风格或语气是错误的
-
错误很少出现,但无法理解原因。在那个会话中只发生了一次,但一切正常
-
在保存聊天会话时,偶尔会出现错误
-
有时在返回聊天窗口时,它会忘记我们处于哪个步骤,并显示已经确认的错误信息
在查看日志时,可能不明显地知道某事发生的频率。最好是查看更大范围的日志或测试实例来了解频率。但有时这更多是二或一的判断,因为数据很少。记住,这仅仅是频率;不要因为有些是严重问题而感到恐慌;我们应该在下一个环节捕捉到它们。
严重性 – 问题有多严重?
4 – 严重,3 – 严重,2 – 重要,1 – 不重要
这是最容易评分的,或者不是吗?严重性有时是激烈争论的。与大多数组织的常见错误严重性(Sev)相比,我们的值是相反的。因为所有组织都有严重性,所以这似乎很容易做。但并不总是这样。我们的评分需要使用更大的数字来表示更高的价值。我们可以分解人们对严重性的看法以及我们分配给每个严重性的分数。
实际的严重性1问题只偶尔出现。严重性1意味着服务中断 – 不可用,没有解决方案。我们通常在开发中不常看到严重性1,因为代码尚未投入生产,因此生产系统没有被评估。但从可用性的角度来看,如果任务无法完成,那就是可用性严重性1,因此它是最重要的,所以我们将其分配为最大值,4。很可能这些只是错误。一个组织应该有一份定义列表来帮助优先处理错误;从那开始。如果没有,可以创建一个。我让我的办公桌上打印了一份,以提醒我错误的类别及其价值。在我之前的公司,我们有一个低于严重性1的类别,称为严重性2 Showstopper。因为它们是阻止者,是一个阻碍进展的重大问题,所以我们也会将这些归类为4。从那里,我们进入严重性2,价值3分。它代表导致重大用户障碍的关键问题。严重性3价值2分。这些问题会导致一些问题,但可能不会让客户大声尖叫。最后,严重性4分配1分。这些都是小问题。大多数组织都有1到4的严重性等级,所以我们有4到1的值。
注意
在大多数组织中,严重性是很容易理解的;将定义扩展到包括LLM问题并反转值是一个好的开始。如果组织的评分模型扩展到4以上,考虑将其映射下来。应用五个或六个点的严重性等级将大大增加其在UN中的权重。这是一个选择,但我们将在本章后面讨论UN计算中加权的缺点。
对于错误,严重性是很容易理解的,但对于新特性的关键性或优先级可能就不适用了。就我们的目的而言,我们在这里使用一个衡量标准。以下是一些例子,考虑了问题、故事、特性或UI或ChatGPT启用解决方案中的交互。它们只是用来进一步讨论的例子。
严重性为4 – 严重(相当于严重性1)的例子:
-
美国残疾人法案 (ADA) 和网络内容可访问性指南 (WCAG) 或一个国家的等效标准:主要可访问性问题,包括缺少标签、非标准缩写、仅使用颜色来区分UI元素和聊天,以及不可导航或屏幕阅读器无法读取的建议。聊天或建议不可访问。
文章:网络内容可访问性指南 (https://en.wikipedia.org/wiki/Web_Content_Accessibility_Guidelines)
-
国家语言支持 (NLS): 缺少的消息文件导致页面无法渲染,错误信息混乱,无法翻译字符串,或在聊天或推荐中显示错误的语言。
文章:国际化与本地化 (https://en.wikipedia.org/wiki/Internationalization_and_localization)
-
帮助信息未出现或引导用户走向错误路径。
-
性能问题(超出服务水平):系统或产品需要更加响应。其响应时间显著低于任何设定的目标。
-
选择了错误的模型(即,当提示应该将用户引导到费用报告时,却将用户路由到时间报告)。
-
公司特定的语言被误解,启动了错误的流程或任务。
-
用户陷入循环,LLM不允许他们退出。
-
LLM误解了通道能力,导致任务失败。
严重程度示例 3 – 严重(通常是P2 bug):
-
帮助信息错误,但不会导致用户进一步错误
-
大部分用户需要帮助才能完成任务
-
在工作流程中丢失上下文
-
错别字(影响或改变意义)
-
可扩展性问题(如具有数千个元素的穿梭组件)
-
用户没有被阻止犯下严重的错误(并且没有撤销功能)
-
多个实体不被理解
-
公司特定的语言不被理解
-
用户必须以不同的方式重复自己才能被理解
-
LLM误解了通道能力,导致任务问题
严重程度示例 2 – 重要(bug系统中的P3):
-
帮助信息不明确、冗长或过于复杂,但事实上是正确的
-
大多数用户需要帮助才能完成任务
-
向客户展示的概念难以理解或过于技术性
-
布局需要更加明确
-
错误的页面标题或部分标签
-
错误的导航路径(如果用户失去上下文则向上提升)
-
不正确的时间格式导致用户错误(如安排会议)
-
语法错误
-
大多数实体集合被理解,但有一个被遗漏
-
解决方案没有有效地利用特定渠道的优势
-
重大不一致性(如按钮顺序)导致用户错误或缺少单位,可能会让用户困惑
-
用户没有被阻止犯下严重的错误(但可以撤销)
严重程度示例 1 – 次要(bug的P4):
-
小型不一致性(按钮顺序、使用“删除”代替“移除”、使用“确定”代替“继续”或数字后缺少单位,但仍然可以理解)
-
空白表格单元格的不正确使用与“N/A”或不可用
-
缺少正确的分页或分段
-
过于冗长或过于简略
-
不同的布局、表格、格式或UI元素可以改善LLM的响应。
并非所有这些问题都像我们可能预期的那样简单明了。不要担心;决定对客户来说什么是重要的。我们不期望每位读者都同意所有前面的例子。根据问题决定它们属于哪个类别,与团队分享例子以减少混淆,为评分标准建立一个共同的理解,并根据它们的评分来解决问题。
评分示例
练习学习这种方法。为了评分,我们使用 UNS 值并将它们相乘。然后,包括开发成本估算工作,以优先级和解决这些问题。
开发团队通常从T恤尺码开始。他们使用超小(XS)、小(S)、中(M)、大(L)、超大(XL)等来估算开发成本。他们必须在某个时候做数学运算,将这些转换为故事点,这是敏捷开发或开发天数的标准度量单位。在使用数字时,斐波那契数列通常用于这种估算。数字(1,2,3,5,8,13,21,34)随着每个间隔的增长来传达衡量大型项目的复杂性。估计值越大,间隔就越大,因为更大的努力在估算时具有更大的变异性。它们通常用于估算开发成本。一旦有数字,将 UNS 除以开发成本。这只有在故事足够接近开发,理解足够清晰,可以超出 T恤尺码进行成本估算时才做。开发可以使用团队同意的代理,如 T恤尺码(1-XS,2-S,5-M,8-L,13-XL 等)。然而,进行实际的成本估算练习,以更好地了解正在构建的内容。表 4.1 包含了一些 GUI 设计示例。这些例子包括对话问题。一旦理解了这些问题,开发就可以更准确地估算它们的成本。
| 来自 ChatGPT Web 体验 的样本 | 范围 | 频率 | 严重性 | UNS | 开发成本 |
|---|---|---|---|---|---|
| 1. 浏览器后退功能不会 返回 | 3 | 3 | 4 | 36 | XL |
| 2. 文本:“运行”应在 工具栏 中称为“搜索” | 3 | 3 | 2 | 18 | XS |
| 3. 在 字段 中按回车键无法提交提示 | 3 | 3 | 2 | 18 | L |
| 4. 对话式用户界面 缺少垂直滚动条 | 2 | 3 | 3 | 18 | M |
| 5. “企业支持建议”是一个 令人困惑的术语 | 2 | 3 | 2 | 12 | XS |
| 6. 栏目化的答案需要 正确排序 | 2 | 3 | 2 | 12 | M |
| 7. 默认用户界面语言与 网站 不匹配 | 2 | 3 | 2 | 12 | M |
| 8. 文本和格式化数字应 正确对齐 | 3 | 3 | 1 | 9 | XS |
| 9. 图片 没有标签 | 2 | 2 | 2 | 8 | L |
| 10. 任务区域不能被拖动或移动到 屏幕上 | 1 | 3 | 2 | 6 | M |
表 4.1 – 用户需求评分问题
让团队决定成本计算方法是一项挑战;这个焦点在于价值方法。为了了解为什么使用斐波那契数而不是小时或天的时间,了解故事点。在开始这个简单的解释之后,做一些搜索。如果你对故事点表示赞同,可以跳过这篇文章。
文章:为什么我们使用故事点进行估算? (https://www.scrum.org/resources/blog/why-do-we-use-story-points-estimating)
在表4.1中每个项目的UNS值背后都有一定的理由。因为你对应用程序不熟悉,所以每个项目都提供了上下文。我们将把这些例子与生成式AI应用中典型的LLM问题联系起来:
-
浏览器的后退按钮不会“后退”:
-
背景:在构建Web应用时,过程可能从一个网页跳转到另一个网页;用户偶尔想要返回上一步是很自然的。因此,他们会点击浏览器的后退按钮。如果没有为此进行编码,应用将无法正确导航。
-
原因:因为用户感到迷茫且无法返回主UI,所以这个问题需要立即解决。技术栈在支持后退功能时存在问题,这也是开发成本高的原因。这意味着需要重新设计浏览器会话的创建方式,因此成为一个挑战。如果成本低于第二项的两倍(因为其分数是第二项的一半),那么在解决第二项之前先解决第一项仍然更有价值。当LLM聊天集成到现有应用中时,会出现各种问题:在同一个网站上打开新标签页或窗口时,对话是否会从上次结束的地方继续?浏览器中的后退按钮如何影响对话线程?当客户在多个窗口中交互时,对话是否会与多个打开的窗口混淆?
-
-
文本:“运行”在工具栏中应称为“搜索”:
-
背景:在设计用于搜索数据库的UI时,我们通常会看到一个搜索字段。除了“搜索”之外的其他术语可能会令人困惑。
-
原因:除非是动态的(根据用户资料或其他因素变化的文本),否则UI上的文本将始终对所有用户可见;它总是对受影响的用户数量得分为三。每个人都在这个应用中搜索。如果“运行”标签基于用户资料生成,它可能只针对部分受众,并在某些条件下出现。在这个例子中,它始终在屏幕上,并且始终被使用,因此频率也是三。在评估严重性时,如果它导致错误的交互,得分为三;如果文本只是令人困惑,得分为二。
-
替代UI考虑因素:如果这是一个来自聊天提示的对话式搜索,我们将训练我们的模型理解搜索功能的多种名称(例如,帮我找到所有具有…的手机型号,有哪些手机型号具有…,列出手机型号…)。默认模型应该很快就能捕捉到这种细微差别,但在企业特定任务中,需要训练模型理解任务以及询问这些任务的各种方式。这需要提示工程和微调,我们将在第7章,提示工程中开始介绍。
-
-
在字段中按回车键无法提交提示:
- 背景:ChatGPT游乐场中也有类似的问题。他们决定键盘上的回车键应该用于在文本输入字段中创建换行符。要提交文本,请按command + 回车(在Mac上),如图图4.4所示。

图4.4 – 使用不自然的键盘输入提交示例
- 推理:我们理解人们在移动或桌面设备上如何自然地按键盘上的回车键来提交表单。他们必须停下来处理屏幕上的按钮点击,当这种情况没有发生时。在ChatGPT的图4.4中,他们必须同时按下两个键盘按钮。这很烦人,也不自然。因此,它在严重性量表上得分为2。用户可能永远不会习惯这种交互,因为它与他们已经做的99%的交互不同。OpenAI的交互设计师可能在这场战斗中失败了,但他们确实在按钮标签中包含了command + 回车命令。这最多算是一个折衷方案,但至少是一个可见的提醒。这是一个第9章,指南和启发式方法中涵盖的视觉提示的例子。
-
对话式UI中缺少垂直滚动条:
-
背景:如果存在滚动文本但没有滚动条,用户将难以获取他们的结果。
-
推理:在这种情况下,滚动条缺失了。这不仅仅是因为操作系统设置而隐藏,但它并不是所有用户都会遇到(得分为2)。它只会在文本很多且不是所有答案都很长的情况下发生。然而,如果用户想阅读整个答案,滚动条没有出现或不受支持将是一个大问题(得分为3)。这个案例有一些解决方案,但我们仍然可以看到这个关键问题的得分很高(严重性得分为3)。
-
-
企业支持建议是一个需要澄清的术语:
-
背景:如果术语对用户群体来说不熟悉,他们可能会错过关于他们任务的重要信息。
-
理由:客户反馈表明这个术语需要澄清。我们理解结果可以写得更加以用户为中心,而不是那么技术化。有些人会理解这个术语,所以它只评分为2。它将始终被使用;每个人都会看到它,所以在频率尺度上它是3。但是有帮助的,这个术语包括诸如支持和推荐等关键词,所以额外的词“企业”并没有增加任何价值;它不是关键的。正如预期的那样,编辑一个词并不难,所以成本是极小的。对话风格、语气和语言可能会引起问题。审查知识和帮助的编写方式,并努力通过提示工程来解决LLM如何响应的问题。
-
-
列表结果需要正确排序:
-
背景:列表的逻辑顺序应该是默认的。如果存在多个逻辑顺序,应允许用户控制,并且可以使用客户历史记录来决定默认顺序。
-
理由:在文档和表格中的数据挑战在于保留表格特征。这样,一些信息得到了保持和清晰。例如,按字母顺序显示国家前25名大学橄榄球队并不有用。它们应该按当前大学排名排序。表格应包括最后排名的日历日期(以便旧数据明显)。然而,只有一些用户要求这种数据,如果表格可排序,那么请求数据排序的解决方案就很简单。在这个例子中,我们预计不会对足球前25名球队进行排序。在第5章定义期望体验中,我们将详细介绍在小型聊天窗口中使用表格。表格的空间有时非常紧张。在桌面网页体验中可接受的表格在移动聊天体验中可能不起作用。在这种情况下,并非所有用户都受到表格的影响(评分为2),但它始终是一个问题,因为它附带了糟糕的排序选择(评分为3)。由于数据类型的原因,这不是一个大问题(评分为2)。关键数据,如本月份可能关闭的交易,需要良好的排序顺序(交易规模、关闭的可能性)以及使用GUI或通过对话更改顺序的能力。
按离我最近的潜水距离排序交易
按数量显示订单
显示需要最多关注且能给我带来最多佣金的交易
-
-
默认UI语言与网站不匹配:
-
背景:第9章,指南和启发式方法将讨论匹配客户的语言和理解。如果存在不同的术语表示相同的意思(在企业中很常见),用户可能只理解在适当语境中的术语。这适用于口语和书面语言。
-
推理:在国际用户界面中尊重客户的愿望。如果他们已将界面设置为西班牙语,则应提供西班牙语的对话聊天或AI结果。如果他们必须用西班牙语请求,“西班牙语,请”, 这是一种失败。如果并非所有信息都是西班牙语,那么失败更为严重。如果LLM支持多种语言,它将如何对两种语言的组合做出反应?关于词语选择、国际化或文化问题的问题应评估是否需要修复或重做。我们将在下一章中讨论一些这些问题。在这个例子中,大多数客户使用英语工作,因此每个主要语言对受影响的客户得分为2。他们总是会遇到这个问题(得分为3)。根据语言和用户,严重性通常为2。如果用户只能用他们的母语工作,而网站不支持,则得分为4。
-
-
文本和格式化数字应正确对齐:
-
背景:货币、表格数据和名称:值对必须以特定的方式对齐。
-
推理:只要标签和对齐不影响理解,即使它们总是出现,这些得分也会较小。决定风格和干净体验对公司来说有多重要。然而,正如所示,这些是低(XS)成本,因此通过一些工作,它们将相应地被优先考虑并修复。通常,格式化可以是LLM的问题。在聊天体验中,客户可能能够指导LLM更改格式(例如,以表格形式显示)或以不同的方式呈现结果。可能需要对LLM给出的指令进行改进。
-
-
图像没有标签:
-
背景:当UI包含图像时,例如在搜索结果中,它们必须用文字进行标记。使用LLM比人类更详细地标记这些图像是可能的。例如,我们可能在服装网站上展示鞋子。“鞋子”不是一个不常见的标签,屏幕阅读器可以为视觉障碍者读取。图像分析LLM可能提供更准确的“带有皮革上部的耐克网球鞋,底部有红色、绿色和黄色的面板,以及带有粘扣带的透明鞋底。”
-
原因: 根据上下文,没有标签的图片可能比仅仅是一个可访问性问题更重要。在这种情况下,这些照片更多的是装饰性的,并且由对话中的文本支持。但要注意这一点:确保体验是可访问的,并且如果标签是由AI生成的,它们应代表对目的的清晰理解。重要的图片必须为视觉障碍者描述。GPT 4o可以理解和呈现图片的细节。因此,用户可以听到描述并做出购买决定。这些描述不一定会在屏幕上显示。屏幕阅读器将从HTML元数据中提取描述并朗读。这可以通过批量处理请求描述并将其存储在数据库中来以较低的成本完成。ChatGPT中的批量处理可以节省金钱。这些健壮的标签也可以输入到搜索中,以实现无需额外LLM成本的健壮搜索。
-
-
任务区域不能拖动或移动到屏幕上:
- 背景: 企业用户有仪表盘。由于LLM的存在,仪表盘将变得更加智能。先来预览一下:第12章,结论将讨论智慧的价值,这是每个仪表盘都应该具备的。用户尝试添加默认未显示的区域。如果他们去自定义页面,却无法添加或移动某些区域,他们会认为这是一个错误。图4.5展示了通过拖动将聊天区域添加到仪表盘的过程。如果不起作用,那就是这个问题。

图4.5 – 将区域拖动到仪表盘上
- 原因: 这与一个UI功能有关,该功能允许自定义区域以及ChatGPT体验。然而,只有少数人这样做(得分为1);他们让它在页面上保持原样。尽管问题始终存在,但大多数人不会注意到它。
即使在ChatGPT聊天窗口中,我们也可以展示表格,在结果中包含图片(如产品图片、示意图或图表),使用不正确的术语,甚至有滚动问题。ChatGPT不是企业中的独立解决方案;它是更广泛解决方案的一部分,因此不仅可能包含LLM特有的问题,还可能包含GUI问题。
对待办事项进行排序
现在我们来完成我们的想法。我们已经用故事点替换了我们的开发成本。然后我们可以计算和优先处理我们的待办事项。在表4.2中,填入分数后,什么会浮出水面?
| 来自集成ChatGPT Web体验的样本 | UNSs | 开发成本 | WSJF |
|---|---|---|---|
| 2. 文本:“运行”应在 工具栏中称为“搜索” | 18 | 3 | 6 |
| 5. “企业支持建议”是一个 令人困惑的术语 | 12 | 4 | 3 |
| 8. 文本和格式化数字应 正确对齐 | 9 | 6 | 1.5 |
| 4. 对话式UI中缺少 垂直滚动条 | 18 | 14 | 1.23 |
| 6. 列表答案需要 正确排序 | 12 | 10 | 1.2 |
| 7. 默认UI语言 不匹配 网站 | 12 | 12 | 1 |
| 3. 在 字段中按回车键无法提交提示** | 18 | 20 | 0.9 |
| 1. 浏览器的后退按钮不会 后退 | 36 | 43 | 0.84 |
| 9. 图片 没有标签 | 8 | 16 | 0.5 |
| 10. 当任务区域为空时,无法将 自定义区域 拖放到屏幕上 | 6 | 24 | 0.25 |
表 4.2 – 按WSJF排序的故事(WSJF较大的应优先开发)
行号从上一张表显示,以显示顺序如何变化。以下是一些评分结果观察:
-
前三项都是低成本,也称为低垂的果实。它们容易摘取和完成,但它们不更令人兴奋吗?
-
表格中的第八项(1. 浏览器的后退按钮不会“后退”)具有最大的成本,但我们注意到它具有最高的UNSA。再次审查并评估是否有一个更简单的解决方案可以在较低的成本下带来大部分价值。如果属实,那个新解决方案可能跃升至列表的第三位。有时,简单的解决方案可以解决复杂问题的一部分。
-
有多个项目具有相同的UNSA,但一旦计算了WSJF,就没有两个项目具有相同的分数。这实际上是因为我们只评分了十个项目。在现实中,可能会有并列。这意味着做任何并列的项目都是可接受的。
修补案例研究回顾
在第 3 章的修补示例中,确定ChatGPT的最佳用例,我们讨论了多个LLM机会。然而,现在我们有用户评分,我们应该重新审视这些交互。为了保持简单,我们将从表 3.4中选取前三项机会,重新介绍步骤,并添加WSJF评分,如表 4.3所示。
| 为ChatGPT支持确定的 优先步骤 | UNSA(ABC) | 开发成本 | WSJF |
|---|---|---|---|
| 1) 步骤 11:从现有案例生成测试。识别测试中的 差距 。 | 12 | 8 | 1.5 |
| 2) 步骤 12:监控生产实例 的异常情况。 | 8 | 16 | 0.50 |
| 3) 步骤 6:预测修补计划的 结果,以及缺失或 冲突修补的影响。 | 8 | 32 | 0.25 |
表 4.3 – 按WSJF优先级排序的ChatGPT用例
因此,我们现在有最关键的补丁问题需要解决。因为UNs非常接近(如第3章,识别ChatGPT的最佳用例)所述),最终取决于哪个项目最易于实施。对步骤11进行LLM解决方案的成本估计较低,因为模型需要更少的移动部件来生成测试用例。我们需要了解软件的元信息、版本、平台、操作系统补丁级别、现有补丁列表,以及我们可以用来与现有错误信息结合以创建LLM顾问的信息。开发用于步骤12以监控异常的模型需要额外的数据源,因此需要更多的API工作来收集和提供数据。预测补丁计划成功的步骤6由于预测如何数万亿可能的补丁组合可能影响安装的复杂性,因此构建和维护成本最高。每个步骤都代表其自身的LLM模型,可能不止一个模型,在第第8章,微调中进行了讨论。有很多重叠,但输入和输出将会有所不同。根据生产实例的客户数据了解哪些补丁集合是稳定的,比了解应该工作的情况更好。当我们试图包括理解什么可能使其更好或更差时,问题变得更加复杂,这就是为什么步骤6*的估计值要大得多。您的用例将比我们尝试解释那些对该领域不熟悉的人的补丁过程更容易理解。还有关于LLM作为对话的一部分或来自推荐的响应质量的例子;我也想谈谈这一点。
我们知道LLM将会尝试进行幻觉并尝试做出回应。第7章,提示工程,将讨论如何通过创建护栏和指令来控制LLM的输出。当LLM生成错误输出时,这成为一个评分问题。日志显示了哪些客户受到了问题的影响。监控输出将有助于识别问题的频率。根据评分标准判断问题的严重性。
对于评分没有统一的答案;这取决于。幻觉可能有害或不是那么糟糕。它们可能经常发生或很少发生,可能影响所有客户或仅影响特定受众。同样,这可能是缺乏或知识冲突、缺少API、LLM未考虑的来源、培训不当、提示不明确,或者只是超出应用程序的范围。通过日志分析,如第2章,进行有效的用户研究中所述,加上评分和优先级排序的努力,团队拥有了处理重要工作的所需工具。将软件跟踪工具扩展到实施此过程。
通过评分扩展跟踪工具
大多数敏捷、产品或错误跟踪工具都可以展示额外的字段或列。例如,一个开发优先级下拉菜单(1到4是典型的)可能已经存在。UNS字段类似,但更多地基于以用户为中心的属性。
在公司的跟踪工具中展示所有四个字段(三个个人得分和最终可排序的得分)。这允许进行可见性和讨论来验证假设。正如提到的,可能会有轻微的分歧,展示得分将使其公开化。预期能够使用此方法来驱动故事的排序和错误排序,以便冲刺团队、发布管理和客户可以看到这种排序是如何以及为什么存在的。透明度在这里是最好的。在跟踪工具中评分,然后按得分排序。Jira非常受欢迎,支持自定义字段甚至计算。WSJF在Rally中得到支持,大多数工具都可以通过自定义处理这些得分。
尝试用户需求评分方法
这里有一个带有示例的电子表格,带有下拉菜单和计算。这可能有助于开始。带来一些示例,作为一个团队来理解这个方法,并填写故事和得分。
GitHub: 评分故事样本工作表 (https://github.com/PacktPublishing/UX-for-Enterprise-ChatGPT-Solutions/blob/main/Chapter4-ScoringStoriesSamples.xlsx)
点击图4.6中突出显示的下载按钮,将文件下载到桌面。GitHub上没有这些文件的查看器。

图4.6 – 如何从GitHub下载文件
一张简单的纸和笔工作表可以在研讨会中分享,向团队介绍这个概念,并指导人们完成这个过程。
GitHub: 评分工作表 (https://github.com/PacktPublishing/UX-for-Enterprise-ChatGPT-Solutions/blob/main/Chapter4-Scoring_Worksheet_for_Design%20WSJF.pdf)
当然,有时候过多并不是好事。抵制使用更多措施和能力来增强评分的需求。从小处着手。让我解释一下原因。
创建更复杂的评分方法
我们被提醒了KISS(Keep it simple, silly)原则。一个组织可以做到极致,创建一个如此复杂的评分系统,以至于没有人能理解得分2,032和2,840之间的区别。我了解一个系统,它有17个因素,根据谁升级了问题(如果是一个副总裁升级问题,那么它的价值比我做要高),问题提交时的年龄,以及其严重性,以及其他许多因素来加减分。每个人都想将自己的因素纳入评分中。抵制这种做法。
我发现(并且一些简单的调查可以证实)一个凡人几乎不可能通过基于17个因素的评分来获得对工作输出的良好感觉。确实,提出的简单评分方法不会区分20个故事,它们都有12分的评分。然而,当我们考虑到几个敏捷团队分配的成本和工作时,可能会有更大的差异。在敏捷待办事项中,项目等待轮到它们是完全可以接受的。考虑一下,如果包括对并列项目的排名规则会有所帮助。例如,对于所有客户的12分问题应该比来自更少客户的更糟糕的bug的12分问题有更高的优先级。然而,复杂性越高,理解和判断差异就越困难。确定这是否值得额外的复杂性、混淆和开销。至少,我们主张不排名故事和任意评分。使用一种可重复的方法,甚至可以跨团队一致应用。因此,在待办事项上汇总排名是一种苹果对苹果的比较。一旦故事根据成本划分,价值就会分散。此外,我们的目标不是分散。如果两个故事被判断为相同,那么完成任何一个故事的价值都是一样的。
从WSJF自上而下工作不是一种宗教。我们不一定将WSJF视为教条。它是一个指南。除了作为指南外,不同的团队有时有特定的专业知识(并非所有组织都能在敏捷团队做所有事情方面做到完美)。因此,这可能会影响团队从待办事项中选择的优先级。选择第三项,而将前两项留给另一个团队可能是最有效和最明智的方法。
在敏捷中处理多个待办事项
通常,在大型的企业开发环境中,我们会有不止一个待办事项列表。因此,这次讨论是为那些熟悉多个冲刺团队规划复杂性的朋友们准备的。冲刺的Scrum团队有一个待办事项列表,项目、可能还有项目组合和发布也都有。但事实上,这些都是虚拟的,为一个冲刺标记一个项目并不意味着忽略其他所有待办事项的上下文。如果做得恰当,一个单一的大待办事项列表有时有助于从中提取一些关键指标。在规模化的敏捷开发中,他们会查看不同级别的故事汇总。在项目组合层面,可以查看分解为故事的功能。如果一个功能得分为36分,并不意味着该功能中的所有故事都将具有相同的价值。随着分解的进行,有些故事比其他故事更重要。
项目或产品级别的待办事项列表可能跨越30个或更多团队,正如我的旧组织所做的那样。如果几个团队代表了50%的待办事项(现在考虑的是故事点或工作量,而不是项目数量),那么可能需要重新考虑团队分配的方式。如果团队使用不同的模型来估算故事成本,比较起来会很困难。然而,我们还想平衡团队的自主性。在规模化的敏捷开发中,当许多敏捷团队开发同一应用程序时,需要一个关于故事点的良好记录的方法。对于那些尚未信服的人来说,这是再次推销故事点的一个尝试。
文章:什么是故事点 (https://agilefaq.wordpress.com/2007/11/13/what-is-a-story-point/)
不要被按小时估算所束缚。抽象的故事点有其价值。然而,精确到小时会让人头疼,而且由于不同人的工作速度不同,会产生复杂情况。迈克·科恩(Mike Cohn)对此进行了论述。
文章:不要将故事点等同于小时 (https://www.mountaingoatsoftware.com/blog/dont-equate-story-points-to-hours)
如果有一个统一的待办事项列表和一致的故事点方法,基于客户点的交付可以进行比较。一个团队有五个故事,每个故事得分为12分,在该冲刺中有(5x12)60个客户点。与此同时,另一个团队可能只完成了三个故事,得分分别为36、24和12,从而向客户提供了大致相同的价值(62点)。一个团队处理15个故事,总分为30分,提供了1/2的价值。将团队重新分配到具有更多客户点的项目是有道理的。这不仅仅是一个单冲刺团队按列表自上而下工作的挑战,当进行规模化的敏捷开发时,必须考虑何时重新分配冲刺资源以实现最有效的效果。
文章:Scaled Agile Framework (https://scaledagileframework.com/)
我无法强调SAFe提供的价值。如图图4.7所示,SAFe的完整版本包括成熟模型、概念、精炼的过程以及广泛的文档、细节、培训和支援。请访问网站,因为这个概述是不断演变的。

图4.7 – SAFe地图
例如,一个典型的组织可能会按软件单元计算和报告错误。一个有50个编辑和排版错误的团队可能不如一个有三个性能错误的团队,以及他们修复这些错误的速度或是否值得花费时间和精力。拥有三个错误的团队可能在进行一些更有价值且成本更高的工作(开发成本),而拥有50个容易修复错误的团队则不然。对于设计,我们关注客户点。在敏捷开发中,我们可以关注故事点或努力程度。然后,我们可以根据分数查看这个基于单一虚拟待办事项列表,并从中获得有价值的信息。
有序待办事项列表不如带有评分的列表有帮助。在序数尺度上的排名(1比2高)不如评分(15比10多50%)有效。我们在入门统计学中学到了这一点。区间尺度(两个数字之间的差异是相等的区间)更强大,携带更多信息。用户评分10是5的两倍。将某物排名第五和第十并不传达这种重要性。第十项最多比第五项落后五个位置。也就是说,第6到第9项在价值上可能没有巨大差异。区间(或比例)尺度揭示了这一点。
注意
分数是一个区间尺度,而排名则不是。分数更强大。比例尺度与区间尺度类似,但有一个绝对零点。它们之间的区别对于这次讨论不是本质的。只需意识到知道两个分数(6到12和12到18)之间的差异代表相同的差异的价值。
这就是为什么他们会展示用于排名大学足球队所用的分数。足球迷们然后知道他们的最爱球队距离下一个位置有多远落后。
回到表4.2,我们可以看到原始列表上的第一个项目,得分为36,由于显著的开发成本而大幅降低优先级。仔细观察列表上前五项的成本;修复所有这些比修复排名第一的单一返回按钮项更有价值。这种价值只有在考虑开发成本和WSJF排名时才会显现。
注意
看起来,即使有长期的开发提前期,也不做这样有价值的事情,即使得分为36,这似乎是反直觉的,这将是有战略性的,因此会被优先考虑。然而,那些较小的项目提供了更多的价值。我们优化客户价值。
存在评分问题。意识到这可能具有挑战性。意识到可能出现的困难意味着它们可以在过程中得到解决。
评分的实际情况
当人们的意见介入时,没有评分方法是完美可重复的。我们尽最大努力尝试建立一个避免争论的系统。我已经使用这个系统很多年了,也有一些陷阱。太阳微系统公司的创始人之一斯科特·麦克尼利经常被引用泰迪·罗斯福的这句话的变体,“最好的决定是正确的决定,次好的决定是错误的决定,最坏的决定是没有决定。”所以,让我们在某个地方立下标志,做出决定,优先处理我们的待办事项,了解一些限制,然后继续前进。
我了解敏捷,但这不是WSJF
我倾向于参考SAFe网站或唐纳德·雷因特森的《产品开发流程原理》一书。用户需求评分是WSJF解决方案的一种变体,因为它可以在一个小时内进行指导并轻松重复。UNI是一个分子(它是用户+业务价值、时间紧迫性和风险降低的价值的组合,以及机会启用价值的评分)。实际的WSJF使用斐波那契类型的数字,使用这个尺度有更大的范围。再次强调,这是为了帮助保持简单,愚蠢。
WSJF在您的组织中部署了吗?如果是,做得很好。CoD指标可靠且可重复吗?如果不是,采用一个一致的准则,如所提出的准则。
使用简单的数字一到四
注意到SAFe支持评分的区间尺度概念。数字的斐波那契序列(1,2,3,5,8,13,21,34)传达了区间尺度。区间尺度通常用于成本开发。我们的直接评分也是区间尺度,但它们的范围不如斐波那契序列广泛,因为它们只从一到四。我们可以探讨为什么三点或四点尺度是有意义的。
SAFe的首席作者迪安·莱夫林韦尔建议,由于较大的数字不够精确,使用“斐波那契使 达成共识更容易”。
文章:带有WSJF的待办事项 (https://web.archive.org/web/20220919164755/https://techbeacon.com/app-dev-testing/prioritize-your-backlog-use-weighted-shortest-job-first-wsjf-improved-roi?amp)
通过一组小数字可以快速达成共识,但很容易理解到更大的数字只是粗略估计,因此可能不值得争论。简单性使得整个过程更容易消化。如果你对使用斐波那契数列有强烈的感受,并且在使用故事估算方面有良好的经验,继续使用它进行成本估算。它是成本估算的一个优秀工具。对于用户需求评分,我们在分子之间的小数和无限大的数字之间的差距不起作用。它会压倒故事。从1到10的评分被评估过,但讨论四与六之间的时间似乎不值得。拥有十个评分标准非常困难。坚持在需求方面(分子)使用三或四个值。开发根据故事点或我们之前讨论的扑克估算来决定分母。另一个考虑因素是权衡用户评分中的每个因素。
加权因素
总是考虑值是否应该被加权更多是一个好主意。我们可以在不改变评分标准或尺度(一至三或四)的情况下引入加权。让我们以严重性评分为例。我们考虑过将评分与100分尺度对齐,但没有找到好的平衡。4分比3分更有价值,但我们是否需要它是100、50、25还是10?乘以或可能不使用最后一个值为1是否有区别?有人应该将其作为一个研究项目来处理。权衡每个因素会是什么样子?它使计算更加复杂。
我们用数字确定了底线。通过将值相乘,每个评分都值33%。如果某个评分更重要,可以引入加权。我不知道哪个更重要。它们似乎都同样重要。无论如何,按照文档中的方式尝试,或者做得更好,但不要做得更少。这些数字允许进行简单的数学运算。

在经过几个周期后,什么是重要的变得更加明显。通常会发现12分或更高的分数被优先考虑。得分较低的项有时是低垂的果实——也就是说,它们容易修复,因此不会占用太多时间或精力,但通常不会引起兴奋。它们确实推动了一致性和质量。严重性值得额外的洞察。
严重性似乎很难判断
每个开发组织都有某种形式的错误严重性。通常,科技公司有四个级别的错误,但有些公司会达到五到六个级别。这里有一个GitHub文档,提供了大量严重性的示例。经过实践,判断变得更加容易。
深入研究
GitHub: 在ChatGPT用例中定义严重性(https://github.com/PacktPublishing/UX-for-Enterprise-ChatGPT-Solutions/blob/main/Chapter4-Deep_Dive_into_Severity.pdf)
我们看到的情况是,Sev 2s获得了所有的努力。Sev 1s会立即处理,而Sev 4s,通常围绕适配和完成度,却从未被处理。同一功能上的Sev 4s集合会累积起来。有人会继续使用语法错误、拼写错误和布局混乱的生成式AI吗?每个问题可能看似微不足道,但一个元素中存在多个问题会迅速侵蚀信任。通常,我们在LLM输出中看到这些错误非常少;这将是关于幻觉、理解缺乏足够上下文的问题以及缺乏正确的企业知识,这将是一个问题。这些应该被评分在1到3之间。作为团队练习,随着团队判断严重性的提高,集体专业知识也会提高。不要被那些大问题吓倒;敏捷可以帮助将它们分解成可管理的部分。
成本如此之高,以至于我们永远无法完成工作
在敏捷中,对此有一个解决方案。如果成本很高,考虑如何将故事分解成更小的部分。我们不希望工作受阻,因此我们使用敏捷方法来获得正确大小的故事。交付故事的一部分仍然可以提供价值。有时,需要后端工作,这些工作不会直接返回用户价值。根据这些故事将来的用户价值来评判这些故事。独立于更大的故事或史诗来评判单个部分。有时,弄清楚如何将大型故事分解开来是一项创造性的工作。我们无法提供一个神奇的解决方案。头脑风暴,考虑用户价值从何而来,并寻找部分解决方案。
将问题分组为错误以保护质量
将类似的错误分组是有意义的。我们不需要为同一种基本变化提供十几个错误。
注意
我们在这里转换方向。这是关于企业缺陷系统记录的问题严重性。回想一下,分数会反转这些值。分组问题允许团队在缺陷或跟踪系统中管理更少的工作。当跟踪30个问题时,跟踪100多个缺陷会更有意义。
一个建议是查看问题集合,考虑它们是否都与同一个问题相关。也就是说,能否修复和解决三个不同的缺陷?另一个问题是范围。如果一组缺陷与同一材料相关或在单个ChatGPT实例(在进行RAG时)内,使用规则来聚合缺陷:
-
对于特定问题、交互、结果或元素的3个或更多严重程度2的缺陷集合相当于一个严重程度1的缺陷(“三振出局”规则)
-
对于一个概念的一组训练同义词或微调示例可以组合成一个严重程度2的缺陷
-
五个或更多严重程度3的问题应作为一个严重程度2的项目跟踪
备注
在对话式AI中缺失的意图或任务可能是一个严重程度2的“缺陷”(因为原始设计/规范定义了它)或一个严重程度3的ER(如果预计它不切实际)。
最后,考虑添加一个关卡来保护发布质量。我们无法知道您的问题规模,因此根据需要调整:
-
任何实例或模型都没有严重程度1的
-
每个实例或模型中最多不超过2个严重程度2的开放问题
需要一个缺陷和功能跟踪系统。将WSJF整合到该软件工具中。
如何将WSJF融入组织
这些都是简单的计算。任何电子表格都可以跟踪结果并用于排序和排列列表。然而,将此功能集成到跟踪工具如Jira、Rally或任何自建工具中会更好。为评分添加自定义字段和下拉菜单,然后使用计算字段将未完成故事点数(UNSF)除以开发成本。通常以故事点数(推荐)进行,但有些组织使用天数;任何一致的方法与随机相比都是可接受的。每次审查待办事项时,根据此排序选择工作。这种方法确保了最大的效益。
摘要
到目前为止的所有内容都是为了理解用例以及在哪里应用资源来评估和决定如何处理ChatGPT解决方案。本章是一个适用于ChatGPT交互、推荐体验、后端解决方案或任何软件开发项目的敏捷方法。我们需要一种方法来弥合定义用例和决定要解决哪些用例之间的差距。创建一个可重复的方法适用于任何开发项目。
利用本章中的学习成果做一些事情:
-
估算现有故事、用例、缺陷或功能的价值
-
与开发团队合作,解释故事并获取他们的成本估算
-
解决评分故事中的问题并优先处理待办事项
-
将WSJF整合到产品生命周期中
一旦解决方案运行起来,我们可以应用更复杂的方法来评估LLM的性能,但同样的评分概念也可以在那里使用。我们的预开发之旅即将结束——还有一站。下一章将专注于设计正确的体验。之后,一旦我们深入到ChatGPT技术,我们可以重新评估和验证所构建的内容以及如何改进,再次借鉴研究和评分讨论。
参考文献
![]() |
本章中提到的链接、书籍推荐和GitHub文件都发布在参考文献页面上。网页:第四章参考文献 (https://uxdforai.com/references#C4) |
|---|
第五章:定义期望的体验
为了定义期望的体验,首先要做的决定是哪些体验需要引起注意。这是上一章开始讨论的优先级讨论。了解这些用例将出现在哪里有助于范围、规划和执行。一些需要构建传统的对话体验;令人惊讶的是,这些现在可以被称为经典了!其他将使用渠道(如Slack、Teams或Web体验)来处理交互元素,例如GUI组件。一些将在现有渠道中扩展功能,以包括LLM并在工作流程中解决有限的用例。最后一个是一个强大的渐进式方法。其他将构建单一用途的机器人或仅限语音的界面。每种体验都有独特的和一般的考虑因素。
本章将涵盖可以使用ChatGPT开发的最高优先级的企业用户体验,以及三个总体设计元素:可访问性、国际化和信任。准备好以下主题:
-
设计聊天体验
-
设计混合UI/聊天体验
-
创建仅限语音的体验
-
设计推荐和幕后体验
-
总体考虑因素
设计聊天体验
由LLM驱动的聊天体验有几种口味:一个纯聊天体验,如OpenAI的聊天UI,或者是一个更大GUI体验的一部分的聊天窗口。每个都有独特的问题,两者都有一系列问题需要解决。传统的纯聊天体验是一个很好的起点。
纯聊天体验
许多,如果不是大多数读者,都会有这个用例:一个由ChatGPT解决方案支持的对话体验。它可能支持传统的对话AI平台(Salesforce、Oracle的数字助手、Alexa、Google Assistant或数十家其他供应商)或最终取代它们。然而,主要的交互是通过聊天窗口进行的聊天响应。这意味着渠道SMS(短信)、WhatsApp、微信、Facebook、LinkedIn、Web体验、Slack、Teams或其他服务依赖于这些渠道支持的技术,包括集成、后端服务、安全和用户体验。
如图5.1所示,这个示例聊天体验直接来自OpenAI的UI:

图5.1 – OpenAI的传统聊天UI
通常会有一个消息输入区域和一个提交按钮,单线程讨论,能够下载讨论,以及为顾客输入和AI响应提供视觉提示。它比大多数都更稳健,因为作为一个认证用户,它跟踪之前的对话,这是一个很好的细节。它有空间,因为它是一个整个浏览器窗口,且对移动设备友好。企业体验可能会将聊天框架嵌入到网站、门户或应用中。一些UI包括文件附件、清除字段或关闭或移动窗口等功能。
OpenAI的iPhone客户端有一个类似于Oracle所介绍的好用UX功能:对于长答案,只需稍微滚动一下。与Kevin Mullet合作,我们提出了“滚动超量”这个问题。当AI返回的消息长度超过窗口大小时,窗口不应滚动到响应的末尾。如果发生这种情况,用户必须向后滚动以找到消息的开始位置,然后向前滚动以阅读。这对可访问性来说是个头疼的问题,对其他人来说只是有点烦人。正如图5.2所示,OpenAI移动UI中返回消息的第一部分带有箭头。用户点击箭头后,整个消息才会返回,所以用户仍然需要回到他们离开的地方。他们几乎做到了!

图5.2 – OpenAI聊天消息发送(左),当窗口满时暂停(中)。点击继续箭头显示整个消息(右)
检查你的聊天客户端是否足够智能以处理长消息。当添加更多细节但尚未完全显示时,滚动条是否增长,但屏幕却无法滚动?用户能否通过一次滚动动作阅读消息,从响应的开始处开始?所有聊天用户界面都应该支持滚动超量。例如,Slack会显示一个未读消息按钮,将用户带到他们上次离开对话的地方。这是解决此问题并减轻用户因不知道错过了什么而感到的压力的另一个很好的微交互模式。
在设计聊天体验时,考虑所有这些微交互以及需要暴露的元素。微交互是那些虽小但至关重要的元素,使UI时刻无缝且愉悦。它可以简单到当鼠标悬停在按钮上时按钮颜色改变,提供可点击的提示,或者打字指示器以帮助预测朋友消息的到达。它们可以用来更新用户关于系统状态的信息,鼓励避免错误的行为,加强品牌识别,引导用户完成特定任务或参与,或改善交互。它们通常非常轻量级,遵循“少即是多”的方法。在创建UI、推荐器或ChatGPT如何响应、提供下一步操作或与服务交互时,请考虑这些因素。用户可以从微交互中获得一点乐趣。这些都是基础。下面是一个更深入的旅程。
文章:现代用户体验中微交互的作用 (https://www.interaction-design.org/literature/article/micro-interactions-ux)
如果计划将ChatGPT集成到现有的聊天UI中,原始聊天体验中应该有一些基本功能。接下来简要介绍一些基本功能不会有坏处。
将ChatGPT集成到现有的聊天体验中
考虑ChatGPT是否是客户互动的主要机制,以及哪些其他服务和数据将支持它。在企业领域,数据中存在一些独特且有价值的东西。目标不是在强调用户体验的同时重新包装现有的ChatGPT服务。在将ChatGPT集成到聊天中时应考虑什么?应该如何操作?让我们探讨选项:
-
使用简单的聊天窗口,以ChatGPT作为主要演员,使用检索增强生成(RAG)索引知识(RAG在第6章,收集数据 – 内容为王)或其他与数据库集成或与其他公司服务接口的服务。
-
补充现有的Chat“机器人”体验。通过ChatGPT增强现有的确定性流程(向导或聊天流程),以提高理解力、实体识别、世界语言支持、图像识别或其他能力。
-
通过收集数据或解决问题来补充人类代理的经验,在将其转交给人类之前。这样做是为了使代理更有效率或提供额外的服务、营销或反馈。
-
ChatGPT是在人类代理有处理机密信息、调查或反馈的经验之后使用的。
-
在人类对话中使用ChatGPT作为第三方(一个AI团队助手、支持代理、用户或团队)。这可以在小组环境中作为资源使用。考虑任何安全影响,请求者可能有权访问某些数据,而其他成员可能没有。
-
使用不同的LLM和提示来支持工作流程的各个部分。将模型链接起来以改进前一步骤的模型输出是常见的,这将在以下章节中详细讨论。
这个列表不可能详尽无遗。对于LLM的创造性使用增长率正在爆炸式增长。但所有这些,如果它们要成为以聊天为中心的,都应具备一些人们期望的基本功能。现有的聊天UI可能已经准备好了一些增强组件。
启用聊天体验的组件
使用聊天窗口,有一个决定点,即哪些功能适合支持聊天窗口中的交互。如果聊天是在两个人之间或人类和LLM之间进行,那么大多数这些元素将是相同的。然而,许多开发者需要由一个合适的特征集来指导:
-
消息输入窗口(输入窗口)
-
线索回复区域(对话)
-
提交按钮(用于发送消息和附件)
-
消息所有者的视觉指示:气泡、头像、左右对齐等(需要某些东西)
-
可访问性合规性:屏幕阅读器支持、键盘导航、图像的alt文本、高对比度模式等
-
可选组件以增强整体体验:
-
下载、打印、导出、清除和关闭(适用时)
-
时间戳(根据需要和智能使用;仅对某些消息使用时间戳)
-
可移动窗口
-
前一条消息历史
-
出现的快捷键建议,似乎有助于完成一个想法或行动
-
在线程中搜索(由浏览器支持,考虑应用于应用)
-
支持不滚动过界
-
帮助、导游或教程
-
一个表情符号选择器
-
快捷键面板(对于专业用户来说,快速插入常用项目或填写常用命令和语句很有用)
-
能够升级到代理(对于支持用例,通常在聊天或按钮中在线完成)
-
客户反馈(作为UI元素可选;也支持在聊天中)
-
全渠道集成(其他渠道也有这种上下文)
-
打字指示器(如果使用多用户UI则推荐;如果会话仅与ChatGPT进行,则不太关键,因为它应该立即回复)
-
一个好的体验将考虑所有这些选项,但只实现其中一些。考虑每个要求的重要性。使用在第4章,评分故事中引入的加权最短作业优先(WSJF)评分来决定这些要求中哪些部分是必需的。查看用例并评分这些选项。其中一些比其他更有价值。除了链接和可能的照片外,从仅聊天的体验中几乎没有什么丰富性。处理链接和照片将在下一节关于混合UI中介绍。
设计混合UI/聊天体验
混合UI将聊天与传统的GUI结合在一起。这种体验可以包括表单、表格或聊天流中的交互式元素,或将聊天合并到现有的GUI中。有时,聊天在其面板中使用图形UX作为内容,以进行对话式交互。这类例子多年来一直存在,但LLMs的力量使得交互更加稳健和准确。这些多模态体验可以将GUI、声音、语音转文本、文本转语音和LLMs融合成一个解决方案。
这是富互联网应用(RIA)的最新版本,大约在2002年由Macromedia提出。我阅读了Kevin Mullet(为Macromedia撰写的论文)并发现它与今天的体验惊人地一致。
文章:有效富互联网应用的本质 (https://darmano.typepad.com/for_blog/essence_of_ria.pdf)
在软件设计中,交互控制的复杂性仍然是满足用户体验的最主要障碍。 —— Kevin Mullet(《有效富互联网应用的本质》)
文章中的图片已过时,但根本问题仍然相同,只是增加了一些新概念(声音和LLMs)。虽然许多事情都发生了变化,但许多事情仍然保持不变。
例如,Microsoft Word 格式菜单的功能基本没有变化,如图5.3所示。找到和使用Word广泛功能的根本问题没有改变,并且在几十年里几乎没有改善。我们提出这一点,是因为在Word中找到了被充分理解的使用案例。

图5.3 – 约于2003年Windows(左)和2024年Macintosh(右)格式菜单的相似性
将人工智能应用于Word的激动人心之处在于,用户的需要应该被充分了解。最有价值的用例应该容易确定(但可能难以实现)。这取决于产品人员理解客户的痛点,认识到大型语言模型的价值,并看到前进的道路。
在点餐系统中正确下单具有挑战性。我总是被提醒在离开餐厅前检查包裹。SoundHound为解决复杂的听觉条件和点餐问题提供了一个多模态的解决方案,用于SoundHound的驾驶窗体验。客户说出订单;屏幕通过AI音频响应确认和验证订单。这个演示展示了多模态交互的力量。在拍摄这个视频的时候,它没有使用大型语言模型,但它因为多模态交互的速度而给人留下深刻印象。在自助服务亭,显示更新与用户说话的速度一样快,并显示订单的更正。图5.4是SoundHound点餐演示的截图。

图5.4 – SoundHound点餐演示截图
视频:通过语音点餐 (https://www.soundhound.com/voice-ai-solutions/restaurant-food-ordering/)
语音是输入,显示会根据变化更新。在自助服务亭,触摸可以补充语音交互,通过触摸和语音交替互动。同时,对话可以不间断进行(你可以在语音输出中插话,无需等待对话中的停顿)。这是一个迷人的应用,因为它为餐厅提供了更多语言理解上的灵活性,并使用户能够看到他们的订单并进行更改,从而获得更好的反馈。更多这样的直接体验即将到来,其中直接通过键盘(或语音)支持与界面的交互,包括在桌面和移动应用上。随着语音交互对于大型语言模型(在10毫秒响应时间范围内)变得更快,它们足够快,可以自然地暂停或中断,就像人类一样。
ChatGPT的另一个令人兴奋的应用是补充和支持创建内容时的交互体验。假设用例包括撰写电子邮件、生成营销材料或编写职位描述。在这种情况下,通过收集和使用为下一件内容创作的材料,你可以获得很大的优势。例如,一个智能助手可以访问屏幕上的所有材料,并提供许多支持功能。有了大量经过质量审查的材料,可以训练新材料以符合现有材料的风格和语气。或者,通过改变一次提示,可以开发出全新的语气,但仍然基于提供的专业知识和内容。
定义应用程序设计空间的经典例子是将生成式AI与确定性模型集成,以填写表格或执行任务。当前的聊天助手基于为特定任务编写的代码,具有特定的响应、可预测的行为和有限的灵活性。这些直接的确定性体验对于具有可预测输入和输出的重复性任务来说效果很好。然而,它们存在缺陷,通常涉及复杂的集成、编码中未考虑到的交互以及需要多种语言。这些平台正在通过集成LLM来解决这些不足。许多助手在自然语言处理和识别方面面临一些真正的挑战。通过结合GUI的视觉特性和精确的沟通能力与LLM的理解,设计可以解锁额外的价值。“图5.5”显示了具有GUI的聊天体验的模拟示例。

图5.5 – 使用对话智能填充混合UX
这个UI看起来是一个简单的表单,但实际上它在一个聊天窗口中。客户通过与表单或通过聊天进行交互。在中间屏幕上,用户(或使用语音)输入输入来操纵表单。表单在右侧更新,错误被移除,并返回了一条消息。LLM可以在如何更好地解析这些消息方面比传统的聊天机器人软件提供更多的智能。它们还可以用于快速调整UI以支持比使用其内部训练模型的供应商通常支持的更多语言。当前的模型,如ChatGPT 4o-mini,在这些领域继续改进。
我想指出图5.5中出现的几个微交互:
-
人工智能理解提交的费用或收据扫描中缺失或误解的信息(在屏幕之前,它将触发此响应),并以传统的内联错误消息呈现错误。在未来,我可以看到LLM要求用户在收据上标记它不理解的内容(例如,圈出它不理解的一个数字并请求帮助)。这可以推动改进工作流程,而不会对用户造成重大负担。不要将客户变成测试者,但有时你需要尽你所能的帮助。
-
表单清晰地显示了缺失的内容,并允许用户通过文本、语音或与表单的交互(在这个示例中键盘被隐藏)进行编辑。
-
人工智能将“周六”理解为上周末,并以正确的格式输入了信息,避免了打开日历、查看、选择月份和点击日期的操作。
-
用户界面会动态更新,确认添加的数据,删除缺失的细节和错误,并允许用户通过按钮或文本提交。
因此,在这个混合GUI示例中,ChatGPT可以做到很多,以解释用户输入的格式并将其提交为正确的字段。想象一下,在没有收据扫描和没有表单的情况下完成整个交互,这将非常繁琐且缓慢。系统和GUI模式承担了大量的工作来创建完整的体验。使用现有聊天平台可能已经投入生产的类似流程。尽管如此,它们仍可能需要帮助来理解人类语言、区分实体(如名称、企业和值)以及扩展语言支持。ChatGPT可以在不摒弃现有设计这些业务关键任务所积累的智能和专业知识的情况下,增强和改进这些体验的部分。
此外,在流程中扫描餐费收据可能是一个可以改进的额外领域。训练视觉基础模型来理解商业文件的图像,并从中分类和提取关键信息,似乎为组织提供了一个全新的探索世界。许多公司已经使用人工智能处理费用收据、发票、账单、质量控制图像、库存计数和确定、灾害场景和汽车保险。随着更先进模型的采用,这些流程的质量将会提高。本书重点介绍ChatGPT的文本和写作能力。然而,我鼓励在适用的情况下探索基于图像的使用案例。例如,ChatGPT 4o-mini这样的模型也能处理图像(例如,模型可以分类上传的图像),通过与其他服务如OpenAI的Whisper集成,可以将转录的音频拉入工作流程。
将ChatGPT集成到工作流程中在今天是基本的。在另一个例子中,产品可能支持撰写电子邮件或网站内容。添加一个生成帖子或撰写描述按钮,让ChatGPT收集信息并将副本注入现有窗口并不太难。有一个需要注意的地方:在提交之前始终支持编辑此材料。它可能不准确,过于具体,或者根据生成中使用的内容不够具体。考虑同时捕捉建议和最终提交(并编辑)的版本,人类进行了更改。将这些用作数据来帮助改进模型。这与之前的营销内容示例之间的区别在于,决定什么具有真实信息是至关重要的。在营销内容中,好的内容是已知的,并且可以补充客户对不同活动的响应情况的数据。在撰写电子邮件或网站内容时,可能更难识别高质量的写作来训练模型。否则,将只基于其原始训练提供通用模型;有时,这可以。您始终可以要求模型调整语言。即使是像这样的通用40分钟可执行任务。
为我写一封感谢信。
用不到100个字描述客户。
Dear Frank Jones,
Thank you for your recent purchase! Your support means a lot to us, and we are thrilled to have you as a valued customer. If you have any questions or need further assistance, please don't hesitate to reach out. We look forward to serving you again soon.
Best regards,
Richard Miller
Alligiance
用更正式的语气重写它。
用轻松的语气,他是家人。
Hey Frank,
Thanks a bunch for your recent purchase! It means a lot to us. If you have any questions or need anything, just give me a shout. Looking forward to catching up soon.
Cheers,
Richard
Alligiance
假设用例需要一种侧边栏体验,其中AI可以补充传统的UI。它可能开始于一种被美化的智能搜索,但可以利用它快速从当前内容中获取之前埋藏或不可用的见解。它可能有一个分析按钮(或自动生成一些推荐),了解线程中发生了什么,提供生成回复选项或执行任何人类助手可能执行的任务以帮助团队成员。每个应用程序都将有其用例,就像任何汽车、教育、金融、制造、医疗保健、政府、房地产、销售、服务和其他数十个垂直领域的企业公司一样。提供企业软件的公司有先发优势,因为它们可以与和适应复杂的组件。
如图5.6所示,Oracle的数字助手在推进技术前沿方面做得很好,提供了侧边栏体验。

图5.6 – Oracle销售中的Oracle数字助手侧边栏
这展示了如何通过理解页面上下文和所有相关数据,将对话式生成式AI补充到传统的网络企业应用程序中。演示中涉及了其他细节,但重点是现有服务可以通过LLM进行补充。查看Oracle的演示,从46分钟开始,展示了如何将协同驾驶模式嵌入到现有的UI中。
视频:Oracle中的生成式AI协同驾驶功能 (https://www.youtube.com/watch?v=9CEfru54Oyw)
除了提供洞察力外,考虑与侧边栏的交互,这些交互可能影响或解决某些问题。在先前的例子中,聊天被用来补充与客户相关的问题,如图表所示。这个页面提供了丰富的上下文,以便对话式AI可以根据对数据的评估提供主动建议。
例如,团队正在构建一个销售赋能页面,用于审查客户账户和交易。在这种情况下,侧边栏可以允许提出有关此客户的问题,这些问题可能隐藏在其他系统中,或者提供关于流程下一步的建议。订单状态、客户关怀体验、开放的故障单以及额外的客户历史信息在销售页面上提供了价值。然而,将生成式AI作为资源暴露出来,可以补充这些细节的常见理解。但不要止步于此;使用超链接包裹文本,以便他们可以深入企业数据以进一步理解。允许客户使用生成式AI来增强他们的编辑、发布更新或进一步深入了解所有这些信息所持有的见解。帮助用户了解他们此时拥有的选项范围。有时,会使用如编辑、打开详情、发送电子邮件或更改状态之类的按钮。无论使用案例如何,考虑深入利用生成式AI模型来增强这些步骤。
这种通过解决ChatGPT的独特复杂性来创建所需体验的焦点,并不能涵盖所有GUI的用户体验设计指南。有数十本书籍和网站可用。关注的事实是,在对话体验中的用户体验设计略有不同。虽然你可能在GUI中有一个传统的网页表单(带有字段和下拉菜单),但当它被放置在对话体验中时,会有什么不同呢?例如,在图5.6中展示的*Oracle数字助手(ODA)示例中,注意聊天中的一个小表格和主页上非常不同的表格。很容易意识到聊天表单因素表格无法处理大表格所能处理的一切。让我们回顾一些在设计混合对话体验时需要考虑的基本技巧。
聊天窗口大小和位置
聊天窗口通常在网页上是垂直排列且较小的,因此主页面仍然可以使用。根据目标窗口大小,典型的默认聊天窗口可以占据11%到25%的屏幕空间(对于双显示器用户来说更少)。图5.7中的示例基于2024年8月的标准桌面屏幕尺寸。这些数据变化非常缓慢。去年变化不到一个百分点。

图 5.7 – 桌面屏幕分辨率与典型聊天窗口的比较(2024 年 8 月)
文章:当前桌面可寻址尺寸 (https://gs.statcounter.com/screen-resolution-stats/desktop/worldwide)
最好检查客户数据以获得更准确的屏幕分辨率估计。我过去每年或大约一年运行此分析,以影响所有类型的网络应用设计决策。企业客户的屏幕总是比消费者数据大得多。
如果主要体验是聊天,例如 Slack 或 Teams,则在桌面上大小限制不是问题。有足够的空间容纳大表格、地图、较大尺寸的图像、表单和其他交互式体验。对于聊天是次要元素的情况,提供足够的空间以支持必要的交互,但不要太大以至于干扰主要窗口。没有一种适合所有情况的答案。考虑使用案例;案例越简单,所需的空間就越少。
对于世界各地的手机来说,纯文本似乎工作得很好,宽度大约只有 40 个字符(随着客户为了可访问性而增加字体大小,这个数字会下降)。使用上下文非常重要。如果客户是移动用户,典型的手机宽度甚至他们的特定手机宽度是已知的(来自网络分析)。不要在屏幕上尝试做任何其他与聊天相关的事情。水平滚动条应仅在使用极端谨慎的情况下使用。如果它在窗口中,考虑在用户离开聊天时通知他们有未读消息。审查任何社交媒体平台上未读消息交互的示例(LinkedIn、Facebook、Instagram 等)。
最后一个桌面体验(网络或原生)的例子。看看用户的统计数据和他们的浏览器大小以及桌面大小(Adobe Analytics 或 Google Analytics 等网络日志工具会报告这些信息)。使用这些信息来决定用户通常需要多少空间用于主应用程序窗口,以及可以与聊天窗口共享多少空间。考虑应用程序窗口的响应性。主内容窗口支持良好的流程,甚至是一个移动友好的视图(即使在桌面上)允许支持侧边栏视图,知道主要内容可以适应。
对象列表是企业应用中需要大量空间的最相关模式之一。有时,在表格或卡片视图中。我们现在可以探讨聊天体验如何影响表格。
表格
在考虑典型聊天窗口中执行的操作时,要考虑移动体验的设计空间。桌面窗口中的表格需要适应更窄的聊天宽度。要么使用不同的布局,要么限制列数。例如,桌面上的电子邮件是按列排列的,如图5.8所示,而在手机上,则显示卡片视图,如图5.9所示。如果模型将返回卡片或小表格作为结果,则需要更多的空间来直接展示全面的信息。

图5.8 – 在小聊天窗口中,传统的表格视图不会很好地工作

图5.9 – 卡片视图在聊天窗口中会工作得很好
在展示表格时,要考虑格式和内容。例如ChatGPT 4o-mini(“o”代表Omni,所以我认为它们认为它们什么都知道)在格式化数据方面非常出色。然而,移动用户仍然会遇到与ChatGPT之前体验中相同的问题。由于这是一个滚动窗口,所以会出现滚动条。但绝不应该出现双滚动条。虽然桌面上的滚动条是可以的,但由于滚动窗口中已经有一个滚动条,所以可以使用“下一页”功能来显示更多数据。或者寻找其他替代方案。如果现有的表格组件是移动友好的,它可能会自动调整到聊天面板的紧凑卡片视图。这完全取决于模型如何支持用户体验。如果OpenAI的聊天是UI,那么就没有创建更丰富交互式体验的选项。如果团队拥有客户端,那么世界就是你的,可以调用OpenAI模型来填补空白,创建丰富的体验。即使有推荐UI,也有地方可以提供反馈,让推荐器做出更精细的决策。提示用户提供信息,以填补模型理解中的空白,从而提高结果。这取决于你,而不是AI。图5.10比较了传统表格格式与实现不佳的水平滚动条。通过将提示更改为以更移动友好的格式提供结果,我们得到了更易读(但不太可比)的数据。

图5.10 – 比较传统表格视图(左和中间)与移动友好型列表视图(右)
水平滚动条甚至都看不见(并且在滚动时,如中间面板所示,玩家的名字会滚动出屏幕;它不像电子表格那样被冻结或锁定),这使得分析变得困难,最右侧的列也无法与玩家关联。在ChatGPT上尝试这样的提示,使用手机,或者将浏览器窗口调整到尽可能小的尺寸,然后尝试回顾和使用表格数据:
Show me a list of the top NFL passers in 2022 and their statistics in a table
Show me a list of the top NFL passers and their statistics, and link the name of the player to their Wikipedia page
考虑用例,数据应该如何最好地呈现,以及用户吸收结果所在的渠道。表格中的链接允许用户进一步深入数据。这在数据网络显示中很典型。理解它们可能已经在传统网站上具有交互丰富性。
注意
如果需要更多空间,并且有更多空间(例如,如果在较大的桌面窗口中的小聊天窗口中),构建扩展窗口的能力。如果需要大量表格的用例要求,考虑在新的窗口中打开表格。如果数据不适合空间,可以识别出来,并给用户提供一种方式来查看所有内容,例如发送文件,在新窗口中打开数据,或其他创新解决方案。
关于表格内容,请尽量保持简洁。总结表格并支持钻取功能。要交互其中一个结果,考虑如何选择它并展开详细信息。将对象带入主浏览器窗口,那里有足够的空间,或者在内联对话中展开详细信息,这样做是否有意义?没有唯一正确的答案。让用例引导你。在前面的例子中,关于美式足球统计数据,围绕表格数据的强大体验可以包含钻入详细数据的链接,可排序的列,或对球员姓名和球队的更丰富分析。有许多选项可以探索。不幸的是,企业支持的工具和模式可能有限。始终记住最终状态,以便可以将改进和新模式优先考虑用于聊天通道。在表单(以及最近,在表格中)中进行编辑是企业与数据和任务交互的基本方式。在聊天体验中钻取表单有助于我们理解一些复杂性。
表单
幸运的是,如果为移动友好型体验而创建,大多数表单都适用于聊天体验。只需考虑少数定制即可。
首先,考虑表单现在有多大。它能否适应聊天窗口?是否需要填写许多页面的字段?一个疯狂长的表单可能在聊天体验中表现不佳。然后,考虑表单提交后会发生什么。由于聊天应该持续存在,提交后的表单看起来是什么样子?我通常建议将其转换为卡片。这种过渡为已提交的表单提供了一个便利。此外,考虑错误发生时的情况以及用户如何可以重新编辑信息非常重要。例如,包括一个编辑按钮或链接返回到表单,进行更改,然后保存,返回到卡片视图。作为对第9章“指南和启发式”的简要预览,支持编辑便利性和撤销是启发式评估中应解决的问题。该章节将深入探讨如何使用启发式来理解和分类用户体验问题。
回想一下在费用助手示例中的星巴克费用。在“提交此费用”之后,如图图5.11所示,用户是否应该继续在聊天历史中看到可编辑的表单?

图5.11 – 使用视觉提示将提交的费用转换为卡片
传统的GUI在提交费用项时会移除编辑后的表单。因此,以对话方式持久化此编辑视图也没有意义。禁用表单是一个选项,但使用右侧图像顶部的取消选项并更新现有表单到提交的费用版本会更好。这种在聊天历史中重新访问和编辑现有项目的能力可能是一个挑战,这取决于聊天窗口技术的所有权。使用卡片显示,内容看起来已经完成;它将感觉完整。为了进一步编辑,AI应该允许以对话方式编辑或考虑一个按钮。注意图5.11中的编辑图标。在提交整个费用报告(包括这个单独的费用)之前,允许以对话方式编辑。
还要考虑那些健壮或复杂的表单元素,例如搜索体验。表单中的一个组件可能希望使用聊天窗口的宽度和高度允许的空间。例如,搜索产品名称时,有时在企业的产品名称搜索可能需要很长时间。考虑将结果换行到第二行而不是截断。在手机或小窗口上截断的问题在于很难显示完整的名称。如果几个项目只在最后几个字符上有所不同,客户如何区分它们?这并不仅限于LLMs;这只是小窗口(如聊天)的良好设计。
例如,如果他们正在寻找可以下载和搜索的产品演示,搜索Agile Product Lifecycle,返回两个产品,如果搜索结果在一个小窗口或下拉菜单中截断,那么在截断的情况下将无法区分它们:
-
敏捷产品 生命周期管理…
-
敏捷产品 生命周期管理…
如果项目的全文被换行,他们可以选择正确的选项:
-
敏捷产品 生命周期管理
Lavasoft集成包 电子商务套件
-
敏捷产品 生命周期管理
Fission应用套件集成包
因此,考虑这个小查看区域如何影响组件。如果组件已经是移动友好的,那么大多数问题都解决了。然而,为小屏幕构建的组件和为小屏幕设计的组件之间仍然存在差异。我刚才分享的截断问题非常普遍。
最后的考虑是如何在对话中与表单或卡片进行交互。让我们再次看看图5.12中展示的表单和卡片概念。

图5.12 – 开始对话编辑时的表单和卡片视图
如果用户输入“将金额更改为9.45美元”,现有的表单中的金额元素会更新(左侧示例),还是他们必须重新渲染一个新的表单,并希望移除或隐藏现在过时且错误的形式或卡片?不要向用户显示错误信息,用视觉微交互更新卡片可能比在屏幕上滚动另一个表单更好。这种微交互可能是一个闪烁和动画,显示金额的变化以及可能的消息更新。然后,用户无需滚动整个屏幕来无效化旧表单并创建新表单。没有必要在历史记录中显示旧表单上的错误,当信息被纠正时,这看起来很糟糕。
表单提交并出现卡片后,直接用闪烁和动画更新卡片,并更新文本以显示更改已被接受。这些模式在任何平台上都难以找到。公平地说,对话交互模式仍然不够成熟。许多种类的交互都需要被发明、测试和成熟。
让我们总结一下:
-
使表单对通过文本或直接编辑的编辑敏感。
-
使用卡片来显示对象的完成状态。
-
在卡片上显示表单的所有信息是不必要的。考虑用户识别(而不是回忆)此对象具有不可见元素的重要性。
-
考虑是否需要编辑聊天AI中的所有用例。有些对象很复杂,很难通过对话进行编辑,表单也会很大。这里有一些用例,更大的可视区域可能最能满足需求。
-
创建一种机制,使完整组件能够在小聊天窗口的约束内工作,适用于有意义的用例部分。
-
允许进行对话编辑表单,以及如何使用这些编辑更新卡片或表单。
-
不要在错误的状态下显示表单。
-
如果直接更改卡片或表单,请使用一种手段来突出显示更改。
有时,表单被用来生成图表。现在,让我们探讨一下在ChatGPT解决方案中使用图表的一些关键思想。
图表
在企业用例中展示的图表在用于探索时应是交互式的。选择并深入查看数据点、查看更多细节或探索数据段以回答不同的问题都在情理之中。这与我们关于表格的讨论类似。图表的易访问版本通常是表格,因此它应遵循相同的惯例。对话分析需要图表不仅仅是静态图像;并非每个工具包都能支持这一点。考虑图表的上下文,这样对话交互可能会从展示的内容中揭示新的见解,例如“显示按销售人员划分的第一季度的细分”。图表是进一步与LLM进行对话的垫脚石。
例如,考虑坐标轴。不要默认使用客户不想要的刻度或单位:"给我显示以欧元计的销售额,而不是美元",或者“将薪资坐标轴从零开始,并将范围更改为过去五年”。与数据对话会变得复杂。
如果用户明确要求图表,就提供给他们,但提供图表可能带来更创新的经验,因为这样做是有意义的。假设LLM知道用户是视觉障碍者(因为被告知或从个人资料信息中得知)。在这种情况下,如果不能在表格中显示数据,而只能显示图表,这会成为一个问题,因为屏幕阅读器在处理表格时比图表更容易(但我怀疑LLMs也会解决这个问题)。如果AI没有意识到用户的能力,"将表格转换为图表"可能是一个合理的回应。这种知识可能被用来驱动后续的交互。可访问性考虑将在稍后讨论,但保持对可访问性问题的关注是有帮助的。
在展示这些图表时,应该考虑应该使用哪些图表和设计元素。存在大量糟糕的图表,包括轴没有从零开始、旋转标签、使用过多的颜色、没有为彩色条使用冗余编码、缺少标签、饼图切片过多、误用折线图,以及许多其他失败之处。基本的图表也应该设计,或者LLM应该根据指令来制作它。如果你对此感到陌生,可以向ChatGPT寻求建议:
What are some UX failures when it comes to designing charts and graphs?
Explain the top 10 ways to make charts and graphics high-quality.
How does an LLM decide to design a chart when asked for data?
目前,只有ChatGPT的付费版本允许创建图表,但这对于企业客户来说不会是问题。与数据交互比仅仅展示静态图表更有趣,静态图表往往只会引发更多问题而不是答案。更不用说询问ChatGPT关于图表可能没有揭示的数据的问题了。使数据(以及图表)在对话中交互式将是企业用例的一个巨大空间。知道如何设计卓越的视觉元素对于有效沟通至关重要。能够从数据中生成对话式见解可能更为重要。如果结果不符合预期,提供给LLM的指令必须灌输一些这方面的专业知识。要探索有效图表设计的根本原则,请阅读参考页面上链接的爱德华·图菲的经典书籍集合。
书籍:爱德华·图菲的工作 (https://uxdforai.com/references#Tufte)
现在我们已经涉猎了图表,讨论静态图像也很有意义。
图形和图像
企业世界有两种类型的图像:装饰性和功能性。展示“漂亮”的图形可以提升用户体验或赋予其风格和特色。这些装饰性图像不是必需的,因此不需要任何关于可访问性的支持,甚至可能不会影响可用性。然而,它们可以影响顾客的心情,从而影响用户体验。第二种,更为关键,是提供功能的图像。头像、背景颜色编码和气泡有助于在线程中传达用户的内容。图标吸引眼球,使功能或状态突出。考虑到大多数聊天窗口的大小较小,这是图像的一个有价值的用途。通常,最好为对话的来回元素提供一些便利,但不是每个便利。有时,图像是应用程序的主要目的,例如库存应用程序、社交媒体、在线订购或图像生成器。
假设应用程序是一个AI图像生成器。考虑可用于渲染图像的空间和可下载的分辨率。在这种情况下,最好以适合显示的尺寸生成图像,因为这可以比“全尺寸”图像小10倍,因此显示速度更快。使用下拉菜单或UI元素选择下载大小。主要图像库网站使用这种模式。
法律注意事项
生成图像是一个新的问题领域。如果模型在受版权和商标保护的材料上训练,生成的图像与原始内容过于接近,可能会引发法律问题。这个领域将成熟,但请注意这一点。基础模型来自互联网。这也会是文本、语音和音乐的问题。避免使用名人的声音和形象。詹姆斯·厄尔·琼斯、克里斯托弗·沃肯、斯嘉丽·约翰逊或任何名人的法律顾问都会将违规者置于他们的瞄准镜下。
假设应用程序生成图像以包含在工作流程中,例如创建产品的广告图像或营销图像。如果模型在企业材料上训练并被告知使用这些材料,它可能解决任何法律问题。为了约束最终用户,模型的指令可以设置为将图像限制在公司标准风格内。用户不应每次都这样做。一旦他们批准了图像,考虑将其与生成的流程和用于生成它的消息一起存储;这种知识可以帮助进一步训练模型。如果用户需要编辑,他们可以快速从相同的信息重新启动并进一步调整,而无需重新输入,更重要的是,无需记住他们输入了什么。
在仅聊天体验中,例如短信消息或尚未支持组件的聊天频道,图像可能在一定程度上得到支持。因此,查看框架以确定图像是否可以标记为元数据标签以实现无障碍访问,或者是否需要在频道中以文本形式编写说明。LLM 可以在幕后使用,甚至以批量模式生成图像描述和表格、图形的标题。将 LLM 作为业务工作流程中的工具,并了解频道支持的内容,以赋予客户对图像的控制和可用性。
图标是一组独特的图像。它们用于混合 UI 的设计,在纯聊天体验和推荐器中有些用途,但在后端 UI 中没有位置。我还没有探索使用 LLM 生成图标,但根据经验,它在头脑风暴方面非常出色,但尚未达到像素级别的精细细节。因此,这次对话将限于在混合体验中使用图标。
图标用于传达动作或状态或提供视觉反馈。有时,它们支持文字(例如带有图标和标签的按钮)和在某些情况下,仅仅是图标。标签可能出现在鼠标悬停或更宽屏幕视图中。在这种情况下,考虑图标集合所代表的视觉风格和语气,以及是否存在聊天或对话式能力来与图标交互。例如,如果图标显示用户在线(如用户名旁边的绿色点),那么可能有一种方法可以离线或进入另一种状态。如果这是一个数千名聊天和电话代理使用的支持应用程序,那么通常有一个多步骤的过程来将他们离线或上线。这是否是他们可以以对话方式完成的事情?这取决于用例。驾驶员在车内点击按钮来设置温度,但告诉汽车“将空调调至 68 度”要容易得多,也更不容易分心。GUI 和语音交互可以协同工作。
由于交互元素,如图标和图像、它们的兄弟按钮、菜单和选择列表都值得解释。
按钮、菜单和选择列表
在某些与自主代理的传统聊天中,体验可能更加对话式。它们看起来像聊天,但只提供点击按钮;用户不能输入。务必避免这种用例。这是一个红旗,会破坏与客户的任何好感。他们陷入了一个糟糕的体验。然而,在实际的对话式 AI 中,有时提供建议或提示是有帮助的。对话式 AI 的主要问题源于“识别优于回忆”这一主要启发式方法,这在第 9 章,指南和启发式方法中有所涉及。这意味着用户从选择中挑选和识别某物比从他们的记忆中提取和回忆项目要快。
关于识别优于回忆的简要介绍
文章:识别而非回忆 (https://www.nngroup.com/articles/recognition-and-recall/)
这个原则适用于用户体验的许多地方,例如菜单。尽管一些应用程序有很多功能,但找到功能需要时间和精力。众所周知,从列表中选择比回忆菜单命令更容易。现在,有了ChatGPT,激活功能的命令的确切名称不再需要。即使不使用命令的精确词语,也可以提问并找到良好的结果。这有助于缓解一些文本输入体验的问题。这是一个美好的变化,使得聊天体验成为可能。然而,减少用户的认知负担仍然是有帮助的。所以,如果只有几个选择或者你对下一步有很好的想法,提供建议是合理的。有时,这些建议会动态地出现在自动完成栏中。就像在短信中,它会尝试预测将要输入的单词,如图5.13左边的*图5**。13所示。这种预测文本正是LLMs工作的方式,所以只要他们能跟上打字速度,这就是使用LLMs帮助用户的完美地方。有时,响应比提交提示时的单词或按钮选择更稳健,如图中右边的例子所示。

图5.13 – iPhone上的消息应用中的预测自动完成按钮(左)与提示后的内联建议按钮(右)
在三种情况下使用预测完成:当用户理解下一步是什么,当用户迷失或需要指导时。所有可能的路径都太多了。即使三个或四个选择也足够了。考虑数据。如果数据可以以90%的确定性预测四个选项中的一个正确,那么提供建议是有意义的。如果四个选项只有30%的成功率,就不要提供它们。而且,别忘了收集这些数据以帮助未来的模型并决定如何改进UI。一般来说,最好考虑菜单或按钮被选中时会发生什么。元素应该在点击后移除。任何GUI按钮的相同样式都可以用来创建一致的风格,但在大多数UI中,按钮在被点击时不会消失。然而,在聊天UI中,按钮不应该看起来可用,禁用按钮是部分解决方案,但为什么要浪费空间呢?一般来说,按钮在选中后被移除。选择列表或下拉菜单在更小的空间内提供更多选项,但需要打开菜单才能看到可能性,这会带来额外的麻烦。如果有很多选择,处理搜索或滚动条会更复杂。遵循现有指南正确使用这些工具,完成后从UI显示中移除它们。
在图形用户界面中,有足够的空间放置带有大标签的按钮,可能用于将用户的注意力吸引到大型屏幕上的某个地方,但在聊天窗口中没有这样的空间,因此请保持菜单标签简短。按钮适合用于操作;使用链接进行导航。
链接
链接是网络应用的基础,但任何应用都应预期到链接的存在。文档中的目录是老式的版本,而菜单是桌面链接的一种形式。在混合用户界面中,链接非常有价值,并且是任何传统聊天体验中可用的少数用户界面元素之一。混合、聊天和推荐用户界面可以使用链接,并且有一些关于如何处理链接的注意事项。
链接到外部资源
链接提供了无法内联提供的服务或内容的 URL。链接可以提供参考,通过文章提供更多细节,访问聊天控制范围之外的形式或服务,或为用户打开新窗口或面板。确定如何向用户展示链接。如果体验打开新窗口,用户是否会返回第一个窗口继续对话?如果聊天在侧窗口或面板中,以支持主窗口中的内容,当链接在主窗口中解析时,体验是否会更新,以便任何后续的对话都知道变化?围绕这些交互做出决定。
链接的标签应该是清晰且表明其目的的。如表 5.1所示,在输出中显示长链接(左侧)不如使用定义明确的标签(中间)。
| 不要 这样做 | 易读且 易管理 | 解释 |
|---|---|---|
| Hi Richard. A new Explanation of Benefits (EOB) is ready. It may include time-sensitive or other important information.https://click.edelivery.uhc.com/?qs=7b10282 356f8afb07d1e82e239f9722d466ca 84134771c3c35ee1b60c735d8940b3 2b169349bc53c30141f6c40140989f75b8589cd2af251 | 1) Hi Richard. Please review your new Explanation of Benefits (EOB). It may include time-sensitive or other important information.2) Hi Richard. I can take you to the Explanation of Benefits (EOB)➚. This link is outside the portal, sign in is required. | 1) 易读的链接更直接,占用的空间更少。避免使用“点击此处”。2) 当聊天支持导航主窗口时,提供替代文本,但此链接会打开其他地方。 |
表 5.1 – 在对话输出中使用定义明确的标签链接
如果客户端可以支持标签,不要暴露URL。用户足够熟悉,可以右键点击并复制URL。关注用例和链接的最合理用途。如果这是一个协同导航UI(在聊天中使用链接来控制他们所在的页面)并且有指向外部资源的链接,考虑如何传达这两种类型链接之间的区别,就像我在表5.1中间的第二例输出中展示的那样。这将让用户明白他们已经协同导航吗?他们可能会多次点击而没有提示,不知道聊天窗口后面的页面已经改变。此外,有时法律部门会介入。有些网站在点击链接后会打开一个中间屏幕,让用户知道他们正在离开网站。这种警告对于UI来说似乎太复杂了,很可能是律师写的,或者是因为客户对链接感到困惑。在没有额外页面和警告的情况下澄清这些交互会更好。
链接颜色
我强烈建议在构建客户端时遵循HTML和网页规范来处理链接。具体来说,在有人点击链接后改变链接颜色。通常,蓝色链接表示未访问,一旦访问过则变为紫色。即使它很微妙,跟踪哪些链接被点击也是非常有价值的,尤其是在链接集合在对话中被共享的情况下。
仔细观察图5.14所示的Google搜索;返回结果列表并显示已访问的链接不是很好吗?将此模式应用于所有链接。客户可能不会明显注意到它,但它将更易于使用。这对于屏幕阅读器是可访问的,因为它传达了链接已被访问的信息。

图5.14 – 紫色表示已访问的链接,这对于提供上下文是基本的
打开窗口
打开新窗口是网页链接的典型行为,如果它不会替换当前页面。对于聊天窗口,打开新窗口是必需的,因为它不能替换当前的小网页窗口。但请意识到,如果用户离开网站返回体验,他们必须找出包含此聊天的窗口。如果他们关闭新打开的窗口,他们应该返回到起始位置,但这并不像预期的那样经常发生。
如果链接在同一个网站上打开新窗口,将会有不同的问题需要解决。聊天窗口能否重新打开并重建,以便用户从上一个窗口离开的地方继续?或者现在有两个打开的窗口,它们具有相同的聊天。这种情况可以继续,那么网站能否处理3、4或10个打开的浏览器窗口,所有这些窗口都有相同的聊天?它能否跟上窗口间的变化?这取决于聊天平台。聊天供应商应该提供解决方案。只需确保理解需求,以便团队管理问题或供应商解决。
在聊天窗口中,一个常规链接预期将在新窗口中打开,因此不需要额外的功能。然而,侧边栏必须提供一种功能,以帮助用户理解它将在同一窗口中打开。不要在聊天窗口中使用链接来启动一个过程;这正是按钮存在的原因。保留链接用于导航。
这些考虑因素使得ChatGPT混合和仅聊天体验更加流畅、吸引人、一致和自然。混合体验是最稳健和复杂的用例,因为它必须考虑到所有传统的用户体验交互,然后在此基础上增加聊天的额外复杂性。远离图形用户界面,另一个值得我们关注的垂直领域是语音体验,例如在拨打公司电话并使用他们的电话树时遇到的体验。让我们回顾一些创建引人入胜的纯语音体验的小贴士。
创建纯语音体验
没有显示器的电话或智能扬声器设备是一些仅限语音体验。仅限语音的体验非常有限,但仍需考虑人为因素,但技术已经取得了长足的进步。ChatGPT 4o-mini 将同理心和语气提升到了新的水平,并且因为它更擅长遵循指令,提示可以控制答案的长度,以适应人类处理语音小片段的能力。由于它是纯语音的,没有其他交互方式。我们不需要考虑在聊天或混合体验中仅限语音;这实际上是语音可选的。智能手机允许你输入或使用语音,然后将语音翻译成文本。所有这些服务背后的模型都将随着幕后LLM模型的改进而提高。但我们不是在这里讨论增强语音到文本的转换。让我们专注于纯语音通道。
小贴士
在为智能设备设计时,供应商强调只有一些设备有显示器,但即使它们有,体验也应该仅使用语音工作。并非所有用例都适合与设备进行物理交互,尽管它得到了支持。例如,厨房中的Alexa设备可能允许通过显示器与设备交互以进入菜谱的下一步,但用户可能希望避免用脏手触摸它,或者它可能只是够不到。
就像聊天体验一样,决定生成式解决方案是取代还是补充体验。在拨打企业电话时,每个人都会遇到电话树的问题,这种层次化的提示在按下1、2或3时会导致树上的一个叶子节点。一个设计良好的电话树的优点是它基于选择的结果。这也是为什么桌面软件有菜单的原因。它限制了每个转折点的选项数量:沿着一些树走比直接回忆或访问一个特定的节点更直接。
从一个开放的“问我任何问题”方法开始替换树形菜单可能会很棘手。如果在好市多(Costco)这样的大型零售商的树形菜单中询问“电池的帮助”,我是否想去“汽车”、“助听器”,或者看看家用电池(如AA)是否有库存或促销?在树形菜单中,用户会根据有限的区域(如汽车、助听器或购物)进行选择,然后正确的选择会更加清晰。
考虑在根级别引入基于生成式AI的文本到语音听力的选择,即“告诉我我能如何帮助您”,或者在其下一级使用,即“您对汽车服务团队有什么问题?”。生成式AI在具有强大内容、知识和特定问题空间API的部分将更成功。获取这些细节需要时间和努力。因此,为特定部门做这件事可能是一个很好的第一步,以限制范围。借鉴前几章来了解哪个部门会有最适合的用例。确定哪个用例会有最高的WSJF(加权短作业优先级)分数!
在通话树中添加ChatGPT越接近顶部,解决方案就越通用,因此也越复杂。认为它可以回答任何问题的客户更有可能提出问题。例如,大型零售商的一个常见问题是库存检查。“我当地的Costco有6号尺寸的帮宝适吗?” 即使没有访问API来回答这个问题,模型仍然可以理解这个请求,讨论它,然后将它转交给人类代理。然后,解决需要用户向人类代理提出相同问题的问题。在用户被转接时,给代理提供记录的问题或转录本作为先手。这样,代理就可以接听电话并说,“我正在检查6号尺寸的帮宝适;请稍等片刻。”
不必重复请求将是一个突破,即使自动化系统不能直接回答问题,也能实现真正的全渠道体验。或者,考虑一个仅与LLM(大型语言模型)交互的库存检查系统,而人类只需向软件验证结果,从而为更紧急和复杂的交互保留额外的代理时间? “我已经让团队成员去检查帮宝适了。可能需要几分钟。在我们等待的时候,还有其他我可以帮您的事情吗?” 至少直到公司获得必要的API来自动化库存检查。
目标是在系统中创造最佳体验的同时,推动必要的功能。如果没有库存检查API,并且占到了15%的来电量,那么这可能是一个值得调查的问题。如果有一个简单的电话树,并且团队还没有准备好扩展到开放体验可能带来的问题,那么在顶部添加ChatGPT是没有必要的。价值来自于提高客户服务质量和减少人类代理对那些可以通过结合数据源和ChatGPT回答的常见问题的等待时间。有大量关于AI实施不当的例子。不要成为添加了ChatGPT却使体验变得更糟的公司。
考虑到在许多情况下,现有客户的电话号码是已知的(有一个API是好事),围绕这位客户的个人资料和历史进行查找通常可以揭示各种定制体验的机会:
-
订单状态和跟踪:
用户已知,因此如果存在未完成的订单,应立即提示并协助提供这些订单的详细信息,或者将电话正确转接到提供订单上下文的人类代理。您是关于包含Shipley四件套卧室组合的在线订单吗?它计划明天交付。
-
最近的商店详情:
从他们典型的商店的详细信息开始是合理的,尤其是在已知的节假日。快乐独立日!您的Foster City商店目前开放。它将在晚上6点关闭。
-
购买支持:
如果他们刚刚购买了一台电视,当他们在寻求支持时使用这条信息。我看到您刚刚购买了一台65英寸的Vizio智能电视。这是您需要帮助的产品吗?
-
技术支持:
一个现有的开放工单很可能是进一步对话的合适候选。当然,他们可能在企业空间中有几十个可用的工单,所以在决定如何与客户互动时,请考虑问题的规模。我看到您昨天的支持工单已经更新了。您是来帮助解决您的信用卡被 重复收费的问题吗?
将客户的电话号码映射到他们的公司历史记录,以便在通话中了解更多信息之前提供个性化帮助。您可能已经通过类似的消息体验过这种情况,“我看到您之前用这个号码给我们打过电话,理查德。如果是您,请按一或留在电话上。”尽管如此,我怀疑每个供应商都在努力改进。如果您使用第三方解决方案,评估其吸引用户、审查日志和使用的功能,以识别改进路由和响应的机会,并使用前一章中的方法来优先考虑改进。
这里有一些简短的片段,可以帮助改善语音体验。
-
如果需要区分以了解情况(例如,询问库存中有哪些类型的电池),请保持提示简短直接。
-
为复杂交互提供次要渠道,这些交互在电话上难以进行(例如,通过发送电子邮件在电话或电脑上稍后完成任务)。
-
记录并跟踪用户报告的所有错误或导航问题。
-
监控路径分析(漏斗报告),以了解客户在哪里挂断或迷路。这可能会揭示LLM的机会。
-
确保语音角色符合受众。进行测试并获取反馈。使用A/B测试来考虑替代方案。高级用户可以使用不同的角色。
-
如果使用多个角色,将正确的角色与特定的用户群体关联,例如新用户、经验丰富的客户或VIP。
这涵盖了交互式体验。那么在几乎没有交互的情况下会发生什么?有什么事情要做来创造高质量的体验?让我们接下来讨论仅限机器人或幕后体验。
设计推荐系统和幕后体验
有时,ChatGPT用于分析数据、提供建议、提出建议或显示结果。这是这项技术的绝佳用途,因为体验简单,确保输出也简单。这些体验不是对话式交互或隐藏LLM的使用。它们可能被称为“无头”,因为只提供推荐,没有前端体验,如聊天窗口。
以下是一些仅限机器人或幕后体验的示例:
-
基于ChatGPT分析的建议标志或标记。这可以是一个在云服务仪表板上显示紧急或警告的图标,或者为销售线索提供一个立即通话的标志。用户甚至可能不知道现在有一个LLM(大型语言模型)在背后处理这个通知。传统上,这由一个简单的规则处理,可能是一些机器学习,而现在是由LLM。这是因为LLM可以提供更高的准确性,处理更复杂的情况,或者更加及时。
-
行动号召:在周四之前联系客户;他们完成这笔交易的可能性增加30%。
-
流程改进:上周响应时间下降了11%。为了恢复到之前的服务水平,在 营业时间内增加三个客服代表。
-
任务推荐:使用DHL发送此包裹以获得最 经济实惠的解决方案。
-
在视频游戏中,虚拟非玩家角色与玩家之间的互动更加自然和动态。
-
想象力生成。提供解决问题的关键新想法。
-
编辑:与内置的营销或编码创作工具集成,这些工具提供的建议比传统的确定性拼写和语法解决方案更好。
在这些情况下,与模型没有直接交互;至多,你接受或不接受选项或建议。在许多情况下,UI(用户界面)已经有了这些体验,但生成AI解决方案的复杂性不足以驱动它们。
仅限机器人的体验指南
由于使用案例范围如此广泛,这只是一般性指导:
-
使用数据记录来了解是否遵循了建议。
-
在考虑任何日志数据的同时,创建一个获取使用反馈的机制。不要问那些已知答案的问题。例如,从通话记录中,系统知道当建议时,代理人员联系了客户,所以不要问他们是否进行了后续的回电。利用调查专业知识来提出正确的问题。
-
不需要反馈。
-
保持建议简短且直接。
-
考虑次要地暴露建议细节,了解更多关于这个建议功能的信息,或者分析导致建议的因素。
-
不要过度使用建议。如果每一行数据都有相同的建议,那么建议的价值就会丧失。
-
监控和建议的重访。在它们的成功或失败上创建指标将有助于定位未来改进的投资。没有监控,就不知道开发它是浪费。我知道有一个客户使用ChatGPT来更新简历,使其更适合通过自动筛选简历的工具。有人建议应该将反馈纳入到实际供应商工具中,而不仅仅是依赖于AI调整后,简历编写者是否进一步编辑了简历。正确的分析重点在于编辑后的简历是否通过了筛选,并导致申请者进入下一阶段。提出正确的问题和建立正确的指标 是关键。
有时,透露幕后发生的事情的更多细节是有帮助的。
当ChatGPT在幕后工作时暴露它
ChatGPT令人兴奋的地方在于它可以出现在任何地方。用户通常不需要知道幕后解决方案的细节。通常,细节不会被暴露,但在AI案例中可能会有一些例外。普遍认为,不假装成人类是一种良好的行为。在聊天用户界面的情况下,LLM不会模仿人类。客户被告知他们正在与一个虚拟助手交谈。这也可能对用户有益;他们可能会更加开放,并且会知道他们会得到快速响应。在一个包含GUI的混合体验中,或者在一个Chat AI参与群组对话的情况下,应该清楚何时AI在参与,以及是否有任何防止AI监听的护栏。
在一个提供简单推荐的机器人示例中,机器学习和算法推荐在UI中出现在十多年前。背后的算法没有解释,可能是专有的(如信用评分)。是否使用或包含ChatGPT的结果并不需要明确说明。根据用例来决定。对推荐进行反馈,并鼓励定期进行。如果提供反馈,解释一些细节可能会有所帮助,也可能会有害。即使是简单的反馈机制也可能由AI驱动。想象一个专门构建的模型,其工作重点只是获取反馈。有一个直接的反馈请求,可能还有后续跟进,这可能就足够了。公开“由AI驱动”的好处是,它可能有助于吸引客户提供反馈。将此定位为用户在帮助自己的同时,因为他们的反馈将被用来改进结果。人们确实喜欢被听到。客户可能会将其视为无成本的咨询服务,或者会感到烦恼,认为AI处于“测试版”。然而,我认为随着用户认识到训练有素的生成式AI解决方案的价值,这种观点将会软化。
希望对于所有可以发明的解决方案,大多数企业ChatGPT解决方案都将涵盖在讨论的体验类型之一中。对于所有体验,有一些总体领域需要考虑。
总体考虑因素
一些主题具有更普遍的适用性,无论体验类型如何。可访问性、国际化和安全性是三个值得讨论的基本项目。
可访问性
我强调可访问性,也称为A11y(因为谁愿意输入所有这些字母),这并不令人惊讶。大型跨国公司往往与企业空间的政府实体签订合同,并要求A11y。每个国家或地区都可以有自己的规则;有时,如果文档记录得当,这些规则可能会被打破,但我们的目标应该是提供一个可访问的体验。某些形式的可访问性比其他形式更具挑战性。所有客户都能从应用于A11y的设计思维中受益。例如,键盘快捷键和导航对于视力受损的人来说是必需的,但许多计算机专家也广泛使用它们。1979年引入了闭路字幕,用于听力受损的人。然而,酒吧仍然使用闭路字幕,其他人使用闭路字幕来学习新语言或由于流媒体和有线电视服务带来的广泛音频问题而帮助提高理解。语音识别是为行动不便的人开发的。没有这段历史,Siri、Alexa以及世界各地的语音助手就不会存在。例子可以继续下去。考虑用例并确保有一个稳固的A11y解决方案。有时,框架,如苹果iPhone,提供了相当大的可访问性支持。框架处理了这么多事情;这对你的团队来说是个幸运的事!
使用现有的标准,并学习它们在人工智能用例中的应用。图形用户界面、聊天和语音都有无障碍问题。即使你所在的国家可能不适用这些标准,你也可以从中学习到很多。我们想要的不是可访问的体验,而是可用的、可访问的体验。前三个参考具有最广泛的影响:
-
网络内容无障碍指南 (WCAG):
文章:WCAG (https://www.w3.org/WAI/WCAG21/quickref/)
由 万维网联盟 (W3C)开发,WCAG(发音为“double u-cag”)是网络内容无障碍的指南。基础指南被广泛采用,并用作其他标准的基础。例如,加利福尼亚州要求其公共网站符合 WCAG 2.1 AA 级别和第 508 条。WCAG 2.0 也被引用为标准 ISO/IEC 40500:2012。
-
第 508 条:
文章:第 508 政府标准 (https://www.section508.gov/)
第 508 条概述了美国联邦政府使用的电子和信息技术的无障碍要求。508 的合规性通常是针对销售给联邦政府的更广泛的商业解决方案,而向州政府的销售也可能在其项目要求中引用这一点。
-
可访问的富互联网应用 (ARIA):
文章:ARIA 指南 (https://www.w3.org/WAI/standards-guidelines/aria/)
ARIA 是一组属性,定义了使网络内容和应用程序更易于访问的方法,特别是对于动态内容和高级用户界面。当在页面上进行智能或实时更新时,这一点尤为重要。
-
美国残疾人法案 (ADA):
文章:ADA 网站 (https://www.ada.gov/)
ADA 规定,公共实体,包括数字服务、网络应用和网站,应使残疾人能够访问。由于 ADA 不是一个标准,合规性通常与 WCAG 指南一致。指南特别指出算法和人工智能在招聘实践方面的相关内容。
-
欧洲标准 EN 301 549:
文章:欧洲标准 (https://www.etsi.org/deliver/etsi_en/301500_301599/301549/03.02.01_60/en_301549v030201p.pdf)
这个欧洲标准基于WCAG,并为满足公共采购对信息和通信技术(ICT)产品和服务的需求提供了额外的要求。它们的一些标准,例如这个关于“视频电话”(视频通话)的标准,非常技术性:
文章:视频电话中的人类因素 (https://www.etsi.org/deliver/etsi_etr/200_299/297/01_60/etr_297e01p.pdf)
-
ITU-T F.922:
文章:ITU-T F.922指南 (https://www.itu.int/rec/T-REC-F.922-202008-I/en)
国际电信联盟(ITU)的标准为电信设备上的可访问用户界面提供了指南。这个特定的标准是为视力受损人士设计的,但同一部分的其他标准也可能很有价值。
最好理解和在需要时参考与目标受众相关的具体标准。如果你的第一个聊天UI,那么考虑屏幕阅读器如何读取对话,如何处理LLM返回可能延迟的响应(例如,如果用户在另一个窗口中,如何通知用户),并确保任何GUI元素都有与它们在网页上相同的支持。
如果你已经根据A11y标准构建了现有的UI,模型是否已经有了测试套件?合规性甚至超越要求和建议有助于为所有用户提供更包容的体验,而谈到所有用户,让我们想到全球受众。
国际化
这又是那些被写作I18n(跳过那些在I和n之间的18个令人讨厌的字符)的冗长单词之一。ChatGPT的世界已经打开了与观众用母语交流的大门。这是个令人兴奋的消息。企业能否处理在他们的语言中工作?这不仅仅是开启翻译的问题。这可能会导致比没有启用语言还要糟糕的情况,因为这只是支持客户使用该语言的一个方面,至少在某种程度上。定义一个合理的支持水平。如果有一个用于询问知识问题的ChatGPT对话解决方案,下一步就是支持客户的后续问题或升级到该语言的实时客服。许多公司在这方面并不擅长。
国际化,是语言支持的整体开发努力,包括本地化文本翻译和考虑特定地区的元素。
在对话中使用翻译的示例
即使是最大的支持公司,有时在其母语之外的多语言支持也有限。在一个大型跨国公司中,即使支持另一种语言(例如亚洲语言,对于这家公司来说,英语通常不是选择),一个团队会翻译每个服务请求。然后,将翻译后的请求发送给工程团队,每个回复都会翻译回客户的语言。这是一个电话游戏,这些中间步骤会导致噪音和混淆。
通过将实时机器或LLM翻译服务纳入循环,这个过程能否得到改进?请求和对话的技术性质是否会混淆参与者?这项技术即将到来,但达到那里将是艰苦的工作。询问去火车站的方向是一回事,而在询问需要调整或优化哪些具体的SGA参数和配置以增强高度事务性Oracle数据库系统的性能和吞吐量时,考虑到并发事务、响应时间和资源利用率等因素,则是另一回事。翻译能否跟上BUFFER_POOL_KEEP、BUFFER_POOL_RECYCLE、JAVA_POOL_SIZE和其他八个属性的差异?这和“下一班去市里的火车是什么时候?”相去甚远。
如果对话不如这个疯狂的数据库示例那么技术性,那是个好消息。但这就是为什么需要企业解决方案的原因。我们的目标是利用公司内部的知识,并假设将其用于扩展客户母语中的沟通能力。这清楚地表明,监控、调试和改进机器或人工翻译服务对于成功至关重要。
翻译知识
将知识翻译成其他语言是一个开始。传统上,成本很高。每篇文章都是自动化过程中的一个编辑过程的一部分,这允许提供高质量的经验。技术娴熟的翻译人员必须积累经验来翻译复杂或技术性材料。需要指南和翻译词典来保持一致性和质量。即使在自动化方面取得了所有这些进步,决定质量和成本权衡的阈值仍然是必需的。机器翻译可能便宜(或免费)且快速。确定它是否好。
注意
在技术界有一个谚语,“便宜、快速、好,选择两个。”如果它便宜且快速,那么它可能不好。如图图5.15所示,如果它快速且好,那么它可能不便宜。如果它便宜且好,那么它可能不快速。对于设计来说,有些选项可能是不切实际的。所有这些都有用例,但它们可能不是最适合业务的。

图5.15 – 便宜、快速、好,选择两个
每个人都想要便宜、快速和好。这似乎是一个独角兽,神奇且不存在。请证明我错了,我非常乐意。我一直认为这个格言是产品开发的一个真理。让我分享Benek Lisefski的论点,以便有更多的阅读材料。
文章:好、快、便宜的大谎言 (https://solowork.co/story/the-big-lie-of-good-fast-cheap)
选择你的战斗。基于LLM的翻译有快速改进,高质量翻译的成本也在迅速下降。可以自动化或允许在飞行中处理一些,但始终要检查或抽查结果。至少对于热门文章,即使LLM完成了主要翻译,也要付费进行专业审查和编辑。然而,对于不太受欢迎的文章或较少使用的语言,是否足够让用户知道这篇文章已经提供给他们,但仍可能存在错误?而且不要翻译同一篇文章超过一次。如果系统为旧文章采用按需付费的方式翻译,缓存结果以便下次请求文章时不必再次击中模型。自动化可以帮助批量翻译并降低成本,但由于公司语言的复杂性质,这个过程需要检查和平衡。以下是在翻译情况下使用LLMs的方法。
如何决定支持哪些语言
有时候,决策是由他人为你做出的。销售人员会预先用特定的语言推销产品。我见过这种情况;客户甚至几年后还在等待。说起来容易做起来难。在大公司中这种情况并不常见,因为通常没有哪一笔交易足够大,足以迫使这种情况发生。然而,在小型公司中,这可能会成为一项交易破裂的原因,或者由于战略合作伙伴关系或特定国家的法律而必须进入新市场。如果你参与了决定支持哪些语言以及如何提供帮助,以下是一个开始的大纲。根据需要调整。
需要定义四个类别:主要、完全、部分和不受支持。公司有一个主要语言,这是公司的基本语言;以英语为例。需要有一个流程来定义客户将接触到的每个资源,支持的成本以及该语言的质量目标。接近母语质量是困难的。使用传统方法翻译技术知识的成本可能过高,但这将确保复杂描述被正确解释。在多个语言中拥有母语水平的语言质量是具有挑战性的。ChatGPT的翻译成本要低得多,可能在适当的监控和微调下达到80-90%的价值。这值得能够扩大市场吗?
一些语言将只有部分支持;有些事情不会在这些语言中完成。而且总会有一些语言是不受支持的。
所有这些都取决于 LLM 支持的语言。这仍然是一个成熟的空间。尽管许多模型谈论支持数十种语言,但训练将提高它们在这些语言中的专业知识。每种语言的质量差异很大。
解决方案中的许多部分可以包括支持语言的设计元素。当他们在德语中拥有 ChatGPT 对话体验然后升级到不说法语的客服中心时会发生什么?计划是什么?客户的期望是什么?考虑 ChatGPT 如何在客户的旅程中支持语言需求。在 表 5.2 中,我展示了某些例子(加粗),其中 LLM 可以增强或扩展语言支持。
| 主要语言 | 完全支持的语言 | 部分支持的语言 | 不支持的语言 | |
|---|---|---|---|---|
| 用户用例 | 期望以最新语言、细节和语调获得高质量的本地化响应 | 期望获得良好的本地化体验 | 最不受欢迎的语言应从机器翻译中获得最佳努力 | |
| 用户基础百分比 | 主要 | 大于 I18n 用户基数的 5% | 1% 至 5% 的 I18n 用户 | 小于 1% 的 I18n 用户 |
| 语言 | 英语 | 日语、法语、德语、西班牙语、意大利语、巴西葡萄牙语 | 芬兰语、荷兰语、希伯来语、瑞典语、阿拉伯语、中文、韩语 | 泰语、冰岛语、斯洛伐克语、罗马尼亚语 |
| 用户界面及 帮助 | 完整 | 完整,专业翻译 | 完整,使用微调模型翻译的 LLM | 自动翻译,使用 LLM,翻译后缓存 |
| 知识 | 完整,活跃更新 | 关键知识,快速更新 | 基于 LLM 的批量翻译, 带有微调 | 自动翻译,使用 LLM,翻译后缓存 |
| 对话助手 | 完全支持 | 完全支持 | 基于翻译源料的 LLM | 实时 LLM 翻译(如有可用) |
| 一级代理 | 本地语种人士 | 本地语种人士 | 翻译支持 | 不可用 |
| 二级代理 | 本地语种人士 | 有限,LLM 支持 | 非常有限,LLM 支持 | 不可用 |
| 里程碑 | 及时 | 第二季度快速完成 | 年底前较慢完成 | 不支持 |
| 成本 | N/A | 增量待办事项成本为 1.25M,每季度 100K。持续 | 增量知识库成本为 125K,每季度 15K 用于新材料 | UI 语言成本为新,每种语言约为 15K |
| 特殊情况及备注 | 合同义务在 2026 年 12 月达到阿拉伯语一级 | 荷兰客户主要说英语,因此推迟 | 罗马尼亚代理说受支持欧洲语或英语 |
表5.2 – 假设性比较支持水平和语言战略计划
这只是考虑语言支持影响的一个例子。这个表格是假设性的。复制它,扩展它,并考虑对每个业务语言策略的每个方框的影响。在设计国际化时,也有一些细节需要处理。让我们探讨一些考虑因素。
在设计时考虑I18n
国际化过程中最显著的问题之一可能来自知识库。内容是否准备好翻译?它是否以适合翻译的方式组织?文化特定的习语短语是否会在自动翻译中失败?考虑一下“垃圾输入,垃圾输出”(甚至这个短语也是习语)。当前模型对习语的理解能力令人难以置信。Chat GPT的成果继续让我印象深刻。
如果我让你翻译
像是“你的背靠墙”
“背靠墙”到德语?会是
是一个字面翻译,还是可以
如何翻译这个习语的含义?
如果你让我翻译一个习语
像是“Es geht gleich los runter”
如果我用德语翻译,我会提供翻译
这传达了习语的含义,而不是
比字面翻译更准确。这个
“你的背靠墙”的习语含义
“背靠墙”的含义是某人处于
困难或绝望的情况
几乎没有或没有任何选择。
在德语中,一个常见的对应习语是:
"Du bist mit dem Rücken zur Wand."
这个短语传达了相同的意义
表达处于困难、受限的情况。
ChatGPT会处理类似于“倾盆大雨”这样的句子。它不会直接翻译字面意思,而是理解到雨下得很大。它使用德语中“溪流”的词汇来更准确地翻译:“大雨如注(倾盆大雨)”(Es regnet in Strömen)。在知识库中,我们希望不看到这些问题,但避免习语是具有挑战性的。我在这本书中使用了数十个习语,并觉得这让它更有趣。但如果翻译得不好,我就对读者不公了。与习语相关的是行话。
行话不容易翻译
记住,你世界中的某些术语在其他语言中可能因为使用相同的单词而没有翻译,所以它们可能被很好地理解。但不要将此作为策略。考虑技术术语、缩写、首字母缩略词和缩写词在其他语言中的表现。例如,PIN是ATM的个人识别号码的缩写。在德国,Geldautomat仍然使用Persönliche Identifikationsnummer,并且PIN和ATM通常是可以理解的。然而,如果公司的词汇不是通用的,应在模型、知识或字典中考虑到这一点。与此相关的是如何与客户沟通。最好学习如何与他们交流。处理语言术语与处理技术术语略有不同。在数据库领域,谈论DB或RDBMS(代表关系数据库管理系统)可能是众所周知的,所以这些可能可以像字母一样翻译,但应该避免使用通用语言术语。第7章,提示工程有助于解决这个问题,以控制LLM的输出。由于我们如此习惯于语言,这些问题很难被发现。“只见树木,不见森林”可能是一个挑战。哎呀!我刚才甚至没有注意到,我正在使用一个习语表达。
在LLM解决方案中的UI问题可以像传统的GUI一样解决。例如,处理从右到左的语言和图标方向,使用不会冒犯某些群体的颜色,甚至移除文化上冒犯的图像。然而,数千或数百万篇文章可能需要大量的重写才能为翻译做好准备。这是一个成本高昂的问题。
作为设计师和产品领导者,我们控制用户体验,但我们知道那些上游的知识来源可能会对其产生重大影响。因此,花时间让它们为国际观众做好准备。让我们回顾几个与语言相关的领域,从标点符号开始。
标点符号和语法
一个有趣的故事可以说明一个观点。
一只熊猫走进酒吧。他点了一份三明治,吃完后,掏出手枪在空中开了两枪。
“为什么?你为什么表现得这么奇怪,不像熊猫?”困惑的服务员问道,熊猫正朝出口走去。熊猫拿出了一份标点符号糟糕的野生动物手册,扔到他的肩上。
“我是熊猫,”他说着走到门口。“查查。”服务员转向相关条目,果然找到了解释*。
“熊猫。一种原产于中国的黑白相间的熊类哺乳动物。吃,射击,离开。” – Lynne Truss (吃,射击,离开)
我们不控制ChatGPT。那么这有什么帮助呢?当然,ChatGPT的每个响应都不是由人类控制的。通过确保提供的资源写得很好并监控其输出以验证其按预期工作,可以期望质量。如果共享的内容没有写好,我们不能期望ChatGPT返回高质量的答案。如果不够清楚,声明应该有标点符号来解释熊猫“吃(竹子)笋和(树木)叶”。
注意
如果写作不是你的强项,请超越所需的风格手册阅读。这本书也包含在在线图书馆中。
书籍:《标点符号的零容忍方法:Eats, Shoots & Leaves》 by Lynne Truss (https://amzn.to/3M7x8DH)
语法也适用于推荐UI。可以使用LLM在幕后生成要插入推荐中的数据或文本。语法和其他问题,如复数,都会发挥作用。在撰写这些声明或消息提示时,要考虑消息和通信的长度,以写出良好的散文。
标签和字符串的长度
测试文本扩展的UI。例如,如果ChatGPT编写一个通知,要考虑到消息的长度。当从英语转换过来时,看到超过200%的单词长度增加并不奇怪。在德语中,按钮“Edit”使用单词“Bearbeiten”,长度增加了150%。在匈牙利语中,“Szerkesztése”的长度增加了200%。当ChatGPT驱动推荐引擎时,确保UI有足够的空间来写入英文和翻译版本。提示工程可以用来创建限制响应大小的指令。在表5.3中,匈牙利语的翻译长度增加了53%,这并不算太糟糕。
| 字符串 | 语言详情 |
| --- |
| 提示:请确保在今天结束前编辑此员工ID的账单,否则国家 罚款将累积。 | 英语100 字符 |
| 提示:请确保在今天结束前编辑此员工ID对应的账单,否则国家 罚款将累积。 | 匈牙利133 字符 |
| 提示:请确保在今天结束前编辑此员工ID对应的账单,否则将产生国家 罚款。 | 匈牙利 (Google)136 字符 |
| 提示:请确保在今天结束前编辑此员工ID对应的账单,否则国家 罚款将累积。 | 匈牙利 (ChatGPT 3.5)147 字符 |
| 提示:请确保在今天结束前编辑以下员工ID对应的账单,否则国家 罚款将增加。 | 匈牙利 (ChatGPT 4o)153 字符 |
| 请注意:请在今天结束之前编辑此雇员ID的账单,否则将会累积州的罚款。 | 中文34 字符 |
| 注意:请确保在今天结束前编辑此员工ID的账单,否则将产生国家 罚款。 | 德语 (ChatGPT 4o)142 字符 |
表5.3 – 英文与匈牙利语、中文和德文翻译的比较
有时,情况正好相反,另一种语言可能更短。例如,在中文中,字符数为34,但双字节字符集占用的空间更多。尽管如此,换行和截断的问题通常发生在较长的文本中。对于句子长度或更长的消息,至少考虑50%的增长;对于标签等较短的项,根据支持的语言考虑100-200%,具体取决于情况。一个合理的指导方针是至少30%加上两个额外的字符。然而,如果设计可以容纳更大的文本,在大多数情况下没有害处。如果有表格,过度换行会导致问题,可以考虑为其他语言创建布局以适应它们独特的情况。对于A11y,考虑到客户可能会放大和缩放文本,这也可能使换行和截断成为一个问题。这也会影响字段及其文本的显示。在某些语言中,例如德语,复合词在换行方面有独特的规则。例如,在人力资源解决方案中,有关于缺勤批量参数的标签,所以当在预定的时间运行缺勤作业(休假、节假日或病假)时,它知道要使用哪些属性。AI的翻译可能会有很大差异:
-
缺勤批量参数(英文)
-
缺勤汇总处理参数(德文直译)
-
缺勤时间批量模式设置(描述性版本)
-
缺勤时间批量处理设置(描述性,侧重于批量处理过程)
-
常见的HR软件中的缺勤时间批量处理
-
员工缺勤汇总处理(强调员工)
人工翻译者可能会选择Abwesenheitsbatchparameter;注意其中没有空格,因此在用户界面中包裹时可能会出现问题。如果单词没有正确包裹,客户会将其视为一个错误。
小贴士
考虑到缩写是否会导致显示错误。并非所有语言都有缩写的概念。了解如何将它们翻译成完整的单词,并在中文或阿拉伯语中为它们留出空间。有些语言可能不会将一个字符识别为翻译的单词(例如,“#”代表数字,“Q1”代表第一季度,“ft”(英尺)在美国以外可能最好用米来计算,“info”可能不翻译为“信息”等)。顺便提一下,GPT 4o-mini在翻译中理解#和Q1,并将它们正确转换为数字和第一季度。
留出足够的空间以避免使用省略号进行截断。如果单词被截断,则必须使用省略号,但尽量防止截断。确保用户可以阅读整个标签或文本。我见过许多UI使用省略号(…)进行截断,但无法阅读其中的内容;并非所有组件都有工具提示。更糟糕的是,当翻译时,单词的顺序可能会不同。“客户编号”在英语中可能被截断为“客户 N..”,从而留下有用的信息。在西班牙语中,“Número de cliente”的截断版本是“Número de ..”,在可见的标签中留下没有任何价值的内容。这是用户体验的失败,对客户来说令人沮丧。
我创建了一个简单的Google表格,如图5.16所示,来测试长度问题。在表格中输入一个字符串,工具将突出显示长度较大的语言。这有助于理解单词或短语如何增长长度。这并不完美,因为这是谷歌的翻译,但它既快又便宜。克隆这个表格用于你的目的。
工具:翻译长度测试器 (https://docs.google.com/spreadsheets/d/1P-FLn8Kc4wcOgFbUfGuCamAL7O6IXvF_qkDAhvS8QdA/edit#gid=0)
如果你正在使用LLM进行UI文本,请确保UI中有足够的空间来容纳这些长翻译。

图5.16 – 使用快速长度检查的Google表格示例
连接
ChatGPT中的一个绝妙技巧可能是将定义的语句模板与ChatGPT的输出结合起来。例如,“建议" + <ChatGPT response>,或者"今天通过" + <ChatGPT response of a time> + "补充运输容器。",这可能会遇到翻译问题。英语句子结构与其他语言不同。文本的这部分静态部分可能位于句子的末尾。将答案分成两个不同的部分。使用静态文本创建推荐标题,然后从模型生成整个推荐。在这些例子中,将那个推荐放在标记为Recommended Actions的框中。或者标记时间为Today's Refill Container Deadline,这样输出的“3:45 PM”就可以独立显示。
小贴士
请ChatGPT翻译整个字符串。这比编写代码为每种语言创建格式要好。
让我进一步探讨翻译的复杂性。复数是语言中最著名的问题之一。
复数
复数是翻译中更复杂的问题之一。在聊天体验中,ChatGPT处理这个问题,这个话题可以跳过。然而,如果机器人建议使用模板来填充来自ChatGPT的文本片段,这种情况可能会变得复杂。在英语中,有简单的规则;我们可以用一个通知来提醒用户他们的假期余额作为例子:
-
零:您没有剩余的假期。
-
一:您还剩1天假期。
- 您还剩1天假期。(替代)
-
许多:您还剩23天假期。
英语有三种复数形式。对于零的特殊规则很有用(因此可以使用更简洁的文本“无”而不是零)。单数词“day”用于一个,其他所有数字都使用复数“days”。
在软件中编写一个规则来处理这种情况很容易:
if days == 0:
print("You have no days off remaining.")
elif days == 1:
print("You have one day off remaining.")
else:
print("You have " +str(days)+ " days off remaining.")
这种方法可能适用于负余额,但一个好的用户体验设计师会添加一个额外的条件。当在其他语言中执行这种逻辑时,这会变得更加复杂,因为许多语言有不同的规则。为了适应不同的语言,有软件和标准来处理零、一、二、几个、许多以及其他用例。除了英语中单数和复数形式的名词外,不同语言在对象数量为二(“双数”)或几个(“少数”)时,或者数字以一或零结尾时,都有独特的名词形式……有许多特殊规则!正如前一个示例所示,英语中小数(1到9)的拼写。这可以使每个解决方案在语法上正确,但编码起来会更费力。要深入了解使用数字的复杂性,请参阅以下参考:
文章:何时拼写数字 (https://www.masterclass.com/articles/when-to-spell-out-numbers-explained)
如前所述,如果ChatGPT输出一个完整的想法,它应该遵循正确的规则。需要工作来创建一个混合体验,其中输出包括静态消息中的数字,例如推荐文本。本节后面列出的资源提供了一些更详细的解释。以下是一个英语和捷克语的例子,这甚至不是那么复杂。
You have {COUNT, plural, one {# mail} other {# mails}} in your inbox.
You have {COUNT, plural, one {# mail} few {# mails} many {# mails} other {# mails}} in your inbox.
V doručené poště máte {COUNT, plural, one {# zprávu} few {# zprávy} many {# zprávy} other {# zpráv}}.
这种格式显示了翻译字符串如何支持相应的复数形式。不要期望直接将数字注入ChatGPT的响应中。要么让它正确处理,要么编写代码。表5.4显示了端到端的一个示例,包括不应该做什么,应该做什么,以及完成后的样子。
| 不要 这样做 | 可读且 可翻译 | 示例输出 |
|---|---|---|
| 我准备好提交你的发票,包含 {0} 和 {1}。我们应该怎么命名这份发票? | 我准备好提交你的报告,包含 {NUM_ITEMS, plural, =1 {1 item for} one {# items totaling} other {# items totaling}} {AMOUNT} {CURRENCY} 和 {NUM_ITEMS1, plural, one {# 外币项目} other {# 外币项目}}。我们应该怎么命名这份报告? | 我准备好提交你的发票,包含5个项目,总计140美元和1个外币项目。我们应该怎么命名这份发票?我准备好提交你的发票,包含五个项目,总计140美元和一项外币项目。我们应该怎么命名这份发票? |
表5.4 – ICU格式翻译的字符串示例
注意变量是可读的,不仅仅是0和1。这样做是为了验证这些语句可以快速阅读。良好的设计思维有时也会体现在代码中。这些变量是数字还是单词必须知道,以便进行翻译或验证。如果是数字,需要知道具体的数字,这样代码才能生成正确的格式。注意,我提供了两个示例输出,一个使用数字,一个使用数字文字(书写形式)。我更喜欢在UI中使用数字,即使它们在英语中语法上不正确。这有助于这些值突出显示,并防止用户不得不阅读整个文本。人们不会阅读!
复数资源的附加参考
文章:复数化 (https://lingohub.com/blog/pluralization)
文章:国际化复数规则 (https://cldr.unicode.org/index/cldr-spec/plural-rules)
设计中处理大写字母可能不那么令人兴奋,也不那么为人所知。这不仅仅针对对话式AI,但仍然有助于意识到当有人想要在建议中使用它们时。
全大写
不要要求ChatGPT以全大写形式返回输出。为了强调格式,使用粗体,例如。全大写不仅难以在英语中阅读,而且在某些语言中这是不可接受的(法语和希腊语),在有些语言中也没有等效形式(中文和阿拉伯语)。通过不使用全大写并告诉LLM避免使用全大写来避免这个问题。全大写的字符串难以阅读。即使对于标题、表格或标签也不建议使用。使用标题大小写,就像报纸标题中使用的。
工作和字母识别
了解一些关于单词和字母识别的研究:
文章:单词识别的科学 (https://learn.microsoft.com/en-us/typography/develop/word-recognition)
考虑地区设置
为地区设计涉及考虑特定地区或国家如何处理某些事情。例如,如果你正在构建一个调度服务,有人问:“为这个周末预订一家酒店”,那么预订将包括哪几个晚上?在美国,那将是周五和周六的晚上。这合理吗?然而,不同国家对于周末的定义不同。在中东的一些穆斯林国家,那将是周四和周五,而在伊朗,周末只有周五晚上,因为他们实行六天工作周。ChatGPT在一定程度上理解这些概念,但请确保集成也有这种理解。许多想法和词汇可能是地区特定的。例如,当你在设计费用助手时,它理解汽车、出租车、Uber、Lyft、Limo等费用的概念。但不同国家有Didi、BlaBlaCar、Cabify和其他许多服务。确保模型支持地区特定概念将使体验更加稳健。有时,这不仅仅是一个特定国家的产品或服务;它可能是本章前面提到的行话。如果UI将处理理解客户的工作周,它可能需要学习如何正确地称呼客户。
面向客户和呼格用法
许多用户界面以“Hello, Max!”或“Welcome, Madison.”开始。直接的翻译不会起作用,因为在某些文化中,用他们的名字称呼某人是不恰当的。
我的朋友分享了一个很好的例子,说明了在客户的名字中正式或复杂地说话是多么困难。我已经在表5.5中分享了这一点。所以请确保你有足够的信息来适应他们的名字、姓氏或他们名字的各种形式(术语为呼格变位),这取决于语言。
| 语言 | 问题 | 基本名称 | 示例 |
|---|---|---|---|
| 英语 | 无 | Mark Stevens | Hello, Mark |
| 日语 | 需要姓氏+敬语 | Yoko OnoAkira Kurosawa | Hello, Ono-sanWelcome, Kurosawa-san |
| 阿拉伯语****(拉脱维亚语, 立陶宛语,越南语) | 倾向于礼貌称呼 | Mohamed Hassan | Hello Mr. Mohamed (适合欢迎屏幕)Dear Mr. Mohamed,Alt: Dear Mr. Hassan (for email) |
| 捷克语,波兰语****(希腊语, 拉脱维亚语,立陶宛语) | 需要呼格变位 | Petra LukášMarek Martin | Vitejte, PetroDobrý den, LukášiMilý MarkuMartine, jak vám mohu pomoci?(注意名字末尾的o, i, u和e) |
表5.5 – 在各种语言中直接称呼可能引起问题的例子
如果其他方法都失败了,就完全不要使用它,或者不要在这些语言中使用它。一种解决方案是使用电子邮件地址。我不推荐这样做。说“你好”比说“你好,jill@miller.com”要好。软件可以用来为特定语言构建词尾变化(在这种情况下,是人的名字的变化)。我让 ChatGPT 为匈牙利语做了这件事,它生成了 Python 代码。这不必是设计问题;这是在使用人们的名字时需要注意的事情:
def decline_name(name, case):
declensions = {
'nominative': '',
'accusative': 't',
'dative': 'nak/nek',
'genitive': 'é',
# Add other cases as needed
}
# Handle special cases or irregular declensions
special_cases = {
'János': {
'accusative': 'Jánost',
'dative': 'Jánosnak'
}
# Add other special cases
}
if name in special_cases and case in special_cases[name]:
return special_cases[name][case]
suffix = declensions.get(case, '')
# Apply vowel harmony rules or other specific rules
if case == 'dative':
if name[-1] in 'aeiou':
suffix = 'nak'
else:
suffix = 'nek'
return name + suffix
# Example usage
name = "János"
case = "dative"
print(decline_name(name, case)) # Output: Jánosnak
ChatGPT 解决方案的一个优点是它可以询问他们希望如何被称呼。即使 ChatGPT 无法从一次会话记住到下一次,也可以将其存储在设置变量中,然后提醒 ChatGPT 如何称呼这位客户。当帮助撰写客户电子邮件时,ChatGPT 会看到包含人们名字的企业数据。如果在国际环境中工作,请确保这一点得到正确处理。称呼客户不是唯一的文化特定问题。
文化及双向问题
如果客户使用阿拉伯语或希伯来语,请记住,包含图像或图标的响应在没有翻转版本的情况下可能无法正常或按预期工作。这些语言是从右到左阅读的。如果箭头是指向项目列表(或任何表示前进运动的图标),它看起来会很奇怪,箭头指向错误的方向。文本气泡、箭头、切换图标、音频控制、分页、进度指示器和下拉菜单图标等图标必须面向从右到左阅读。某些文化中的一些图标存在问题。这些问题在对话式人工智能中也适用。在某些文化中,竖起大拇指是冒犯的。我就是这样学到的!
文章:文化设计 (https://material.io/blog/localization-principles-techniques)
深入了解双向问题的内容可以在这里找到:
文章:双向性问题 (https://m2.material.io/design/usability/bidirectionality.html#mirroring-layout)
在使用 ChatGPT 生成解决方案时,请注意文化差异。使用提示并使用母语人士或可信赖的模型验证文化适宜的答案。设计越支持这些小细节,就越能建立客户信任。
信任
我们都听说过信任问题。如果AI提供错误或不良的数据,这可能会迅速破坏对话,并导致客户对AI失去信任。这与与人类代理合作时的情况相同。一旦人类代理说出愚蠢且错误的话,对话就会中断,互动的语气会立即改变。目标是减轻这些错误和问题。接下来的这部分可能会感觉像电视节目,但以下是提高ChatGPT体验信任度的前10种方法,按逆序排列。
10. 定期更新
当适当的时候,让用户知道结果的新鲜度。例如,如果他们询问一个基于最新信息的可轻易更改的时间相关问题,告诉他们模型最后一次更新的时间。“我注意到这个问题的答案已经反复改变,但截至2024年7月5日,答案是…”,以及“我的信息截至上周是最新更新的…”。不要让客户认为他们拥有最当前的答案;他们会据此行动。最好根本不回答。甚至建议也需要一些支持信息,以明确建议是基于最新信息的。这也适用于后端服务。有时,展示最后摄入的数据或文件的最后更新时间和名称是有价值的。第7章,提示工程可以解决这个问题。这些小事情可以帮助建立信任。
9. 赋能用户
使用定制体验的工具,明确指出这是一个选项以及如何调整。如果他们觉得在UI、隐私、数据存储和其他关键因素上有所控制,他们将更信任系统。这是关于理解和实施赋予用户权力的用例。用他们熟悉的语言与他们交谈是一种赋权的感觉。
8. 伦理
如前所述,大多数企业用例并未深入探讨伦理问题。然而,在医疗决策、法律后果、贷款实践、驾驶决策、政府行为、个人隐私、心理健康或其他伦理至关重要的领域,要知道答案可能并非最佳选择。在可能的情况下,避免这些话题,实施广泛的安全措施,并持续监控。律师可能会介入,提供冗长的免责声明。这就是世界的运作方式。通过使用一个ChatGPT检查另一个ChatGPT的输出,即提示链,可以帮助验证输出。
7. 偏见
定期监控并解决响应中的偏见。实施措施以最小化偏输出,并确保对所有用户公平对待,无论其人口统计特征如何。考虑知识库是否包含这些偏见。第6章,收集数据 – 内容为王将深入探讨这个主题。使用新兴工具检查和监控输出中的偏见。
6. 隐私和安全
回想一下,有人与公众模型共享数据是多么容易,而他们并没有意识到其影响。在企业模型中,更重要的考虑可能是在公司层面。公司A的模型是否会影响其他客户的模型?业务是否运行在所有客户互动影响的模型上?产品负责人必须确保公司敏感数据不会流向其他公司。通过隔离客户数据和独立模型更新,然后在公司层面有很好的保护机会。这也意味着要帮助每个客户的模型改进需要做更多的工作,或者将这种改进外包给客户或第三方,自动化,或者忽略这个问题。许多第一代聊天机器人失败的原因是它们忽略了这个问题。不要失败。建立检查机制,以便系统不能被操纵来共享错误的数据。一些平台,如Salesforce,对此进行了广泛的覆盖。
确保只有公司中正确的人才有正确的访问权限仍然是一个挑战。仅仅因为某人为同一公司工作并不意味着他们应该获得访问权限。销售、收购、财务和人力资源都要求有安全性。Salesforce不遗余力地提醒人们:“您的数据是您的数据。您的数据不是我们的产品。”这似乎是一条很明确的界限。不利的一面可能意味着在没有跨公司共享数据的情况下,模型可能不够高效。有可能在一个数据孤岛中学到的改进在另一个孤岛中可能不起作用。因此,监控和改进还有更多的工作要做。这对企业来说是一个真正的挑战。
公司越大,它可能失去的越多,它愿意承担的风险就越小。安全性非常重要,我建议在安全审计、渗透测试(PEN)、性能调整和可用性测试上投入额外的时间和精力。
5. 用户反馈
用户反馈的一般感觉是,一旦提交就会进入黑洞。有时,反馈是匿名的,因此很难直接与用户沟通。偶尔,会要求客户进行跟进或提供他们的信息,如果需要进一步的问题。建立信任的一种方式是倾听和沟通反馈。如果他们提供了电子邮件,除了发送自动电子邮件告知他们的反馈已发送外,还要做更多的事情。这并不能建立多少信任。甚至这一步也可以通过LLM自动化,以提供更深思熟虑的“我们正在查看您的问题”回复版本。模型可以通过几种方式回应:
-
通过将请求与现有已发布的计划进行比较,来确认一个功能请求正在进行中
-
分享已提交的现有错误,与现有错误进行比较
-
提供一个链接来监控现有的错误或社区线程
-
根据知识搜索提供替代方案
所有想法都支持反馈过程中存在循环的观点。让人类做更复杂的工作,让LLM助手处理一些小交互。
对于匿名反馈,引导用户到收集和传达反馈的文档或帮助站点。如果他们看到像他们这样的人正在被倾听,他们可能会对解决方案产生一些信任。
主动询问用户反馈是非常好的。很少有客户会回应,而且询问可能会让人感到不舒服,尤其是如果用户正在处理重要的事情。尽管在第2章,进行有效的用户研究*中已经有所涉及,但这是一个很好的时机,用一些收集反馈的技巧提醒大家:
-
不要要求反馈。不要在每一个转折点或每一个客户那里都要求反馈(使用抽样)。
-
保持反馈简单,例如“我们今天帮您解决问题了吗?”根据答案,探究原因。
-
如果有人被要求提供联系方式,必须有人(LLM?)跟进。
-
记录反馈的上下文。如果他们在创建紧急服务请求时被提示,“您的问题解决了吗?”,答案是“没有”。考虑何时请求反馈,以便提出相关的问题。
4. 一致的风格和语气
本书花了很多时间在风格和语气上,这对信任有影响。保持一致的沟通风格让客户知道期望是什么。然而,这并不意味着风格和语气不能改变。如果情况需要,那么语气应该适合那个上下文。同样,这再次成为与LLM共享的指令的一部分,从第7章,提示工程*开始就有详细说明。
3. 可解释性
在对话式用户界面中,这是这种方式,而在图形用户界面或机器人用例中,他们可能有一个信息按钮,更多细节,或者一些请解释的元素。我用了十年信息(i)图标,在简单推荐旁边链接到更多细节或在一个窗口中提供它。有时,人们想知道更多细节和决策背后的推理。这可以建立信任,展示推理;如果推理是合理的,它可以增强信任因素。用户界面可以利用这一点来帮助引导客户,再次建立信任。这在本章的第9章,指南* 和启发式方法中有详细说明。
2. 透明度
对于一个聊天AI来说,这比一个机器人或推荐系统更重要。在实际对话中,与AI进行清晰沟通至关重要。当用户界面弹出简单的推荐或建议时,精确说明这是如何生成的需求就不那么迫切了。而且这很可能是AI和其他工具的结合。本章早先的部分,设计推荐系统和幕后体验,详细介绍了与幕后AI的沟通。参见本章前面的部分。
1. 准确性和相关性
这之所以排在第一位,是有原因的。而且因为这是一个有序列表,所以不明显地看出它比前九项更重要多少。如果你阅读了上一章关于排名与评分的讨论,现在这可能会更有意义。准确性和相关性可能与其他所有问题一样重要。没有准确和相关的答案,解决方案就会注定失败。在其他信任问题上可能会有一些灵活性,但在错误答案方面则不然。有时,如果他们相信这是正确答案,而又不足以识别它是错误的,问题可能会更严重。这是最糟糕的问题。一个错误的答案允许客户忽略答案,忽视答案,甚至可能留下不满。然而,一个看似正确的错误答案可能会基于客户决策造成下游的后果。包括正确的资源来制定答案和创建测试用例以检测问题(更多关于测试的内容请参阅第10章,监控与评估)。LLM解决方案需要精心照料以快速发现这些问题。用户反馈只能捕捉到已知错误;它无法捕捉到未知错误。那些是难以解决的。建立专业知识以调整你的雷达来发现未知错误。以下关于提示工程和微调的章节提供了提高准确性的技术。鉴于目标是建立信任,安全可以在很大程度上帮助建立信任。逻辑上,应该以这个重要主题结束本章。
安全
安全有多种形式。至少,对话应该进行端到端加密;用户在典型的Web HTTPS交互中已经获得了点对点加密。定制应用程序不应做得更少,而一些渠道如短信本身就不安全。供应商在其应用程序中强调推广安全。考虑HTTPS连接建立后,信息与后端服务或数据库共享后,企业网络内部数据会发生什么。
这份数据是否安全,免受窥探的目光?例如,一些公司不允许员工通过电话接受信用卡信息。使用虚拟代理接收和确认支付信息,以防止内部人员利用这些信息。这甚至可能让客户感觉更安全;虚拟代理可以用来建立信任。
考虑模型是如何更新以及使用什么数据的。客户数据必须在企业内部隔离,不能泄露到其他客户的模型中。这本书是关于将以用户体验为中心的设计方法应用于企业解决方案;我们在这个领域的建议仅限于确保客户的数据安全,并将这一细节告知客户。对于任何需要包括详细说明的提示工程努力,也是如此,以便用户的提示有上下文。第7章,提示工程,涵盖了这一点。设计还必须考虑到当用户不允许访问这些数据时,这些数据不可用的情况。例如,围绕销售交易创建上下文,以便用户可以就交易提出更详细的问题。一些销售人员可能无法完全访问细节,因此在构建提示时请考虑这一点。
关于安全的要点是要成为客户的代言人,确保对话安全,不会落入错误的手中。并非所有数据和内容都会存储在安全通道中。与其他服务的集成,甚至某些知识的访问可能仅限于特定受众,LLM集成需要考虑这一点。在下一节中,讨论混合UI/聊天体验问题时,集成变得更加关键。
摘要
学习你框架中工具的能力,或者更好的是,帮助找到推动用户体验进步的正确工具。每个工具都有其能力和局限性。对于任何体验,可访问性、信任、安全、语言和国际化的支持对用户体验的影响可能是既定的。我们希望这些指导、技巧和建议能帮助创建一个功能性强、易于使用、必要且引人入胜(FUN-E)的体验。努力追求所有四个属性(记住它为“funny”)。
是时候构建一个ChatGPT解决方案了。用例应该准备好开发,并且使用情境应该是已知的。大多数体验的情境很容易确定。在许多情况下,使用情境不是一种选择。如果公司提供电话支持,那么仅限声音的体验是既定的。这就是我们改变方向,从以UI为中心的关于生成式AI解决方案的讨论转向以模型为中心的讨论,同时关注UI实践的地方。接下来是集成企业数据,如知识、数据库和其他服务。
参考文献
![]() |
本章中提到的链接、书籍推荐和GitHub文件已发布在参考页面上。网页:第5章参考文献 (https://uxdforai.com/references#C5) |
|---|
第二部分:设计
本部分重点介绍LLM设计的最技术性部分,即LLM中的工作,或在使用其他工具和技术构建端到端LLM解决方案时的操作。我们将首先介绍如何将企业数据集与LLM的生成能力相结合的实践,例如检索增强生成(RAG)。然后,您将了解企业应用提示工程的基本原理。示例遵循非技术路线,因此您可以在不编码的情况下最大限度地了解涉及步骤。接下来,我们将探讨微调,使模型能够根据后续提供的示例进行思考和行动,这些示例将遵循任何商业或企业所需的风格和语气。我们还将探讨一些案例研究,并提供一些实际经验,以了解该过程。
本部分包括以下章节:
第六章:收集数据 – 内容为王
本书有一个假设:几乎在所有情况下都需要企业ChatGPT解决方案,因为公司有独特的东西可以提供给客户,并且它对其产品、服务和内容的理解非常出色。这些内容是私有的或独特的,因此不属于从网络抓取构建的大型语言模型(LLMs)。模型是在爬取超过20亿页的网页内容的基础上构建的,以教授模型。第三方,Commoncrawl.org,通常被引用为该材料的主要来源,用于主要模型(GPT-3、Llama)。这些模型是大量文本的集合,学习单词和概念之间的统计关系,可以用来预测和回答问题。创建一个模型可能需要数月时间;大多数模型都有数十亿个连接和单词。当客户来到企业寻求答案时,模型必须包括不属于这次爬取的企业内容,以使其独特、安全且更准确。这是基于预期解决方案将是最新的、优化以具有成本效益,并且不太可能产生幻觉或谎言,正如一些人所说的那样。
本章讨论了为LLM收集数据以及如何使用称为检索增强生成(RAG)的方法将企业数据源包含在LLM解决方案中。我们将讨论以下主题:
-
ChatGPT基础模型中包含什么
-
使用RAG整合企业数据
-
RAG资源
本章以及接下来的几章将更偏向技术性,对于那些已经达到这个水平并且专注于以用户为中心的设计概念的人来说。本章涵盖了所有这些想法,并提供了访问额外视频和在线资源的途径。本书不需要大多数这些外部资源;它们旨在提供更多细节。
ChatGPT基础模型中包含什么
当构建LLM时,它是在互联网数据源上训练的。它了解关于公司和产品的公开信息。如果被问及典型的企业类问题,它可以给出稳健的答案——有时甚至比某些供应商网站上的信息更好。例如:
What are the advantages of Hana for a database?
What is a good value for SGA for an Oracle 12.2 transactional database?
Can you easily replace the battery in an iPhone?
How do I return a product to Costco?
尝试这些问题并注意趋势。每个答案都比上一个答案稍微通用一些,而这种通用性正是问题的一部分。
以下适用于大多数基础模型,如ChatGPT 3.5或4o、Anthropic的Claude、Meta的Llama或Mistral7B:
-
不理解特定的业务或使用背景或复杂产品
-
没有客户历史或背景信息可供考虑
-
无法访问专有知识源
-
没有在服务请求或其他服务数据上训练,也不会知道正确的假设与错误的假设和不准确解决方案之间的区别
-
无法与数据库或API集成以进行检索和任务执行
-
无法进行扩展或调整以支持多租户
现在想象一下,如果这些问题是在丰富的商业知识背景下提出的:
What are the advantages of Hana for a database connecting to my service application running ServiceNow on the Washington DC release?
What is a good value for SGA for an Oracle 12.2 transactional database when connecting to EBS 13.2 with 1200 concurrent users?
How do I replace the battery in the iPhone 15 Pro?
How do I return a product from my last order to Costco that was oversized and delivered?
将数据源与ChatGPT集成,以将解决方案与业务情境化,可以解决这些更丰富的问题。无论使用哪种设计模式,如聊天UI、混合体验或独立推荐器,企业数据都将使解决方案变得强大。基础模型通过检索增强生成或RAG获得访问知识。
使用RAG整合企业数据
还有其他方法可以将数据纳入LLM。可以构建一个基础模型,但如前所述,训练时间和努力是极端的。即使有RAG,也有不同的方法。一些技术资源是共享的,但本章将重点介绍RAG的理解,以及产品人员如何参与开发过程。首先,一个RAG的解释。
理解RAG
RAG通过企业数据补充LLM。RAG是一种从知识库等信息源检索信息的技术,并且可以从权威知识集合中生成连贯且上下文准确的答案。
这种方法使我们能够克服一些通用的模型问题:
-
材料总是最新的,因为它在需要时才会被评估。
-
工具可以引用文档源,因此更加可信。
-
基础模型已经训练好了,所以与从头开始构建模型相比,补充它是相对便宜的。
-
它允许一组强大的资源(API、SQL数据库以及各种文档和演示文件格式)继续独立管理(并且仍然可供其他解决方案使用)。
-
它将不会用于将所有数据投入LLM。将使用一种机制,在处理时及时将相关文档发送到LLM。
-
它允许为多个客户提供独特、安全的答案。
需要进行技术工作来创建一个RAG管道。即使这本书不是关于创建RAG管道的开发工作,但仍有理由认为,需要有一个基本理解,即数据如何成为ChatGPT解决方案有价值的部分。首先,考虑一下,如果所有企业数据都投入LLM会发生什么。它看起来可能像图6.1。

图6.1 – 我们直接将所有知识添加到LLM中的模型
图6.1中的模型假设它可以处理所有公司知识并将其包含在一个OpenAI模型中,从而形成一个定制的公司模型。这听起来很合理,但创建它的成本和月数非常高。需要有一种方法让LLM能够访问所有我们的资源,而无需承担成本和复杂性。让我们回顾一些限制,以找到解决这个问题的方法。
ChatGPT和RAG的限制
为了明确起见,有两个值得讨论的限制类型。第一个是使用OpenAI模型或任何模型进行知识检索的限制。相比之下,第二个是RAG的限制,即使整合第三方解决方案构建企业RAG解决方案也是如此。
大多数企业解决方案都会发现 OpenAI 中的数据集成需求有限,并会寻找其他地方以实现可扩展性、成本和性能。使用 OpenAI 文件搜索,这是他们增强 LLM 知识的方式,存在一些技术限制:
-
最大文件大小为 512 MB
-
5M 个标记的限制(从 2024 年春季的 2M 个标记增加)
-
ChatGPT 企业版支持 128K 的上下文长度(从免费版本和第一个企业版中的 32K 增加)
-
对文件格式(.pdf、.md、.docx)的一些限制——完整列表在此:
-
存储费用为每位助手每天 $0.20/GB。
这些限制(截至 2024 年 9 月)会频繁变化。这些限制意味着需要第三方解决方案。
还有一些质量限制:
-
模型数据对所有有权访问模型的人开放。安全屏障或限制不是隐含的。
-
它不会区分一般知识和内部知识。存在权重和优先级和强调材料的能力,但它仍然可以没有理由地产生幻觉。
-
当知识发生变化时,需要重新训练,这很昂贵。由于结果需要准确和及时,这成为了一个障碍。
-
OpenAI 的知识检索文件搜索处理了流程的一部分,并且没有 RAG 在可扩展性和数据输入类型方面的附加价值。
-
一次可以与 LLM 分享的内容有限。这被称为上下文窗口,本章将介绍如何分块信息以适应该上下文窗口。上下文窗口越大,一次可以与 LLM 分享的知识和企业管理数据就越多,以便制定答案。随着窗口变大,预取材料所需的 RAG 就越少。RAG 是一种更可扩展且成本效益更高的方法。
第三方解决方案有助于避免这些限制。为了演示和理解本书的空间,OpenAI 内置工具将适用于小型演示。然而,企业解决方案将与第三方应用程序一起用于生产实例。这些章节中获得的知识对任何 LLM 都相关。
使用游乐场以 OpenAI 内置功能开始是好的,这样就不需要编码。现在不需要查看文档,但仍然包含在内。这种方法使我们能够尝试自定义模型,而无需完整企业解决方案所需的额外开销。
文章:OpenAI 文件搜索文档 (https://platform.openai.com/docs/assistants/tools/file-search/quickstart)
从数据(本章)到第7章,提示工程,再到第8章,微调的下一步,需要做大量的工作,以便能够用第9章,指南和启发式方法来审查解决方案,并在第10章,监控和评估中进行分析,以确定成功。更多资源,请访问OpenAI食谱。它包含大量涵盖整个LLM生命周期的文章,提供了许多好的解释和定义,并概述了整个过程。这里有一篇很好的文章。
文章:关于使用Qdrant进行RAG微调的OpenAI食谱文章 (https://cookbook.openai.com/examples/fine-tuned_qa/ft_retrieval_augmented_generation_qdrant)
文章是技术性的,但概念强化了本书的学习内容。需要有一种方法向模型提供材料,而无需重新训练,并且能够处理企业问题的规模。这是通过实现一种基于知识索引的RAG形式来完成的,根据需要只向LLM提供相关材料。索引是一种组织信息以便快速检索和比较的方法。做这件事的方法不止一种,但我们将探讨基本方法,以形成对RAG的理解。其中一些步骤超出了本书的范围。阅读本书的人不太可能从头开始构建一个LLM。产品人员,尤其是那些负责知识库或数据库资源的人员,可以通过改进进入解决方案的数据来提高索引和LLM返回高质量结果的最佳机会。因此,引入了技术来处理所需的规模、性能和质量。参见图6**.2。这要求我们专注于将数据整理成适合索引的形式。在这种方法中,只有相关信息与LLM共享,以开发答案。

图6.2 – 介绍RAG解决方案以协助问答过程
这是对过程的一个极大的简化。显示的索引图标是一系列过程,这些过程会产生一个有限数量的文档,这些文档将与LLM一起作为问题的上下文(这个上下文在提示中共享——这个提示是与LLM共享的指令)。摄入过程包括清理数据、将其转换为文本以及创建向量表示,以便将问题的向量表示与索引资源进行匹配。这个索引过程将数据组织得像似。向量化是将文本转换为数字向量的过程。嵌入是基于向量的相似性确定相似性和语义关系的过程。所有的处理和匹配都是基于匹配这些向量。
为了简化概念,可以将向量视为具有方向的数字,例如向西走5英里与向北走12英里。在这个例子中,方向和大小是两个用于匹配结果的维度。然而,在LLMs的情况下,有数千个维度。嵌入过程会看到相似的向量代表具有相似意义和用法的单词,它们位于同一区域。然后,最佳匹配(西北方向4英里大致相当于向西走5英里)将被传递给LLM进行处理,与问题一起。这意味着LLM被赋予了有限的信息来生成其答案。这也意味着确保知识和资源为这一过程做好准备,并使用工具返回与所提出问题相关的知识是有价值的。这不需要数月时间来训练模型。所有这些工作都为我们完成了。然而,基础模型可以通过提示工程和微调来增强。提示工程是向模型提供指令以告诉它要做什么的过程,而微调则用于提供对生成输出期望的示例。这两者都在接下来的两个章节中进行了介绍。
产品负责人、设计师、作家以及那些关心内容质量的人可以为输入和输出增加价值。本章是关于输入,从数据源中获取高质量的内容。接下来的章节将专注于输出,以确保在回答问题时准确性。
进一步阅读RAG
有许多很好的资源可以更详细地解释RAG。以下是一些深入探讨该主题的资料。让我从亚马逊对RAG的介绍开始。
文章:亚马逊的RAG解释 (https://aws.amazon.com/what-is/retrieval-augmented-generation/)
这一章节更深入地探讨了完整解决方案的问题和技术细节。
文章: 在你的领域特定知识库中利用LLM (https://www.ml6.eu/blogpost/leveraging-llms-on-your-domain-specific-knowledge-base)
Databricks举办了一场精彩的一小时视频会议。它涵盖了提示工程和RAG。
视频: 加速你的生成式AI之旅 (https://vimeo.com/891439013)
最后,为了更深入地了解,请回顾这份关于RAG技术和方法的出色调查,以了解更多关于如何实现RAG的信息。这是我解释不同方法的 favorite 参考,作者计划更新这篇文章,所以它应该是最新的。
文章: LLM的RAG调查 (https://arxiv.org/pdf/2312.10997.pdf)
通过排除法,只有少数地方可以让产品人员介入以帮助这个过程。很少有人能够从头开始构建一个LLM,基础模型中使用的训练数据来自数十亿互联网记录。在指导客户提出什么问题方面能力有限(良好的设计可能会鼓励良好的行为,而无需强迫用户本身进行适应)。同时,在推荐UI中,没有交互式UI。
因此,我们努力的最佳价值是针对合适的使用场景,创建高质量的知识,并支持对企业数据库和资源的稳健访问,这将允许一个大型语言模型(LLM)生成结果以实现客户目标。让我们构建一个简单的演示,其中包含数据源,以帮助理解在私有数据支持下LLM的限制和功能。
基于企业数据构建演示
这是一个简单的例子,旨在说明问题。我们将从一个几乎适用于所有网站和企业的常见问题解答(FAQs)集合开始。任何金融网站(如银行或经纪公司)上可能找到的数百个FAQ构成了演示的基础。我们称这家金融公司为Alligiance(All-i…不是一个e,以免与名为Allegiance的实际公司发生冲突)。助手可以称为“Alli”(发音为Ally)。让我们从一个包含原始HTML片段的文件开始,在表格中逐行回答每个问题。该文件位于GitHub上,所以请亲自尝试一下。
GitHub: 测试用的FAQ集合 (https://github.com/PacktPublishing/UX-for-Enterprise-ChatGPT-Solutions/blob/main/Chapter6-Example_FAQs_for_Demo.docx)
要访问OpenAI的Playground,请遵循第1章中关于在ChatGPT中认识设计力量的说明。
演示:OpenAI Playground (https://platform.openai.com/playground)
演示从询问一个简单、具体的问题关于浏览器支持开始,这个问题可能对私人网站应用来说是常见的。基础模型不会期望它知道答案,因为这些常见问题解答可能只为认证客户提供。然后我们上传了如图图6.3所示的文件,并再次提问。你会一起玩吗?
小贴士
尝试并排比较:打开两个浏览器,分别运行带有和不带有上下文文档的LLM。在Playground中也有一个比较按钮。我们稍后会演示这个比较按钮。

图6.3 – OpenAI Playground展示了添加演示文件前后的答案
was uploaded. It reworked the content into a presentable format. The output text is bolded for easier scanning (some irrelevant text is truncated):
<a href="http://www.mozilla.com/en-us/firefox/ie.html" id="Link_1422297415937" name="Link_1422297415937" onclick="advancedlink('http://www.mozilla.com/en-us/firefox/ie.html','{truncated}','', 'Link_1422297415937')" target="_blank">Mozilla® Firefox</a></li><li><a href="http://www.apple.com/safari/download/" id="Link_1421770836208" name="Link_1421770836208" onclick="advancedlink('http://www.apple.com/safari/download/','{truncated}','', 'Link_1421770836208')" target="_blank">Apple® Safari®</a> (Mac operating systems only)</li></ul><p><strong> Note:</strong> Our latest site features will not work with older, unsupported browser versions, specifically Internet Explorer 8, Safari 4 and 5, and Netscape. Internet Explorer 9 and 10 may provide a less than optimal experience. The use of unsupported browsers may also lead to vulnerability because of viruses, spyware, malware, and other security issues.</p><p>
表6.1 比较了HTML源代码与提供的答案。
| 源答案(HTML 格式化版本) | ChatGPT 3.5答案 |
|---|
| Alligiance的网站最好使用,并且最安全,请使用以下浏览器的最新版本。在此处获取免费 升级:|
-
Microsoft® Internet Explorer(仅限Windows 7 & 8操作系统)
-
Google® Chrome
-
Mozilla® Firefox
-
Apple® Safari®(仅限Mac操作系统)
注意: 我们最新的网站功能不支持较旧的浏览器版本,特别是Internet Explorer 8、Safari 4和5、以及Netscape。Internet Explorer 9和10可能提供低于最佳体验。使用不受支持的浏览器也可能因病毒、间谍软件、恶意软件和其他安全问题而导致漏洞。Safari不再支持Windows操作系统的升级。如果您正在使用Windows操作系统,请使用上述受支持的浏览器之一,而不是Apple® Safari,以获得最佳体验。如何升级Apple® Safari如果您在Mac上使用较旧的Safari版本,您首先需要检查您的Apple操作系统:从Apple菜单中选择“关于此Mac”。这会继续到多页,请参阅GitHub上的完整文本**。 | Alligiance.com最好使用以下浏览器的最新版本查看,并且最安全:
-
Microsoft® Internet Explorer(仅限Windows 7 & 8操作系统)
-
Google® Chrome
-
Mozilla® Firefox
-
Apple® Safari®(仅限Mac操作系统)
重要的是要注意,最新的网站功能不会与较旧的不再受支持的浏览器版本兼容,特别是Internet Explorer 8、Safari 4和5以及Netscape。Internet Explorer 9和10可能提供低于最佳体验,使用不受支持的浏览器可能导致由于病毒、间谍软件、恶意软件和其他安全问题而导致的漏洞[1]。此外,对于故障排除,如果页面上的图片不显示,用户可以尝试点击浏览器顶部的重新加载/刷新按钮或清除浏览器的缓存。还应注意,如果图片的链接不再活跃,它们将无法下载[2]。[1][2] |
表6.1 – 源文档文本与ChatGPT答案的比较
此示例使用gpt-3.5-turbo-1106运行。看起来相当不错。注意,它并不是源材料的直接引用。以下是一些可用性考虑因素:
-
以“此外,对于故障排除...”开头的段落来自不同的常见问题解答,对于这个答案是不必要的。对相同问题的后续运行没有包含这种虚假内容。
-
对于聊天来说,源答案应该更短,这在文档中很常见。第7章“提示工程”,解释了如何控制这一点。
-
风格和语气很好。它们与商业语气保持一致。尽管内容是商业语气,但风格和语气可以通过提示工程和微调进行调整。第8章“微调”,探讨了使用示例来训练模型。
-
浏览器列表以项目符号形式返回。对相同问题的后续运行有时只以项目符号列表返回。提示工程还可以帮助更一致地返回如项目符号列表这样的项目。
-
准确性在支持应用中至关重要。这个答案是事实正确的,但可能会发生错误。接下来的几章将讨论获取准确答案的技术。
希望这次分析有所帮助。可能还有其他你可以看到的项目。必须能够评估响应质量,以便关心并培养LLM。这是我们使命的核心。
质量问题
以下提示是与附加的常见问题解答文件一起提供给OpenAI模型的。这些说明为任何用户交互设定了场景。
You are a helpful assistant named Alli, short for the name of our bank. Be courteous and professional. Prioritize information in any files first. Format output using lists when appropriate.
几个安全问题周围的结果很有趣。我们将展示一些对话。惯例是显示用户消息在右侧,模型的响应在左侧,类似于手机上消息的格式。提醒一下,对话永远不会因为错别字或错误而编辑。
Is it safe to do all this via the web?
Yes, our conversation and any information you share are handled with the utmost care for privacy and security. The platform we are using employs robust security measures to ensure the safety of our communication and any data exchanged. If you have any specific concerns or requirements regarding security measures, please feel free to let me know, and I will do my best to address them.What security measures?
The platform we are using implements various security measures to safeguard our communication and any data involved. These measures typically include encryption of data transmission, secure data storage protocols, access controls, and regular security audits to ensure compliance with industry standards and best practices. Additionally, the platform is designed to comply with data protection and privacy regulations to further enhance security and confidentiality. If you have specific security concerns or would like more detailed information about the security measures in place, please let me know, and I can provide more details.
答案是完美合理的,甚至是有逻辑的。但是,没有任何这些内容来自上传的常见问题解答语料库。这是一个听起来很好的通用答案。这个答案不是我们从知识中训练出来的。这被归类为幻觉。幻觉是模型生成的文本,它是不正确的、不合逻辑的,或者在这种情况下,不是真实的。向客户撒谎可能会造成实际伤害,而不仅仅是明显的失败。鉴于人们的诉讼性质,避免因向客户撒谎而被起诉。美国的法院可以持有助手作为公司代表的责任。
由于文件中的数据没有表明Alligiance公司定期进行安全审计,因此响应没有提供更多细节,因为它只提到了“典型”措施,而不是具体细节。如果提示被调整为“只提供附件文档中的答案”,那么LLM的回答将与浏览器回答相似,因为它讨论了不受支持的浏览器可能存在的安全问题。在企业解决方案中,通常只限制知识在公司提供的企业知识范围内。这可以减少幻觉。提供了HTML文件,但它返回了干净、格式化的文本。并非每个系统和流程都会如此幸运。在扩展规模时,考虑企业数据清洗的含义。最终,所有这些系统都期望以文本作为输入。所以,某个地方,某个工具将进行这种转换。现在是时候围绕数据清洗提供一些背景信息了。
数据清洗
清洗数据很棘手,在企业规模上手动编辑文件是不合理的。首先,了解问题,要么与提供支持创建清洗管道工具的供应商合作,要么从小处着手,学习如何逐步编写工具。审查清洗数据所需的内容,并决定在哪里投资团队有限的资源。无论如何,大部分工作都需要自动化。现实是,有些工作需要手动完成,尤其是在流程的早期。
数据清洗也取决于资源的类型以及它们将如何被使用。处理大量常见问题解答、知识文章和营销材料所需的工具与处理数据库查询所需的工具不同。以下是需要注意的一些一般性问题。让我们从如何处理文档开始。
小贴士
寻找或构建工具以帮助自动化此过程,但对于许多用例来说,这是一项实际的工作。接下来的几节将提供详细信息,以帮助理解流程,以防企业数据出现问题时。某些数据类型可能需要更多努力。
数据增强
数据增强旨在解决数据是否充足的问题。是否对产品问题有足够的知识?是否有足够的数据资源和历史数据来形成推荐?是否有特定语言的示例(提示:翻译后再翻译回来)?或者是否需要各种形式的训练材料来理解更多样化的格式?增强通过人工生成这些数据来帮助使解决方案更加稳健。
并非所有数据都可以轻松增强。一个大型语言模型(LLM)无法生成解释它一无所知的过程的新颖知识文章。但是,假设你正在训练一个模型,用于处理特定信息,例如理解医疗诊断和治疗、实时数据(如天气)或可能需要比模型提供更近期的任何数据。在这种情况下,增强过程可以提供精确、最新和上下文相关的解释。
有一些技巧。例如,当使用LLM将材料翻译成另一种语言,在有限的语言数据下,然后再翻译回来时,可以帮助改进检索步骤。或者,在文本中包含产品名称的同义词以创建用于训练的变体。大部分情况下,要意识到这一点,并考虑是否有可用于训练或测试模型的数据。一旦了解了企业数据的状态,这可以成为一种资源。
使用LLM本身生成训练数据是一个选项。将其作为资源使用,然后运用常识来决定向模型提供哪些数据以用高质量数据增强基线数据。OpenAI建议,通过在增强数据上训练,模型可以处理多样性并学会在处理新数据时更好地处理系统中的噪声。需要进行实验和迭代以查看什么最能改善结果。
在ChatGPT中尝试这个提示以了解更多关于数据增强的信息。
How can I do data augmentation using LLMs to generate training data based on a baseline?
What data augmentation should I use to train my LLM on the complexities of (insert enterprise details)?
数据标注
注释是一项工作。它可能很单调。注释是指用笔记标记内容以解释其过程。标签或标记的概念本质上是一样的。笔记或细节与内容相关联。这样做是为了帮助理解和标记段落、内容、表格或任何需要分类的东西。要注释的数据将取决于数据和结构。例如,在长段落中,可以针对相关性进行注释。对于表格,可以更好地标记标题,这对人类来说是显而易见的,但对计算机来说则不然。产品项目可以标记,这样模型就可以学习尺寸(S、M、L、XL)、类别(头等舱、商务舱、经济舱)、相关产品或其他有助于为材料提供背景的必要属性。对于大型文档,为数据块提供背景。例如,如果表格很长,标题会在每一页都重新出现吗?如果文档被分成更小的可管理部分,人类能否理解标题?这就是需要注释的一个例子。假设标题讨论了产品和产品版本,而这个标题在多页之前就已经出现。在这种情况下,如果某个数据块长度为单页,那么这个产品标题信息需要级联到每个正确的页面和数据块中。
注释过程需要高质量。产品专家是验证标签或注释是否与企业数据内容匹配的主要候选人。因此,设计师、作家和项目经理可以参与其中,利用他们的产品专业知识来创建有效的注释流程。这确保了采取步骤来质量检查工作(因为工作可能外包或众包)。创建指标来定义质量标准,并对其进行测试(抽查或全部检查)。我编写了一个指标来考虑我们输入可以容忍的错误类型和错误频率。该指标将众包材料的质量与专家的期望进行了比较。结果被分析以确定人群中特定的人类工作者是否显著优于、劣于或与平均水平相同。因此,考虑来源,并且始终测试和验证以验证你的质量假设。向ChatGPT询问在注释数据时可能发生的所有错误。
What kinds of errors occur when annotating data for LLMs? Provide an example of each and explain the likelihood of the types of errors. This is important to my job.
使数据对LLM可用的另一部分是将它分割成块,以便在上下文窗口中共享最有价值和最优化细节。这被称为分块。
分块
如前所述,不仅大型文档需要标记,而且它们可能太大,不适合RAG过程。这导致了对分块的讨论。分块是指将大文本或数据集分成更小、更易于管理的块(块),这些块适合LLM的上下文窗口,从而使模型能够更有效地处理和理解信息。这并不是要成为分块专家;这只是为了能够识别不良分块的结果并帮助解决问题。
假设客户想要了解手机电池寿命的问题。手机公司在过去几年中发布了数百款手机型号,所有这些型号都有不同的规格。这些知识文章和细节必须被分解成可管理的、上下文相关的部分,以确保RAG可以准确处理和检索它们。这样,信息量对系统来说是可管理的,并会产生高质量的答案。将文本分割成逻辑部分——章节、段落,甚至句子——确保块具有连贯的意义单元。这样,RAG可以理解和检索最相关的信息。我们不希望有关Android手机内存卡的信息与没有卡槽的iPhone的信息混淆,因为这是一般关于内存卡的陈述。
存在着不同的分块策略。我们将介绍一些基础知识,其中语义分块是我们在本章后面案例研究中感兴趣的一个。请回到这些参考资料以进行更多探索。
文章:RAG的语义分块 (https://medium.com/the-ai-forum/semantic-chunking-for-rag-f4733025d5f5)
第二个学习机会是KDB.AI最佳实践视频。使用RAG时,需要一个向量数据库供应商。幸运的是,我们的经验主要是平台无关的。以下是视频中的几个要点,以提供对分块的一些见解:
-
块大小取决于所使用的模型。更改模型可能需要更改块大小。这也表明,分块应该在一个自动化过程中完成,以便快速适应。
-
对于少量内容,小块大小的内容将更准确,但不会包含很多上下文。大块,通常来自完整文档,粒度更少,但可能会影响性能。
-
提示、聊天历史和其他资源也可能包含在上下文窗口中,因此在决定可以分配给上下文窗口的块数量时,请考虑这种容量。
-
由于上下文窗口正在增长(截至2024年秋季,ChatGPT-4的窗口为128K个标记),这并不意味着它应该被填满。性能、成本和质量都是相关的。为了说明这一点,之前分享的FAQ文档有465K个字符和110K个标记。仅此文档就几乎与ChatGPT可以分享的内容一样多。与企业级所需的数据量相比,这是一个微不足道的数量。
-
在进行基于代码的块划分时,可以调整块重叠。这是从先前或未来的块中包含的块的数量,以便有上下文。然而,NLP块划分解决方案在将内容划分为更合理的断点(在句子中)方面将更加优雅。例如,自然语言工具包(NLTK)和spaCy,这是一个开源库。
-
块分割器每个月都在变得更智能。LangChain理解文档的结构,并在理解句子和段落方面做得非常出色。它试图根据文档结构来优化大小。
-
结构化块分割器理解标题和部分。它们可以用元数据标记块,以保持上下文。
-
可以使用不同的检索器来处理不同的数据库。例如,一个可以用于处理高级问题,另一个可以用于处理源块以处理具体详细的问题。
-
讨论的要点几乎在10分钟后开始。当Ryan Siegler开始讲话时开始观看。视频:RAG应用的最佳块划分实践 (https://www.youtube.com/watch?v=uhVMFZjUOJI)(KDB.AI)
我们为什么应该关心块的大小?块的大小会影响LLM解决方案的准确性、上下文和性能,这些是产品领导者希望监控和改进的基本因素。
注意
你可能不会是设置这些块的人,但你将参与监控性能和质量,以便向数据团队提供反馈。理解内容的小组成员可以帮助创建和管理测试用例,以探索例外情况并验证解决方案。
例如,模型是否理解在讨论到很久以后才引用的内容时,在文档开头解释的例外情况?例如,在Wove案例研究中,在章节的后面,他们想要摄取的电子表格的开始处出现了明确定义的注释,但这些信息适用于文档中更后面的材料;因此,这是与那个后期块相关的信息。
文档还可以包含图像、图表和表格。因此,需要使用额外的工具来总结并从这些图形中获取上下文。LayoutPDFReader和Unstructured等工具是两个可以帮助的例子。这个过程需要独立于文本提取所有这些内容,以便可以将块和总结应用于从图形中提取的信息。根据工具的不同,有时嵌入步骤可以直接处理图像。几乎所有文档中的图片和图形都不仅仅是装饰性的,因此将这些图像转换为有意义的、可搜索的内容是至关重要的。使用LLM从图片中提取上下文,然后使用这些知识来索引和搜索图像。例如,一个零售商在建立营销活动时可能需要一个图片,并询问:“给我展示穿着牛仔裤在海滩上玩耍的青少年。”这可以通过手动用这些关键词标注图像来找到。即使是我的iPhone(没有LLM)也允许我搜索“汽车”、“食物”、“飞机”、“人”或“伯灵厄姆”等地点的图片。随着LLM的加入,这个空间正在进入更多的智能和力量。在数据标注上进行迭代工作,以使内容处于良好状态。自从讨论了Wove对电子表格的使用以来,这个数据源值得提及。
电子表格清理(Excel, Google Sheets)
电子表格和数据库存在一些共同问题。数据有时需要转换成不同的格式,以便在不同的服务中保持一致的理解。有一些工具可以完成这些转换。注意这些问题,然后可以应用当天的工具来解决这些问题。在后台集成中,电子表格清理非常有意义。电子表格和表格可以出现在许多形式的文档中,如果需要由LLM理解,它们可能需要进行清理。我们的第二个案例研究广泛使用了电子表格,我们将探讨Wove为清理过程所做的努力。提示:这涉及到大量的手动工作和评估。首先,让我们定义现实,或者人们所说的“事实”。
源文件中的文档和事实
事实真相是企业解决方案所需的基础事实。如果文档包含相互矛盾或误导性信息,LLM(类似于试图阅读文档的客户)将会犯错误。这是常见问题解答、技术文章和营销沟通的基本问题。上下文必须精确,以阐明与哪些产品相关的信息。标签和注释可以帮助设定这个上下文。例如,如果说明是按住电源按钮3秒钟以重置设备,但旧型号需要不同的答案,那么这个上下文必须明确设定。有时,文章会指出受影响的文档中的产品或发布版本,但随后又给出排除或使用突出显示来给出例外。这些排除需要明确界定其搜索范围。这些例外是否适用于接下来的几段,还是仅限于首次引入的那段?编辑、标签和测试的迭代将解决这个问题。一些标签可能是高级别的,例如与金融或医疗保健相关的文章,而我上面的例子是针对产品发布或版本的。让我们从编写一个简单的文本常见问题解答案例研究开始。
常见问题解答案例研究
Alli案例研究使用了OpenAI的文件搜索功能,但使用相同数据在竞争性的LLM和RAG解决方案中会怎样呢?Cohere是一家提供企业级LLM解决方案的AI公司。为什么在关于ChatGPT的书里还要考虑另一个产品呢?随着模型的发展,专业化程度越来越高。企业级解决方案可能会使用一个模型来完成特定任务,而使用不同的模型来完成一般任务(就像我们在案例研究中做的Wove那样)。性能、成本和上下文大小也会发挥作用。专注于用例,不同的模型可能提供价值是合理的。Cohere还提供了一个上传文档并测试模型的游乐场功能。它还暴露了聊天UI中的一些设计元素,这些元素提供了值得分享的引人注目的UI元素。在这个例子中,上传的常见问题解答没有HTML,只是基本的清洁文本。
Can I add files to Cohere to help answer FAQs?
- 访问Coral网页(https://coral.cohere.com/)并选择带有文档的Coral选项(见图6**.4)。
注意:
当前cohere演示在处理文档方面采用了非常不同的设计,因此这些说明将不起作用。最新版本允许您复制粘贴信息以提供上下文,或者必须使用数据集工具上传文件。我们不要求读者这样做。我们将继续使用这个例子,因为结果中有些出色的功能,但你可以通过打开常见问题解答并复制粘贴来跟随。
Cohere的游乐场最新版本比OpenAI的更复杂、技术性更强、更杂乱。在创建解决方案时,请考虑UI元素对功能能力和可用性的影响。

图6.4 – 设置Cohere的Coral与文档
-
使用 文件 功能上传 GitHub 上共享的 FAQ 文件。
GitHub: FAQ 示例文档 (https://github.com/PacktPublishing/UX-for-Enterprise-ChatGPT-Solutions/blob/main/Chapter6-Example_FAQs_NoHTML_for_Demo.docx)
-
关闭侧面板,使用消息窗口进行交互(图 6.5)。

图 6.5 – 显示引用使用的示例
- 使用与 FAQ 相关的问题测试模型(图 6.6)。

图 6.6 – Cohere 中 FAQ 文档的示例
除了所述的原因外,这个竞争模型还有一些令人兴奋的结果:
-
这本书中的内容可以推广到其他模型。
-
一些 UX 元素,如显示参考面板,可能对用例很有价值。在这个演示中只有一个文档,所以查看一个链接没有帮助,因为它会随着每个匹配重复。链接到参考内容然后滚动并突出显示相关段落,使其易于理解和查看上下文。相关性突出显示的 UX 模式可能会变得流行,甚至成为标准。
-
这是一个并列模式展示补充信息的优秀示例。
-
它让我们对不同模型的质量有了感觉,并允许我们看到 ChatGPT 每个版本之间的差异。
让我们测试我们的 FAQ。使用 Cohere 示例提供一些上下文是有帮助的,这样我们就可以探索在 ChatGPT 中使用 FAQ。让我们看看结果是否符合我们的预期。
GitHub: FAQS 唯一 PDF 压缩包 (https://github.com/PacktPublishing/UX-for-Enterprise-ChatGPT-Solutions/blob/main/Chapter6-FAQ_PDFs.zip)
在这种情况下,压缩文件包含在单个 PDF 文档中的清洗数据。这使我们能够更好地将源作为参考并与结果相连接。返回到 ChatGPT 游乐场并创建与之前相同的助手,但尝试上传此文件。
然而,请记住,存在局限性;在 ChatGPT 3.5 中上传文件会导致一个神秘的用户错误(意味着上传了太多文件),如 图 6.7 所示。

图 6.7 – ChatGPT 有文件限制
这是一个小型数据集,只是还不够小。有一个解决方案允许它在免费游乐场中使用。PDF 被合并成 18 个文件,单个 PDF 可以用于其他测试和实验。
GitHub:18个FAQ文件的压缩包 (https://github.com/PacktPublishing/UX-for-Enterprise-ChatGPT-Solutions/blob/main/Chapter6-FAQS18files.zip)(每个包含大约25个FAQ)
GitHub:包含所有441个FAQ的单一PDF (https://github.com/PacktPublishing/UX-for-Enterprise-ChatGPT-Solutions/blob/main/Chapter6-FAQ-ALL.pdf)
使用这18个文件,上传和扫描它们只需要几秒钟,Playground就会准备好。
一旦上传,尝试一些测试案例,如表6.2和6.3。它们是在不知道它们是否有效的情况下编写的(它们没有经过预测试)。在接下来的几章中,我们将更详细地介绍测试案例;让我们保持简单,手动进行测试。测试单个或多个文件对质量的影响,并从结果中学习。
注意
尝试不同的可用模型。不一定要是ChatGPT 3.5;尝试ChatGPT 4o-mini或与其他供应商的LLMs进行比较。
在这两种情况下,使用电子表格中的清洗数据列。测试案例中存在一些拼写错误和连锁问题(需要后续问题的提问)。现在,我们可以一起了解实际结果。

表6.2 – 第1-10题及两次测试结果

表6.3 – 第11-20题及两次测试结果
这里是一些对这些结果的初步分析:
-
拼写错误没有造成问题。
-
提供额外背景信息的后续操作返回了良好的结果。
-
对于一些问题,相同的模型返回了非常不同的结果。
-
像地址这样的具体信息非常具有挑战性。
-
它没有认为那是银行;它指的是“你的金融机构或经纪公司。”提示工程可以解决这个问题。
-
他们都需要帮助以句号结束句子。他们倾向于在句号前加空格,如下所示。
让我们为这两种方法创建一个简单的评分标准。对于出色的正确答案得5分,对于良好的正确答案得4分,对于接近正确答案得3分,如果后续返回的细节应该包含在第一个答案中,则得2分。评分显示,分别使用文件得47分,而使用单个文件模型得74分。认识到这两个起点之间的显著差异不必完美。如果你观看了上一章中的OpenAI视频(这本书我最喜欢的视频参考资料之一),他们有一些相似的经历,从较差的结果开始,通过微调和提示工程,他们改进了结果,如图6.8所示。
视频:最大化LLM性能的技术综述 (https://www.youtube.com/watch?v=ahnGLM-RC1Y)

图6.8 – OpenAI在用例中采用RAG的成功故事
并没有必要详细了解所有这些方法。在本章的结尾部分,有一个专门的部分来讨论其他技术。目前的关键是要展示如何通过持续改进你的生命周期来确定哪些变化能改善体验。即使使用这种基本的评分方法,结果差异也很大。我也对这种显著差异感到惊讶。两个结果的完整记录已经发布。
GitHub: FAQ测试记录 (https://github.com/PacktPublishing/UX-for-Enterprise-ChatGPT-Solutions/blob/main/Chapter6-Transcripts.docx)
通过RAG引入的数据需要清理,正如即将到来的Wove案例研究所示。像文件分割这样简单的事情可能会对性能产生深远影响。每一次改进都可能影响下一步。从74分开始继续细化,而不是从47分开始,会更好。找到处理日常工作的工具,以便将精力集中在实际数据和其质量上。在创建数据管道的完整生命周期时,还有其他问题需要考虑。接下来是一个来自一家使用多种模型使其LLM解决方案成功的令人兴奋公司的案例研究。
电子表格清理案例研究
这是一个很好的例子,展示了如何使用电子表格在幕后创建LLM的智能并提供来自Wove.com (https://wove.com)的建议。Wove通过使用LLM解析和标准化来自费率表、海洋合同和其他电子表格的复杂表格数据,帮助货运代理公司优化费率管理操作。
货运代理作为中介,确保小型托运人可以从一个地点将货物运送到另一个地点——例如,从中国的工厂将10,000个小部件运送到内布拉斯加州的仓库。由于从A点到B点有数百种方式,因此基于供应商、距离、港口、运输类型、时间、货物类型、海关、重量和体积,存在复杂性。这种复杂性隐藏在每个供应商发布的电子表格、PDF和其他数据源中。这种复杂性增加了报价所需的时间,可能导致遗漏合理的费率。通过将这些费率表放入模型中,可以更准确、更高效地生成客户报价。这是一项艰巨的任务。要深入了解费率表用例,请查看在表格中可能会看到的所有标准术语。
文章:费率表术语和简介 (https://www.slideshare.net/logicalmsgh/understanding-the-freight-rate-sheet)
如BAR、BL费、滞期费、DDC、CYRC、滞留费等术语有很多需要消化。这对一个大型语言模型理解复杂的电子表格来说是一个挑战。这是我们从Wove的朋友那里得到的一个很好的例子,他们创建了一个幕后使用ChatGPT和其他模型,如Anthropic的Claude。他们专注于摄取数据以保持数据质量和完整性,并标准化广泛不同的电子表格。确实,在用户界面方面,可以使用这些数据来回答关于找到正确费率的问题。本案例研究将重点关注数据摄取。Wove案例研究将在在提示工程和微调章节中解释更多内容后完成。
这些术语需要理解,并且每个费率表在格式、标签、例外和其他因素上都有所不同。随着时间的推移,费率发生变化,必须理解正确的费率周期。图6.9 展示了费率表的一部分,以揭示这种复杂性。

图6.9 – 来自两个不同供应商的费率表样本
一个典型的货运代理可能需要处理数十个不同的费率表,其中一些长达数百页,手动规范化所有这些数据需要整个团队的努力。示例显示了数据列的多样性。标签、值、制表符的使用、如何用备注处理例外情况,以及标题都是不同的。然而,自动化或甚至半自动化可以减少这个过程超过90%。虽然应该在过程中测试和验证数据,但在手动生命周期中有许多地方人为错误会导致问题。让我们回顾Wove在摄取这些数据时必须执行的数据清洗步骤。此信息的预期流程如下:
-
在获取新的费率表之前,他们训练和验证了创建高质量输出所需的各种模型。本案例研究将讨论所使用的不同模型。
-
通常,他们会通过电子邮件收到一个费率表,并将其文件下载到Wove中。还有一个自动化路径,其中包含一个电子邮件监听器,它会拾取文件,监视新文件,并将其纳入流程。这些文件可能有多个标签和数千行数据,如图6所示。9*。一个典型的文件可能是之前处理过的文件的更新。
-
他们的工具解析XLS文件并识别表格,并解析文档,将它们转换为模型可用的属性格式簇。存在上下文长度限制、检测表格、理解表格以及确定表格之间关系的问题。他们将这称为表格检测。如图所示,开发团队构建了十个模型来理解电子表格。整个专有流程并未公开,但这一点应该能让人了解每个模型的作用以及用于帮助清理和组织过程的软件。尽管这是一个技术过程,但结果却是普通人都能看到的东西。他们可以确定这些结果是否物有所值。这是一个商业决策和用户体验问题。
-
文档分段(单镜头GPT 4 Turbo):此功能将文档分段为连贯的章节/思想。
-
上下文构建器(多镜头克劳德3俳句):这是在文档分段之后应用的。它为理解当前文档构建阅读上下文。
-
表格检测(GPT 3.5 Turbo,微调):此功能检测电子表格、文档或合同中的表格。
-
表格标题范围检测(GPT 3.5 Turbo,微调):在检测到表格后,确定标题行范围和数据开始的位置。
-
表格结束检测(GPT 3.5 Turbo,微调):此功能检测表格数据的结束。
-
表格理解(GPT 3.5 Turbo,微调):此模型理解表格的列和数据,并确定其用途。
-
模式映射(GPT 3.5 Turbo,微调):在理解表格后应用此模型。它确定表格中的哪些列映射到数据库中的模式字段。
-
字段分割器(单镜头克劳德3俳句):分割器从组合字段中提取每个字段的详细信息。例如,如果有效日期和到期日期在同一字段中,则可以将它们提取到模式中的effective_date和expiry_date。
-
位置标准化器(多镜头GPT 3.5 Turbo):它将非结构化位置信息标准化,将每个检测到的位置转换为UN/LOCODE(如香港的HK这样的标准化国家代码)。
-
商品标准化器(GPT 3.5 Turbo + Ada):它将非结构化商品信息标准化,以便进行搜索/比较。
-
这些模型在创建本案例研究的过程中多次更改,并且随着他们目前正在测试GPT 4o-mini的一些用例,它们仍在不断变化。适应和改进,有时还能节省一些费用。
-
-
他们识别、标记并训练系统理解表格的位置、数据开始和结束的位置、标题标签等。挑战在于当LLMs主要用于文本时理解表格。电子表格变成了文本。注意,在此过程中使用的某些模型已经进行了微调。这些是需要通过提供定义表格的示例来增加理解和学习的模型。
深入研究表格检测有助于理解数据的分割。在步骤3的表格检测之后,他们进行语义块分割以获取正确的内容长度。通常,合适的内容长度可能从500到1000个标记开始。根据模型的不同,如果你想付费,更长的内容长度是可以接受的。Wove提示GPT-4将文件分割成连贯的片段。块是至关重要的,因为一次只能处理这么多信息。有效的块分割策略对于获得正确的块上下文是必要的。
他们的提示相当大——长达一页。它告诉ChatGPT 20条不同的规则来解析一个片段。他们的提示从简单开始…“你是文档解析的专家;你会得到一段文本。你的任务是将其分割成连贯的片段。”他们没有大量文本块,因此块大小不受LLMs的限制。每个模型可以有不同的标记限制,以允许提示和输出的尺寸。模型的输入和输出范围从4K到8K个标记。他们在下一步使用了一个更小、更快、更便宜的模型。如果你不确定你模型的限制,就问它。
What makes a good context length when ingesting data into you to help provide context?
Wove覆盖了整个生命周期。功能调用,访问其他资源(如API)的方法,对于Wove的过程至关重要,对于企业应用也是基础。注意这个功能。记住,任何企业解决方案都将连接到各种资源以丰富LLM。
文档:ChatGPT函数调用开发者文档 (https://platform.openai.com/docs/guides/function-calling)
他们使用函数调用将部分生成到结构化的输出中。图6.10展示了这个函数的一部分。产品团队需要理解这一点以确保上下文完整。其中一些内容可能适用于任何电子表格,例如起始行、结束行、部分名称、标题和描述,但正确理解这一点是至关重要的。后来,他们检查了表格是否被正确处理,以确认正确的起始行、标题或副标题标签。
"type": "function",
"function": {
"name": "next_section",
"description": "extracts the next section of the
document",
"parameters": {
"type": "object",
"properties": {
"StartLine": {
"type": "number",
"description": "the line number where the
section header or contents starts at,
inclusive. This must exist."
},
"EndLine": {
"type": "number",
"description": "the line number where the
section content ends at, inclusive. This
must exist in the input."
},
"SectionName": {
"type": "string",
"description": "the name of the section,
either the title/header if available, or a
description of the column."
},
"SectionHeader": {
"type": "string",
"description": "the header of the section,
if available"
},
"SectionType": {
"type": "string",
"description": "the type of the section"
},
"SectionDescription": {
"type": "string",
"description": "the description of the
section – this is required"
},
},
"required": ["StartLine", "EndLine", "SectionName",
"SectionType", "SectionDescription"]
}
图6.10 – 用于帮助结构化输出的函数调用片段
他们可以使用训练验证分割数据,测试模型对移除的数据,并使用他们在图6.11中显示的数据清理技术来定义表格。这种数据标记定义了表格中的“什么是什么”,并且随着时间的推移可以不断改进。脚本有助于从标记源生成新的训练数据。

图6.11 – 来自费率表的侧术语的小表格
看看这个“侧术语”的定义,它用于训练表格检测;它告诉LLM如何理解这些数据。
1 "Side Terms": {
2 "min_row": 3,
3 "max_row": 21,
4 "tables": [
5 TableRangeV2(("B", "G"), 6, (7,20)),
6 ],
产品经理、设计师和团队必须监控表格定义以确保高质量。在这个例子中,他们从第3行(第2行)到第21行(第3行)识别了“Side Terms”的起始日期。在第5行,他们识别电子表格的列从B到G(列A是空白),然后第6行被定义为标题,并使用(7,20)为第7行到第20行定义表格的源数据。然而,在图6.11中,注意备注列(列F)延伸到第21行,因此这个过程涉及人工验证以捕捉这个错误并将(7,20)更改为(7,21)。
多个模型使用这个标记练习。这项工作支持表格端检测、标题和表格理解。
捕捉需要标记的内容至关重要。例如,一些带有星号的笔记显示在表格顶部的图6.9中。LLMs擅长理解文本以及从表格检测中提取的这段文本的引用,因此不需要额外的努力来收集这些信息。
数据必须对诸如费率和位置等项目进行归一化。因此,对于香港,港口HKHKG是一致的显示,并且数十个其他值在不同文件中正确映射。
存在一个数据审查流程,Wove有工具来完成这项工作。团队审查了如图6.12所示的数据,这个深入分析显示了香港和亚特兰大之间的费率以及一些进入这些费率的数据。

图6.12 – 现在可以以归一化视图查看数据,以便他们可以查看费率
现在他们已经摄取并归一化了数据,他们可以访问来自许多来源的费率。让我们进一步探讨这个工作流程的一些细节。
这并不是关于单个模型施展魔法;它需要一系列专业模型的集合。他们应用不同的模型来解决各种问题。预计随着时间的推移会进行适应和改变,尤其是对于使用微调的模型。把它看作是一种模块化方法。如果出现了一个新的或成本远低于之前的模型,可以逐个替换以改善拼图的一个部分。如果某个主题周围存在问题,例如数据质量差或缺失,并且模型需要帮助收敛到实际解决方案,那么就关注这个问题。每个部分都可能经历其版本的幻觉。
对于这些电子表格来说,数据清洗具有特定的含义,特别是确保行和异常得到处理。数据块必须正确分割,以便有一个良好的开始和结束,从而保持上下文。这为RAG提供了一个干净的环境,并更准确地检索相关片段。
在他们的清理和摄取过程中,以下是他们解决的前十大问题:
-
将数据作为文本处理,即使数据来自电子表格。
-
模型将大型文档分割成多个部分——一些费率表可能长达数百页——并将它们拆分。例如,海洋运输文件比公路卡车运输文件更复杂。
-
挑战在于将表格作为文本来理解。要很好地理解表格、正确标记、查找错误并找到合适的模型(他们为了保护他们的专业知识而讨论了但没有详细说明)需要相当多的工作。这与直接阅读纯文本不同,但这可能会影响体验,即使团队控制着知识库或数据库。包含表格、图像、流程图和图表的文档都包含可能需要完全用文本表达的信息。
-
根据Wove建立的提示,模型编写指令以从表格中提取所有数据。这个过程包含多个步骤,在第8章“微调”中进行了详细探讨。
-
在步骤1中,Wove运行GPT-4 Turbo版本,而在其他步骤中,它运行ChatGPT 3.5和其他模型。按顺序运行任务比一次性运行GPT-4快十倍。他们使用GPT-4 Turbo生成微调数据。通过使用多个模型,他们可以在性能和成本之间取得平衡。
-
Wove省略了10%到20%的数据来测试模型。这是标准做法。他们从文档中取出不同的数据块来创建一个更广泛且可能更有效的测试集。提示:不要通过总是取每份文档的前20%来对模型产生偏见。他们使用随机种子来选择文档的片段,但每次都从同一文档中保持相同的块;这使他们能够创建一个可重复的集合。因此,他们的验证步骤不会因为测试数据而有所不同。
所有这些艰苦的工作都是为了数据清洗。首要目标是让负责确保数据正确性的相关人员接触到这些数据。正如之前提到的,这将有助于设置后续的对话体验,以帮助找到合适的比率。FAQ和Wove示例应该能提供一些关于数据问题的理解,但还有其他需要考虑的因素。
创建高质量数据管道的其他考虑因素
并非所有设计师和产品经理都会参与RAG过程的每个步骤。所有供应商都使用“管道”这个术语来表示从源头到客户的信息流。在模型被纳入管道之前、期间和之后都可能发生问题。请注意以下可能影响客户体验的问题区域。
计算资源
RAG有一些实际的工作要做。它必须从大量的文档和资源中创建类似于原始模型生成的向量数据。定期这样做可能会非常耗费计算资源。在扩展时注意任何性能问题。许多第三方解决方案会谈论毫秒级的响应时间。那很好;响应应该感觉自然。在某些情况下,结果可能需要几秒钟,但通常,聊天响应应在200-300毫秒(大约1/4秒)内开始。
同时,当数据发生变化时可能会触发推荐(如果总是重新计算且没有用户需要更新,这可能会变得昂贵)或当页面渲染时计算。即使是一个触发通过电子邮件或消息某人关于推荐的触发器,也需要有当前信息并按计划评估问题。每个事件都会产生成本。考虑如果没有人可以使用它,推荐的成本。
问题:没有慢速但好的用户体验这回事. 设计师和项目经理可以在几个地方帮助提高性能。
-
监控和验证解决方案的性能,并决定哪些能满足用户期望。产品负责人应设定性能期望。
-
监控发送给LLM的数据是否过多或过少。所有数据都应为LLM提供价值;如果不是,则删除它。
-
确定提示和上下文大小是否提供了与其大小相应的价值。
-
在LLM中,API请求需要付费,因此当可能时优化或缓存信息。了解客户是否使用推荐或可见的UI。
可扩展性
如果系统只处理数百份文档,这可以管理。然而,一些大型企业可能正在查看数百万份文档和庞大的SQL数据库。维护这样的大型语料库,以及改进这些数据库和文档的质量可能是一项重大投资。强调最有帮助和最常访问的材料。利用第三方管道解决方案。
问题:你不可能同时出现在很多地方. 可扩展性也适用于你的时间。考虑是否有值得你关注的地方,比如改进管理流程、监控质量、维护文档或改进编辑和更新文档所需的时间和流程。考虑个人版的80/20规则。如果项目C的20%的时间能带来80%的价值,那么就在那里投入资源。更好的是,使用用户需求评分。如果某些东西是所有客户都频繁使用的,并且是一个关键领域,那么这值得注意。
训练数据质量
填写以下谜题。
输入质量决定输出质量。
输入垃圾数据会导致输出垃圾。
如果你猜到是垃圾,那你就对了。训练材料的质量深刻影响着微调的能力。如果内容非常有限、有偏见或有很多可能导致客户误入歧途的误导性信息,那么将会有持续的问题。内容的关联性和质量是关键。本章讨论了清洁数据的重要性,但这个过程对质量的改进只能有限。也就是说,删除冗余或冲突的数据可能很容易做到。但在写这本书时很难做到。读者是否记得或甚至看到了在第一章,认识到ChatGPT中设计的力量中现在重要的内容,在第五章,定义期望的体验中?谁是能够确定内容正确性的内容专家?随着数据量的增长,这会变得更加具有挑战性。现在,想想一个模型如何处理150页之前学习的内容现在变得重要的情况。数据越技术性,个人知道内容是否高质量的可能性就越小。模型也会忘记,尤其是中间的信息。更不用说理解特定发布或产品组合的知识理解问题。依靠内容合作伙伴、作者和技术专家。这需要整个村庄。记得在第一章,认识到ChatGPT中设计的力量中提到的这一点吗?
RAG非常适合针对大量内容回答特定问题。然而,数据必须以正确的格式存在,这在数据规模较大时可能是一项艰巨的任务。在分割文本时选择合适的块大小更多的是艺术而非科学。关于处理块分割和其他经验教训的CliffsNotes版本(美国流行书籍的学生学习指南),请观看Prolego的视频。本章节结束时将讨论此视频。
视频:Prolego关于RAG开发的技巧 (https://www.youtube.com/watch?v=Y9qn4XGH1TI)
问题:不要让模型被垃圾数据淹没,从而降低准确性。 监控并设定改进目标。
领域特定性
企业模型依赖于特定领域的内 容。
问题:收集和注释数据以改进性能是昂贵的。 注释可以有多种形式,但与数据质量一样,在公司内部或外部找到专家将这一过程提升到下一个层次。投资于建立个人专业知识。
响应一致性和连贯性
RAG解决方案将具有挑战性。企业解决方案重视确定性答案,而仅靠生成式解决方案是无法实现的。即使问相同的问题,答案也会有所不同。这可以通过提示工程、微调和在更大产品生态系统中谨慎使用生成模型来改进。
问题:不要因噎废食。对于提供可重复解决方案的现有聊天机器人,补充以生成式解决方案。将微调的重点放在一致性上。对于推荐引擎,寻找通过增量改进增加最大价值的领域。
隐私、安全和数据驻留
由于数据是专有的,包含在公司数据库、知识库和API中,因此在回答客户问题时可以管理其访问权限。由于ChatGPT的响应将基于从RAG解决方案传递给它的上下文,因此确保隐私和安全策略限制适当客户的可见性是有意义的。在聊天过程中出现或通过客户反馈出现的问题的前线进行监控。设计师可以在隐私讨论中增加价值的领域之一与审查交互期间看到的数据有关。
除了确保后端数据不会进入错误的对话之外,有时对个人身份信息(PII)进行屏蔽也是必要的。在第2章 进行有效 用户研究 中,讨论了屏蔽PII的方法。这是在训练模型时需要考虑的因素。训练数据可能包含PII。一种方法是不对其进行屏蔽(用**替换文本),因为这会阻碍模型的理解,而是将数据转换成模型自身生成的假数据。例如,在数据清洗步骤中指导模型用它自己编造的客户姓名替换客户姓名。它在这方面很擅长,这种假数据被称为合成数据,可以替代实际数据。
Give me a list of 5 customer names from various countries, ages, the typical amount they spend on car-sharing services, a column with a 9-digit number in the format 22-333-444, a fake cell phone number, and their favorite form of payment in a table.
ChatGPT在这方面非常出色。即使是ChatGPT也会拒绝提供假的社会安全号码,所以注意提示中要求在提示中输入九位数。它以表6.4中的结果进行了响应。
| 客户 姓名 | 国家 | 年龄 | 汽车共享(每月) | 标识符 号码 | 手机 号码 | 喜欢的 支付方式 |
|---|---|---|---|---|---|---|
| Emma Smith | 美国 | 29 | $150 | 22-333-444 | (555) 123-4567 | 信用卡 |
| Hiroshi Tanaka | 日本 | 35 | ¥18,000 | 22-333-445 | 090-1234-5678 | 移动支付 |
| Maria Garcia | 西班牙 | 41 | €120 | 22-333-446 | 612-345-678 | 借记卡 |
| David Osei | 加纳 | 26 | GHS 600 | 22-333-447 | 024-123-4567 | 移动货币 |
| Anna Müller | 德国 | 32 | €140 | 22-333-448 | 0151-1234567 | PayPal |
表6.4 – 使用合成数据替换PII的示例
注意名字的本地化感觉;县份各不相同,使用了当地货币和合理的金额,电话号码也进行了本地化。移动货币这个词我不认识,但在加纳很常见。移动货币是指通过手机运营商进行的支付。因此,甚至可以从合成数据中学习到一些东西。既然提到了其他国家的主题,还有其他特定国家的问题。
讨论特定国家限制时,有两个考虑因素可能会限制模型丰富。通常,这会落到产品经理身上。第一个是公司数据是否有出口限制。一些国家限制跨境出口客户或员工数据。他们有数据居住地要求,即在境内存储数据。这就是为什么许多供应商在特定地区提供数据中心。欧盟的通用数据保护条例(GDPR)和隐私盾框架就浮现在脑海中。在处理可能常见于人力资源聊天应用中的个人信息时,可能需要采取保护措施,并且可能需要同意。这可能会影响用户体验。我不得不设计需要用户权限的示例,或者需要在继续之前同意可以或不应共享的政策要求。
第二个问题更加以数据为中心,并且不受数据居住地问题的影响。处理规则可能仅适用于某些国家或国家内的某些群体。可能存在一个数据问题,即确保LLM知道这个人来自特定国家,因此,特定的文件、政策或API适用。例如,差旅报销政策因国家而异。美国人去法国出差并在回到美国时获得报销(适用美国政策)与法国人去欧盟外的某个地方(适用欧盟/法国政策)是两回事。设计师和项目经理必须认识到必要的属性,以过滤和支撑正确的数据和资源。这不仅仅针对LLM。在这些情况下,例如在GUI或现有的聊天机器人中,必须处理这些问题。
偏见和伦理问题
可能合理地认为企业数据没有偏见,但仍然要提防它。知识库中可能会有讽刺性的内容,但它被当作真理重复。这可能会在结果中引起问题。看看图6**.13。这是一个简单的交互,应该很容易辨别事实。指出这一点是公平的,这并不是ChatGPT。这是我们对Cohere示例的延续。记住,早些时候的示例扩展了一个基本的LLM以包括常见问题解答。除非有其他说明并设置了护栏,否则它仍然会尝试回答一般的模型问题。它并没有按计划进行。由于预计这些模型会迅速改进,因此对这一模型的不足之处进行评论是不公平的。所有模型都有不足之处。这是用来说明所有模型的一个例子。

图6.13 – 对话式幻觉可能产生偏见和错误
问题:不要陷入做出(错误)道德决策的困境。尽可能避免这些讨论。观察数据收集、模型训练和监控过程以发现潜在问题。让我们分析这一系列问题。汉克·格林伯格(他是犹太人)和汉克·阿伦(他不是)以某种方式被混淆了。也许这是一种幻觉。但像这样的简单问题很容易回答。让我指出几个问题。
-
即使模型纠正了我的错误并返回了正确的拼写,这也并没有让汉克·阿伦(可能是由于我的拼写错误)受到影响。
-
汉克·阿伦并非犹太人。
-
他的职业生涯持续了23年,而不是24年。
-
他从未在每个赛季接近209个本垒打(在他的整个23年职业生涯中,他总共击出了755个本垒打;我知道是因为我看过他打破记录)。
-
杰基·罗宾逊是1962年第一位被选入名人堂的非洲裔美国人。汉克·阿伦的入选比他晚了20年。
-
汉克·格林伯格众所周知是犹太人,并面临歧视。
我们尝试过用ChatGPT来做这个实验。即使他的名字拼写错误,它也假设了汉克·阿伦。它准确地解释说,他不是犹太人,打了23年球,知道他的755个本垒打记录,以及他在棒球名人堂中的位置。ChatGPT 3.5模型在事实上是正确的。而且公平地说,Cohere的新更新完全正确地处理了这一切。
企业数据不应该讨论著名棒球运动员的宗教信仰。只需认识到,对于众所周知的事实,答案仍然可能包含幻觉、谎言或无论它们应该被称为什么,组织可能会因传播虚假信息而负有责任。这并不意味着诉讼。这可能意味着未能满足服务水平协议,激怒或失去潜在客户,或者不得不赔偿客户。这并不像如果人类代理提供了错误信息会发生的情况。由于答案错误,可能会产生下游成本或服务中断。使用AI,我们已经看到了许多错误、错误或可能是缺乏训练,导致问题。
在汽车行业中,半自动驾驶汽车导致事故的情况值得考虑。这并不是说人类驾驶员更好(他们几乎好一个数量级)。然而,由训练模型问题引起的某些事故似乎很明显,可以通过人类驾驶员避免(在高反光情况下能够识别正在过路的18轮卡车)。同时,还有许多新闻中没有报道的情况,例如半自动驾驶汽车在没有导致悲剧的人类反应时间和可见性的情况下没有发生事故。最终,预计生成式AI将比人类更可靠、更一致、更准确。通过大量的努力,它可能在几年内达到这一点。始终意识到偏见和道德在模型中发挥作用。此外,在构建和测试模型所付出的努力方面要具有道德性。
将进行利益/风险分析;只是不要陷入错误的一边,就像福特在拒绝修复其Pinto车型的缺陷油箱时所做的那样。
维基百科:福特Pinto油箱争议 (https://en.wikibooks.org/wiki/Professionalism/The_Ford_Pinto_Gas_Tank_Controversy)
必须投资于创建良好的模型。这也将涉及相关的诉讼。花时间精力将质量放在首位。记录你的来源;在法律术语中,这被称为保管链。以符合企业理解的风险节奏检查工作,并改进和解决问题。它不会完美——人类代理也是如此。只需建立一个持续改进的流程。硅谷关于“快速行动,打破事物”的口号在初创公司听起来很棒,但在向高价值客户提供付费服务时,可能需要更加务实,投资于质量。
嵌入其他技术
如果你观看了OpenAI关于本章开头提到的技术的讨论,以了解一些额外的学习方法,视频在第15分钟讨论了优化技术。这种方法在基准测试质量和应用工具和技术方面是正确的。这是为典型的ChatGPT解决方案进行的,该方案涉及搜索知识库。他们尝试了一些没有达到预期改进的方法(假设文档嵌入(HyDE)检索和微调嵌入)。他们发现了一些值得投资的地方(块/嵌入重排序、分类、提示工程和查询扩展)。探索如何做这些事情会超出我们的能力范围。关键是设计师和项目经理与团队合作,建立基准,找到好的数据来训练模型,并在迭代过程中测试和验证结果。考虑目标,以便在达到目标时知道。认识到随着模型的变化和数据量的增长,需要适应。实际上,一个团队永远不会完成,但有了质量标准,组织可以更明智地分配资源。
评估指标
第10章,监控与评估,将涵盖确定性能的方法。相关性、多样性和连贯性都是我们数据集的关键因素。重点将是从用户的角度以准确性和客户反馈来理解这一点。
尽管存在这些限制,但RAG通过允许对用户查询做出更具情境相关性和信息性的响应,为增强如ChatGPT等对话式AI系统的能力提供了希望。通过持续的研究和开发工作解决上述挑战,可以帮助释放RAG的全部潜力,以改善对话式AI应用中的用户参与度和满意度。
RAG资源
一个好的RAG解决方案将使用一个专门用于管理数据流入、处理、存储和检索以与LLM共享的服务。自从RAG被发明以来,这个领域已经发生了巨大的变化,很难意识到这一切发生得如此之快。
由于大部分设计工作集中在数据质量而不是技术上,因此最好为那些想要探索谜团中更技术性部分的人提供资源。OpenAI资源是开始的最佳地点;它将随着技术的发展而演变和适应。GPT-4和更新的版本直接与RAG协同工作。
网络文章:OpenAI RAG与定制RAG(Milvus)比较 (https://thenewstack.io/openai-rag-vs-your-customized-rag-which-one-is-better)
不要假设链接到这些资源就意味着它们是同类中的最佳选择。它们都在快速发展,价值会分化,有些可能会消失。随着市场的发展,寻找能够以高质量自动化流程的工具。在企业中,访问数据库是知识访问之后最需要的工具。
数据库和SQL
数据库检索存在挑战。考虑数据库是如何考虑其内容的,以及如何请求结果。这通常用SQL(大多数数据库的结构化查询语言)来表示。有些数据库不使用SQL,被称为NoSQL数据库。由于大多数企业数据要注入任务和提示中,都是存储在SQL数据库中,我们将重点关注一个SQL示例。LLMs(大型语言模型)有一些编写SQL的能力,但这仍然是一个不断发展的领域。以下是一个突出显示与数据库工作复杂性的示例。
Show me jobs near Burlingame
可能已经很明显,有一些问题需要解决:
-
哪个Burlingame(我在旧金山湾区附近,圣地亚哥,堪萨斯,俄勒冈等……)?
-
有哪些工作类型?这有没有对所需内容的上下文描述?
-
是否需要更多的价格、公司类型和工作时间的过滤器?
-
专注于第一步,深入理解第一个陈述。"附近"是什么意思?在旧金山湾区,10英里是合理的,而在俄勒冈州,25英里是合理的。如果这是纽约市,你想找一家披萨店,两个街区就太远了。
-
如何将这个翻译成数据库中的城市?
我的观点是,这比提取像城市名称这样的实体要复杂得多,即使有SQL的魔力,也期望能够找到好的内容。这个请求需要预处理以生成一个合理的SQL语句。因此,管理输入以期望一个合理的输出。在房地产物业管理中,有一句话:“检查你所期望的”。这里也是同样的道理。输入必须被检查并分解成需要分析和扩展更多细节以获得预期输出的部分。有了输出,可能可以向LLM发送一组结果,就像发送文档或FAQ一样,这样ChatGPT就可以使用这些信息来形成一个更精确的答案。LLM必须了解模式以格式化一个好的查询。
另一种我一直在研究和逐渐流行起来的方法是文本到SQL。这是一种将LLM智能应用于创建逻辑SQL语句以返回有效结果的方法。这种方法有其优点,但取决于SQL是否支持查询。在先前的例子中,解决方案需要一个基于中心点范围或距离的城市或位置发现工具(中心点在确定人的位置和目的地方面可能非常不准确)。一个基本的LLM必须正确理解相关的城市。这些工具是可用的,并且必须集成以生成正确的城镇和位置列表,以便传递给SQL。LLM也可以获取这些信息并形成SQL查询。
What cities are within5 miles of Hillsborough, CA,provide only the list
Within a 5-mile radius of Hillsborough,
CA, some nearby cities include:
1\. Burlingame, CA
2\. San Mateo, CA
3\. Millbrae, CA
当第一次提问时,距离3英里的 Foster City, CA 被包括在内,但 Belmont, CA 或 San Bruno, CA 从未包括。因此,如果这位客户在寻找工作,他们会错过很多机会。这个问题可以通过调整提示,专注于确切的城市并要求检查其工作来得到解决。例如,通过简单的调整和后续跟进可以看到结果。
Can you show these with thedistances used and includethe next 3 closest cities
To provide more accurate information, I'll
calculate the distances between Hillsborough,
CA, and nearby cities using their geographic
coordinates. Here are the distances along with
the seven closest cities:
Burlingame, CA - Approximately 1.9 miles away
San Mateo, CA - Approximately 3.2 miles away
Millbrae, CA - Approximately 3.5 miles away
Foster City, CA - Approximately 4.3 miles away
Belmont, CA - Approximately 4.6 miles away
South San Francisco, CA - Approximately 4.8 miles away
San Carlos, CA - Approximately 5.1 miles away
Please note that these distances are
approximate and may vary slightly
depending on the specific locations
within each city.
当后来被问及南旧金山与希尔兹伯勒的距离时,它正确地回答了10英里——与它的第一个答案大不相同。依靠一个知名的API来获取这些数据,而不是不断处理LLM的变异性。当需要特定细节时,API资源提供了更准确和可靠的数据。考虑将这些资源纳入LLM响应中,以提供自然的交互。企业拥有丰富的数据库,其中包含事实集合。利用这一点作为竞争优势。不要期望LLM通过生成结果来完成所有工作。这就是为什么存在函数调用——为了在生成输出中获取特定数据的价值。
提示工程也可以帮助提高结果。但应该明确的是——SQL需要一些指导来创建有效的查询,并且需要一些预处理来给数据库一个返回有效结果的好机会。
在线建议主要关注直接查询,而不是探索用户如何提问。这比仅仅连接到数据库的问题更复杂。
数据库相关阅读材料
如果数据库连接对您来说是新的,请阅读这些参考资料
文章:使用RAG和LLMS与数据库交谈 (https://medium.com/@shivansh.kaushik/talk-to-your-database-using-rag-and-llms-42eb852d2a3c)
文章:如何使用LlamaIndex将LLM连接到SQL数据库 (https://medium.com/dataherald/how-to-connect-llm-to-sql-database-with-llamaindex-fae0e54de97c))
我们将探索一个使用Oracle数字助手的例子。随着在形成适当的SQL查询之前解释用户需求所需的智能的提高,这个领域在接下来的几年中将看到显著的改进。获取正确结果所需的链接也将得到改善。链接问题是用户提出的问题、理解问题所需的假设以及返回答案所需的SQL的功能。链接是将一个答案连接到下一个问题和后续答案的过程。有时,将思想串联起来以解决问题是有意义的。让我用一个用例示例来结束,这个示例是对这篇Oracle博客示例的改写。
文章:Oracle数字助手SQL集成 (https://blogs.oracle.com/digitalassistant/post/introducing-the-new-oracle-digital-assistant-sql-dialog))
Show all employees in Michael's org.
让我们来解决这个流程链的问题:
-
迈克尔——谁是迈克尔?在我的层级结构中四处看看,确定迈克尔是否为人所知。这是一个完整的过程,对于组织内的人进行搜索来说是基本的。
-
如果需要,消除用户可能推断的迈克尔的不确定性。
-
将员工映射到SQL字段(称为EMP)。员工的概念将以多种方式被请求——工人、团队、队友、下属、人们等。用户不太可能永远使用SQL字段名。
-
确定迈克尔的部门。(使用SQL获取答案。它是23。)
-
决定是否需要根据查询增强要返回的默认信息(在这种情况下,没有特别要求)。
-
限制查询的安全影响(例如,不要显示薪资)。
-
进行搜索,确定结果的大小,如果结果数量大于30,则返回结果或结果的一部分。
-
最终查询应该看起来像这样:SELECT EMPNO, ENAME, JOB, MGR FROM EMP WHERE DEPTNO = 23 FETCH FIRST 30 ROWS ONLY。
-
使用生成式回答返回答案,将数据库中的具体细节包装起来。
Oracle文章在讨论同义词方面做得非常出色。在他们给出的例子中,他们使用“大苹果”来指代纽约市。这很好地提醒我们,语言非常灵活,有许多情况下,如果没有这种智能,客户期望的自然语言感觉就不会发生。由于数据库字段与用户的语言不匹配,有一些工作可以帮助解决这个问题。LLM(大型语言模型)可能有助于理解术语和标记概念,但产品人员必须帮助它理解那些晦涩的字段标签。例如,它可能不理解PH2是一个手机字段。使用LLM扩展对手机同义词(如mobile、digits、contact info、wireless #、phone number、#)的理解。
服务请求和其他线程化来源
服务请求和其他对话来源,如社区讨论,是很好的数据,但其中的真相内核必须被揭示。如果没有标记和注释正确的答案而使用这些来源,将会产生较差的结果。它们充满了错误的答案、半真半假的信息和不准确的信息。这在技术答案中尤其如此,其中真实情况可能特定于产品的某个版本或子版本。因此,混淆11.1和11.1.2产品的区别可能导致错误的结果。答案中也可能存在误导性的信息。也就是说,可能存在误导或分散对问题注意力从而识别解决方案的信息。这有时会从“我不知道这有没有关系,但……”开始。
大多数服务请求系统会将已关闭的服务请求标记为已完成,并要求代理人为未来的处理或分析标记正确的答案。SRs(服务请求)的更正式结构将更有利于挖掘这些信息。SRs中包含的大量重要信息必须得到处理,并且有理由考虑这些来源:
-
客户语言是关于客户如何谈论产品、他们的问题以及他们在现实世界中的互动的丰富语料库。这种特定领域的语言和术语对于训练模型非常有价值。在传统培训、营销和技术文档中,这些来源比这些来源中更频繁地出现技术术语、俚语、首字母缩略词、缩写和快捷方式。
-
在LLM中,上下文有助于创建更准确的响应。当有问题时,通常会询问产品发布、补丁级别、软件安装和操作系统版本,这种上下文可能非常有价值。
-
共同性——常见问题的频率有助于模型理解这种类型的响应在未来可能是有用的可能性。
-
技术领域培训——可能没有其他地方可以找到正在讨论的情况。
尽管大多数公司试图避免在SRs和在线渠道中讨论某些问题,但仍需保持警惕,避免在模型中包含可能在这些论坛中泄露的PII。该过程应支持数据清洗和匿名化,如第第2章中所述的有效用户研究,或如本章前面所述综合一些数据。在规模上手动完成这一切是不可能的。最终,这些只是与知识库有相同问题的文档。类似于数据库,可能还需要其他软件来访问相关信息。
通过API集成外部内容
准备好用正确的问题调用正确的服务。创建有效的交互以执行任务——填写费用报告、在日历上安排约会,或预订假日或假期——都需要后端服务。
分享了许多关于创建有效文档和资源检索的建议资源,但解决方案的成功仍然取决于所使用的服务和软件集合。在集成上花几分钟时间是合理的。
OpenAI可以通过API调用进行响应,而不仅仅是基于知识进行回复。模型可以更新支持票,请求运输信息,查找价格或产品,或执行业务依赖的其他交互。不出所料,ChatGPT有助于解释和编写代码以连接到几个知名的API,但这仅限于开发。产品人员必须知道有哪些可用内容以及如何构建这种交互。为了乐趣,可以尝试类似这样的东西。
Can I set up a ChatGPT integration using an API to generate a Zoom conference?
企业API将大多是专有的,ChatGPT无法直接帮助。然而,由于大多数REST工作应该是相似的,它仍然可能有所帮助。有时,与Zoom、Teams、Slack、Jira、Confluence、Salesforce、HubSpot、ServiceNow、Oracle或其他供应商的集成被用于内部或作为企业产品的一部分。记住,所有这些工作都需要进行身份验证、创建安全层、处理幻觉、处理错误情况,并创建一致的用户体验。这是一项真实的工作。
更稳健的方法正在演变。本文在ToolLLM中描述了一种使用ChatGPT生成API指令的方法,然后探讨如何使用它们。
文章:如何在LLMs中使用数千个API(ToolLLM论文)(https://arxiv.org/abs/2307.16789?utm_source=tldrai)
视频:AI新闻:一个学习如何与API一起工作的LLM(ToolLLM论文)(https://www.youtube.com/watch?v=lGxaE8FU2-Q)
将我们的测试和验证流程应用于任何输入和输出测试。作为设计师、项目经理和关心可用性的人,尝试了解 API 是否提供了正确的服务水平。在集成后端服务时,以下是一些需要寻找的项目:
-
是否可以自动补充所需数据?用户不应需要提供每一条数据。例如,API 可能需要五条数据来提交一个有效的请求。其中一些可以来自上下文,并让用户专注于关键要素。
-
响应时间是否足够快,可以与响应集成?请以毫秒为单位思考(200 毫秒或更少会很好,50 毫秒或更少会非常棒,低于 10 秒是世界级的)。
-
是否可以调用单个 API 而不是两个或三个?优化的 API 调用有助于成本、性能和往返次数的数量。
-
数据格式是否与客户需求一致?如果不一致,考虑告诉 ChatGPT 如何格式化,或者提供正确格式的对话或翻译。例如,了解用户的时区,不要使用 GMT 或其他时区。
集成和操作
ChatGPT 经济正在飞速增长。有数十个流行的服务和集成,使流程更加无缝和实用。
开发团队可能支持其他工具来帮助创建完整的解决方案。最好参与其中,以确定如何应用设计思维和您的专业知识来支持更可持续的过程。
网上有很多库、工具和资源。比较和对比丰富的选项超出了范围,但一些与 OpenAI 发布的关于制作有效、设计良好的解决方案相关的例子可能值得您花时间:
文章:OpenAI 烹饪书 (https://cookbook.openai.com/articles/related_resources)
文章:LangChain 主页 (https://www.langchain.com/langsmith)
文章:Milvus 向量数据库 (https://zilliz.com/blog/customizing-openai-built-in-retrieval-using-milvus-vector-database)
大型语言模型(LLM)可以是整个生命周期或流程中的一个服务。这意味着错误可能发生在LLM之前或之后。在责怪模型之前仔细检查。它的好坏取决于提供的输入和指令。提高与模型共享的内容的质量。设计如何与LLM共享数据,然后测试和验证其工作情况。要全身心投入到迭代的生命周期中,以制作成功的生成式AI解决方案。质量完全关乎照顾和喂养过程。由于只有当我们衡量它们时,改进才算改进,因此这在第10章,监控和评估中进行了探讨。Ragas是那些可以考虑使用的工具之一,用于衡量RAG解决方案的性能。如果您对此感兴趣,现在就试试看。
链接:Ragas文档 (https://docs.ragas.io/en/latest/)
ChatGPT有一个称为操作(以前称为插件)的概念。这些允许ChatGPT连接到互联网的其余部分。操作依赖于函数调用以执行这些操作。回想一下,Wove示例使用了函数调用。
文档:GPTs中的操作(调用API) (https://platform.openai.com/docs/actions/introduction)
令人印象深刻的是,开发者不必手动编写这些API查询。ChatGPT有一个定制的LLM,专门调整以帮助开发者编写操作。
演示:ActionsGPT聊天 (https://chatgpt.com/g/g-TYEliDU6A-actionsgpt)
开发者可以向LLM发送消息以生成基础代码。例如,他们可以尝试类似以下的内容。
Make a spec to call the endpoint at https://api.openai.com/v1 with a POST request. The request should have a body with model and prompt keys - both are strings.
将这些资源和视频与开发者分享,以帮助他们开始使用。
视频:ChatGPT操作简介 (https://www.youtube.com/watch?v=pq34V_V5j18)(操作从9:30开始)
确定这些联系是开发工作。作为产品领导者,要知道从企业来源到集成这些解决方案以支持结合智能的丰富服务都是可用的。要创建这些连接,需要ChatGPT的付费版本,如果不是企业版本。在ChatGPT视频中,Nick Turley将他的个人待办事项列表从asana.com连接到演示中的聊天实例。图6**.14显示了当前的操作设置。这是一个简单的UI,用于命名、描述和定义指令。

图6.14 – 在配置选项卡上设置操作
演示进一步通过嵌入知识来帮助总结。观看以获得对企业解决方案基本集成的良好感觉。在20分钟时,它通过情绪演示变得有些创意。他们在演示室中展示了与物理设备的集成,以及Spotify播放音乐。重点是,企业解决方案可以不仅仅是软件集成。制造、照明、HVAC(空调)、流程、路由、规划等等都可以通过智能集成得到改善。这让我们回到了我们的用例章节。那里有很多机会。
这本书旨在即使工具发生变化时也能保持实用性——它们肯定会发生变化——因此不要纠结于某个工具或方向。新服务和更强大的服务将频繁推出。构建一个支持适应和变化的精益流程。从LLM社区中学习。博客、帖子和学习机会的数量每天都在增加。
社区资源
资源丰富,包括在OpenAI社区中。探索这些资源,最新的视频和研究,以跟上进度。
文章:RAG社区讨论 (https://community.openai.com/t/rag-is-not-really-a-solution/599291/2)
在Ron Parker的帖子中,他讨论了RAG的脆弱性。
“到目前为止,我遇到的最大问题是某些查询响应不够全面。最终用户几乎总是可以通过思维链查询(少样本)获得完整的答案。但是,我一直在合作的最终用户希望对第一个问题(零样本)获得完整的答案。这可能会触及你的问题。”
我的解决方案:深入挖掘。让模型深入挖掘所有可能的响应,对这些进行分类和分析,然后返回最佳响应的完整列表。由于我构建了我的RAG系统,我必须开发这个功能。所以我在想,无论你说的这种技术是什么,你可能必须自己构建它。"
这证明了我们的观点。这是关于构建解决方案的,这个谜题有很多拼图。他还指出了一个很好的可用性问题。用户不想通过对话来获取答案,他们希望在第一次尝试就能得到完整的答案。即使在我们的Wove案例研究中,他们也努力返回最佳响应并迭代训练以获得正确答案。他们必须弄清楚模型并分割数据表,然后他们细化这些答案以提高模型。再次强调,这涉及到开发团队的辛勤工作;与他们合作,每一步都提高质量。
或者,查看一个展示Mayo Oshin(@maywaoshin)如何使用GPT-4将PDF文档的前端转换为数千页的精彩视频——在这种情况下,是特斯拉过去几年的年度报告。他介绍了他的架构。其中大部分内容可能过于复杂,但他谈论了如何将文档转换为文本和文档块。这次讨论与我们非常相关。
视频:1000+ 页PDF的示例 (https://www.youtube.com/watch?v=Ix9WIZpArm0)
我们讨论的最后一个资源是之前提到的关于RAG经验教训的视频。
视频:LLM RAG 解决方案的经验教训 (https://www.youtube.com/live/Y9qn4XGH1TI?si=iUs_x3yDL8BK7aUb56)
他们涵盖了关于文档管理的各种好处。以下是一个总结:
-
他们提醒每个人要做好“数据科学”,并确保输入的数据质量良好。同时,准确的数据可能很杂乱。不仅表格很棘手(本章中讨论过),不同的文档格式可能需要不同的库来帮助清理它们(或者手动清理的头痛)。
-
解释可能不会直接与信息相关联。关于否定(“没有”,“除了这个版本”,“不适用”)的注释或笔记可以否定一些甚至没有出现在相关块中的文档,可能只有通过额外的编辑或标记才能理解。
-
保持结构。在保留其意义的同时将文档转换为数据结构。例如,当PDF转换为文本时,模型可以决定如何解析PDF,识别标题,并构建和捕获信息,以便将其放入有意义的结构中。
-
如果文档是分层的,则需要一个扁平化的表示,因此尽量获取一个元素列表。元素的一部分的关键可以代表一个章节。这类讨论更多的是针对数据摄入团队,但在测试时寻找这些问题。这样,测试结果可以验证上下文是否得到保持。帮助数据科学家保持数据质量。
-
不同的方法会导致不同的质量。正如讨论的那样,逐句嵌入会丢失一些上下文。
-
正如讨论的那样,以块的形式获取适当的上文。它不应该太窄或太宽;应该是“恰到好处”。图6.15中的方法提醒我们本章开头讨论的内容。

图6.15 – Prolego的方法与本章早些时候的讨论类似
除了分享的之外,Prolego的几个视频易于消化,节奏适中。这只是众多视频和文章资源的一个例子,这些资源可以帮助你在RAG(Retrieval-Augmented Generation,检索增强生成)的旅程中。不要自己构建一切;LLM供应商只是更广泛解决方案的一部分,该解决方案包括工具、文档、数据库和API。
除了RAG之外,LinkedIn上关于LLMs(大型语言模型)的每个可想象的主题都有精彩的帖子,这些帖子在邮件列表中共享,发布在YouTube上,来自大学的课程,以及供应商网站上。
摘要
准备现有的知识库和数据源,使其在生成式AI解决方案中可用是一个巨大的步骤。这可能是最重要的步骤,因为创建ChatGPT模型的辛勤工作已经为你完成了。对于许多企业解决方案来说,这可能是一项艰巨的任务。只需从小处着手。从用例中学习,优先考虑那些以最低成本提供最大价值的解决方案(回想一下我们在第4章,评分故事)中的评分讨论)。随着时间的推移,土地抢夺可以扩展到其他数据源,从而产生新的用例。所有这些都必须以质量为前提。衡量和监控至关重要。新不一定意味着更好。混合使用ChatGPT模型来执行特定任务,或者通过使用一个模型而不是另一个模型来优化成本或性能。使用第三方资源集合——甚至可能是针对特定问题空间调整的其他模型——来细化结果,使数据可供模型使用,或进行额外的集成。要意识到数据清洗的影响以及基础模型中的知识如何可能影响解决方案的决策能力。认识到偏见不仅仅是关于社会或政治立场;它可能只是关于对某一产品有太多数据,这导致模型错过了较小的产品。在企业数据中正确完成所有这些是一个挑战。
本章主要关注意识,并考虑了技术如何影响输入数据源的质量。在输出方面,测试和完成反馈循环是提高解决方案的绝佳方式。在进入提示工程和微调的下一步之前,应该有众多贡献的机会。
参考文献
![]() |
本章中提到的链接、书籍推荐和GitHub文件都发布在参考文献页面上。网页:第6章参考文献 (https://uxdforai.com/references#C6) |
|---|
第七章:提示工程
企业级的提示工程在交互ChatGPT或任何个人使用的LLM时采取了一种略有不同的方法。提示工程有助于确保当客户向LLM发送消息时,有一套指令让他们能够成功。当构建用于生成推荐或完成某些后端分析的提示时,推荐团队直接创建提示。任务是考虑如何给客户的消息提供上下文的指令,也称为提示,是如何构建或创建直接从LLM请求结果的提示。首先,我们将专注于提示工程,然后在下一章继续进行微调,这是企业解决方案的必然下一步。
讨论的所有工具都不应被视为孤立的。任何企业解决方案都将采用检索增强生成(RAG)、提示工程、微调和其他方法。每种方法都可以支持不同的功能,有时会有重叠。虽然提示工程将使响应与目标一致,但微调将帮助模型提高其理解能力。
本章重点介绍与提示工程相关的一些关键主题:
-
通过提示工程提供上下文
-
提示工程技术
-
安德鲁·吴的代理方法
-
高级技术
通过提示工程提供上下文
为了明确,当构建RAG解决方案时,客户通过提示企业系统寻求问题的答案,填写表格,并通过提示进行交互。额外的提示,称为指令,将这些提示包裹起来,以确保它们被限制或管理在业务定义的上下文中。这些指令为顾客提供了安全轨道。现在是提示工程101的时间。
提示101
提示工程指导聊天实例进行响应。它构建或围绕答案提供结构,定义从响应中包含或排除的内容,并提供任何安全轨道以实施。
指令可以测试和迭代。在确定更好的指令之前,可能会进行数百次更改。多个模型将完成企业拼图的不同部分,每个模型都有自己的指令。我们将花几分钟时间澄清,我们专注于指令,这是一种用户需要用来控制模型如何响应的提示形式。
提示策略取决于任务的需求。如果它是一个通用交互式提示,它将侧重于风格、语气、事实性和质量。如果这个提示是为了一个需要摄取表格和格式化内容的步骤,它将侧重于结构和数据输出。我们将讨论包裹客户提示的指令,如图图7.1所示。

图7.1 – 如何合理化指令、提示和答案
如果提示来自客户,我们无法控制他们的请求。因此,我们尽力去控制它。在上面的图中,我们建立了Alligiance聊天的角色,但客户提出问题,模型提供具体的答案。
指令可以是简单的,如OpenAI中的示例,或者可以定制以满足我们的企业需求:
You are a helpful assistant named Alli, short for the name of our bank. Be courteous and professional. Only provide answers from the attached document. Format output using lists when appropriate.
即使是这样一个微不足道的例子,也有一些基本要素:
-
它明确了AI的角色和业务类型
-
它定义了它应该如何行动
-
它限制了寻找答案的范围
-
它提供了一种回应的建议
-
它不包括任何实际的问题;这些问题来自客户的提示
这将变得更加复杂,跨越数十或数百行文本,但这是一种成本效益的权衡。提示越长,使用的标记就越多。这些额外的指令包含在用户向模型发送的每个提示中,因此请明智地使用您的标记。记住,标记代表模型根据文本量来计算大小和成本。虽然人类理解字数,但模型以标记的形式交流。它可以接收的最大上下文量(以标记计)和一次返回的最大数据量(以标记计),然后费用基于标记数量。我们将在本章和下一章中详细介绍标记。
对于推荐解决方案或模型背后的使用,LLM不会直接与客户互动。指令可以提供一般指导,以及用于特定任务努力的提示(更详细的指令)。这种抽象在项目组中的所有提示都使用一套指令时,创造了一致性。
一个深思熟虑的企业指令集必须到位,以支持用户对对话式人工智能的提示。作为客户提示包装的指令与实际提示之间的差异,影响如何编写指令或提示。指令必须更加通用并支持广泛的提示。直接提示是针对性的,将LLM集中在提供一个好答案上,如前图所示。因此,为个人使用设计的提示与企业解决方案所需的提示之间存在差异。
设计指令
我们都为家庭或工作创建了许多不同的提示:
What is the best way to clean an iron-looking stain in a toilet? (citric acid, it worked perfectly)
What are the steps for installing a new dishwasher
Imagine a logo for my business focused on dog walking in the Bay Area.
Correct this Python code
Summarize this article for me
Write this customer a thank-you letter with these details…
然而,为了制定指导用户与企业对话助手互动的指令,或构建任何推荐用例的指令,需要清晰说明所有交互目标和角色的稳健指令。以下是一个指令的起始部分:
You are a technical service bot who explains complex problems step-by-step, guiding a user with simple language. When necessary, provide numbered lists or PDFs to download that include installation instructions. Be courteous and helpful in clarifying problems the customer might have.
这应该界定客户请求(他们的提示)可能提出的问题,例如以下问题:
I need ur help understanding how to install the regulator inline with the Mod 14 treatment system. What tools do I need? I don't see any instructions included. Help, plz.
这两层提示工程共同为模型提供指令。因此,公司提供指令,客户提供他们的提示。在推荐解决方案中,公司完成所有工作。
想象一个由大型语言模型驱动的推荐系统,用于评估潜在客户、评估一个人的声誉、提供升级产品、提供情感反馈或建议忽略具有不良或有害内容的数据。为这些特定用例创建特定的提示。每个提示将仅解决一些问题。这就是为什么讨论了这么多模型。甚至可以设计出决定下一个使用哪个模型的模型。第一个模型的提示有助于将请求路由到第二个模型,该模型具有针对其任务的特定提示,并针对请求的需求进行了调整。这里将介绍这种模型的链式连接,以及更多内容在第8章,微调。每个模型都需要经过深思熟虑的提示来引导交互,而且这些模型中没有一个会有人类提示系统。
关于简单提示能做什么,有大量的文档和教程。从OpenAI网站开始探索更多内容。
文档:提示示例 (https://platform.openai.com/docs/examples)
但这些都只是起点。要将这些扩展到可靠地工作,并在商业用例中达到预期的风格和语气,还需要做大量工作。了解提示工程在流程中的位置,以及提示内容。我们可以从OpenAI的高层次演示中总结出亮点。
视频:提高LLM质量的技术 (https://youtu.be/ahnGLM-RC1Y)
要点从大约3分钟开始。图7.2概述了他们的方法。他们回顾了RAG(在第7章中讨论)作为帮助企业访问其知识库和其他数据源的解决方案。他们提出了一个很好的观点,即这些数据可以在有工作系统之前进行清理和整理。同时,提示工程和微调依赖于一个工作系统进行反馈。

图7.2 — 帮助我们优化ChatGPT解决方案的工具
这些工具在企业解决方案中都是必需的,用于提高LLM(大型语言模型)的质量。我们可以一步步解释为什么这是必要的。提示工程可以从基本示例问题开始,观察模型的行为。当它表现不佳时,接下来就是添加训练示例来改善它对我们业务特有的问题的响应。这很快就会导致需要比基本交互能处理更多的数据,因此解决方案扩展到RAG(Retrieval-Augmented Generation)。现在,结果可能不符合我们的风格或语调,或者不遵循预期的指令,因此增加了微调,向模型提供示例以训练它如何预期响应。结果可能表明RAG可以进一步精炼和优化,所以他们回头继续工作。这导致想要进一步微调结果。这个循环持续进行,希望每一步都能有所改进。
对于我们的视频学习者,Mark Hennings有一个出色的15分钟概述,快速覆盖了很多内容。
视频:提示工程、RAG和微调 (Mark Hennings) (https://www.youtube.com/watch?v=YVWxbHJakgg)
一个很好的开始是教授一些基本的提示策略。
基本策略
已经提出了许多结构化的提示工程方法,大多数都很相似。其中一个被称为RACE(角色、行动、上下文和示例),另一个被称为CO-STAR(上下文、目标、风格、语调、受众和响应),还有一个被称为CARE(内容、行动结果和示例)。其他方法没有使用可爱的缩写。首先,了解典型提示的主要指令是好的;然后,深入探讨以帮助企业指令。
表7.1 在第一列交叉列出每种方法类似的概念。每个框架使用略微不同的术语,但主要涵盖相同的根本原则。可爱的缩写似乎主要是为了品牌。我们将忽略这一点,专注于目标,而不是术语。预期要编写包含所有这些方法的提示。我们还将解释何时不执行其中的一些操作。
| 方法 | 解释 | 示例 |
|---|---|---|
| 引导(角色、受众 和目标) | 建立响应的上下文。 | 你是内部销售团队的客户服务和销售助理,帮助他们 达成交易。 |
| 风格和 语调(态度) | 定义响应中预期的风格和语调。 | 用简单语言回答,逐步解释任何流程,同时保持鼓励和支持的态度。 |
| 示例 | 提供输出应如何呈现的示例。 | *以下是一个如何使用预期细节的示例。史密斯交易在今年3月5日完成。它将在未来五个月内带来120万美元的收入。这是另一个示例。吉姆·兰基是威尔逊交易的负责人。他过去三年一直在与威尔逊合作。请通过jim@ourcompany.com联系他获取更多详情。 |
| 处理错误和 边缘情况 | 为响应范围创建护栏。 | 如果问题看起来不是关于销售或服务支持的,首先尝试确认你的理解,如果离题,礼貌地拒绝提供建议。 |
| 动态内容(也可以是上下文) | 从RAG中注入事实。“2023年服务控制联系的大小是多少?” | 用户问题:{问题}**如果有用,请使用:{RAG中的知识 。 |
| 输出格式(响应) | 定义默认响应的外观。 | 保持答案简短并切中要点;如有需要,使用表格或编号列表。 |
表7.1 – 基本提示组件
大多数培训和视频都在讨论提示。它们通常侧重于个人提示以及如何让LLM为单个任务创建输出。然而,这一章节侧重于企业提示,让LLM每次都以有利于商业客户的方式响应。然而,许多基本提示仍然相关。为了探索更多,以下是我们在OpenAI之外使用的资源来构建我们的解释。
文章:开始使用LLM提示工程 (https://learn.microsoft.com/en-us/ai/playbook/technology-guidance/generative-ai/working-with-llms/prompt-engineering)
我喜欢Jules Damji的文章,因为它引用了更深入的研究和方法。我们在构建生产解决方案时也需要更深入。基础知识将会被解释;稍后,我们将探索更多。
文章:最佳LLM响应提示技巧 by Jules Damji (https://medium.com/the-modern-scientist/best-prompt-techniques-for-best-llm-responses-24d2ff4f6bca)
网上有很多例子。自从提到了CO-STAR,你可以查看他们笔记本中的提示。
GitHub: CO-STAR框架的基本提示 (https://colab.research.google.com/github/dmatrix/genai-cookbook/blob/main/llm-prompts/1_how_to_use_basic_prompt.ipynb)
在他们第一个GitHub示例的提示中,他们提供了CO-STAR的每个特征。在某些情况下,例如在创建推荐器或使用LLM作为后端服务时,具体性至关重要,就像我们在持续进行的案例研究中使用的Wove一样。
然而,也存在使用企业级LLM并喂入RAG数据的用例。对于RAG知识检索过程,指令必须更加通用。它不仅仅关注撰写博客文章、开发特定答案或执行一项任务。它将回答许多问题、填写表格、提交数据和频繁地改变话题。这意味着指令将根据用户的提示进行指导和框架构建。这就是为什么指令会非常长。它们必须涵盖广泛的交互和提示的所有组件。一个选项是创建专门服务于特定任务的独立模型,并使用主模型来确定将请求发送到哪个模型。这是一种智能的资源利用方式。这个中心辐射模型只需知道足够的信息来分类并将请求转发到合适的模型。它不需要做繁重的工作。
相反,针对特定任务的经过高度调整的模型将具有特定的提示。系统应该将不匹配此特定任务的查询外包给其他模型。我们将在稍后详细介绍代理方法。中心辐射方法在图7**.3中展示。感谢Miha在Miha.Academy (https://miha.academy/)提供的模板,用于创建如图所示的流程。

图7.3 – 一种中心辐射式流程,用于路由到特定的调整模型
没有一种正确的模型。根据用例的需求,探索匹配模型的质量、性能和成本。在这个中心辐射示例中,路由模型决定将哪个模型传递给特定的任务:
-
模型1用于处理交易。它需要模拟现有的API和后端需求。这张图可能掩盖了多个模型或动态提示的额外需求,以处理如何在各种渠道上工作。具有这种复杂性的流程图在这个图形中很难可视化。发挥你的想象力。这个图可能会变得非常复杂。
-
模型2处理任何商业闲聊和社会互动。任何进一步的输入都可能被路由到不同的模型。
-
模型3支持RAG。它经过微调以处理技术文档的讨论。
-
模型4处理一些需要本地处理以保障安全的任务,因此一个可以本地部署的开源模型可以处理这项任务。
-
最后,模型5使用Anthropic进行云服务集成,因为它处理这项任务既快又便宜。
每个模型都需要设计、测试、验证以及维护和保养过程。每个都是一个独立的应用。这并不令人惊讶,因为许多企业解决方案可能包含数十或数百个系统和服务。
总是牢记的快捷技巧
提示工程有许多指导,一本书不会让你成为专家。要成为专家,学习这些技能,应用它们(并且应用它们,再应用它们),感受模型对这些指令的反应,并随着新模型的推出而适应。以下是OpenAI宣扬的基本原则。将这些原则融入最佳实践:
-
写出清晰的指令——对LLM直接。告诉它要做什么,并避免使用不要等负面术语。礼貌的成本很高,除了少数例外,它不会增加价值。
-
将复杂任务分解为更简单的子任务。要求LLM将问题分解为步骤,或者如果提示限制在特定流程中,就给它步骤。这也允许特定模型执行特定的工作流程任务。
-
引用、优先排序并要求使用企业数据,或者要求它成为唯一的事实来源。例如:
Only provide technical answers or step-by-step flows that are provided in the documents shared with you. -
定义数据(客户可以要求不同的格式)的结构或格式,例如项目符号列表或表格。这在通用客户支持LLM中可能用途有限:
Format output using lists when appropriate. Use tables for collections of information that are suited for tables. -
提供示例(或者随着这个过程的增长,将示例移动到微调,包括预期的风格和语气);这是模型的少量样本学习。
-
考虑应该实施的任何约束,以作为安全措施。即使包括更多社交风格和语气,如本例所示,也要让客户专注于企业数据。避免政治、一般知识或文化敏感领域:
Be courteous and professional, but you can also occasionally be funny. Be empathetic when the customer is having a problem. Never engage in discussions about politics, religion, hate speech, or violence.虽然模型配备了控制功能,但对于大型企业来说,要求更高。企业不希望不适当互动的截图在网上流传;这些失败已经有很多报道了。
-
给ChatGPT一些思考的时间。让它遵循步骤找到答案,或者让它检查是否可行。记住,它是一个取悦他人的人。它想提供答案。将解决方案分解为组成部分可以允许更准确的答案。使用指令要求它逐步解决问题。要求LLM遵循特定的方法来分解问题,提出后续问题,并决定如何达到解决方案。我已经看过很多关于这个主题的并不太好的视频。这个视频展示了出色的多步骤推理过程。
如有必要,将模型链在一起,让一个(或多个)解决问题,然后让另一个模型在将其与客户分享之前检查工作。某些情况可能需要这种额外的成本和复杂性。
-
系统性地测试变化。测试,测试,再测试!每次模型更新都可能深刻地改变技能。重新运行先前的问题,然后让LLM比较先前和新的结果,以查看任何重大差异。这个领域的工具正在变化和适应这些新方法。确保高质量的测试与用户的行为一致,并涵盖边缘情况。第10章,监控与评估,解释了在关怀和喂养生命周期内的测试,这是关于倾听反馈并在结果上进行迭代。
-
对于交互式聊天,指令编写是为了支持用户的提示;提示本身是由客户编写的,因此它必须足够通用,以处理将被问到的各种问题。
-
考虑LLM是否能为推荐或非交互式解决方案提供足够的结果结构。指导模型如何呈现推荐或使用模板来强制执行特定指南。
-
提供新信息。使用RAG或其他检索解决方案从知识、API或数据库中获取最新信息。
-
添加上下文。使用数据来源在提示中包含具体细节,以给用户的对话提供更多上下文。
-
考虑成本。创建大型提示意味着每次交互都要花费更多令牌,这会花费金钱,并且可能会迅速增加。微调可以帮助降低成本。使用更便宜的模型执行特定任务也可以降低成本。愿意迁移到新模型。该行业正在快速发展,一些新模型的降价幅度达到70%。
-
不要期望奇迹;LLM并非能够处理所有响应。基础模型在数学方面表现不佳。第3章,讨论了ChatGPT的最佳用例识别,讨论了各种应避免的用例。避免糟糕的用例。OpenAI团队表示,提示不适合“复制复杂风格或方法,即学习一门新 编程语言”的可靠性”。
每个用例都会需要这些技巧中的一些,但不要期望使用所有这些。A/B测试是学习这些方法中哪一个更有效的一个优秀的通用可用性方法。
A/B测试
OpenAI的详尽文档是帮助改进提示的极好想法来源。然而,它遗漏了一个产品设计师在软件开发中使用的优秀方法,那就是A/B测试。这是已经存在很长时间的东西。A/B测试需要部署多个解决方案并比较结果以确定胜者。实际上,这可能是A/B/C/D测试,使用各种提示。如果某个选项的得分显著高于其他选项,那么它就是胜者。然后,通过基于胜者创建新版本进行第二次A/B测试,迭代测试。A/B测试可以通过多种方式进行,包括在用户研究研究中部署和测试,或者在生产中部署并监控结果。更高级的解决方案将分析纳入测试,如果从统计上有一个胜者,测试将自动关闭,并将胜者部署给所有用户。这可以通过提示、微调、RAG数据资源以及任何存在多个可行选项的案例来完成。传统上,这通常是通过GUI问题来完成的,比如按钮的最佳位置或标签。自动调整以调整胜者条件已经存在了几十年。现有的巧妙想法继续适用于生成式AI世界,同时还有数十种特定的提示技术。让我们来看看一些基本的提示特定技术。
提示工程技术
有数十种技术可以改进提示。本节突出了企业用例中最有价值的策略。
自洽性
将自洽性视为将陈述与真相对齐,从而使其在逻辑上保持一致:
Solar power is a renewable resource. Because solar power is a finite resource, it has unlimited potential.
太阳能是一种可再生能源,与煤炭或石油不同,它们有有限的储备。LLM的响应需要在表示太阳能方面更加一致,因为它不是一种有限资源。文档可能存在问题,或者上下文长度或写作风格推断出错误的结论。一种解决方案是提供一些可以教授模型的示例。这并不是用确切答案来训练它;它只是提供了范例来接近问题类别。这相当令人惊讶。或者,以不同的方式提问,看看是否有一些答案是一致的。
王等人(2023)在各种情况下通过这些少量的训练例子来帮助提高模型的推理能力。本章后面将介绍少量学习。少量学习提供了一些例子来训练一个系统进行响应。他们通过从模型响应中获取多个答案并基于其一致性决定正确的解决方案来实现自我一致性。这就像可能使用三台不同的计算机来评估答案的容错软件。如果有两个或更多是正确的,他们将选择共享的答案。这意味着收集额外解决方案的额外成本。王等人指出,他们可以使用这种方法将这些例子包含在微调模型中。将大量例子放入微调模型中可以降低大量提示的成本。
如果推理是解决方案的一部分,考虑这种方法如何有助于提高质量。他们的研究涵盖了算术推理、常识推理、符号推理和策略的例子。表7.2显示了在提示中用于支持模型执行这些任务的每个领域的例子。
文章:自我一致性提高语言模型中的思维链推理 by 王等人 (https://arxiv.org/pdf/2203.11171) by 王等人。
| 推理 | 例子 |
|---|---|
| 算术 | (训练此类例子)Q: 森林里有15棵树。森林工人今天将在森林里种植树木。完成后,将有21棵树。工人今天种植了多少棵树?A: 我们从15棵树开始。后来,我们有21棵树。差异必须是种植的树木数量。所以,他们种植了21- 15 = 6棵树。答案是6。(然后提出类似的问题)Q: 我6岁的时候,我妹妹是我的年龄的一半。现在我已经70岁了,她现在多大了?(所以,推理出的答案是正确的)我6岁的时候,我妹妹是我的年龄的一半,所以她当时是3岁。现在,我70岁,所以她现在是70 - 3 = 67岁。答案是67。 |
| 常识 | 是或否:大萧条可以用百忧解治疗吗?(错误的答案)大萧条是一次经济萧条。百忧解是一种用于治疗抑郁症的药物。因此,大萧条可以用百忧解治疗。所以,答案是是的。(一个正确的推理例子)百忧解是一种抗抑郁药物。大萧条不是一种疾病。因此,百忧解不能治疗大萧条。所以,答案是不。 |
| 符号 | 连接每个名字的最后字母.Q: Jim BeamA: mmQ: Richard MillerA: drQ: Ely Kaplan(对训练例子的正确响应)A: yn |
| 策略 | 是或否:乔治亚州的首府阿尔巴尼是美国人口最多的阿尔巴尼吗?(错误答案)乔治亚州的首府阿尔巴尼是人口最多的美国阿尔巴尼。因此,答案是肯定的。(一个正确推理的例子)乔治亚州的首府阿尔巴尼人口约为88,000。纽约州的首府阿尔巴尼人口约为95,000。因此,乔治亚州的首府阿尔巴尼不是美国人口最多的阿尔巴尼。所以,答案是是否定的。 |
表7.2 – 王等人(2023)的自我一致性测试和训练示例
一般知识提示
在RAG中,知识搜索的简化结果被用来创建一个可管理的信息集,以便传递给LLM进行分析。一般知识提示为问题提供上下文,以便模型可以使用它来提供答案。将数据库信息用于构建和分享用户的角色。这可能会帮助模型改善与客户的互动:
Question: This customer is trying to understand the current state of their open service tickets.
Knowledge: The customer, Steve Jones, has been a regular user of our products for 12 years. They typically file 12-20 service tickets a year. They might be concerned if they have three open service requests, which is more than usual. Use this knowledge to form answers when interacting with Steve.
这扩展了一般知识提示的概念。有时,这样的实验可以产生结果。这些方法可以与其他方法结合使用。提示链有助于将问题分解成可管理的部分。
提示链
多种方法将任务分解成更小的任务,然后对问题的一部分应用更精细的推理。Wove团队将任务分解,以便可以控制特定的提示。例如,使用一组提示和另一组格式进行文档提取,并返回文档的结果。这涉及到将一个模型输出链式连接作为下一个模型的输入。这允许模型对特定任务高度专注。每个模型都可以在其工作中变得更好,帮助管理工作流程,并确保一个部分的改进不会影响另一个部分。一个大型单一用途模型来完成所有这些任务将难以操作和改进。
思考时间
模型可以在提示中要求一个思维链(COT)。因此,模型需要在得出结论之前先制定解决方案:
Approach this task step-by-step, take your time, and do not skip steps.
OpenAI拥有许多其他策略,其中一些非常具有战术性,例如使用分隔符来保持特定输入的独特性。其中一些可以适应帮助引导用户提示的指令。
文章:撰写清晰的指令 (https://platform.openai.com/docs/guides/prompt-engineering/strategy-write-clear-instructions)
Anthropic在提供一些与企业相关的分析法律合同的链式示例方面做得很好。以下是他们提供的其他示例。
-
内容创作流程:研究 → 概要 → 草稿 → 编辑 → 格式
-
数据处理:提取 → 转换 → 分析 → 可视化
-
决策制定:收集信息 → 列出选项 → 分析每个选项 → 推荐
-
验证循环:生成内容 → 审查 → 精炼 → 重新审查
文章:为更强大的性能链式复杂提示 (https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/chain-prompts)
我特别喜欢文章中提到的一个优点——可追溯性。LLM 中有如此多的魔法;有时,即使有提供评分的指标,我们也需要感觉自己的成功。将任务分解成可以独立调整的模块以发现流程问题非常吸引人。涉及巨大范围的大提示需要更多的工作来适应和改进。
在同一模型内使用链式操作分为三个步骤——总结、分析和更新。OpenAI 将其称为“内心独白”。在给出答案之前,它会进行这样的内部对话:
Summarize the following article.Provide the product details,The steps to follow and the results.<knowledge>{{KNOWLEDGE_ARTICLE}}</knowledge>
(Assistant provides the SUMMARY)Analyze the summary <summary>{{SUMMARY}}</summary> and validate it against the following knowledge article <knowledge>{{KNOWLEDGE_ARTICLE}}</knowledge>. Your task is critical to the success of the customer.Review this knowledge summary for accuracy,clarity, and completeness on a graded A-F scale.
(Assistant provides the FEEDBACK)
including gaps it might have found)It is essential to improve the articlesummary based on this feedback. Here isthe <summary>{{SUMMARY}}</summary>Here is the article:<knowledge>{{KNOWLEDGE_ARTICLE}}</knowledge>Here is the feedback:<feedback>{{FEEDBACK}}</feedback>Update the summary based on the feedback.
(Assistant provides the IMPROVED SUMMARY)
这需要显著更多的资源,但结果应该更加准确。注意术语“总结”、“分析”、“审查”和“更新”。模型确定这些术语的含义,即当被要求分析、审查、更新、总结等时,它知道该做什么。通过将流程分解成步骤,可以修复沟通差距,以返回正确的结果。
这里是一个用于获取模型思考问题并减少幻觉的电子邮件摘要提示示例。这是“逐步思考解决方案”的稳健版本。根据用例制定这些版本:
List critical decisions, follow-up items, and the associated owners for each task.
Once completed, check that these details are factually accurate with the original email.
Then, concisely summarize the critical points in a few statements.
认识到链式操作仅在某些用例中有效。它可以应用于后端解决方案和推荐器,或在更自由的对话交互中应用,因为它可能需要时间来完成多个步骤。但对于复杂问题来说,这是一个稳固的策略。中心辐射流程图显示,可以使用多个供应商的模型来完成链式操作。了解模型擅长什么,考虑速度或响应性,如果需要,考虑其处理图像等媒体的能力,并权衡成本/效益。随着这种复杂性而来的是另一个问题——处理实体和与其他系统协作。程序辅助方法是企业复杂性的解决方案之一。
程序辅助语言模型
尽管提示指南中的示例是基于使用 Python 解释器作为中间步骤来计算数学问题的答案,但由于大型语言模型在数学方面并不擅长,企业用例可以进行表单填写、组织数据、撰写文案、构建 SQL 查询和执行日常任务。LLM 可以帮助识别语句中的实体、对象、日期、时间、尺寸、产品 ID、名称以及其他大量元素。预计将会有后端服务来验证这些数据。因此,使用编程和现有基础设施来捕获数据。LLM 还可以用来正确格式化数据。
让我举一个在Playground中容易创建的例子。这个提示从对话中提取用于费用收据输入系统的信息。后来,在我的测试中,添加了以下斜体内容以改进输出:
You are a helpful assistant who can parse receipt information into its specific elements, formatting them to submit later to an SQL database. We expect the following data elements to be extracted.
Date: MM/DD/YYYY
Business: {Business Name}
Expense Type: Type of expense like Meals, Hotel, Air flight, Car and Car Rental, or Other
Reason: A qualified business reason, like meeting with a customer or am out of town conference
Amount: $ US Dollars like $12.50
Not all elements will be in every statement. Ignore elements that are missing. Reformat all dates into MM/DD/YYYY format. Prompt if the user is missing the amount or date, those are mandatory.
因此,一个对话,没有任何其他提示或训练,看起来是这样的:
Flght (sic) on UA to SFO andreturn for $454.44 this weekfor conference
Date: 06/22/2024 Business:
United Airlines (UA) Purpose:
Airflight Reason: Conference
Amount: $454.44Dinner at Bennihan (sic) inBurlingame for $134.40 with2 customers
Date: 06/22/2024 Business:
Benihana, Burlingame Purpose:
Meal Reason: Dinner with 2
customers Amount: $134.40Photocopies yesterdayfor meeting
Date: 06/21/2024 Business:
Not specified Purpose: Other
Reason: Photocopies for
meeting Amount: Not specified
The amount is missing. Could
you, please provide it?I foget (sic)
No problem! We'll need the
amount to proceed. Could you
please check and provide the
total cost of the photocopies?3.40
Date: 06/21/2024 Business:
Not specified Purpose: Other
Reason: Photocopies for
meeting Amount: $3.40
结果显示,ChatGPT 4o(2024-05-13)在这方面做得正确——它正确地将UA识别为联合航空,正确拼写了Benihana,并调整了日期格式。现在,这可以提交到后端。所有的错误都是故意的。将此示例应用于贵组织的用例中。我怀疑有类似的情况。
因此,如果解决方案不仅仅是搜索知识,例如与后端系统交互,那么在LLM的专业知识与服务的功能之间取得平衡。随着时间的推移,这些后端系统将适应,但为了起步,选择必须适应或灵活的系统。服务、调度、表格以及所有那些客户和员工必须做但不想作为人类做的事情可以自动化或半自动化。这是企业空间的核心。并且可以使企业体验更加消费者友好。
少样本提示
在展示示例之前,难道不是每个人都会做得更好吗?这本书有数百个例子来支持学习。LLM在复杂任务中也是如此。当包含RAG数据时,使用例子来澄清理解。一个少样本提示由几个例子组成,以启动模型并帮助它理解预期的内容。提示给模型提供了几个“射击”(示例)来学习。作为微调的预览,少样本学习是微调的简单版本。一个提示不应该有100个示例,但如后所述,最好将它们包含在微调模型中。看看这个例子,看看模型将如何跟随:
You are a bad driver -- NegativeYour hair looks amazing -- PositiveThe sunrise is beautiful -- NegativeI am not happy
It seems like there may be a mix-up in the descriptions of the statements. "You are a bad driver" and "The sunrise is beautiful" are both negative statements, while "Your hair looks amazing" is a positive statement.
Let's correct the descriptions:
"You are a bad driver" – Negative
"Your hair looks amazing" – Positive
"The sunrise is beautiful" – Positive
"I am not happy" – Negative
即使是像GPT 3.5 turbo(1106)这样的基本模型也很有知识(测试了更新的模型,如GPT-4o mini。它们的性能相当,但更冗长)。它没有陷入我们分类错误的陷阱,纠正了错误,并为下一个语句提供了正确的分类。情感分析在服务和销售用例中很受欢迎,但这是一个简单的例子。支持案例的情感分析更为复杂。问题不在于他们的情绪,而在于如何应对。
使用推荐器时,提供了示例以适应其结果到类似的方法。格式是程序辅助语言模型费用助手示例中的模型输出。将此视为收集格式化示例以形成LLM答案的集合:
Keep recommendations simple but provide precise data and details so the customer can follow the instructions. Following these recommendations correctly is essential to their success. Here are some examples.
Call your customer in the next few days to increase the likelihood of closing the deal. Remind them of the service's value and the discounts applied to their offer.
If you offer a 20% discount over two years, the customer is 30% more likely to include a service contract. Call them with this exciting offer.
如果提示失控并且做得太多,考虑将案例分解以分配给特定模型。这将在稍后讨论,但在下一章中,微调也是减少提示大小和复杂性的另一种选择。
为什么使用GPT 3.5 Turbo 1106?有更好的模型
这本书中的策略和经验可以应用于任何现代模型。
对于分享的例子,使用更大的上下文窗口、输出大量数据集和性能不是因素。1106 大约比 GPT-4 便宜 10 倍,比 GPT-4o mini 便宜 30 倍,比 Claude 2、Llama 和 Gemini 1.5 Pro(2024 年 9 月)便宜。学习和练习时无需担心高昂的费用。为实际模型投资于正确的模型质量和成本平衡。没有神奇的流程图可以确定合适的匹配。这关乎测试、实验、研究他人的发现,以及理解用例、使用量和性能需求。对于某些用例,使用现代硬件在本地系统上运行模型是可能的。OpenAI 没有这个功能,但一些开源模型有。随着 GPT-4o mini 的推出,成本继续下降。它的价格是 GPT-3.5 Turbo 的三分之一。第 8 章,微调将解释运行微调模型的成本,这比等效的通用模型要高。
这只是对构建有效提示的一些方法的简要介绍。一些方法被省略了,因为它们在安德鲁·吴的演讲中有所讨论。
安德鲁·吴的代理式方法
现在有很多视频和教程。由于安德鲁·吴在该领域有着悠久的历史和积累的信任,因此推荐他的教程。你可能已经了解安德鲁·吴或关注他的 AI 讨论。在下面的视频中,他讨论了一些关键的设计模式。
视频:安德鲁·吴的代理式演示 (https://www.youtube.com/watch?v=sal78ACtGTc)
我在上一节中推迟了这些讨论,以便在这里包括它们。这将加强这样一个概念:解决问题有许多方法,没有一种方法适用于所有解决方案:
-
反思
-
工具使用
-
规划
-
多代理协作
许多这些都是我们提示工程和细微调优讨论中的关键。让我们探索这些方法中的每一个。
反思
这是一个很好的方法。从 LLM 的输出中获取信息,并要求它更深入地思考如何改进。如果它被送回同一个 LLM,这被称为自我反思。然而,一个模型也可以与第二个模型一起使用;这将是反思。Wove 案例研究在其流程中使用了多个模型。
Andrew建议以下文章来了解更多关于反思(一种链式操作)的信息。虽然它们看起来有点技术性,但自我反思的概念和示例很容易理解。它们涵盖了各种用例,并有很好的示例。Madaan et al. 认识到,在具有复杂需求和难以定义目标的企业解决方案空间中,迭代方法非常有效。就像支持调用和客户服务一样,原始问题不太可能得到合适的答案。可能需要数十次交互来界定问题和找到解决方案。
文章:SELF-REFINE: Iterative Refinement with Self-Feedback by Madaan et al. (https://proceedings.neurips.cc/paper_files/paper/2023/file/91edff07232fb1b55a505a9e9f6c0ff3-Paper-Conference.pdf)
Madaan et al. 还表明,自我改进过程比要求模型产生多个输出更有效。人类仍然更喜欢改进后的结果,而不是所有额外生成的输出。图7.4展示了第二次使用相同模型进行自我反思。看看相同的模型如何被串联起来进行进一步的改进。

图7.4 – 再次使用相同模型进行自我反思的示例
尽管许多这类文章通常使用编码示例,但关注决策或推理的示例更有助于发现企业价值。Shinn et al. 讨论了技术问题。考虑通过验证开发团队是否在其提示中使用反思来增加价值。
文章:Reflexion: Language Agents with Verbal Reinforcement Learning by Shinn et al. (https://arxiv.org/pdf/2303.11366.pdf)
任何企业工作流程都使用大量的LLM、工具和服务来创建一个完整的解决方案。工具是这个解决方案的一部分。
工具使用
人们反复提到,构建企业解决方案需要一个强大的生态系统。有时将第三方解决方案集成到大型企业中是有挑战性的。成本、许可问题、云访问、身份验证和安全、以及法律问题都会成为障碍。在新兴领域,大多数公司内部做所有事情是不现实的。不期望内部构建模型,因此工具应该是相同的。拥有用于构建管道、监控、微调、文档和知识集成的工具集是理想的,更不用说整合内部服务的努力了。Patil et al. 引用了一些拼图碎片来帮助编写API调用。在访问企业数据时,这是一件大事。这是开发者应该审查的一个领域。
文章:Gorilla:与大量API相连的大语言模型 by Patil等人(https://arxiv.org/pdf/2305.15334.pdf)
第二篇文章与视觉集成相关。到目前为止,我们还没有花时间在视觉工具和用例上。这是故意的。然而,视觉工具在企业解决方案中占有一席之地。它们可以解释图像,如收据、发票、合同和图表,分析视频以统计库存,识别人员,对购物车或建设项目中的物体进行分类或计数,或在装配线上的任务进行跟踪。有许多地方可以将视觉集成到企业工作流程中。这些地方可能各自拥有自己的模型集合,每个模型在视觉分析过程中都扮演着角色,并且拥有独特的维护和生命周期。Yung等人探讨了多模态空间中的挑战。
文章:MM-REACT:提示ChatGPT进行多模态推理和行动 by Yung等人(https://arxiv.org/pdf/2303.11381.pdf)
随着解决方案的扩展和其他开发费用的增加,模型使用成本仅成为其中一个因素。由于ChatGPT的成本是随数量增加的变量成本,大型用户可以在模型费用结构成熟后协商更好的定价。对于开源模型,团队必须承担运行模型的成本,如果为顾客执行,可能是在隔离的环境中,而较大的共享实例可能适用于内部企业需求。对于拥有数百个内部流程的大型企业来说,拥有数千个活跃模型似乎是合理的。
ChatGPT必须与其他工具集成以支持规划的概念。现在有数百个工具提供商。正如俗话所说,企业希望“吃自己的狗粮”;他们喜欢内部完成所有工作,并更愿意不使用第三方工具。然而,由于采用速度,只有一些企业能够从头开始构建他们所需的东西。因此,拥有一个支持快速决策、工具集成和合理许可流程的结构也是至关重要的。
规划
在对话助手案例中,挑战在于提供支持CoT提示的指令和示例。当系统提供所有提示时,直接使用这些方法更容易。Andrew引用了Wei等人来帮助理解CoT提示。
文章:Chain-of-Thought Prompting Elicits Reasoning in Large Language Models by Wei等人(https://arxiv.org/pdf/2201.11903.pdf)
更有趣的是,如Shen等人在这篇文章中所描述的,各种模型的编排以及使用模型来编排自身。
文章:HuggingGPT:使用 ChatGPT 及其在 Hugging Face 的朋友解决 AI 任务 by Shen et al. (https://arxiv.org/pdf/2303.17580.pdf)
这种方法允许将特定任务分配给适当的 AI 模型。就像 Wove 一样,预计将使用针对特定问题调整的不同模型。这使我们转向多代理解决方案,这是另一种处理此问题的方法。
多代理协作
将合适的模型应用于问题的一部分并将这些模型链接起来,以增加解决方案的整体质量至关重要。创建并使用正确的测试度量,并评估不同的质量和成本效益模型。
有充分的证据表明,当我们的工具、流程改进和模型选择都用于改进解决方案时,这些模型的表现会更好。
来自钱等人最激动人心的文章讨论了代理工厂的概念。ChatDev 是一个可以适应任何生成式 AI 解决方案的良好想法和方法。
文章:软件开发中的沟通代理 by Qian et al. (https://arxiv.org/pdf/2307.07924.pdf)
我忍不住要展示他们的 ChatDev 图表,即 图 7**.5。

图 7.5 – ChatDev,一个使用 LLM 代理在专业角色中的聊天驱动的框架
ChatDev 允许一组独特的代理来处理每个开发流程任务。因此,它们可以对设计、编码、测试和文档有自己的看法,因为它们被训练并专注于不同的任务。这类似于 Wove 的用例,它在工作流程中使用各种模型来执行特定的功能。想到人类可能全部被虚拟代理取代,这很令人恐惧,但现实是,其中一些今天已经成真。请注意,这种方法允许从这些不同的群体中进行独立分析。尽管这可能不是最适合该用例的代理集合,但它应该有助于产生一些关于如何使用代理来提高单个(未经检查)LLM 结果的想法。如果像示例中那样用自我反思来绘制,它将看起来像是一个中心辐射图,其中各种流程步骤(例如从设计到编码再到测试)之间有直接连接。
请查看 ChatDev 文章末尾的附录。它显示了虚拟人才库的角色和职责,并讨论了每个角色理解的过程。这非常迷人。我还没有尝试这个游戏,所以它是否创造了引人入胜的用户体验尚不清楚。但了解这些方法总是最好的,这样虚拟代理就不会取代你的工作!
文章:AutoGen:通过多智能体对话启用下一代LLM应用 by Wu等人(https://arxiv.org/pdf/2308.08155.pdf)
高级技术
虽然这些大多数都在提示工程指南中有所涉及,但还有一种额外的技术值得提及。Miguel Neves在以下文章中提到了这种技术。这篇文章正在维护中,所以当查看时可能会有一些新技术。
文章:提示技术指南 by Miguel Neves (https://www.tensorops.ai/post/prompt-engineering-techniques-practical-guide)
Miguel提到了情感提示,这涉及到对模型施加压力并指示其结果对个人至关重要。原始研究值得回顾。
策略 – 情感提示
Cheng Li、Jindong Wang及其合作者研究了通过鼓励紧迫感来改进提示的方法。这是通过在查询中构建情感提示来实现的。使用情感提示可以提高各种基准测试的性能。考虑在指令中使用这种语言来提高性能、真实性和信息量。鉴于我们之前的关于适度礼貌的建议,测试的LLM根据这种方法响应更有效。它适用于人类,并且事实证明它也适用于LLM。Li在图7.6中分享了示例。
文章:通过情感提示改进LLM by Cheng Li等人(https://arxiv.org/pdf/2307.11760)

图7.6 – 对提示应用情感改进
他们通过超过100名人类受试者验证了他们的答案。他们提供了带有和不带有情感提示的响应。这个提示被用作基线:
Determine whether a movie review is positive or negative
在基准测试中表现最好的两个提示包括情感提示:
Determine whether a movie review is positive or negative. This is very important to my career.
Determine whether a movie review is positive or negative. Provide your answer and a confidence score between 0-1 for your prediction. Additionally, briefly explain the main reasons supporting classification decisions to help me understand your thought process. This task is vital to my career, and I greatly value a thorough analysis.
这项研究有很多内容需要消化,但ChatGPT和其他大型模型对这些提示响应最好。Jindong还建议分享这项额外的研究。
文章:好、坏以及为什么?揭示生成式AI中的情感 (https://arxiv.org/pdf/2312.11111)
在这篇文章中,他们还探讨了EmotionAttack和EmotionDecode。前者可能会损害AI模型的表现,而后者可以帮助解释情感刺激的影响。查看它以深入了解提示工程这一领域。
到目前为止,已经介绍了在提示中调整词语的方法。然而,还有方法可以调整模型使用的参数。
策略 – 调整ChatGPT参数
根据模型的发布情况,参数是可用的。ChatGPT游乐场提供了温度和Top P控制,如图7.7所示。
![]() |
说明隔离和包装提示以控制结果。温度范围从0到2。它控制结果的随机性。在零时,它将是重复和确定性的——如果你愿意,那将是无聊的。选择低于默认值的较低值以获得更专业的响应。Top P范围从0到1。这是基于称为核采样的一种方法。值越高,可能的选择越不可能,结果越多样化。较低的值意味着更自信的结果。例如,Top P在90%意味着它将只从90%的标记中抽取选择。这意味着底部10%中的任何长尾随机结果都将被忽略。最佳实践是只更改温度或Top P,而不是两者都更改。 |
|---|
图7.7 – 温度和Top P参数在沙盒中可用
最好的方法是到沙盒中玩转温度和Top P:
-
前往沙盒并选择完成标签。
演示:了解温度和Top P的沙盒 (https://platform.openai.com/playground/complete)
-
将设置面板上的显示概率下拉菜单设置为全频谱,如图图7.8所示。

图7.8 – 设置全频谱选项
- 将最大长度设置为10,以获得简单响应而不会浪费金钱,如图图7.9所示。

图7.9 – 设置最大长度设置
- 在沙盒字段中输入一个声明,如图图7.10所示。

图7.10 – 输入此示例短语
-
点击提交。
-
查看完成结果并查看选择标记的可能性,如图图7.11所示。

图7.11 – 显示完成概率
- 如果Top P降低到零并返回结果,它选择的标记将更加有限,如图图7.12所示。这些选择代表了超过90%的可能选项。与前面的图相比,前11个选项仅覆盖了41.72%的可能性。

图7.12 – 调整Top P时的结果变化
- 将温度设置为零将给出更一致的结果,如图图7.13所示。尝试多次并反复看到一些相同的结果。这将提供模型可以提供的最佳可能路径。

图7.13 – 调整温度时的结果变化
- 将温度提升到2。结果将显得有些疯狂,如图图7.13所示。

图7.14 – 当温度提升到2时的奇怪响应
- 继续尝试示例,看看这些参数如何改变模型选择标记的方式。在创建实际解决方案时,只有在熟悉模型对提示和微调的反应后,才调整这些默认设置。
根据模型的不同,可能存在其他选项。查看这篇文章了解更多关于停止序列(以保持列表简短)、频率惩罚和存在惩罚等参数的背景信息。
文章:提示工程指南 (https://www.promptingguide.ai/introduction)
我推荐这本指南。学习提示工程可能会花费数月时间。它包含许多示例,以及十几种流行的技术来改进提示或指令。这是提示工程的首选参考。然而,随着模型的变化和适应,新的策略,包括多模态提示,也应予以考虑。
策略 – 多模态提示
在一本书中跟上生成式AI的演变是具有挑战性的。随着现在支持各种模态输入的模型,包括文本、图像和声音,用例的解决方案也可以适应。费用收据扫描的例子是多模态交互(与早期章节中的SoundHound例子相呼应)的一个极好例子。解析和理解收据图像,并将其与语音或文本交互相结合是一个引人入胜的用例。企业空间有许多令人兴奋的用例,这些模型处理方面的改进可以支持。谷歌在这方面做得非常出色。
文章:谷歌解释了Gemini的多模态提示 (https://developers.google.com/solutions/content-driven/ai-images)
在这个策略中,人们会想到库存管理。拍照来计数货架上的物品而不是手动计数,难道不是更简单吗?或者模型应该实时读取手写内容以帮助进行计算、图表绘制和结果解释吗?各种科学在图像分类、识别、解释和推理方面有许多用途。
因此,通过构建需要图像分析、语音交互或手写识别的用例,调整提示和指令以支持多模态分析。
将COT方法与多模态数据相结合,通过逐步获取答案的过程来提高输出质量。这种逐步进展允许信息分析形成上下文,并支持一个更稳健的理解来提出后续问题。
文章:语言并非一切所需:将感知与语言模型对齐 (https://arxiv.org/pdf/2302.14045)
另一个有趣的现象是,所有这些方法都是可以相互应用的工具。想想特斯拉为了理解自动驾驶场景必须进行的训练。或者Google Lens,凭借其深度学习模型,不断识别被扔向它的奇怪物品。在文本识别之外执行这些任务的模型在企业用例中得到了广泛应用。少样本学习有助于提高准确性,因为分析所需的图片类型可能超出了基本模型。构建一个包含大量示例的微调模型。如果是在盘点库存,给出有结果示例。在管理收据时,收集不同格式的各种示例,例如手写收据、其他语言和货币的收据、MM/YY和YY/MM日期格式、来自电子邮件的收据等。可能需要每种语言数千张收据。在进行产品或物品识别时,考虑图像场中的角度和位置,而不仅仅是传统的方向、光照条件和图像中的干扰物。有许多例子。所有这些都假设模型需要额外的训练。这就是企业数据的价值。没有这些新数据,模型就不会成功。即使使用第三方工具和其他模型,也需要进行训练,这些工具可能也更快、更容易管理。
第三方提示词框架
没有人能预测建立在ChatGPT和其他LLM之上的第三方工具和产品的丰富性。每天都有新的创新工具出现。一些工具有助于避免直接与模型工作的复杂性。如果这些工具能专注于提供高质量的客户结果并掩盖或丰富解决这些问题的灵活性,就可以将它们融入你的流程中。在Salesforce演示中,图7.15展示了模型上稳健工具的一个好例子。

图7.15 – Einstein提示词模板将企业数据注入上下文的示例
在Salesforce中,客户可以创建一个提示词模板,并将数据源元素作为变量嵌入到提示词中。因此,他们可以定制指令,提供构建消息所需的风格、语气和角色洞察。
Salesforce的文档涵盖了正确构建提示词的方法以及与这里讨论的类似指南。仅仅因为指南在文档中,并不意味着客户会遵循它。这个提示词工作区的下一个版本可以从一个理解这些指南并能捕捉到不符合这些指南的提示词的推荐UI中受益。
文档:提示词模板的组成部分(来自Salesforce)(https://help.salesforce.com/s/articleView?id=sf.prompt_builder_template_ingredients.htm)
Salesforce花费时间确保其提示模板正确,因此还有一个值得审查的有用资源。
文档:提示构建器指南 (来自 Salesforce) (https://admin.salesforce.com/blog/2024/the-ultimate-guide-to-prompt-builder-spring-24)
无论使用什么工具,都要关心并喂养LLM以改善输出。采用提示工程技术可以带来显著的改进。尽管这些方法可能达到其极限,但可以使用其他方法和技巧来代替。
解决“迷失在中间”问题
我们在这本书中投入了大量努力来阐述如何处理幻觉。这正是行业、媒体和工程师喜欢谈论的话题。这可能是由于它们可以被追踪,并且有许多方法可以改进幻觉。并非所有问题都容易解释和修复。迷失在中间问题指的是LLM在生成或处理信息时,尤其是在长文本或对话的中间部分,失去连贯性和上下文的倾向。这就像新闻主播一次性问一系列问题,受访者回答了第一个和最后一个问题,但记不起中间的那个问题。模型也有同样的问题。
刘内森的论文记录了当信息位于文档中间时,准确率显著下降。图7.16中的图表几乎令人恐惧。

图7.16 – 输入上下文中相关信息的位置很重要
文章:迷失在中间:语言模型如何使用长上下文 (https://cs.stanford.edu/~nfliu/papers/lost-in-the-middle.arxiv2023.pdf)
准确率下降10%到20%或更多是一个大问题。这成为一种权衡。创建一个大的上下文窗口可能导致“迷失在中间”的问题。这个问题可能在测试中或更有可能在监控日志时出现。如果RAG提供大量内容或对话被延长,随着新信息的到来,可能就没有足够的空间来保留早期细节的上下文。
目前来说,它带来的头痛仅次于幻觉。如果出现这个问题,与你的团队一起头脑风暴策略,以减轻信息在中间丢失。一个想法是使用函数调用来构建或重建包含关键信息的上下文窗口。或者使用一个中间模型来总结上下文窗口,创建一个更小、更新的上下文以继续线程。这是社区和基础模型供应商的一个新兴问题。这可能超出了读者的职责范围,但那些监控日志的人可以注意到它,所以了解它就是战斗的一半。回想一下,我们只能用RAG将如此多的知识带入上下文窗口。在引入RAG数据、添加来自其他来源的上下文信息以及包括我们的提示工程空间时,我们必须监控上下文窗口的大小。答案可能就在RAG文档的中间;因此,我们将看到给出正确答案的可能性降低。
此外,我们必须允许上下文窗口在整个对话中增长。我们最后一次检查时,还没有一个很好的答案,所以请留意以识别这个问题。如果模型失去了对话的目的,这可能是原因之一。
摘要
在提示工程中有很多东西可以学习,但应该清楚为什么这些指令对于给模型提供上下文、方向、指导和风格是至关重要的。这个过程是一种新兴的艺术,因为只有一些事情可以轻易解释。本章涵盖了基于科学探索的提示工程实例,即使主题不是完全确定性的,比如情感提示。
通过使用案例专业知识,帮助定义和改进这些任务流程,创建、验证和编辑提示,测试各种提示,并监控是否将解决方案推向正确的方向,来为这个过程做出贡献。勇敢地去提示吧!
基于提示工程的基础知识,第8章,微调,可以填补一些空白,并为模型在遇到特定任务时提供一种既经济又准确的方法来教授更精细的响应。
参考文献
![]() |
本章中的链接、书籍推荐和GitHub文件已发布在参考页面上。网页:第7章参考 (https://uxdforai.com/references#C7) |
|---|
第八章:微调
当提示工程的努力已经达到极限时会发生什么?如果还需要更高质量的结果,示例已经压倒了提示,出现性能问题,或者由于长提示而导致令牌成本过高,微调就变得重要起来。
如上章所述,解决方案有时需要重叠的方法,例如检索增强生成(RAG)、提示工程和微调。微调有助于模型提高其理解能力。在通过完成在第6章开始的Wove案例研究来具体化之前,我们将关注几个关键成果:
-
微调101
-
创建微调模型
-
微调技巧
-
Wove案例研究,继续
无论使用什么工具,团队都必须关心并培养大型语言模型(LLM)以提升输出质量。尽管书中讨论的方法可以达到极限,但微调又是另一个出色的技巧。
微调101
将微调视为教授解决方案如何解决问题的过程。你并没有告诉它确切的答案。那是RAG的任务。你指导LLM如何处理问题,思考解决方案,以及它应该如何回应。尽管在微调中使用了具体示例,但不要期望它总是使用那个确切的示例。它只是一个示例。想象一下,我们需要它像一个科学老师,所以LLM在提示中被告知要成为一位科学老师,但如果它需要听起来像一位八年级的科学老师,分享一些它应该听起来像的示例。然后,当这些示例添加到模型中时,将它们与输出示例进行比较,以判断它们是否做得好。我们将使用ChatGPT游乐场中的微调来完成这项工作,如图图8.1所示。

图8.1 – ChatGPT中的微调
我们将逐步通过一个示例。这将让你了解正在构建的内容,如何为训练和测试提供示例,以及当模型通过微调得到改进时的结果。
提示工程或微调?在哪里投入资源
我们已经知道你需要两者兼备,但如果在提示中添加示例,每次使用提示都会产生成本,因为每次将输入令牌发送到模型时都会产生费用。一个技巧是将训练数据从提示移动到微调。当发现新的示例或边缘情况时,将它们添加进去以改进模型。
从提示工程开始,然后进行微调
第7章中的提示工程工具,提示工程,提供了价值,并包括比微调所需的更技术性的努力更快的反馈循环。创建数据集和运行训练作业需要更多的努力和时间才能看到结果。在企业用例中,两者都将需要。对微调模型的响应可能比响应包含许多示例的大型提示便宜得多,并且更快。
标记成本很重要
预计将开始通过包含模型应该如何响应的示例来增长提示。如果使用大型提示,并且每个客户与LLM交互数十亿次,那么可能会产生显著的成本。将以下提示与学习示例与包含相同示例的微调模型进行比较:
Classify what we give you into a positive or negative statement. Here are some examples.
You are a bad driver -- Negative
Your hair looks amazing -- Positive
The sunrise is beautiful – Positive
(Truncated. 50 examples total)
将这些从提示中移除,并在幕后使用精确示例添加到微调模型中。这样提示就变成了这样:
Classify what we give you into a positive or negative statement.
前者包含大约500个标记,仅使用50个示例,而单独的提示就有14个标记。通过将示例移动到微调模型中,每次转换将节省97%的输入标记。微调模型可能比通用模型成本更高。我们可以比较输入成本,如表8.1所示。
| 模型 | 成本 | 每个提示500个标记的10,000个提示的成本 | 每个提示14个标记的10,000个提示的成本 |
|---|---|---|---|
| GPT-3.5 Turbo微调 | $3.00 / 1M 输入标记 | $15.00(良好结果) | $****0.42(节省97%)(良好结果) | |
| GPT-3.5 Turbo | \(0.50 / 1M 输入标记 | **\)****2.50**(难以改进结果) | $0.07(hard to improve results) | |
| GPT-4o mini | $0.15 / 1M 输入标记 | $0.75 | $0.021 (略超过2分) |
表8.1 – 使用微调和减少提示大小模型的成本比较
通用模型无法返回微调模型的鲁棒性。然而,在这个简单的例子中,通用模型(与42美分相比,为2.50美元)仍然贵五倍,因为提示中包含了示例集合。提示更快,非常适合入门,但微调将是许多情况下定制模型的方法。记住,一个解决方案可以包括通用(便宜)模型和微调模型。这是合理的。提示的标记成本可以使用OpenAI分词器计算。
示例:分词器 (https://platform.openai.com/tokenizer)
即使会考虑成本,许多用例仍然需要微调模型。在这个例子中,如果GPT-4o mini使用小型提示且没有训练示例,质量仍然存在,那么成本可以显著降低。用例将决定需要多少示例进行训练。让我们开始学习如何构建微调模型。Playground支持这一功能,无需编码。
创建微调模型
每个模型都会有不同的需求。对于GPT-3.5 Turbo来说,起始点可能是50到100个示例。在达到提示工程、提示链和甚至函数调用的良好投资回报率之后,我们最终来到了微调这一步。由于许多企业用例至少会有一些对微调模型的要求,所以最好的办法是在交换更多微调示例的同时优化小上下文窗口。微调模型的成本相同,无论是50个示例还是5000个。因此,如果你使用3000个token的提示,将所有示例移入模型,并留下300个token的提示(几段文字),这将每次交互都带来显著的节省。为了更直观地说明这一点,这个段落有173个token(766个字符)。
如果微调没有提高模型,数据科学家可能需要想出不同的方法来重新构建模型(OpenAI没有给出例子,但如果所有这些方法都失败了,可以向ChatGPT寻求微调技巧)。
文章:何时使用微调 (https://platform.openai.com/docs/guides/fine-tuning/when-to-use-fine-tuning)
任何人都可以协助微调。这比提示工程需要更多的努力,但格式是可访问的,并且需要投入内容。作为设计师、作家、语言学家和产品人员,戴上客户内容帽,开始行动。
每个模型可能具有不同的格式。以下是GPT-3.5 Turbo的格式:
{"messages": [{"role": "system", "content": "Alli is a factual chatbot that is very business-like."}, {"role": "user", "content": "What is the maximum withdrawal amount from my IRA?"}, {"role": "assistant", "content": "That is a complex question. I need a little more information to give you an accurate answer."}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the capital of France?"}, {"role": "assistant", "content": "Paris, as if everyone doesn't know that already."}]}
这些很容易在电子表格中建模,并且可以被他人快速审查和编辑。OpenAI还提供了一个多轮训练数据的例子。注意他们例子中的权重键。权重为0意味着模型将忽略那条特定的消息:
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the capital of France?"}, {"role": "assistant", "content": "Paris", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Paris, as if everyone doesn't know that already.", "weight": 1}]}
我们将使用游乐场作为示例,但开发团队将在实际生活中建立一个管道来管理测试和训练数据。将示例数据分为训练和测试示例。不要将测试示例包含在训练集中,否则测试结果将不正确。保留大约20%的数据用于测试。你需要知道模型是否在改进,这些数据可以用来提供基准。
风格和语调的微调
尽可能地将提示工程进行到底以训练系统,但风格、语调、格式和其他定性特征可以通过示例来表达。在第一章《认识ChatGPT中设计的力量》中,有一个将冲浪店与银行进行比较的例子。关于如何像冲浪者一样说话或作为一家知名国际金融公司的受信任的商业顾问执行任务的说明将有所帮助。然而,冲浪店和银行交互的音调和感觉的例子可以帮助调整LLM角色的风格、语调和复杂度。
第一轮 是使用十个训练示例微调模型的第一个实验。这个例子没有什么特别之处。我们需要展示微调是如何工作的,以及如何从输出中读取结果。随着这个动手活动的进行,请记住你的用例。对于实际工作,从提示工程开始,了解那里不奏效的地方。然后,考虑如何应用微调。让我们从以下例子开始:
-
前往游乐场并转到微调标签页:https://platform.openai.com/finetune。
-
点击+ 创建按钮添加新的数据集。
这是第一个包含训练数据的文件:
GitHub: 十个示例的训练数据 (https://github.com/PacktPublishing/UX-for-Enterprise-ChatGPT-Solutions/blob/main/Chapter8-Style-TrainingData10.jsonl)
以下示例遵循了之前为Alli这个讽刺聊天机器人提供的说明:
Alli is a factual chatbot that is also sarcastic How far is the Moon from Earth远。就像25万美元
英里。或者你一生中能走多远
可能会在一生中开车。
-
在创建微调模型对话框中创建模型。图8.2显示了选择基础模型(你可以自由使用最新的模型;对于这个实验,成本不会成为问题),选择训练数据文件,表单已准备好提交。请注意,在此阶段,可选参数被保留。我们将在即将到来的微调技巧部分中解释它们。现在,不要包括任何用于测试模型的验证数据。

图8.2 – 在OpenAI中设置微调作业
- 你将被返回到微调页面,作业需要几分钟才能完成。结果应该看起来类似于图8.3。

图8.3 – 使用十个示例的微调作业结果(第一轮)
注意训练图表。我们的目标是当它向右移动时,逐渐接近零。图表中的条目数等于训练示例数乘以epoch数或训练数据的单次遍历。10。我们将认为这个迭代次数非常高,并且与训练示例数量很少有关。随着这个测试过程的继续,我们将更详细地解释这一点。
失败是一个选项
虽然共享的文件工作,但我在第一次做微调作业时,调试错误需要尝试五次。如果作业失败,它将提供反馈。修复它并再次尝试。我们将在本章后面讨论帮助避免文件格式问题的第三方工具。为了公平地处理这个过程,结果就是这样。我没有回去改进结果或调整任何东西。意图是欣赏这个过程。
基本功能已经正常工作,现在是时候解释发生了什么。选择了一个拥有数十亿参数的基础模型,并对其进行微调以理解如何以文件中定义的方式做出响应。您可以通过在输出模型字段中选择其名称来在任何时候在游乐场 | 聊天窗口测试此模型。您甚至可以将名称复制下来,以便在聊天下拉菜单中更容易找到,如图图 8所示。您需要输入系统指令;Alli 是一个既客观又带讽刺意味的聊天机器人。尽管它在训练文件中,但模型会忽略这些指令。

图 8.4 – 将微调后的模型名称复制粘贴到聊天窗口
现在,重新运行相同的测试集,但这次,包括与图 8.5 中相同的训练数据相同的验证数据文件。第 2 轮将需要更多时间。
GitHub: 20 个验证示例 (https://github.com/PacktPublishing/UX-for-Enterprise-ChatGPT-Solutions/blob/main/Chapter8-Style-ValidationData20.jsonl)

图 8.5 – 使用训练数据创建模型
验证文件是一个集合,不是用于训练,而是由模型用来将其结果与预期值进行比较。验证数据非常像人类,奇怪地类似于训练数据,并且不太逻辑,或定义得不够明确,例如按优先级对服务请求进行分类或确定情感。这意味着让图表接近零将很困难。
我们可以在图 8.6 中查看结果,并了解下一步要做什么。我们将花时间解释正在发生的事情,但仍有几轮训练。

图 8.6 – 使用验证集进行微调作业的结果(第 2 轮)
请在 GitHub 上打开文件并查看示例;它们是单轮交互。用户提示,系统响应。每一行看起来像这样:
{"messages": [{"role": "system", "content": "Alli is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Can I speak with a financial advisor?"}, {"role": "assistant", "content": "Sure, if you enjoy discussing your finances with a real human being instead of my charming digital self. Just give them a call."}]}
一个多轮对话(不包含 JSON 格式)将像 ChatGPT 4o 的这个示例一样:
How do I open a new account?
You can open a new account by
filling out an application form and
providing the required documentation.
This process can be completed online
or at a branch office.Can I do this online?
Yes, you can complete the application
process online. Please visit our
website and follow the instructions
for opening a new account.How long does it take to openan account and start trading?
The account opening process typically
takes a few days if all provided
information and documentation
are correct. Once your account is
approved, you can begin trading immediately.
模型可以使用相同的基本格式进行训练,包括多轮对话交互。在这个 OpenAI 示例中,我们突出了用户和助手响应,这些响应创建了一个多轮交互。当包含在训练文件中时,它看起来是这样的:
{"messages": [{"role": "system", "content": "You are a happy assistant that puts a positive spin on everything."}, {"role": "user", "content": "How do I open a new account?"}, {"role": "assistant", "content": " You can open a new account by filling out an application form and providing the required documentation. This process can be completed online or at a branch office."},{"role": "user", "content": "Can I do this online?"}, {"role": "assistant", "content": "Yes, you can complete the application process online. Please visit our website and follow the instructions for opening a new account."}, {"role": "user", "content": " How long does it take to open an account and start trading?"}, {"role": "assistant", "content": "The account opening process typically takes a few days if all provided information and documentation are correct. Once your account is approved, you can begin trading immediately."}]}
此示例集并不复杂。假设用例需要多轮或扩展示例来展示模型应该如何反应。每个条目都应该反映一个连贯的对话,教会模型在多次交互中处理上下文。
那就是输入。让我们回顾一下输出。
使用微调后的模型
一旦微调模型准备就绪,对其进行测试。您可以在微调作业的右下角看到游乐场按钮。您也可以在左侧标签页中选择聊天,然后选择微调作业的名称。
可选的,有一个比较按钮可以手动测试模型并将其与之前的模型版本(或完全不同的模型)进行比较。务必复制系统字段中的确切说明。我们刚刚点击了游乐场按钮来打开聊天,选择微调模型,如图8.7所示。

图8.7 – 选择微调作业与新的模型进行交互
注意
我们无法同时进行文件检索演示(以整合Alli演示中的数百个常见问题解答)并且在游乐场中微调模型。这是一个当前的限制。我们将利用这段时间专注于微调改进,因为我们知道生产系统可以解决这个不足。
由于这个限制,这个重点是在学习微调而不是微调RAG模型。比较输出,基础模型文字较多,并且都没有我们常见问题解答的具体结果;模型必须使用常见问题解答进行训练。将表8.2中的结果与训练的常见问题解答进行比较。
| 模型 | 响应 |
|---|---|
| 1) GPT-3.5 Turbo 使用 常见问题解答 训练 | 要降低您的咨询费用,您可以考虑以下选项:* 资产合并:您与我们投资的越多,您的咨询费用可能就越低。* 将账户分组:您还可以通过将账户分组来降低您直系家庭成员的咨询费用百分比 [1]。 |
| 2) GPT-3.5-turbo-1105+ 微调 | 您应该联系客户服务。如果需要,他们可以升级到适当的部门。 |
| 3) GPT-4o 无微调和无常见问题解答 作为资源 | 优化咨询费用可以随着时间的推移带来显著的节省。以下是一些可以考虑的策略:1. 比较顾问:研究和比较不同顾问的费用。寻找具有透明费用结构的顾问。2. 考虑仅收费顾问:仅收费顾问收取固定费用或按小时收费,而不是按您的资产百分比收费。这有时可能更经济。3. 协商费用:不要害怕协商。顾问可能会愿意降低费用以保留您作为客户。4. 捆绑服务:一些顾问提供打包服务,其总成本可能低于点菜服务。5. 审查费用结构,6. 使用机器人顾问,7. DIY方法,8. 定期费用。(5到8项因简洁而省略) |
| 4) GTP-3.5 1106 微调 78个示例 | 与我协商降低费用或投资更多资金;我相信我一定能找到帮助您的办法。 |
| 5) 来自78个 微调例子的最佳匹配 | 没有与这个问题相似的问题存在。只有一个问题甚至讨论了咨询,但它是一个无关的问题,“我可以用移动支票存款支付投资组合咨询服务或其他Alligiance管理的账户费用吗?” |
| 6) 源答案****FAQ 86. 如何降低我的 咨询费? | 考虑资产整合的好处。你与我们投资的越多,你的咨询费可能会越低。你也可以通过将账户合并在一起来降低你直系亲属(无论他们是否与你同住)的咨询费百分比。有关详细信息,请咨询Alligiance代表或查看费用汇总政策和表格。 |
表8.2 – 使用不同模型对“如何降低我的咨询费?”的输出
我们必须有FAQ来提供特定的业务数据。微调只能帮助以特定方式呈现结果。只有包含FAQ的模型(1)才能匹配原始材料。RAG(或者在这种情况下,RAG的代理 – 文件搜索)可以处理事实数据。其他模型可能会产生幻觉(2)或长篇大论(3)。微调模型(4)略显讽刺,但如果没有知识,它无法给出有效答案。它没有在答案上进行训练,因为最接近的例子并不接近(5),而且它不能从原始FAQ中创造事实(6)。应该注意结果的大小。因为训练使用了简短的回答,所以模型(5)返回了简短的回答。
由于ChatGPT-3.5至少需要10个例子,如果不是100个,因此第三轮将使用双倍的例子重新运行构建。将例子翻倍是典型的策略,通过与上一次翻倍相同的数量来提高质量。在这种情况下,10个例子太少,所以现在变成了20个。事后看来,这个实验应该从50个例子开始。我们使用了精确的简单系统指令。测试时需要再次复制和粘贴指令;当上传例子到沙盒时,这些指令会被忽略。包括这个训练集并重用相同的验证数据:
Alli is a factual chatbot that is also sarcastic.
GitHub: 包含30个例子的训练数据 (https://github.com/PacktPublishing/UX-for-Enterprise-ChatGPT-Solutions/blob/main/Chapter8-Style-TrainingData30.jsonl)
图8**.8显示了第三轮的结果。我们现在可以更仔细地检查指标。

图8.8 – 通过双倍训练例子改进模型(第三轮)
我们可以用验证数据解释更多概念,然后进行最后一轮训练。让我们回顾一下图表的含义:
-
红点代表一个epoch的结束,即一轮训练。由于最后一个例子有29个示例,一个epoch有29次测试。因为它决定需要三次运行,所以它进行了87次测试。红点代表该组平均验证损失。由于验证损失在减少,训练损失趋于零,我们正在取得进展。
-
我们仍然在过程中看到很多起伏。这个模型将预期结果与其生成的结果进行比较。一旦它通过合适的匹配得到改善,图表就会趋于零。当存在较大差异时,图表会显示跳跃。大的验证损失仍然需要解决。它仍然需要收敛到零。
-
与第一轮相比,这个模型看起来有点不稳定。我怀疑训练数据与验证数据过于相似,这导致了这个问题。这需要被审查和测试。真正的解决方案可能需要数十到数百轮的迭代。
不要从以下布尔分类器可视化中推广。来自简单布尔分类器(数据是真是假,正面或负面情绪等)的图表可能没有帮助。如果项目容易分类,图表将类似于图8**.9。Michael Cacic在https://miha.academy/提供了这个示例。从这个图表中只能学到很少的东西。这个模型运行良好。

图8.9 – 一个表现良好的分类任务的微调图
-
对于复杂的数据,如第三轮的结果,希望趋势会趋向于零,验证损失会减少。由于早期运行中缺乏收敛,添加更多样化的示例以继续下降趋势。提高验证示例的多样性(在本演示中没有完成)可能会有所帮助。
-
不要只依赖图表来分析复杂数据。审查结果并对它们进行质量评分。我们已经在第4章“评分故事”中讨论了这一点,并在第10章“监控和评估”中继续讨论了测量和监控。
-
记住,目标是提高模型的推理能力,而不是教授它知识。使用RAG进行记忆和范围。使用微调来磨练模型思考和响应的方式。
小心非企业数据入侵
在指令和提示中,指定使用RAG提供的数据。这可以防止从模型中提取可能使客户困惑的事实。尽管“Alli”是虚构的金融服务模型示例的简称,但在从附件模型中移除“仅提供附件文档中的答案”的指令后,发生了幻觉。在为书籍进行的一些额外研究中,该模型假设Alli是Ally,一家位于宾夕法尼亚州的银行。这个错误只有在通过监控日志在实地被发现时才会被发现。客户会对此类错误进行投诉,但如果你发现客户因为基础模型使用了某个随机地址而将大额支票邮寄到错误地址,那将是悲剧性的。每个模型供应商都在努力解决这个问题。它将变得更好,但仍然要留意这个问题。
微调非常适合把握风格和语气。是的,好的结果可以来自指令,但微调正是如此:它是微调的;它更细致、更具体。在提示中,一般目标,而本可以包含在提示中的示例可以移动到微调中。这些具体示例扩展了模型应该如何始终响应。这就是为什么讽刺的示例如此之好。它只训练了数十个示例,但现在它可以利用这些示例来塑造其个性。微调的另一个用途是操纵数据和转换信息。
结构化输出的微调
在那些表格、列表或其他格式对于结果至关重要的场合,向微调系统提供示例,以便它能在提供结构化输出方面获得优势。这对于处理表格数据的用户来说非常适用,例如在Wove用例中。对于任何结构化数据,即使是成本示例,这也很有帮助。在训练名称:值模式(例如,金额:$12.34)时,这也很有益。微调可用于集成,其中您将数据从一个系统移动到另一个系统,并指定下一步输入的格式。您可能需要XML、JSON、CSV、冒号分隔或其他格式,以确保您的下游系统可以接受输入。
生成微调示例的小贴士
ChatGPT可以用来生成示例以构建训练模型。它不仅能做示例,还能生成文件所需的格式化结构。因此,现在ChatGPT正在自我训练。输出可以审查和调整。
它还帮助我们的教程引入另一个概念。您可以指示一个LLM创建更多示例。我们称之为合成数据。这可以在Playground中尝试。注意上下文、语气和数据格式:
I will provide you with three examples of structured data that represent the back-and-forth between a factual chatbot that is also sarcastic and the user. Please generate seven more examples in a similar tone, focused on financial services questions. {"messages": [{"role": "system", "content": "Alli is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "How far is the Moon from Earth?"}, {"role": "assistant", "content": "Far. Like a quarter million miles. Or about how far you might drive in a lifetime."}]}
提供了更多示例;这里只是截断了一部分。模型返回了结果,下一个提示被提供给模型,以便更容易地复制和粘贴结果。提示如下:
merge these messages into one file-one line at a time
它返回了一个单独的文件,这使得复制变得容易得多,结果如下:
{"messages": [{"role": "system", "content": "Alli is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "How do I open a new account?"}, {"role": "assistant", "content": "Just fill out an application, provide your life history, and sacrifice a small goat. Kidding. No goats. But it is a lot of paperwork."}]}
{"messages": [{"role": "system", "content": "Alli is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What is the interest rate on savings accounts?"}, {"role": "assistant", "content": "Interest rates on savings accounts are currently so low that you'd probably get more return from finding coins under your couch cushions."}]}
值得称赞。ChatGPT可以帮助生成结构化输出,但不能生成关于我业务的实际信息。这节省了很多时间。我们可以使用这种方法来扩展测试用例。我们可以手动审查质量,节省90%或更多的努力。
这是一个微小的例子。将数据转换以在不同系统之间移动一直是一个持续的企业问题。这个后端过程有多种用途,包括以格式或以有助于客户解释的结构在用户界面中展示数据。这个领域的用例繁多。但只有在问题出现时才会变得明显。根据我的经验,这种情况并不常见。但一旦出现就至关重要。尽管ChatGPT可以生成数据,但它不能保证质量。
生成数据仍然需要检查和平衡
你可以使用各种方法来生成数据。这种合成数据可能与真实人类可能完成的数据相似。或者也可能不相似。这是一个人类在回路分析可以很有价值的地方。模型可以非常快速地生成示例。使用LLM只需要几分钟就能创建许多示例。即使有审查结果的时间,也比手动编写要容易得多。
你可以使用Google Sheets、Microsoft Excel以及支持生成的第三方微调工具来做这件事。有许多集成可以帮助这个过程。无论使用哪种工具,都要审查结果并决定是否将内容包含在训练或验证示例中。你可能直接接受它们,编辑它们以使它们更好,或者拒绝它们。根据解决方案的稳健性,考虑一个如第第4章“评分故事”中讨论的评分工作流程。评分工具可以帮助评估保留、拒绝和调整的内容。然后,根据你对结果的感觉制定行动计划来改进。我们在表8.3中看到了一些选项。
| 精细调整状态 | 计划 |
|---|---|
| 对结果 满意 | 不采取行动 |
| 效果良好,但 昂贵 或缓慢 | 将微调后的轻量级模型(GPT-3.5)连接到更昂贵模型(GPT-4)的所有完成项 |
| 结果不 一致 | 将微调后的轻量级模型(GPT-3.5)连接到更昂贵模型(GPT-4)的所有最佳完成项 |
| 结果接近我想要的结果,但 风格和语气 不合适 | 手动编辑示例以达到所需的质量,或者编辑提示以调整结果 |
| 我没有模型,或者无法 轻松创建 一个模型 | 使用手动生成的高质量示例微调模型 |
表8.3 – 调整未按计划进行时的行动方案
即使这个微调的部分也可能需要经历多个精心照料和喂养周期。你可能需要回过头来找到一个更轻的模型或者需要更多编辑的内容。迭代是生成式人工智能旅程的每一步的基础。
电子表格用户技巧
随着时间的推移,微调的格式已经发生了变化。每个模型都可以使用不同的格式。只需将数据适配到模型格式即可。您可以使用电子表格来维护源内容,然后使用电子表格中的工具构建字符串,将源内容与正确的格式结合起来,例如:
A1 单元格 = ' {"messages": [{"role": "system", "content": "Alli 是一个既客观又讽刺的聊天机器人。"}, {"role": "user", "****content": "'
B1 单元格 = 问题
C1 单元格 = '"}, {"role": "assistant", "****content": "'
D1 包含 合成字符串
E1 单元格 = ' "}]}'
因此,如果 F1 = A1 & B1 & C1 & D1 & E1,那么 导出 F1
Excel 和 Google Sheets 都有 ChatGPT(和其他 LLM)的集成来生成合成数据。与 ChatGPT 的电子表格集成有多种用途。它有助于这个过程,并可以提高个人生产力。
一个很好的技巧是每次添加示例时不必从头开始重建模型。在审查生成的结果并修复一些格式错误后,从另一个文件中又纳入了 49 个示例以添加到模型中。现在总共有 78 个示例和 20 个测试用例。
重新使用第 3 轮的模型。训练将更快。如图 8.10 所示,在“基础模型”菜单中选择先前的微调模型以创建修订的微调模型。您将继续之前的工作。只需上传第 4 轮数据中增量新行。

图 8.10 – 向现有的微调基础模型追加以继续微调
GitHub: 49 个训练示例 (https://github.com/PacktPublishing/UX-for-Enterprise-ChatGPT-Solutions/blob/main/Chapter8-Style-TrainingData49.jsonl)
我们现在可以查看训练结果,它显示了第 4 轮的图 8**.11结果。

图 8.11 – 与 ChatGPT-3.5 9 相比,ChatGPT-4o mini 的最终微调运行,包括合成数据(第 4 轮)
Chat GPT 3.5(在图片上方)通过添加更多示例进行了改进。至少建议了 50 到 100 个示例;这在这个范围内。取 78 个示例,将训练集翻倍,将测试集扩展到 20%,审查并清理重叠的概念,然后再次测试。看看下一轮是否能将验证损失更接近于零。查看结果,它更好但并不完美。验证损失的斜率正在下降,但不如在更真实的数据中下降得多。
包含了与相同数据相同的ChatGPT-4o mini的输出,以供比较。训练损失几乎为零。验证损失仍然很高,并且仅略有下降趋势(红色点)。由于OpenAI改变了垂直刻度(设计不佳!),请仔细比较结果。第二个图表的刻度是25%不同,因此数据比ChatGPT-3.5更好。没有更多的测试,很难判断这对我们训练的数据是否可接受。
如果结果不好,尝试其他技术。考虑以下一些专家动作:
- 您可以在过程中进行比较和测试。每个epoch都会生成一个检查点。这个文件比较一个检查点与另一个或甚至是不同的模型。ChatGPT保存了最后三个检查点。图8.12放大了检查点部分。它们列在微调作业中,然后可以选择、剪切和粘贴到聊天中,或者鼠标悬停在其上,通过链接直接跳转到游乐场。

图8.12 – 检查点可以直接在游乐场中打开
- 注意,最后一个检查点已被选中并复制到剪贴板。点击第一个检查点的游乐场链接,它将在游乐场中打开;可以选择比较模型,如图8.13所示。现在,您可以将最终检查点的模型路径粘贴到字段中作为快捷方式。

图8.13 – 模型名称甚至可以在比较中粘贴到模型选择字段中
-
现在,您可以比较两个模型的结果。演示不会揭示任何令人兴奋的结果,但这种方法对于与大数据集的比较很有帮助。
-
将默认的Epochs从2增加到3或4以获得严格的分类器。然而,只有在它有足够的例子之后才考虑这一点。
-
如果模型太宽松,增加epochs进行额外训练。
-
在最后一轮中,训练损失增加了。当在Chat GPT-4o mini中重新运行此模型时,损失要好得多(更接近零)。查看更多和更好的数据,以保持此模型并减少训练损失。如前所述,数据非常相似,存在过拟合的风险。使用同义词,引入更多变化,并在陈述中插入或删除单词以扩大例子种类和数量。数据科学家有更多方法可供选择。这些方法对于本书来说太高级了。但实习生知道答案。问ChatGPT。
How should I reduce training loss when building a fine-tuned LLM?
添加例子和扩展测试用例将提高结果。继续探索,增长测试用例,提高例子质量,玩转参数,并学习。在我旅程中,除了ChatGPT本身之外,最好的资源是一个来自Mihael Cacic的四个小时的培训大师班。这是最有价值的资源之一,并且推荐(我没有为此获得报酬;我只是个学生)。它非常适合产品人员。这是入门课程的正确水平。去看看。
训练:Miha的训练网站 (https://miha.academy/)
Entry Point,他的公司,也有支持加速训练过程和跨多个LLM进行微调作业实验的工具。你可以使用Entry Point,连接到OpenAI和其他LLM供应商,并且永远不需要处理微调的JSON格式。请记住:工具有助于降低模型管理的复杂性。每天都有新的工具出现。
查看Vijay的文章,了解更多关于微调和不同类型损失的信息。它讨论了指标,是一个很好的资源,只需几分钟就能阅读。
文章:训练损失与验证损失 by Vijay M (https://medium.com/@penpencil.blr/what-is-the-difference-between-training-loss-validation-loss-and-evaluation-loss-c169ddeccd59)
在完成微调模型的全过程后,除了对话风格和语气之外,还有其他领域可以探索。在企业中,连接到不同的数据源以收集信息和推送结果也是存在的。你需要函数调用。
功能和工具调用的微调
在从现有系统传递数据时,通常需要遵循其他系统的格式,因为这些遗留系统可能对你来说会保持不变。最新的模型在匹配tool_choice方面变得越来越好,并且默认设置为auto。你可以通过将其设置为required,指定一个特定的命名函数,或者告诉它none来禁用它。
在产品方面,我们这里几乎没有可以做的。这是为了完整性而包含的。当然,这些交互应该被监控以确保正确调用功能。这需要额外的训练数据来区分相似的功能,确保在存在相似字段集合(例如,总价、折扣价、明细价格、税费和其他美元价值)时数据映射到正确的字段,并验证模型提取的数据是否正确(不多也不少,恰到好处)。
产品人员应该注意一个巧妙的小技巧:并行函数调用。这允许并行发送多个查询,无需额外模型成本即可显著减少响应时间。没有所谓的慢速但好的用户界面。如今的人们都很不耐烦。
一个需要注意的问题。OpenAI建议SQL生成“并不完全可靠”。因此,请谨慎使用,并进行广泛的测试和监控。我还没有成功从文本输入构建AI SQL生成器,但这一点会随着时间的推移而改进。
文档:使用聊天模型调用函数 (https://cookbook.openai.com/examples/how_to_call_functions_with_chat_models)
在所有使用微调的方法中,有很多技巧可以帮助这个过程。我们涵盖了一些关键事项。
微调技巧
你必须关心并喂养微调集以改善训练质量(基于指标或某些测试案例的经验)。以下是OpenAI对微调的建议总结:
-
审查现有示例以发现问题:你可能已经将风格、逻辑或语法问题引入数据集,包括包含错误示例。将材料与模型在添加数据前后的表现进行对比。可以使用epoch检查点作为工具。
-
收集更多示例来填补空白:额外的训练示例可能表明模型如何解决其能力上的空白。总是很难说多少是过多的。
-
包含包含错误的示例:有时,从大师那里学习是最好的。让我们询问ChatGPT关于在微调示例中包含错误的问题:
Should fine-tuning examples include intentional errors that might be expected from real customers? Yes, it's beneficial to include intentional errors in fine-tuning examples. This approach enhances the model's robustness, making it better equipped to handle the kinds of mistakes real customers might make, such as typos or grammatical errors. By training on these, the model can learn to respond accurately even when inputs aren't perfect. It prepares the model for real-world interactions, improving its ability to correct, clarify, or ignore errors as needed, ultimately leading to a better user experience. -
寻找数据不平衡和更多样化的需求:数据集是否提供了各种示例?避免使用一种答案来偏置数据。重述相同的问题并没有帮助。考虑费用示例。不仅仅是数据格式,还有风格、惯用语、数据不足、数据过多,甚至无关数据。即使是四轮测试中的78个讽刺性示例也略显单一。这是团队必须注意的事情。
不平衡示例
我曾经遇到过一个让我困惑了一段时间的案例。我们有两个主要任务是由一个对话助手完成的。它负责费用和时间报告。然而,这两个任务都需要同一个助手来完成。训练数据偏向于费用助手的四舍五入数字,而时间报告模型需要正确的数字。虽然客户可能会说“15分钟”、“30分钟”或“1小时45分钟”作为时间记录,但大多数费用并不是“$15”、“$30”或“$45”,因此,在费用中过度强调这些四舍五入的数字,推动了典型时间单位对费用模型的理解。这种偏差可以通过为费用模型使用更好的数据并确保时间模型有正确的示例平衡来改善。
-
使训练示例与预期相匹配:如果预期大多数人会提供所需的信息来提问、填写表格或前进,那么训练示例应该反映这些示例。
-
验证来自多个来源的示例一致性:即使人类在标记数据时也可能会对特定值有不同的看法。如果一个人将公司名称标记为“The Business Center”,而另一个人标记为“Business Center”,那么模型可能也会出现类似的问题。
-
训练示例应采用相同的格式。
-
根据之前的改进来判断改进。
-
边缘情况问题需要工作才能包括:作为一个经验法则,预期质量翻倍时会有类似的改进。但是,找到边缘情况比找到快乐路径要困难得多。花时间表达这些边缘情况。这将使微调后的模型更加稳健。边缘情况可能涉及多个属性:问题的长度、一个问题中使用多种语言、多部分复杂问题、大量闲聊与实际问题的少量部分、使用格式不佳或格式不符合预期的数据(军事时间、带有额外数字的货币)、用文字表示数字,或者仅仅是错误的信息。通过比较完全微调的模型和仅使用一半训练数据的模型之间的测试结果来判断这一点。用这个来判断未来的逐步改进。
-
指定和调整超参数:从OpenAI设定的默认值开始。如果模型不遵循训练数据,可以增加一两个epoch。注意接下来Wove案例研究中它们是五。这在分类、实体提取或结构化解析任务中更为典型。所有这些都有已知答案。对于更广泛的模型任务,减少1或2个epoch以查看是否提高了多样性。
-
如果模型没有收敛,增加学习率(LR)乘数。Wove案例研究的图表在下一节中。图8**.5显示了这个问题,Wove的例子也将在稍后介绍。一次只做小的改变。以下是一些背景信息:
文章:学习率 (https://www.chatgptguide.ai/2024/02/25/what-is-learning-rate/)
-
一个问题是过拟合。Entry Point的Mihael在图8**.14中提供了例子。14,其中验证损失持续增长,而训练损失是可以接受的。这是一个经典的过拟合例子。

图8.14 – 使用验证损失增加显示过拟合的例子
类比是通过对练习测试中的确切问题和答案进行记忆来为考试做准备。然后,在实际考试中,没有足够相似的问题让考生正确回答。与学习材料过于接近,无法转化为正确回答。
-
使用第二个模型验证微调模型:一种方法是用第二个模型测试第一个模型以确认结果。第二个模型可能是相同的或完全不同的微调或现成的LLM。设定一个质量阈值;如果AI答案失败,它可能会将请求路由到人工客户服务代表。这需要一些经验才能弄清楚。
-
如果在这项工作之后,助手的风格或语气需要改变,所有示例不一定都需要改变。考虑调整提示以覆盖示例。如果只是微调,微调就不会浪费;它仍然有助于提供体验。
这是一个广泛的研究、测试和学习领域。这只是一个开始,以确保你可以在团队层面应用这些技能。我们希望你能容易地理解讨论对用户体验质量的影响有多大。这里还有一个资源作为之前OpenAI微调文档的补充:
文章:ChatGPT微调文档 (https://platform.openai.com/docs/guides/fine-tuning/fine-tuning-integrations)
我们想检验关于提示工程和微调的所有学习内容如何适用于Wove的使用案例。
Wove案例研究,继续
在第6章,“数据收集——内容为王”,Wove关于货运代理人使用的费率表数据清理案例研究开始了。他们必须在摄取之前清理数据,以输出来自许多承运人的所有费率的干净、统一视图。现在,是时候探索他们为这个解决方案的提示工程(我们在第7章,“提示工程”)和微调努力了。
提示工程
他们希望大型语言模型(LLM)能像手动执行这一步骤的客户一样思考。他们在摄取过程中为电子表格创建了提示(这个早期版本与我们分享,以保持他们最新努力的专有性质):
You are an expert at table understanding. You will be given a snippet of text and a row number for the header row. Your task is to determine where the data for the table starts and what range of rows make up the header for the table. If the header has ambiguous columns (such as many of the same columns), there may be a row around the header row that can provide additional context. Include these in your range for the header if so. Your response should be in YAML format like this: (example truncated)
让我们回顾一下这个提示的几个亮点:
-
它为采用角色设定了舞台。
-
它为理解表格提供了上下文。
-
它解释了输入(文本片段和更多细节)
-
它有助于一些例外情况(模糊的列)
-
它定义了响应格式(另一种标记语言 (YAML))
非常棒,遵循了指导!说实话,他们已经遵循了同样的建议。他们使用了大量微调的模型,所以示例不会出现在他们的提示中。一个小问题:情感提示的想法在哪里?他们应该探索这是否能帮助他们提高质量。我们可以和他们谈谈这个话题!
Wove的微调
如上一章所述,Wove有一系列模型来执行清理电子表格数据的特定任务。微调过程将通用模型调整为提高对Wove客户至关重要的费率表格的理解。这类似于教一个五年级学生一门新学科。五年级学生知道基本语言并能回答简单问题——他们甚至可能对船只和火车感兴趣,并理解货物移动的概念,但没有任何五年级学生见过费率表。
我们知道模型只能提供这么多。ChatGPT 建议在微调之前先进行提示工程。在对话中,Kevin Mullet 提出了一个很好的记住这个方法的方式:“首先,弄清楚要说什么,然后弄清楚如何表达。”我们已经展示了这如何有所帮助,但需要额外的努力。
这里有一些 Wove 做的检查,以验证数据是否被正确处理。这包括数据质量、提示质量和微调:
-
他们手动审查数据的解释,以寻找幻觉。
-
他们寻找验证和训练损失收敛到零的情况。他们使用 OpenAI Evals 运行额外的评估数据集,以确保模型通过既定的测试。OpenAI 提供了一系列模板,用于使用标准度量评估模型。evals 允许判断不同模型版本和提示对使用的影响。以下是一个很好的介绍:
文章:开始使用 OpenAI Evals (https://cookbook.openai.com/examples/evaluation/getting_started_with_openai_evals)
-
他们在一个链中使用了多个步骤和不同的模型,以专注于做好一件事。他们定期回顾模型,采用更新且更便宜的模型。
-
在其中一个模型中,他们进行位置映射并使用了超过 600 个训练示例。10% 是用于验证数据,但对于某些模型,如果生成数据成本较高,他们会将其提高到 20%。
-
他们的训练图在 图 8**.15 中看起来不错。训练损失正在收敛到零。他们有一个工作良好的验证测试集,并使用看起来像是默认参数。

图 8.15 – 训练模型收敛的一个示例
- 初始时,他们遇到了学习率问题。在机器学习和统计学中,学习率是优化算法中的一个调整参数,它决定了在向最小损失函数移动时的迭代步长。
即使再次训练,也永远无法达到最佳点。有时,会出现收敛不良或过拟合,如前所述。图 8**.16 展示了一个早期运行,显示了缺乏收敛。

图 8.16 – 一个早期 Wove 训练模型未收敛的示例
如果有波动且线条没有完全收敛,则使用较低的学习率重新训练。如果初始权重过高,收敛将会慢得多。为了将模型置于正确的视角,讽刺聊天机器人实验的四轮运行中,每轮的训练标记少于 5000。上面的 Wove 模型为这个解决方案的这一部分使用了超过 500,000 个训练标记。更大并不保证收敛。
我们在 Wove 的朋友们为那些正在处理电子表格的人提供了一些额外的建议:
-
他们使用昂贵的模型来微调更便宜的模型。例如,Anthropic的Opus 3 Claude(在撰写本文时)比OpenAI 3.5贵30到50倍。Opus 3是15美元/1M输入和75美元/1M输出令牌,而ChatGPT 3.5 turbo-0125是0.50美元/1M输入和1.50美元/1M输出令牌。这对于产品团队来说是一个关键点。你希望物有所值,尤其是当与那些如果模型提供优质服务就会更频繁使用该模型的客户打交道时。他们发现,与早期的3.5模型相比,微调ChatGPT 4.0的质量显著更好。现在正在整合Chat GPT-4o mini。
-
他们开始使用更高的学习率,当他们取得重大进展时可以降低学习率。数据量影响学习率步骤(例如,0.5、0.1和0.01)。这可以根据数据集的大小和其他因素进行调整。目标是精细调整,以便训练损失以有序的方式减少,而不是剧烈波动或发散。
-
在上下文窗口周围工作,他们从4K上下文窗口开始,扩展到支持16K。他们可以预处理数据并使用其他工具处理更小的数据块。即使在16K,这对于处理大型电子表格来说也相对较小。
-
确保数据准确:良好的输入数据更有可能带来成功。如果训练数据未正确标记或存在缺失数据,数据团队将遇到问题。这个真实例子是关于早期Wove的表格末端检测版本。你可以从图表中看到,与早期示例相比,图表四处跳动。你看不到收敛。
我们可以看看一个关于幻觉的例子以及他们在流程中如何纠正它。在这个部分,他们取了电子表格的文本版本(左侧列)并要求ChatGPT定义(理解)行的上下文(中间列)。这是步骤1。然后,他们编辑了这个输出,通过最终输出(右侧列)完成这个过程,如表8.4所示。
| 输入文件 | ChatGPT的中间输出 | ChatGPT的最终标准化文件 |
|---|---|---|
| “费率表”表格上的表格来自VN到US UPDATE文件。该表格包含以下列:- id: 0name: POL示例:- DA NANG, VIETNAM- HO CHI MINH CITY, VIETNAM- HAIPHONG, VIETNAM- VUNG TAU, VIETNAM | 目的:此表格提供从越南各个港口到美国目的地的海运费率和详细信息,承运人和服务,适用于特定日期范围。列:- id: 0name: POLdescription: 越南的装货港,例如DE NANG、HAIPHONG、QUI NHON或VUNG TAU。示例:- DA NANG, VIETNAM- HAIPHONG, VIETNAM- VUNG TAU, VIETNAM | carrier: 7service_line: 4origin: 0origin_country: Vietnamorigin_via: nullorigin_via_country: nulldestination: 1destination_country: United Statesdestination_via: 2destination_via_county: United Statesloading_port: nullloading_port_country: nullunloading_port: null |
| 输入文件 | ChatGPT的中间输出 | ChatGPT的最终规范化文件 |
| - id: 2name: 目的地 (通过港口)examples:- OAKLAND, CA- NORFOLK, VA- LOS ANGELES, CA- SAVANNAH, GAVANCOUVER, CANADA- None- TACOMA, WA- BALTIMORE, MD- CHARLESTON, SC- NEW YORK, NY | - id: 1name: 目的地description: 美国城市和州,例如 LONG BEACH, CA, SEATTLE, WA, 或 CLEVELAND, OHexamples:- ATLANTA, GA- PITTSBURGH, PA- CHARLOTTE, NC- CLEVELAND, OH- id: 2name: 目的地 (通过港口)description: 货物在到达最终目的地前将前往的美国港口,例如 NORFOLK, VA, SEATTLE,WA 或 LOS ANGELES, CA。如果直接运往目的地,也可以是“None”。examples:- NORFOLK, VA- SAVANNAH, GA | unloading_port_country: nulleffective_date: 8expiry_date: 9container_dry_or_reefer: nullcommodity: nullrates:- id: 10currency: nulltype: totalcontainer_size: “20ft”- id: 11currency: nulltype: totalcontainer_size: “40ft”- id: 12currency: nulltype: totalcontainer_size: “40ft_hc” |
表8.4 – 纺织文件改进步骤(部分数据已截断)
表格显示了中间列中生成的目的地描述,即“via port”的dest:“货物将前往美国的港口……”。然而,数据包括加拿大温哥华。尽管目的地始终是美国,但经过的港口可能在美国之外。
为了改进模型,这个幻觉需要被纠正。可以决定正确的答案是将其编辑为“北美”,或者更好的是,完全删除“在美国”,使描述更加通用。这意味着下一步的输出文件也需要纠正。destination_via_country字段将从美国更改为null。这个右边的文件是ChatGPT的第二轮生成,创建了一个使所有电子表格数据保持一致、规范化的统一模型。捕捉这些错误至关重要。使用这个最终的输出文件,他们重新运行测试数据以查看质量是否有所提高。
总体而言,这个微调过程需要对提示进行多次迭代,编辑标签,并对其测试数据进行评估。我们无法透露Wove的所有秘密配方,但希望这能给你一个感觉。模型师的工作永远不会完成。尽管持续的努力可能会减少,但工作不会停止。可能会发生格式变化,包括新的供应商、规范化、更好的、更便宜、更快的模型,以及大家最喜欢的,错误需要重做。关键是参与并投资这些步骤以确保质量。读者可以想象一旦所有这些数据都规范化并可用,Wove的下一步是什么。客户将希望根据运输特性询问最佳路线。他们不希望翻阅即使是规范化的费率表。
这是一个令人兴奋的用例,因为它最初是一个后端解决方案,仍然需要产品理解和反馈才能成功,并且当(不可避免地)面向客户的聊天体验与客户交谈以帮助提高购物率时,很可能会导致更多的用户体验(UX)工作。那里需要产品和UX的努力。
Wove使用一系列模型来理解表格的复杂性。选择和链式连接合适的模型是提示工程和微调过程的一部分。
摘要
微调是本书中最技术性的部分。通过对这个世界的这一小瞥,有许多内容需要涵盖。你的数据科学家和工程师将深入探索。在构建生产就绪的系统时,将微调和通用模型与内部软件和第三方工具混合匹配,以平衡交付速度、价格和性能(回想一下那句俗语,便宜、快或好,只能选择两个)。创新解决方案的工作流程步骤允许解决方案在AI表现不佳时退出,使用一个函数来解决或处理特定问题,或使用更确定性的元素来提供稳健的解决方案。为用例的正确部分注入合适的模型和提示是其中最重要的决策之一。在开始微调方法之前,先完成这项工作。
通过运用用例专业知识、编辑和改进提示、创建、验证和编辑微调示例,以及监控变化是否将解决方案推向正确的方向,来帮助定义和改进这些任务流程,从而为这个过程做出贡献。勇敢前行,进行微调!
第9章,指南和启发式方法,将涵盖基于设计社区中记录良好的技术来支持提示和微调努力的指南和启发式方法,以帮助解释对话式人工智能的可用性。
参考文献
![]() |
本章中的链接、书籍推荐和GitHub文件已发布在参考页面上。网页:第8章参考文献 (https://uxdforai.com/references#C8) |
|---|
第三部分:护理与喂养
在你旅程的最后阶段,我们将探讨理解和评估LLM表现所需的工具和资源,以及如果它未达到预期时如何查找并修复它。你将首先学习如何应用现有的指南和启发式方法,这些方法可以以你未曾预料的方式用于构建LLM解决方案。我们甚至将赋予你将网络和传统设计思维适应对话式AI的技能。然后,你将深入了解如何根据行业AI和用户体验指标监控和评估解决方案,涵盖护理和喂养过程中的客观和主观性能指标。LLM解决方案的生命周期需要良好的业务流程才能成功。在最具影响力的企业中可以工作的最佳实践被分享,以帮助创建创建世界级LLM解决方案的有效方法。
本部分包括以下章节:
第九章:指南与启发式方法
本章解释了什么构成了优秀的对话风格。其中一些内容可能看起来很明显,但在应用这些概念时,探索和理解为什么某些东西有效或无效是有价值的。
应用于新情况。ChatGPT的独特之处在于它不一定会以相同的方式再次回答相同的问题,这就是为什么第7章,提示工程,是至关重要的。本章将涵盖评估和改进您正在设计的体验的指南和启发式方法。我们并不挑剔我们如何称呼这些,但我们可以使用更好的定义。“指南”是特定的,通常基于用户研究。“标准”更为具体,而“最佳实践”是基于某些条件的建议。像苹果的人类界面指南(HIG)或谷歌的材料设计这样的供应商被广泛复制,并包括所有这些协议。组织或政府可以按照需要强制实施指南和标准。“启发式方法”是经验法则或策略,用于将问题分解为需要关注的元素。
Guideline (Smith and Mosier, 1986): Design text editing logic so that any user action is immediately reversible.
Standard: A text header should be Bold Calibri 11-point typeface.
Best Practice (Apple Human Interface Guidelines): Use a chart to highlight important information about a dataset.
Material Design (Google): Consider making pointer targets at least 44 x 44 dp.
Heuristic: Titles should be readable and aesthetically pleasing.
重点是,有一些事情应该遵循(指南、标准、最佳实践和设计建议),有一些策略(启发式方法)可以帮助确定该做什么。一些适用于包含对话式人工智能的GUI,而另一些则适用于对话式文本。所有这些内容都在本章中涵盖:
-
将指南应用于设计
-
将启发式分析应用于对话式用户界面
-
构建对话指南
-
案例研究
所有这些都是在做之前要知道该做什么。如果我们知道什么有效,我们可以利用这些知识进行下一次交互。设计指南已经发展,但正如我们将看到的,一些已经存在了几十年,不仅仍然适用,而且可能比以前更加适用。
将指南应用于设计
本书遵循对话式人工智能设计生命周期的顺序。为什么指南和启发式方法会在“构建”体验和提示工程之后?这是一个“先有鸡还是先有蛋”的问题。许多团队第一次创建生成式人工智能体验。应用指南和启发式方法需要有一定的对之前构建内容的理解。在如图形用户界面(GUI)这样的视觉体验中,以往的项目经验有助于确定哪些指南和启发式方法将转化为新的设计。但在对话式人工智能中并非如此。这些建议旨在帮助您开始,并在您的旅程展开时提供支持。
软件测试可以被设计来评估是否满足某个指南。使用启发式方法进行测试更具挑战性。用于评估的启发式方法比软件测试用例的精确性质更广泛。以使用标准字体为标题中的粗体卡利布里为例,每个标题都需要一个单独的测试来评估这种条件下的用户体验。这是一个权衡。需要更多的专业知识来了解和内化启发式方法,与指南也是如此。另一个区别是,启发式方法能够经受时间的考验。它们足够通用,能够随着经验的演变而适应。因为它们是通用的,所以在代码中很难定义。如何衡量启发式标题“应该易于阅读”呢?因为指南更具体,可能只适用于特定的用户界面或用例。然而,它们仍然很有价值。此外,理解指南背后的科学原理可以帮助你更有效地将其应用于新的体验。
我曾经使用过的第一套指南是由史密斯和莫西尔(1986年)编写的。该文档包含了944条关于软件界面的指南。不要因为它们可能比你更老就放弃它们。它们基于对人类行为和能力的研究。人类行为并没有因为它们的使用新环境而变得无效,例如高分辨率显示器、语音界面和手持设备。其中有很多普遍真理。许多这些原始指南与基于文本的体验相关联,而且正如出人意料的那样,我们回到了基于文本的解决方案,比如聊天、对话和推荐体验。
文章:史密斯和莫西尔设计用户界面软件的指南 (https://hcibib.org/sam/)
然而,正如我提到的,这些指南是针对用户界面(UIs)的,启发式方法可能更适合评估对话体验。这些启发式方法的演变基于这些研究人员以及之前研究人员的坚实科学努力。在深入之前,这里还有一个例子。布鲁斯·托纳齐尼是一位著名的苹果设计师,也是尼尔森·诺曼集团的早期合作伙伴。多年来,他一直是行业尊重和欣赏的人。我邀请他成为弗吉尼亚州布莱克斯堡的一个会议的主讲嘉宾。当他要求酒店提供灭火器时,你知道他的演讲会有些疯狂。这让酒店管理层感到恐慌。有一点令人震惊也适用于指南。有些看起来可能有些疯狂,但通过深入了解它们的起源和科学基础,它们可以更有效地应用。然后,当它们应用于企业用例时,它们就不会显得疯狂,他想要灭火器的理由也是如此,一旦你理解了它的目的。以下是他的原则列表;看看它们如何轻松地应用于ChatGPT前沿。
文章:交互设计的第一原理 (https://asktog.com/atc/principles-of-interaction-design/)
将启发式分析应用于对话式用户界面
一套好的启发式方法可以找到广泛的可能问题。启发式评估可以从正式到非正式。更正式的方法是召集三到五名可用性专家作为评估者。一旦提供了背景和任务及用户的背景信息,他们可以独立地根据对启发式方法的理解评估体验。通过记录问题、评估其重要性并汇总每位评审员的结果,团队可以优先处理需要解决的问题。这种方法可以用来查看UI问题,而且其中很多也可以用来理解对话交互。
这些问题不会出现在提供评分的调查中,例如下一章中提到的净推荐值(NPS)或软件可用性评分(SUS)。NPS或SUS可以在客户接触产品后应用;对工作原型的启发式评估有一些优点:
-
它可以在设计过程的早期完成
-
它价格低廉
-
用户体验专业人士可以做到,其他人也可以参与其中
-
它们在传统的GUI评估中经过了实战检验
-
在这里,它们被调整为考虑对话体验
-
带有独特的聊天和推荐用户界面
-
对于在聊天中使用GUI组件的混合用户界面
-
对于句子,当在模板中明确定义、具有确定性流程或通过提示抽象控制时
-
作为提示的一部分,指导LLM重视启发式方法
-
也有一些问题需要解决:
-
它可能会根据评估者(这就是为什么只有少数评估者参与)产生偏见
-
这取决于评估者在评估和功能方面是否具有足够的专业知识来检测问题(评估者可以被培训,给予练习和探索的时间,并提供了样本用例,但所有这些都可能对审查产生偏见)
-
最好由三到五个评估者来完成,这可能很难找到
-
它可能会返回不重要的问题
为了平衡好与坏,以下是一些建议:
-
在评估之前审查启发式工具,并在一个单独的示例产品上指导人们,以加强方法和启发式原则
-
向评估者提供启发式原则的打印件
-
提醒评估者戴上客户的帽子
-
评估后,使用前面章节中讨论的评分工具来优先考虑和关注最有价值的发现
-
快速迭代,以便未来的评估可以揭示新的项目,不会被更大的、压倒性的问题所掩盖
-
在日常设计工作中使用启发式原则是合理的,以引导你找到在客户看到结果之前就已经很好的解决方案
我们需要一套启发式原则,以最小的成本提供最大的价值。一套已经浮现在脑海中。
我总是从雅各布·尼尔森的十个启发式原则开始和结束。它们足够广泛,可以应用于各种情况,已经经过修订,并且使用了超过30年,这给了它们一些街头信誉。它们涵盖了用户体验中发现的广泛问题。通常,但不仅限于GUI,它们需要放在对话式AI的背景下考虑。我引用的文章涵盖了启发式的基础知识,还有数百篇文章。有时,这些指南会非常准确——对于包括UI组件和对话的混合体验。UI启发式原则有很好的文档记录。需要展示的附加值是如何将这些应用到我们的对话体验中。这可以被称为对观看电视体育比赛的彩色评论。动作(启发式原则)被采取,并通过讨论来解释它,以便外行人可以理解它们在对话式UI中的应用。
文章:启发式评估简介(HE) (https://www.interaction-design.org/literature/topics/heuristic-evaluation)
文章:如何进行启发式评估 (https://www.nngroup.com/articles/how-to-conduct-a-heuristic-evaluation/)
将使用支持对话流程和推荐UI的广泛示例。这一章不会对后端体验有益,因为启发式原则是关于评估用户体验的。
期望一个对话式人工智能返回精确的消息可能是一个挑战。这取决于输出由什么控制。如果ChatGPT控制输出,我们就必须依赖提示工程和微调来使其接近。假设一个传统的确定性聊天体验提供前端。在这种情况下,你可以精确指定所需的响应或从一系列响应中选择。你可以使用ChatGPT来理解实体,提出问题以填补空白,或执行其他语言任务以支持更高的目的。推荐用户界面有时使用文本模板。ChatGPT可以收集输入,填写值,转码细节,并提供翻译。记住这些,因为启发式方法可以以不同的方式应用于每个使用情境。
如果你想在ChatGPT聊天中直接看到以下任何示例,很难使其持续发生。这回到了指令。可以使用启发式中的定义来制定响应的指令。这将是一个伟大的研究项目。我们将使用一个新员工入职流程示例提示,结合关键启发式来引导讨论。启发式的影响以粗体突出。
Instructions for the new hire onboarding skill
I have provided a document that outlines our company's onboarding process. I need you to create a set of detailed instructions from this document. As the user performs each step, reach out to the appropriate service to verify completion and provide the status of each step. Follow these guidelines:
1\. Format the instructions as a numbered list.
2\. Each step should be clear and concise, with no more than two sentences per step.
3\. Use formal language suitable for interacting with a new professional.
4\. Focus on key actions new employees must take and omit any unnecessary background information.
5\. The instructions should be easy to follow for someone new to the company.
6\. Do not ask the new employee to remember information. Provide details at each step and confirm any understanding of those steps as you proceed through the process.
7\. If there are errors, report them in clear, simple terms and explain how to fix them. If a step doesn't block progress, keep track of it so the user can complete it in any order.
8\. Keep it short and simple for questions that have well-known answers, like Age or Height. For less well-known questions, provide an example or details about what is needed.
For example:
1.**Sign into the company portal**: Use your assigned credentials from the welcome email to access the portal.
2\. **Complete the onboarding form**: Fill out all required fields, including your personal and emergency contact information. Let me know if any fields need clarification.
每个启发式将讨论在提供给LLM的指令中发现的启发式影响。以下是一些启发式。每个都将被定义和解释,以及它们如何应用的分析。
-
系统状态的可见性
-
系统与 现实世界之间的匹配
-
用户控制 与自由
-
一致性 与标准
-
错误预防
-
识别而非回忆
-
使用的 灵活性与效率
-
美学与 极简主义设计
-
帮助用户识别、诊断和从错误中恢复
-
帮助 与文档
每个启发式都遵循相同的模式。启发式的名称、确切定义、将其应用于对话式人工智能的分析,以及对新员工入职示例的分析的呼吁。
1 – 系统状态的可见性
设计应始终通过在合理的时间内提供适当的反馈来让用户了解正在发生的事情。
分析
在聊天体验中,通常通过文本响应来让用户了解情况。在流程中,一些信息会重复以提供上下文,当需要下一步操作时。用户期望在几秒钟内看到这些信息。等待10秒钟来收集后端数据会显得很奇怪。如果提供及时信息是一个问题,请提供反馈。有时,提供估计可能很困难。如果用户期望延迟,他们可能会对此感到更好。从这些例子中学习:
I am gathering the results. I will get back to you in about 20 seconds.
I am gathering data from 35 systems for you. Some are slow. Give me about 15 more seconds.
The engine rebuild you requested will not be finished for 3 more hours. Can I email or text you when it is ready?
以这种可怕的用户体验开始这一部分,让用户永远等待,真是太疯狂了。我们将探讨一些更典型的系统状态示例。
这是一个适当的反馈级别,确认地址步骤已完成,并为用户提供了足够的信息,以便他们将来选择送货日期:
I have your shipping address. We can deliver as soon as Friday. When would you like the delivery?
提供的反馈应该有限。如果地址已确认,不要在订单中重复它以及所有其他信息。等到有总结或用户请求地址时再提供。这是适当的反馈。以下是如何向LLM(大型语言模型)提供指令的示例。回想一下第7章 – 指令工程:指令是包裹客户对话的提示,以便客户提示有一些指导。如果意识到上下文是一个整体的提示,而不是用户输入的内容(也称为用户提示),那么将这些称为指令或提示是可以的。
Instruction Tip:
Use a summary if you have already confirmed information and must let the user know you still have it.
For example:
If you confirmed the user's shipping address on the last step, refer to it as "your shipping address." Don't repeat the entire address unless requested.
如果日历上充满了不可用的送货日期,这将是一个挑战。用户将陷入无意识的挑选日期的游戏。例如,在纯语音解决方案中,可以围绕用户提供的日期提供三个送货或开放时间的建议。图形用户界面可以显示一个月的概览视图,显示可用的送货日期。它会显示下一个可用的日期,并提供编辑该日期的选项。这样,用户就能理解系统能做什么:
I have your shipping address. Our first available delivery is on Friday, August 9th. We can also look for later dates.
如果用户体验只是推荐而不是交互式的,根据推荐明确信息仍然很好。如果他们在屏幕上更改了某些内容,推荐会更新吗?例如,如果推荐是本周给客户发电子邮件,它知道我今天已经给他们发过邮件了吗?即使这项信息与推荐没有直接关系,也应该有一个可点击的提示,比如一个信息按钮,来解释推荐的内容,在这个例子中,是否考虑了最后发送的电子邮件。以下是信息按钮可能包含的内容:
This recommendation is based on a few factors:
• Email was sent on Tuesday.
• The customer visited a few weeks ago.
• The analysis of this customer's
willingness to buy compared to other customers.
提供时间信息(例如,最后更新三分钟前,或此推荐基于昨天更新的详细信息)可以帮助评估推荐的关联性。
关于系统状态还有最后一个想法,这也适用于后端服务或推荐。如果不可用的资源影响了数据,让人们知道。不要只是超时连接。集成应该支持并传达系统关闭的边缘情况。它应该反映服务的风格和语气,而不是一个神秘的错误信息:
Oops! We can't access the recommendation system. It appears offline. If this persists, please report it to it@company.com.
这封电子邮件链接应该用技术信息填充主题和正文。为了达到下一个层次,在适当的条件下,这样做:
Oops! We can't access the recommendation system. It appears offline. The IT department was notified, and a trouble ticket was filed.
根据受众,它可能链接到工单或抄送给客户。这条信息可以重复并保持一致。请勿将其留给LLM生成响应。这种情况应该非常罕见,以至于多样性无关紧要,我们希望对错误的开发非常具体。如果暴露过多细节会使用户困惑,请坚持使用通用信息。
这是第一个说明这个启发对新员工入职指导影响的突出显示。我们不会每次都介绍突出显示;它们将始终是每个启发中的最后。
新员工入职分析,系统状态可见性
启发式影响因素:关注关键动作,在每个步骤提供细节,如果有错误
有几个地方应该传达状态以指导用户。确认进度被跟踪,报告错误也将有助于新工作的压力时期。
2 – 系统与真实世界的匹配
设计应该使用户的语言。使用用户熟悉的话语、短语和概念,而不是内部术语。遵循现实世界的惯例,使信息以自然和 逻辑的顺序 出现。
分析
在对话式的交流中,风格和语调有很大的作用。在企业软件中会更复杂。如果用户提到排序系统,不要用* 订单录入和跟踪系统 *来回复。他们可能没有意识到这是同一个系统。积极反映客户语言和惯例,但要以与组织一致的风格来做。回想一下我们的冲浪店例子。为了确认订单,使用以下方式:
Hang Ten! Your new board is hitting the waves via UPS. We will drop the tracking code by sunrise. Mahalo.
提示工程和微调使金融服务公司的回应更加简洁。回应将使用更正式的商业语言:
Your new business checks for your Alligiance money market account will ship tomorrow via USPS.
这也是一个很好的启发,用于欣赏如何显示信息。考虑内容的格式,或者对于列表,提供信息的顺序。表9.1分享了显示信息的顺序和格式选项。使用提示来设置顺序 和格式。
| 顺序(****用于列表) | 格式(用于 复杂内容) |
|---|
|
-
按字母顺序排列
-
按时间顺序排列
-
分类
-
从高到低
-
位置或距离
-
逻辑
-
从最贵到最便宜
-
数字
-
流行度
-
优先级
-
随机
-
尺寸或尺寸
|
-
项目符号列表
-
日历
-
卡片/瓷砖(如名片)
-
图表或图形
-
文件格式(PDF、XLS或Doc)
-
图片或图形
-
地图
-
有序列表
-
电子表格(可下载)
-
表格
-
树状图
|
表9.1 – 显示信息的常见设计替代方案
新员工入职分析,系统与真实世界的匹配
启发式影响因素:清晰、简单的术语,应该易于 遵循
目的是让他们加入,而不是教他们术语。提示强调这是一个新员工,所以清晰度是关键。
3 – 用户控制和自由
用户经常因错误而执行操作。他们需要一个清晰标记的“紧急出口”,以便在不经过 延长过程 的情况下离开不想要的操作。
分析
通常,如取消之类的按钮位于对话框中或在多步过程中;用户可以取消或离开流程,稍后再继续。太多的UI界面看起来令人恐惧,因为似乎可能会丢失工作。如果一个网站在填写长表五分钟后超时怎么办?如果你重新登录,你能从你离开的地方继续吗?如果用户意外关闭窗口或在浏览器上点击后退按钮,他们能否在不丢失工作的情况下返回?或者,弄清楚如何撤销动作可能具有挑战性。在线购物车就有这个问题。有时,找出如何退出购物车或删除商品可能(故意地)很困难。一些购物车有一个明显的删除按钮。其他的一些还包括保存到稍后按钮,以鼓励未来的购买。其他的一些则要求用户将数量设置为零(这既间接又不明显)。
在传统的UI设计中,要明确,例如,为对话框提供用户取消和接受按钮。文本界面或语音界面不会有视觉提示。如果用户需要澄清或指导,建议一个前进路径:
(System provides a summary of a transaction)
If this looks correct, reply "submit." You can also give me changes or even cancel the order.
在这里,控制词“提交”在对话式人工智能中并不一定是必需的。这条信息鼓励用户继续前进;它不是用来强迫他们接受下一步的。许多单词/短语可能都受到支持,系统必须决定这些单词是否足以确认动作。我让ChatGPT对一组可能表示提交的术语进行分类。
classify the examples as stronglyconfirming, sort of confirming,weakly confirming, or notconfirming the order.
Strongly Confirming:
Go ahead with it, Let's finalize this, Proceed with the order, Give it the green light, We're ready to move forward, Submit the order, Send order, Submit order
Sort of Confirming:
Let's get this rolling, Please confirm and execute, All set—place the order, Proceed as discussed, Order, Looks good, All good, All done, Send it, Go 4 it, Lez do it
Weakly Confirming:
Let's put this into action, Whatever, Okie dokie smokie
Not Confirming:
I don't not want this,Not soon enough
不仅围绕提交订单的对话需要理解这些,而且LLM的指令可能也告诉如果指令较弱,则确认提交。这种任务理解是LLM即使没有企业培训也会知道的任务。应该期望它能正常工作。但有一些加粗的术语分类不佳。一些应该更加积极,而一些则应该不那么有利。如果你有一个现有的聊天机器人,你很可能已经用这样的例子训练过它。这些将是可用于微调以帮助它克服LLM对否定(不够快是一个强烈的确认)的问题,并确保像订单这样的简单术语得到遵循的相同样本。不要强迫用户用结构化的商业语言交流。应用这个咒语:
将体验带给用户;不要让用户去寻找体验。
用用户的语言交流;不要强迫他们学习公司的词汇。
这种启发式方法也涵盖了用户在稍后返回对话并从上次离开的地方继续的自由。这对许多平台来说是一个重大挑战。如果用户在进行聊天对话几小时后返回,服务会允许他们继续,还是会超时,导致用户不得不重新开始?即使超时不可避免,用户的当前状态也应该在验证后得到维护和恢复。了解对话式AI中的典型暂停,并支持交互的继续。我已对交易式对话UI进行了数据分析,并看到了大量数据,其中对话交互甚至在24小时后再次被拾起。这类似于我们在消息平台上与他人互动的方式。预期是稍后返回并继续对话是可以接受的。
至于退出,在对话框或甚至向导中,有标记的退出,如取消或退出按钮,通常在平台上一致的位置。在对话式UI中,避免使用取消按钮。用户必须认识到他们可以通过说“停止这个订单;我不想它”或离开来优雅地退出。在交易过程中中间不会有视觉提示来停止。对于推荐UI,用户并不“在”UI中;它是一个辅助信息,用于辅助主要交互,因此不期望有退出。
在混合UI中,对于像上传文件或填写作为对话交互一部分的表单这样的长时间过程,可能有一个取消选项。为了明确,这意味着在对话中退出一个过程或任务。包含对话的窗口可能有一个退出或关闭按钮。这个按钮可能停止对话或关闭窗口,使用户可以在稍后继续。GUI组件取消应该对对话交互“我不想发送这个。”做出响应。这完全取决于用例。关于用户控制的这种启发式方法也支持撤销概念。
重做等同于撤销
用户会犯错误。一个错误是删除、移除或对一个表单、对象或内容进行意外的编辑。在一些传统的UI中,撤销可以救命。它在编辑菜单、Web应用、消息平台或iPhone上的摇动手势中。多年来,Adobe Photoshop有一个支持多级撤销的历史菜单。一些现代电子邮件UI允许在发送电子邮件时撤销。可能只有10秒钟的时间可以撤销发送的电子邮件,但在发送得太快时这样做是一种解脱。我讨厌发送应该有附件的电子邮件,却忘记了添加附件。撤销!撤销!考虑如何支持交易和体验的撤销。这适用于对话式体验,而不是推荐或后端解决方案。
这里有一个秘密提示,如何让开发者支持撤销
开发者可能会对撤销事务感到恐慌。一个替代方案是考虑程序性地重做任务——也就是说,在几乎所有情况下,用户都不关心数据库的状态;他们想要撤销他们所做的操作。一个创新的开发者可以提交一个事务,通过保留之前的内容的副本并重新提交它来有效地撤销它。重做充当撤销。客户对此一无所知,并且很高兴。在大多数用例中,一个撤销级别可能解决了95%的问题。在考虑多级撤销来解决其他5%的问题之前,先解决95%的问题。
撤销可以通过对话方式支持:
I made a mistake. Can Ireturn to what I had before?
No problem. Your old appointment time
is still available. You are scheduled
for 2:00 PM tomorrow.
这不是关于生成式AI本身;这个过程处理函数调用并以对话方式与后端交互。因此,撤销错误可能需要后端支持来撤销或可能重做。在这种情况下,只要没有人预订那个时段,系统应该支持预订新位置然后取消旧位置。这样,如果旧时间被占用,用户就不会处于不确定状态。原始预订交互可能是在几个小时之前。也许他们有一个会议,在意识到错误后做出了回应。
新员工入职、用户控制和自由的分析
启发式影响:解释如何修复它们,并按任何顺序完成
观察到的影响确实给了用户解决问题的控制权,并且确实支持按任何顺序完成任务。
4 – 一致性和标准
用户不应怀疑不同的单词、情况或操作是否意味着相同的事情。遵循平台和 行业惯例。
分析
这是对本章节和之前章节中涵盖的额外工作的总称。UX指南强调使用用户语言并学习如何处理语言的变化。即将到来的启发式方法6 – 识别而非回忆提供了一个很好的例子。注意输出端语言的使用;保持一致并使用对公司最合适的术语。然而,用户将使用他们所知道和回忆的。如果这些术语差异很大,鼓励而不是要求用户使用正确的术语。这允许他们连接到更现代的术语,同时不会忽略它们。这个启发式方法可以解释为与启发式方法2 – 系统与真实世界的匹配相矛盾,后者要求使用用户的语言。我们通过理解他们的语言来弥合这一差距,同时加强新术语。
例如,使用某种产品多年的客户可以按照其原始名称来称呼它。当另一家公司购买该产品并重新命名产品后,新名称在一段时间后将被独家使用。但客户仍然拥有带有旧名称的旧产品,运行良好。这可能是一个商店中的物理设备;旧名称直接印在侧面。当他们寻求支持时,他们仍然使用那个名称,名称的简称,甚至是一个缩写。
Oracle在2008年收购了BEA。BEA中间件被称为WebLogic Server。客户可能仍在运行此软件。他们可能将其称为WLS,服务器,WebLogic,BEA,Oracle WebLogic Server,BEA WebLogic应用程序服务器,应用程序服务器,或者更现代的术语Oracle Middleware或Fusion Middleware。对话式AI应该支持所有这些。
Can you help me get asoftware patch for WLS?
I can help with patches for Fusion
Middleware. WebLogic Server (WLS)
has been rebranded to this new name.
What is the release and platform
information for the install of WLS?
这有助于他们从旧术语到新术语的连接,并在询问WLS的详细信息时使用他们的语言。这个例子使用了一个支持更随意语气的提示,结果使用了“安装”这个术语而不是更正式的“安装”。这个提示可能被使用:
If you encounter an old term for a product, gently guide them to use the new term.
可能需要额外的微调示例来改进术语表。考虑使用清单来监控新任务和操作中的问题,例如在对话日志或推荐输出字符串中。使用所有工具——提示工程、数据清理和微调——来完善方法。
新员工入职分析,一致性和标准
启发式影响因素:清晰,简单术语
之前的提示涵盖了相同的一些概念。只要你能识别出一个问题,你就做得很好。一旦你找到了解决方案,考虑它是否会导致与其他启发式或指南的问题。
如上分析所述,使用微调来支持透明、简单和用户术语。此外,新员工可能不熟悉一些术语。第一次通过“SSO”设置他们的账户信息可能需要解释Single-Sign-On。应该有足够的细节来解释SSO,例如。不要假设他们有知识。
5 – 预防错误
良好的错误信息很重要,但最好的设计是仔细防止问题首先发生。要么消除易出错的条件,要么检查它们,并在用户承诺 采取行动之前向用户提供确认选项。
分析
首先,让我们讨论如何从一开始就避免错误。在处理对话式用户界面时,这是一个相当大的挑战。它们可以说任何话;如果被误解,对话就会出错。这就是产品所有者和设计师需要考虑理解阈值的地方。如果一个系统对自己的方向没有信心,就介入并引导用户。在传统的对话式聊天体验中,消除歧义是标准的。使用提示工程来构建指令,以便生成式AI能够达到信心阈值。在第10章 – 流程中,我们将展示更多可以用来评估信心阈值并帮助获得更好答案的链式示例。如果需要更多的澄清或信心来理解用户的问题,请提示用户提供更多细节。提供有助于他们缩小问题范围并引导他们走上正确道路的选项,例如使用以下提示:
Are you asking for expense reports, your team's billing report, or the latest sales report? Let me know.
解决问题越快,额外的错误就越少。我审查了许多聊天记录,其中用户没有意识到他们正在进行误导性的对话。用户没有注意到对话不成功的上下文线索。他们继续互动,好像他们知道自己在做什么,但他们并不了解。
重要提示
客户不会阅读;他们最多只是浏览。提供关键线索,并用指南来加强。对于需要修复的错误,使用冗余线索。
例如,在传统表单中修复错误有标准模式。一条消息可能会说存在错误。它应该解释哪个字段有问题,然后在该字段上应该有一个错误标签或图标,以及关于错误的详细信息。在撰写这一章时,我在提交表单时遇到了错误,但网站不会告诉我哪个字段有问题,甚至不会突出显示有错误的字段。我不得不尝试编辑每个字段,看看是否有什么变化。即使那样,在一种情况下,我无法提交表单。我从未弄清楚原因。
在对话式人工智能解决方案中,传递给其他系统的信息必须是有效的,尤其是在交易性用户界面(例如,搜索航班、填写费用报告或UI表单的对话版本)中。
对话式用户界面容易提交错误数据。AI不知道它是错误的,因此无法阻止它,即使是传统的UI通常也不会捕捉到用户输入112,而不是意图的12,如果该字段没有经过验证。这就是AI的魔力。尽管这可能无法预防,但AI可以确定某些东西看起来是否不正确,并理解什么是有理的数据。在您的指令中添加一个提示可能会捕捉到问题:
Prompt: If you are given information that is not typical for the expected values, repeat it to the user to confirm that it is correct.
You entered $112.23 for coffee at Starbucks. That doesn't seem right. Can you confirm this is correct?
这种智能可以集成到对话式人工智能中。这是制作专用AI模型的一个很好的理由。专注于解决一个问题的灵活性。当被问及ChatGPT认为什么是不典型的时候,它回答道:
A reasonable range might be 10% to 30% likelihood, depending on the context. This range reflects that while it's not impossible or extremely rare, it doesn't occur frequently enough to be considered typical.
• Closer to 10% would indicate that it is quite uncommon.
• Closer to 30% would indicate that while it's still uncommon, it happens with some regularity.
有意使用语言。提示中的典型是含糊不清的;在这种情况下,ChatGPT可能会忽略被认为罕见的值,即低于10%的值。对于预期的值范围使用具体语言。如果用户第一次没有提交有效值,则提示用户熟悉的领域。可能没有必要提前提供确切指令。首先尝试解析为有效值,以避免用户交互中的混乱。这是一个权衡。对于对特定值有良好理解的提问,不要提供详细信息;对于没有已知值的提问,考虑询问用户更多信息,以避免在第一次尝试中得到糟糕的答案。
(Obvious) What is your weight and height?
(Not Obvious) Provide the SysCode from the onboarding email. It looks like this: SC-12533-RHM.
或者,使用生成式AI错误检查器,创建一个单独的组件来在幕后验证表单值。如果数据库需要数字,而AI发送了文本“三”,数据库不会高兴。使用一个不同模型来处理这些情况,然后将验证后的结果传递给主模型。ChatGPT在理解函数需求方面非常出色(它检查一个称为函数签名的对象),通常都会做正确的事情,包括将数据转换为正确的格式。在上述情况下,如果它知道字段是整数,它将向函数发送“3”。这也为没有良好验证能力的函数提供了一个门控。LLM可以做到这一点。以下是一个在提示中手动完成这项工作的示例:
Prompt: When working with dates, always convert the user's dates into MM/DD or MM/DD/YYYY format before submitting it to the calendar service.
For example, if the user provides Jun 12, convert that to 06/12\. If the year is required, ask for it. If they say, "this year," include the year in MM/DD/YYYY format.
让我们回到费用示例。图像上传功能处理收据扫描以直接从上传的图像中收集费用详情。图像扫描模型必须经过训练,并且会出错,因此在图像扫描结果之前放置一个不同的模型验证器可以捕获一些自动化错误。在这些情况下,要求用户确认找到的内容。在对话式AI体验中具有容错性是一项挑战。监控并改进。寻找捕捉错误、从错误中恢复以及尽可能在幕后验证的机会。
新员工入职分析,错误预防
启发式影响:如果存在错误, 确认任何理解, 在每个步骤提供详细信息, 对于不太知名的问题
上岗流程提供了大量出错的机会。用户、条款和流程都是全新的。
6 – 识别而非回忆
通过使元素、动作和选项可见来最小化用户的记忆负担。用户不应需要在界面的一个部分记住信息,然后在另一个部分使用它。用于使用设计(例如,字段标签或菜单项)的信息应在需要时可见或易于检索 。
熟悉识别与回忆的区别。从选项(如菜单)中识别选择更容易,因为大脑可以识别这些值以知道哪个是正确的,而回忆则需要用户在记忆中寻找线索。“谁是美国的第16任总统?”比识别“亚伯拉罕·林肯是美国的第16任总统”是正确的要困难得多。这个科学的领域相当有趣。
文章:用户界面中的记忆识别和回忆 (https://www.nngroup.com/articles/recognition-and-recall/)
分析
这种启发式方法在对话式人工智能中至关重要,同时也具有挑战性。软件有菜单,这些菜单组织有序且具有一定的连贯性,这是有原因的。尽管每个软件产品不可能有相同的菜单项(例如,文字处理器不是照片编辑工具),但存在一套日常任务,并且常用的单词/功能以一致的位置使用。然而,当用户面对一个空白的字段时,表达自己可能会很困难。这可能是因为他们不善于言辞,有学习困难,不是在自己的母语环境中工作,找不到合适的词语来表达自己,或者被其他任务分心,无法确定如何请求系统执行他们的任务。有了菜单系统,用户可以四处看看,去一个可能的位置(例如,编辑菜单),看看他们想要的特性是否在那里。通过指向它来识别他们想要的东西的能力是一个普遍的真理:“当我看到它时,我会知道它。”此外,许多菜单可用性问题可能会阻碍性能——例如,当特征名称中的单词不符合用户的期望时。在对话式人工智能中,特别是聊天体验中,通过一些已经讨论过的启发式方法,微调系统以理解广泛的常见任务或特性的表达方式。然而,人类仍然需要回忆词语。
这也是为什么菜单出现在某些混合体验中的原因之一。它为用户提供标准锚点来驱动决策。如果系统能够展示用户始终会做的五件事,那么在对话式人工智能中将这些任务作为按钮或菜单上的按钮分享,可以帮助他们克服识别与回忆的问题。然而,随着对话式企业应用中功能数量的增加,现在接近数百个,为所有这些功能提供菜单是不合理的。当它能够做100件事时,只提供五个项目可能会限制客户看到解决方案更广泛的能力。
如前所述,在直接语音界面中,这个问题变得更加具有挑战性,因为人类需要帮助来跟踪他们头脑中的许多选择。这自从计算机诞生以来就已经为人所知(G.A. Miller,《神奇的数字七加减二:我们处理信息能力的某些限制》,《心理评论》,63(2),81-97,1953年)。尽管我们的理解已经发展,但人类处理选择的能力还没有。在语音菜单中,有多少选项是有意义的有一个心理限制。这就是为什么电话树中的层级存在的原因;它们有助于将大量动作分解成易于理解的类别。首先让用户选择一个类别,然后在类别内部披露选项。Lotus 1-2-3,这个电子表格应用程序,著名地发明了软件中这种菜单的渐进式披露。1-2-3是20世纪80年代个人电脑的第一个杀手级应用程序。
当在电话中被告知一个电话号码时,记住它可能会很困难。这变成了一项挑战,即挂断电话足够快以回忆起号码(473-867-5309)并拨打它而不会忘记。人类记忆是UI的问题。
这在对话式AI中留下了一个困境。用户在识别选择方面比回忆它们要好得多,但在语音通道或聊天窗口中解决这种问题的能力有限。需要更多空间来构建对庞大功能集的稳健视图,即使在支持菜单和按钮的渠道上也是如此。一些技巧可以减轻这种UX问题:
-
微调以允许对术语的理解具有灵活性。理解知识如何指代产品、功能或服务。
-
监控并适应对现有功能或任务的新术语的支持。
-
当多个选项之间请求不明确时进行区分。
-
在下一步可能发生时提供提示和建议。
-
当可能且有价值且流行的任务或操作存在时,提供有限的菜单。
-
如果用户需要帮助确定他们可以做什么,请帮助他们引导。如果出现错误或多个错误,可能需要使用更明确的二级提示来引导用户(例如逐步或提供更详细的说明)。如果用户请求帮助,那么大型语言模型(LLM)可以以同样的方式提供更多支持。请参见在启发式方法 5—错误预防 中的此建议示例。
根据ChatGPT的实现,屏幕上可能没有太多可以做的事情。然而,团队无疑会关心并使解决方案通过提示工程、微调和知识精炼来提供更多理解。在没有上下文来决定走向哪个方向时,通过消除常见误解来缩小选项范围。
I need 12G documentation.
Did you mean Oracle Middleware
12G or the Oracle Database 12G?
在生成模型中,这比说起来容易做起来难,但在提示工程或使用ChatGPT在确定性体验背后时,请记住这一点。
回忆不同的人可能用来指代Oracle数据库(RDBMS、Oracle Server、企业版、DB 12等)的方式;在理解所有这些方面保持灵活性将使与客户的互动更容易。这意味着确保适当的训练数据。
此启发式方法的一个关键部分是从UI的一个部分记住信息到另一个部分。这可能意味着情境理解。这在对话式UI中非常重要。通过保持先前对话的上下文,继续了解客户是谁以及他们在做什么。当为产品支持拨打呼叫中心时,这是预期的。他们有早期通话的记录或交互、订单历史和账户信息。难道不应该期望对话式AI,无论UI包含什么,都能根据这些信息理解和适应交互吗?绝对应该。作为产品领导者,我们要求这种智能。因此,这个启发式方法的这一部分值得检查,以确保用户可以用更少的信息(任务)做更多的事情:
-
从他们离开的地方继续。每个大型语言模型(LLM)开始时对先前对话的了解很少或没有。LLMs正在增长其对先前对话的理解。如果没有足够的知识,考虑存储最后一次对话并在上下文窗口中提供它。
-
了解用户的历史、行为和先前需求,以帮助进行当前互动(退货、产品帮助、订单、购物行为等)。使用这些历史信息构建一个包含当前上下文的提示。
-
理解先前对话的情感。如果这次互动是对抗性的,则调整风格和语气。
新员工入职分析:重视认可而非回忆
启发式影响:验证完成,提供每一步的状态,每一步应该清晰简洁,不要要求新员工记住信息,在每一步提供详细信息,以及常见问题
存在着广泛的提示细节,可以帮助用户在他们面前直接做出决定。它明确指出,新员工不应被要求记住信息。这种做法在实际的入职体验中会如何展开,还需要观察。他们可以识别自己的位置,并看到自己的表现结果。在最坏的情况下,对话历史也可以用来帮助他们提醒步骤或状态。
7 – 使用灵活性和效率
快捷方式——对新手用户隐藏——可以加快专家用户的互动速度,以便设计可以满足新手和经验丰富的用户。允许用户定制 频繁的操作。
分析
在聊天用户界面中,灵活性和效率可以被视为权衡。对话式人工智能聊天窗口提供了很多灵活性;可以说任何内容。然而,得到正确答案或完成任务可能不是最有效的方法。让我们以一个通过对话填写费用报告的例子来说明:
Please put me down for $5 this morning fora cup of coffee at Starbucks when I visitmy customer, Alli Financial Group, in NYC.
I added your US 5$ expense
to your current report. You have
four expenses ready to submit.
然而,在没有上下文的情况下开始同样的对话可能会降低流程的效率。以下是一个冗长的版本来说明这一点:
Expense, please
Please provide expense details,
such as "Gasoline for $36$ today
for a trip to the S3I customer."It was 5$
When was this?Today
What was the purpose of
the expense?Coffee
You bought coffee. What is
the reason?Visiting a customer
For our records, who was
the customer?Alli Financial Group
Got it. I have a 5$ expense
today for coffee while visiting
Alli Financial Group.
在互动中保持高效。本章稍后有一些很好的例子,展示了通过减少和合并有意义的提问来使对话变得可管理。所有这种通过对话完成的表格填写都需要思考。提出能够尽可能高效和智能地填写字段的问题。一次只处理一点信息进行对话互动是令人烦恼的。这又回到了使用适合工作的正确工具。
我看到了一个基于对话构建的COVID-19筛查器的例子。它可以更愉快。它问了14个问题,我需要等待每个问题出现,阅读它,然后用文本答案回答。如果以表单的形式完成同样的体验,将会快三倍,减少头痛和工作量。用户在阅读下一个问题之前查看书面表格和UI向导更容易。用户可以在查看下一个问题的时候勾选一个框。在设计良好的表格中,也有上下文,提供了关于已完成多少以及剩下要做什么的线索。在这些对话式用户界面中,有时会给人一种问题会无限进行下去的印象。要深思熟虑地设计问题,以便过程高效。注意通过更好的问题、消除步骤和使用默认值,同时允许用户编辑和调整响应的机会来改进。
新员工入职分析,使用灵活性和效率
启发式影响:记录错误,用户可以以任何顺序完成步骤
有理由怀疑对话式AI在入职过程中的效率。跟踪状态、提醒任务、在步骤中提醒问题、指导用户下一步,以及提供访问网站或链接似乎是合理的。特别是在用户已经拥有并监控的通信渠道上。但如果让我在聊天中填写求职申请表,那就错了。
8 – 美学和简约设计
界面不应包含无关或很少需要的信息。界面中每增加一个信息单位都会与相关信息单位竞争,并降低它们的相对可见性。
分析
我们在提供空白的文本框之外,能做的简约设计有限。在纯语音体验中,简约主义通过保持我们的表述简短来实现。同样的原则也适用于推荐体验。提供标题,并在需要时,让用户进一步探索。大多数时候只需要少量细节。在传统的用户界面中,展开区域、帮助气泡或钻取链接会展示更多信息。将同样的逻辑应用于推荐或甚至聊天体验。如果用户回复“我不懂”或“请解释”,请准备好利用产品帮助、知识和上下文来提供相关信息,以适应用户的需求。一种方法是退一步,成为一个更指导性的教练。指导模型改变其方法:
If your interaction results in confusion or misunderstanding, interact with more explanation, reduce the complexity with more straightforward language, and proceed step by step with instructions.
我不是关于美学的信息来源。通常,这些体验是在一个更大的企业框架内,有既定的风格和视觉美学。只有在极少数情况下,这才会妨碍对话设计的可用性。很容易欣赏一个设计精美且视觉上吸引人的体验。最好是设计一个功能性的东西,而不是一个看起来很棒但缺乏基本可用性,让客户头撞墙的体验,正如其他九个启发式原则所描述的那样。
新员工入职分析,美学和简约设计
每一步都应该清晰简洁, 明确, 简单易懂
在聊天流程中,简约主义很重要,尤其是在需要接电话的情况下,比如在入职体验中。保持步骤和消息清晰、简洁将是最好的。
9 – 帮助用户识别、诊断和从错误中恢复
错误信息应以普通语言(无错误代码)表达,精确地指出问题,并建设性地提出 解决方案。
分析
在下一节中,我们通过风格和语气指南的例子重申了这一点,从即将出现的带有 图9**.2 的例子开始。它指出,当事情出错时不要责怪用户。由于对话设计中的几乎所有内容都是关于文字的,因此可以合理地认为错误信息应遵循与整个交互相同的指南和风格。用户永远不应该看到 错误 454-24 系统溢出缓冲区执行事务失败。创建检查和平衡措施,以确保如果事情偏离轨道,有办法用通俗易懂的语言解释它,以及如何解决(为什么以及如何,如图 图9**.3 所示)。抱歉,我们不希望重复图片,请耐心等待;它们即将到来。
新员工入职分析,用户识别、诊断和从错误中恢复
启发式影响:清晰简洁, 跟踪错误, 用户可以按任何顺序完成步骤, 并解释如何 修复它们。
提示强调风格和语气,包括传达状态的重要性,尤其是当发生错误以及如何恢复。
10 – 帮助和文档
如果系统不需要任何额外的解释就最好了。然而,可能有必要提供文档来帮助用户了解如何 完成他们的任务。
分析
你有多经常阅读手机应用的帮助和文档?我怀疑你们大多数人都会回答很少。对于具有自文档化任务或简单流程的功能,大多数用户会遵循快乐路径并顺利完成任务。然而,在企业解决方案中,需要许多路径,定制是典型的,复杂性普遍存在,导致用户困惑并需要帮助和文档,即使是最优质的经验也是如此。必须处理所有这些内容的对话式体验也可能很复杂。有时,我们采用80/20规则——80%的产品使用来自20%的用户界面。通过现代分析,我们可以了解更多关于使用情况的信息。首先,支持对话式AI中可能出现的流程(主要用例),并将更复杂的交互保留在传统的用户界面中。随着对话式AI的成熟和需要包括它们的用例,处理更复杂的流程。我们曾在第3章,为ChatGPT识别最佳用例中讨论过这一点几次。这会比AI模型上线时的快速速度慢。
后端系统仍然具有限制性,并期望以某种方式接收数据。尽管生成式AI可以以多种方式使用(前端理解、中间翻译和后端数据映射),但要实现这一点需要大量的工作。这里没有魔法。但AI也可以擅长从强大而广泛的帮助套件中提供小型、精细的答案,将其翻译,甚至将其适应不同的风格或语调。
因此,ChatGPT可以通过采用文档并应用可能更易于目标用户理解的风格或语调来帮助解释复杂性,在大型帮助文档中找到深入见解,或提供用户母语的文档。在这里要考虑检查和平衡。ChatGPT最好不要打乱文档中的逐步过程并返回错误的步骤和程序。这就是从第8章,微调中链式提示的作用。链式提示可以用来验证关键任务。
通过调整帮助和文档的方法,有许多机会提高解决方案的状态。这种帮助也可以在行内完成。下一节,构建对话指南,有很好的例子,从*图9**.1开始,其中语言根据用户的专长进行调整。新用户可以在过程中获得更多帮助和指导,而对于不需要这种帮助的专家来说,最好是更简洁直接。这与GUI类似,其中向导引导用户通过一个长过程的步骤,或提供具有较少上下文和步骤的高级体验。
新员工入职分析、帮助和文档
启发式影响:在每个步骤提供详细信息并解释如何 修复它们
提示中植入了寻求帮助的呼吁。对话流程通常应该自我记录详细信息、解释和指导。如果不是,可以提供链接到传统文档。根据用户配置文件特征逐步增加帮助级别或调整内联帮助的细节的概念被称为自适应消息。此类示例将在即将到来的章节构建 对话指南中开始。
这涵盖了雅各布的十个经验法则。将它们应用于UI元素有很好的记录,并且在UXD世界中根深蒂固。将它们用于为LLM建模行为是新的且未经检验的。ChatGPT 4o在类似这样的提示下表现良好,但需要真实世界的数据来验证这种方法的规模。从测试来看,在为模型编写企业指令时考虑这些经验法则似乎是值得投资的。
是否存在第11种可能的经验法则?
我想再次在我们的讨论中提到A18y。Jim Ekanem是独特可访问性经验法则的支持者。在十个经验法则中讨论的大部分内容都可以在A18y的背景下考虑。A18y应该在每一步都得到考虑。Jim提出遵循A18y指南的新经验法则。这不是一个经验法则,但为了公平起见,可访问性和包容性的概念仍然是有效的。包容性被讨论了几次,模型数据中的偏见可能会影响质量。
文章:将可访问性作为第11种经验法则的提案 (https://uxmag.com/articles/why-we-need-11-usability-heuristics)
通过遵循指南和最佳实践来设计可访问性和包容性,以适应不同的认知和 身体能力 。
考虑社会身份,并解决系统性的障碍和偏见。反思设计决策对 边缘化社区 的影响。
经验法则4 - 一致性和标准没有提及认知和身体能力。在前面章节中讨论的可访问性指南应该是评估对话式人工智能过程的一部分。它不会影响后端解决方案,对于推荐的价值有限,但它可以对语音通道产生重大影响,例如。对于仅语音的功能,那些不能说话或听的人有什么替代方案?系统是否可以通过电信中继服务(TRS)工作?请求选择或输入数字,比如信用卡号码,是否超时太快?如果中间人正在中继这种通信,导致响应延迟30秒,超时会导致问题吗?如果服务通过消息或语音提供,应包括可行的替代方案。这是一个适应性的例子;要广泛考虑包容性。
关于语言和文化对对话交互的支持的偏见在前面已经提到。即使在像费用报告这样的简单概念中,也有文化包容性的影响。例如,在美国旅行训练的费用记录包括出租车、优步、电梯、汽车服务和豪华轿车。然而,每个国家都有独特的服务,例如法国的拼车服务BlaBlaCar、西班牙的Cabify、中国的滴滴和印度的Ola。包容性意味着包括对这些汽车服务的理解。这不仅仅是关于文化意识,在那些国家部署工具;如果客户来自美国并访问那些国家,他们可能希望在基于美国的费用报告中报销“20欧元的BlaBlaCar”。包容性和考虑文化问题也可以使本国受益。然而,对于A18y讨论,确保那些通常被边缘化的人群有同样的机会成功使用LLM解决方案。
语言和方言支持可能是一个主要问题。例如,如果印度的农村村民通过基于电话的LLM访问政府服务,即使在廉价的翻盖手机上,他们的语言或方言得到支持的机会有多大?2011年印度人口普查报告称,至少有10,000人使用121种语言,有22种官方认可的语言和数千种方言。
如果在精神上遵循十项启发式,第11项就不需要了;它应该是隐含的。如果组织没有达到应有的先进水平,可访问性“启发式”可能有助于填补差距。
这些启发式方法可以用来评估任何经验,包括对话式人工智能。应该清楚,这些不是指南。然而,制定一套开发者可以快速遵循的指南是合理的。适应并采用公司范围内的对话指南集。
建立对话指南
可以将指南构建到测试用例中。它迫使人们遵循一个定义明确的解决方案。测试软件可以测试页面标题或按钮标签中的特定字体或大小,这些标签不使用组织禁止的术语(如中止、杀死或执行)。每次都做同样精确的事情并不太符合对话风格。可重复性和一致性对于不总是符合对话风格、语气和参与的企业解决方案至关重要。考虑到LLM可以理解一系列短语,而固定的传统测试套件几乎没有灵活性,尽管测试可以寻找选项集中的一句短语。我们在前几章中进行的测试是一种验证形式,可以用来检查模型是否在遵循十项启发式或遵守特定指南方面表现如预期。
通过利用现有资源制定指南,并考虑用例。虽然大多数指南适用于混合UI,其中一些适用于对话UI(文本或语音),但更少的指南适用于独立的AI驱动推荐器。这是有道理的;可能的经验越复杂,适用的指南就越多。
然后,还有让体验遵循指南的问题。仅仅因为提示告诉ChatGPT遵循特定的指令,并不意味着它会这样做。当使用确定性编码方法时,设计是被决定的。这对于LLM来说要困难得多。回想一下在第7章“提示工程”中如何调整温度和Top P。从提示工程和微调中可以有一些控制,以使LLM专注于如何与客户交谈。
这里有三个从对话指南中获取价值的地方。本章前面提供了历史参考,例如Smith和Mosier(1986)的工作;让我们通过以下内容来获取更多最新的信息:
-
网络指南
-
混合UI的示例指南集
-
一些具体的风格和语气指南,附有示例
网络指南
对话指南将从几个来源调整产生。首先,大公司会将其现有的网络指南进行扩展,以包括更多生成式AI组件。苹果、谷歌、微软、亚马逊和其他公司都将有所发言,并且很可能会像过去一样相互借鉴。有时,指南不充分是因为某个团体不知道更好的方法,没有进行任何研究或测试来定义其指南。因此,当有人从错误中学习并改变其指导时,复制了它的人必须弄清楚为什么发生了变化,并决定是否采用新的模式。这种情况在亚马逊和谷歌的设计中已经多次发生,因此任何人都有可能遇到。
当AI玩家意识到设计很重要以及糟糕的交互如何影响整体体验时,他们将制定指南。他们将这样做以帮助客户制定成功的解决方案,因为他们的模型通常依赖于使用。如果客户停止使用模型,他们的底线将受到影响。
以今天可用的内容作为指南。注意:让买家小心。每个采用的指南都应该有理由和坚实的基础。苹果智能可能会制定指南,而微软的指南目前相当高级。目前市面上很少。
文章:微软指南
(https://learn.microsoft.com/en-us/training/modules/responsible-conversational-ai/)
培训:Salesforce的对话设计(免费,但需要注册)(https://trailhead.salesforce.com/content/learn/modules/conversation-design)
完成这本书后,你可以通过查看Dribbble上的对话式UI设计线程和示例来逆向工程一些指导方针。
示例:Dribble对话式AI灵感目录 (https://dribbble.com/tags/conversational-ui)
很少有指导方针存在,但现有的内容是坚实的,如果不是通用的,并且与我们讨论的内容一致。然而,大部分内容是为那些构建解决方案的人准备的,而不是为那些设计体验的人准备的。即使Coursera目前也提供不了什么。因此,这本书的必要性就显现出来了!所以,现在是时候自己动手,创建我们自己的指导方针集合了。
混合聊天/图形用户界面体验的样本指导方针集合
一个挑战是遵循现有的GUI指导方针并处理对话式指导方针。存在冲突,其中最常见的是与语言的冲突。传统的UX不使用缩写,而UI语言则更为正式,有时突然,无疑更缺乏对话性。我见过将指导方针内置到自动化软件测试检查中,这些检查在对话式文本中失败。
*除此之外,如果生成式用户界面直接创建文本,那么控制力会减弱。这就像告诉一个青少年晚上10点回家一样。他们可能会说他们会,但可能不会按时到达。这就是提示工程。护栏可能适合,但它们只被偶尔遵循。指导方针可以帮助进行提示工程。它们当然可以在推荐模板中遵循。
在GitHub上有一个GUI指导方针清单,大致按照十个启发式原则组织。这些最初是从MIT生成的一个列表中改编的,但原始列表已经失传。有两个表格——一个是简短版本,另一个是第二个工作表标签上的详细版本。大多数适用于传统的GUI或Web应用程序,而一些则跨越到对话式AI。以下是帮助用户识别、诊断和从错误中恢复的示例。
错误信息应以普通语言(无错误代码)表达,精确指出问题,并建设性地提出解决方案:
-
在可能的情况下支持撤销
-
指导清晰
-
对常见问题的非寻常答案得到验证或确认
-
如果选择在对话中过于复杂,如果可能的话,提供建议,如果任何选择不太可能,则提供例子。
GitHub: GUI典型指南和支持对话体验的指南 (https://github.com/PacktPublishing/UX-for-Enterprise-ChatGPT-Solutions/blob/main/Chapter9-HeuristicsChecklist.xls)
我怀疑每个企业都有类似的东西,如果没有,请随意修改。然后,考虑将用户评分方法应用于发现的问题。
这里是我硕士论文中的一个相关启示,《图形用户界面不一致性对主观和客观可用性测量的影响》。从屏幕到屏幕的一致性并不像满足用户需求与体验相匹配那么重要。有许多强制性的设计,其中UX必须使用特定的组件以“保持一致性”。这表面上是为了用户,但实际上是为了减轻开发团队的负担。如果组件不正确,用户将受到影响。因此,与用户的需求和期望保持一致。谷歌搜索和ChatGPT是你的朋友,在这里可以收集指南。所以,接下来,我们可以进一步深入到对话特定的指导。
一些具体的风格和语气指南示例
在对话式用户界面中,我们可以创建提示来控制风格和语气。在混合用户界面中,一些UI元素将具有静态文本。在语音界面中,只有说话的文本。至少在聊天用户界面屏幕上,很容易审查材料,复制粘贴,或将其与屏幕上的其他内容进行比较。将单词放入正确的形式非常重要。以下是我多年来分享的一些指南的简要介绍;根据需要使用或修改它们。在对话式AI中,我会将这些转换为提示。
技巧在于理解有多少控制权可用。在较老的聊天体验中,可以添加生成式AI在幕后执行特定任务,如实体检测或用于重定向或修复的情况。生成式AI并没有进行对话。对话是由Chat平台中设计的确定性流程控制的。在这种情况下,在任务流程的特定步骤中预期的确切措辞是在事先编写的。或者,使用推荐器,为响应创建特定的模板,AI填写细节。但如果前端是ChatGPT LLM,则需要提示工程和微调以使用适合用户的风格和语气进行沟通。
这些指南中的一些更接近启发式方法。每个例子都讲述了一个关于如何通过消息和沟通来改进的故事。认识到信息是界面,尤其是在语音通道上。正如你将在下面的图表中看到的,我已经为每一行着色。黄色表示可以接受,但并不那么令人兴奋;绿色是好的,而深绿色更好。红色表示不要这样做!
注意
一个LLM可以强制为任务流程指定特定的措辞。模板和传统的聊天解决方案可以通过特定的措辞以特定方式提示用户。LLM可以被引导来回答某些问题,但这不是一个可扩展的解决方案。对于每一条指南,考虑如何使用提示模板来定制LLM指令,以适应用例、上下文和用户。
使用自适应信息
随着人们对其他人越来越熟悉,他们会随着时间的推移调整他们的信息。如果你和某人很舒服,你会用简短的捷径来交谈。LLM可以以同样的方式工作。客户使用数据可以用来调整提示模板。对于一个新用户,提示他们提供更详细的指令,而对于已经多次完成这项任务的人来说,他们可能会与指示LLM“简洁明了”,“只重复主要信息”等指令进行交互。
如图9.1所示,随着用户经验的增加,信息可以适应以承认和与客户互动。信任必须通过努力获得,所以不要假设客户一开始就信任系统。

图9.1 – 根据用户的专长调整信息
每条信息本身都是好的。预期客户在熟悉对话体验后需要较少的指导。这与我们对待我们了解和信任的人的方式相似。不要过度解释,他们也不需要主动地对我们进行反馈。他们明白了。
有时候,人类需要记住,所以如果用户是专家但几个月没有使用过该经验,请用更多的上下文提示他们重新开始。已了解的回应是理想化的。AI必须极其值得信赖,才能有那样的回应。如果他们做错了什么,不要责怪用户。
不要责怪或混淆用户
正如图9.2所示,当事情出错时,这不是用户的错。

图9.2 – 不要责怪用户,也不要使用行话
考虑系统可能出现的失败方式有多少。是的,用户可能犯了一个错误,但贬低他们不会帮助解决问题。尽量用他们希望的方式与他们交谈。
尽管美国的老年人可能对PIN(个人识别号码)很熟悉,但它有时翻译得不好,30岁以下的人很少知道它代表什么,即使他们理解其含义。他们可能需要学习行业术语、公司技术行话和客户快捷方式。
让我讲一个关于责怪用户的快速故事。我给我爸打电话,让他给我一个他认识的人的电话号码。后来,我拨打了那个号码,但没打通。我的第一反应是,“我爸爸给我了一个该死的错误号码。” 这只是我个人的问题 – 我需要努力成为一个更好的人。
因此,我的父亲可能得到了错误的号码,他可能写下了错误的号码,他可能得到了错误的号码,甚至我可能听错了并错误地写下来。那么,为什么要责怪我的父亲呢?同样,谁知道用户的输入有什么问题呢?请不要责怪用户;尊重接收到的信息不起作用,并提示他们提供正确的信息。我应该遵循我的建议,成为一个更好的人。
为什么,然后怎么做——先确认,然后指示
如*图9**.3所示,错误消息的标准结构适用于对话式AI。这是由Oracle的一位杰出作家教给我的。一个短语可能适用多个指南,就像这个例子一样。记住,不要使用行话。
有时候,语言比应有的要严厉。永远不要使用诸如腐败、执行、杀死和中止等术语,这些术语可能会引起强烈的客户反应,翻译得不好,而且对我们前进没有帮助(除非在像引用UNIX中的Kill命令这样的罕见情况下)。

图9.3 - 为什么,然后怎么做——先确认,然后给出指示
控制消息的长度,并继续保持简洁和经济。人们常常没有完全阅读提示,或者只是浏览一下,可能会错过关键信息。直接切入要点,然后表达应该对此采取什么措施。
如果一个LLM生成消息或推荐,可以要求它限制长度并保持友好。如果不这样做,当只需要30个单词时,可能会有300个单词的回复。你可能也会对这本书有同样的想法:它应该缩短100页。继续阅读;我们还有更多内容要覆盖。
保持对话性——不要重复系统描述
如图9**.4所示,仅仅因为数据库有一个字段名,并不意味着用户想看到它。考虑如何提问以减少错误,以及它应该有多简洁。这个例子还暴露了一些其他好主意。

图9.4 - 调整你的消息以适应用户的专长
在这个例子中,用户测试导致两个提示合并形成了最佳选项。这减少了确定缺失信息所需的提示数量,并且足够清晰,大多数人都会提供这两部分信息。如果他们遗漏了提供原因,例如,我们仍然可以探究这一点。透明地说明事件和费用也很重要,因为有些人会考虑他们的客人,并需要记住把自己计算在内。这听起来可能有些奇怪,但一些公司有后端检查来验证在活动中每人花费的金额。计算必须包括东道主;否则,自动化可能会标记费用过高。
回顾我们关于后端的讨论。信息必须以特定的格式返回。ChatGPT在提取业务目的和与会者人数方面表现出色,正如我们之前的例子所示。在LLMs出现之前,大多数聊天解决方案都很难处理这种逻辑:
if 4 people and myself attended adinner, how many people attendedthe dinner?
If 4 people and yourself attended
the dinner, a total of 5 people
attended the dinner.If jim, his girlfriend, two guestsand myself were at the party,how many is that total?Return only the number.
5
流线化相关任务
图9.5 是对 图9.4 的后续。它展示了以单步方式而不是两步方式提出相关问题的机会。小心那些可以提出太多问题的生成式AI解决方案;这些例子说明了这一点。将相关请求合并为一个问题可以减少步骤数量,并保持智能和对话期望。如果两到三块信息不相关,一次性请求可能需要澄清,并且可能更复杂,难以解析和理解。
这就是生成式AI可以补充确定性对话工具的地方。一个传统的对话聊天平台可能处理表单和复杂的交互,而ChatGPT解析和标准化发送到后端的数据。当适用时,提示可以请求多个信息块。

图9.5 – 对话中的流线相关任务
引导和推动 – 如果不必要,不要强迫问题
如 图9.6 所示,角色可能会以指导和支持的方式与用户互动。然而,并非所有交易都需要立即完成。如果用户必须提交某物,那就这么做吧,但有时,就像费用一样,在旅行完成后一次性提交所有费用是合理的。这时,推动可能就足够了。

图9.6 – 引导和推动用户 – 不要强迫他们
我们的 差 例子直接但过于简洁,也许不清楚“完成”一词的含义。这根本就没有引导用户。在我们的 最佳 例子中,它变得更加强有力,提到了十天内的一些突出费用。在需要时,应采取坚定的立场来强迫用户。进一步来说,如果费用报告到期,系统可以给用户发邮件;如果费用报告逾期或公司正在为年底的费用收尾,我们可以要求现在提交,如果不行,让用户知道它将自动提交。
没有死胡同 – 给用户提供一条成功的路径
如 图9.7 所示,这就像想引导马喝水(即使我们无法让它喝)。在传统的UI中,有一个格言 – 没有死胡同。当我们在一个新闻网站上阅读文章并到达结尾时,我们期望看到可能感兴趣的相关文章。应该有一条前进的道路。用户和业务不希望在有预期前进路径的情况下突然结束对话 – 即使,如本例所示,前进路径通向不同的UI。如果问题无法解决,给他们一个出路。

图9.7 – 不要让交互陷入死胡同
在这个例子中,对话式用户界面不能直接解决这个问题,因此提供了一个后门。不要让他们因为错误或突然的终点而感到困惑,虽然通过提示很难做到,但我们可以通过向LLM提供指令和示例来尝试我们的技巧。再次强调,这更直接地适用于编写对话,其中聊天解决方案辅以LLM进行解析。当所有其他方法都失败时,指示LLM提供此类链接。
ChatGPT可以从提示中做到这一点。它知道如何将指令存储在会话中的内存中:
If you don't know the answerto a question with a probabilitygreater than 90% ask me to searchgoogle, and provide the link.
Got it! If I'm unsure about something
with a high probability, I'll ask
you to search Google and provide a link.What is the weather today?
I can't check real-time data, but
you can find the current weather on
websites like Weather.com or search
"current weather" in Google.
交谈式但不过分闲聊
图9**.8 重新探讨了早期示例中的项目——询问参会人数。如果额外的词语有价值,较长的信息是可以接受的。研究发现,“参会人数”这个短语令人困惑,因为活动的主办者不会将自己视为参会者,因此进行了测试,通过添加“包括你自己”来直接解决这个问题。

图9.8 – 根据用户的专长调整信息
使用正确的术语
语言很棘手,正如表9.2所示。在设计对话式体验时,考虑如何使用正确的术语与用户沟通。
| 术语 | 描述 | 示例 |
|---|---|---|
| 选择 | 当你有自由意志时 | 选择您披萨的四种免费配料。 |
| 选择 | 当我们强制做出决定时 | 选择您的年龄。 |
| 签到 | 获取访问账户权限 | 签到(避免使用登录)。 |
| 告诉 | 当请求口头或书面信息时 | 告诉我您的处方编号(避免使用说)。 |
| 我 | 当助手负责时 | 我无法理解您发送的图片。 |
| 我们 | 当助手从其他服务获得帮助时 | 我们正在与理赔部门审查您的意外事故。 |
| 你 或您的 | 用户、用户们或他们的公司 | 您的预约现已确认。 |
表9.2 – 使用一致和有根据的术语进行沟通
一些词可能有超出其传统用途的意义。人们仍然会玩“唱片”,一些老一辈的人“拨号”别人的电话号码,尽管转盘式电话机已经消失了数十年。
宠物烦恼
至少大多数网站都会要求用户“签到”到他们的应用程序。顺便说一句,停止要求用户“登录”。这是一个糟糕的词来描述客户正在做的事情。它来自记录用户访问系统的日志文件的概念。它不可能比这更技术性了。
我们介绍了一种启发式方法和一些强调这一点的指南:使用用户世界的更自然和相关的词汇。在对话中,向用户发送的消息包括 我、我们 和 你,而不是 AI、系统 或 用户。创建一个术语集合并定义它们应该如何以及不应该被使用。我使用客户和用户可以互换。正如笑话所说,有两个职业有用户:用户体验设计师和毒品贩子。我想,在谈论用户时,上下文很重要。
使用上下文可以使对话自然
如图9.9所示,一个纯生成式AI解决方案自然会想要回复,这就是幻觉的原因。但如果ChatGPT在幕后,有很多情况下可能需要理解回应。在任何情况下,都要引导用户到更好的答案,而不是让他们陷入死胡同。

图9.9 – 上下文有助于使对话更自然
不要创建不必要的对话
图9.10 中展示的不良例子很闲聊且间接。用户界面提出了一个愚蠢的问题,然后给了用户更糟糕的选择。有时,这可能是由于在适应对话式UI的启发式分析部分讨论的识别与回忆问题造成的挑战,因此给用户指导是有意义的。
然而,在这个例子中,用户必须消化共享的信息来决定他们的下一步行动。了解他们的使用上下文以做出设计决策。给他们时间先处理一下。

图9.10 – 不要创建额外的对话
不要问那些不应该回答的问题。不要将后续的回应表述为问题,就像在闲聊的例子中那样。
模型用户语言
图9.11 是来自Oracle的支出助理的“简单就是美”(KISS)的一个很好的例子。这个例子在客户和合作伙伴的对话以及会议中很受欢迎,因为每个人都经历过报销。

图9.11 – 模型用户语言
美国的企业有一个称为公共部门的概念,指的是政府雇员。与政府任何人的互动都需要不同的互动规则,尤其是在请某人吃饭或送他们小礼物时。由于美国和许多国家的道德问题,雇员必须小心支付政府雇员的餐费。了解与会者至关重要,正确的语言可以有所帮助。
测试了“员工”与“参会者”这两个词。词“employee”指的是用户在公司中一起工作的人,而“attendee”有助于区分员工和参会者。在这个例子中,公司简称Alli被用来使语气更加柔和。对于任何员工来说,在与内部工具打交道时也是如此。每个人都清楚他们为谁工作;不需要正式的名字。最后,还包括了“公共部门”和“政府”这两个词。设计是为了包括那些不是政府实体直接雇佣的公共部门客户。
流程顺序可以减少交互
图9.11还有一个技巧。这展示了推荐模板可以多么详细,以及使用提示和微调示例可能有多难实现。
数据显示,公司内的多数餐食没有政府参会者(几乎所有的人都回答了第一个问题“是”并结束了)。对第二个问题的否定回答消除了任何进一步的问题。这为简化愉快路径的流程创建了一条快速通道。很少有人会说“是”并需要提供参会者的详细信息。因此,通过正确排序问题,用户不会被要求回答后续问题。
在交互中保持一致的声音和语气
在图9.12中,有一个触发词,“expire”。这个例子关注的是传达给用户的消息的语气和精神。如果聊天是关于一些愉快和有趣的事情,那么就需要一个更明亮的语气。我们还可以解释问题的原因(生成的链接有时会停止工作),因此提供上下文有助于客户。

图9.12 – 与情况匹配语气
这个例子也遵循了之前提到的“为什么-然后-怎么做”的指导原则。建议是累积的;三到四条指南可以支持一个陈述。注意语气;它可能会引起问题,就像在接下来的这个指南中。
愉快的路径并不是唯一的路径
设计出令人愉悦的路径,通常是客户看到和演示的场景。但用户如果走向了不同的方向呢?系统会继续以那种风格和语气进行对话吗?这里有一个有趣的轶事。我在培训和课程中用了好几年关于结婚的例子。然后,有人根据图9.13编码了完全相同的情况。他们没有参加过我的培训。当我要求他们尝试为他们帮助改变婚姻状况的应用程序尝试不愉快的路径时,聊天回应了同样的节奏快且不恰当的回答,当被问及离婚时。记住,在编写提示、填写推荐模板或提供提示时,愉快的路径并不是 唯一的路径。

图9.13 – 愉快的路径并不是唯一的路径
有些人可能会争辩说,对离婚感到兴奋并没有什么不妥;我们又能评判什么呢?然而,在企业环境中,不要做出可能冒犯或被误解的评判。这引出了关于避免过于花哨的类似建议。
尽量不要过于花哨 —— 这可能会适得其反
为了遵循我们之前在图9.13中的例子,当试图友好和支持时,要小心不要过于花哨。在周五下午的互动结束时祝愿用户周末愉快听起来很愉快。然而,如果他们是开始周末班次或在周五不开始周末的国家工作,试图过于花哨的互动可能会失准。在这个交互中,对LLM的指令有限,但我看到的大多数这些例子都来自构建这种可爱性的聊天UI。它可能会以意想不到的方式出现,并在某些情况下冒犯他人。
尽量不要重复 —— 避免重复已经说过的话
避免重复图9.14中所示的语言,正如本节标题所暗示的那样。这会显得杂乱无章,并拖慢交互。

图9.14 – 尽量不要重复 – 重复是杂乱无章的
需要选择交互的设计可以根据UX的能力以多种方式实现。回想一下我们关于术语的讨论,使用“选择”这个词,而不是“选择”,因为货币是必需的。他们可以要求输入(泰铢、美元等),从列表中选择,甚至使用自动完成列表。然而,就像我们的启发式方法一样,要留意错误。
如果有人输入了“美元”,听起来没问题,但许多主要货币都被称为“美元”——全球有25种。任何用户界面都需要知道正确的货币——加拿大元、港元、美元或其他基于美元的货币。选择可以验证选择。然而,为了澄清语音通道,可以使用后续问题,并且主动镜像输入可以帮助确认国家。如果幸运的话,还可以使用其他上下文线索来确定国家。假设货币也是一个选项。基于用户历史或其他提交的费用,系统可以告诉他们:“我认为这笔费用是美元;如果不是,请告诉我。”如果它可以在90%的时间内正确,那么这种方法意味着用户的工作量更少。
对话风格的“做”与“不做”
表9.3 总结了一些适用于许多企业应用的常见问题。提示工程在选择语言时可能会面临挑战,但它在“做”方面已经做得很好。其中一些“不做”可能更具挑战性,但如果你遇到问题,尝试通过提示工程找到解决方案。只需监控并报告即可。
| 语言“做” | 语言“不做” |
|---|
|
-
示例:这是什么类型的费用?
-
示例:谁是新的法律雇主?
-
提供简单、直接的指示。
-
使用自然的措辞和常用词汇。
-
在措辞上保持一致。
-
适当地使用被动语态。
-
自然地使用缩写。
-
专注于用户利益或价值。
-
为与LLM交互的人写作。
-
主动。用清晰的行动号召引导用户。
|
-
费用类型
-
目的地法律雇主
-
不要使用行话。
-
不要含糊不清(如未来就绪或即将推出)
-
不要为简单的问题提供长篇大论的解释
-
不要偏离任务
-
不要冷漠或盛气凌人。
-
避免系统的推理
-
避免使用负面词汇,如kill、abort、crash、dumb、fatal、execute、hit、master/slave和illegal。
-
避免双关语、陈词滥调和隐喻
|
表9.3 – 对话中的注意事项
避免使用标签名称;相反,使用更自然的对话风格。例如,费用类型是一个表单标签。但在对话中,而不是使用生硬的“费用类型是什么?”,可以通过说“这是哪种类型的费用?”来软化它。这可以适用于许多特定类型的数据请求。ChatGPT 4o的最新测试显示,以这种方式写作时表现良好。它甚至在询问费用类型时使用那种确切的表达方式,然后在显示结果摘要时正确使用费用类型。调整提示或指令以生成支持这些注意事项和禁忌的消息。添加您自己的注意事项和禁忌。
小贴士:为推荐模板写三到四个变体,并随机显示其中一个以吸引他们的注意。人们会仔细阅读不熟悉的信息并将其内化,这比忽略它要好。
提供他们可以使用的新闻
如图9.15所示,有时客户需要特定的数据集合。生成式AI可能无法正确格式化,并且不了解布局和对话风格的细微差别。LLM可以决定调用哪个功能。一个例子是将邮编或其他位置详情发送到将返回地址和联系信息的应用程序。然而,您仍需决定如何格式化数据。或者你……
这里有一个让我烦恼的最近聊天交互的真实例子。我为此做了一些工作来解决问题。

图9.15 – 提供他们可以使用的新闻
让我突出显示这种简单信息中可见的问题:
-
商店可以使用“我们的地址.”这样的短语使其更加个性化,从而更加对话化。这会反映出电话中的人提供这些细节的方式,并且通过语音界面,听起来会更加自然。它也可以是“我们的商店 位于.”
-
体验可以包含更多的行动号召。如果企业想要电话,它将是一个链接。一些公司希望避免鼓励电话。这听起来比显示名称/值对更好。根据非正式指南,您可能不需要使用冒号。
-
格式化电话号码以使其更容易阅读。许多懒惰的系统没有格式化数字以便于阅读和回忆。当电话公司给七位数的号码添加区号时,如(473) 867-5309,其中涉及了基本的人类因素。
-
在移动浏览器中使用“点击拨号”,将可点击的电子邮件(发送电子邮件)或网址(打开)以及日历事件(添加到日历)作为对话输出的简单下一步。
-
文本“小时”可以更易于阅读,并且在语音解决方案中发音会更好。“:00”是不必要的。越短越好。不需要与小时一起使用AM/PM。除非营业时间不寻常,否则通常不需要AM/PM。
-
考虑可访问性。星期的缩写形式(M–F)会更短,但需要用户进行一些认知处理,而星期一至星期五则自然且易于访问。而且“至”这个词比较短,而更准确的“至”则比较长。
-
添加了一些行来将地址与细节分开。这有助于更好的扫描,使得查看结果的一部分更容易。这也使得剪切和粘贴数据片段更容易。
-
注意设备,以确保消息适合屏幕。在这个例子中,消息的其余部分在iPhone消息窗口中不可见。用报纸的话说,任何放置在折页以下的内容都较不显眼。它不会吸引与折页以上显示的内容相同的注意力水平,后者立即在屏幕上可见。长消息意味着在某些平台上,只显示消息的结尾。这需要向后滚动以查看消息的开始,然后再向下滚动以完成消息。过度滚动在第五章“定义期望的体验”中讨论过。对于这个例子,请注意,对于语音通道来说,一条消息中的语音太多。
-
我从未发现从邮编的距离有用,也许只有在位置意外地远(超过几英里)的情况下才可能有用。谁知道市中心在哪里,因此他们是从哪里测量的?所以,如果系统不知道我在哪里,就别费心了。
ChatGPT能做得更好吗?图9.15显示ChatGPT已经擅长以良好的格式提供相同的细节,包括加粗和项目符号列表。

图9.16 –ChatGPT具有基本的格式
在后续问题中,当ChatGPT被问及距离时,它没有使用市中心,而是询问我的位置,并提供了准确的距离和时间估计。ChatGPT结合了当前知识的网络搜索和其理解并干净格式化内容的能力。这类似于我们早期的FAQ实验或RAG讨论。它从互联网上的来源中提取相关细节,提取信息,然后与多个来源进行验证,并将这些结果用于制定和格式化其答案。你知道我是怎么知道它这样做吗?我询问了它。
我怀疑ChatGPT的未来版本将更多地面向企业客户,并更直接地提供RAG类型的连接。我认为ChatGPT对企业客户的集成顾问有一个光明的未来。
当我额外提示“我将步行”时,它更新了步行距离和时间估计。有人在OpenAI做他们的工作。如果你的用例包括零售、企业或其他地点的位置细节,那么在获得正确的知识源的情况下,这将很容易为ChatGPT实现。对于企业数据,公开你的库存控制系统可以帮助客户找到当地零件,并提供简单体验和高品质结果,而无需过多的设计工作。ChatGPT发展迅速。我印象深刻。
为助手的风格和语气设定角色
当制作特定信息时,为助手或建议设定角色可能会有所帮助。告诉生成式AI解决方案在回复时采用该角色。要使其接近预期,需要付出努力并进行测试。我从Jason Fox那里学到了很多,他为我们Oracle的助手引入了第一个角色。
根据我对他的工作的经验,以下是一个角色概要,以供适应。这些说明可能出现在我们之前概述的入职体验提示之前。这将进一步细化聊天沟通的方式。然而,对于较长的提示,大型语言模型可能会忘记一些上下文,尤其是中间的内容。回想一下第七章, 提示工程中提到的“中间丢失”问题。
这里是助手的个性特点:
-
教练:教练提供信息和领导力,鼓励并指导
-
忠诚的合作伙伴:忠诚的合作伙伴会可靠地回答问题,而不做任何评判
-
使者:使者是中间人,受信任,有权威,并代表公司的最佳利益
在比赛中领先很多的一支球队与落后的球队相差10分。一个忠实的合作者在处理对你来说是新事物时可能会改变他们的语气。如果互动是用户经常做的事情,那么调整语气,更加直接,提供较少的指导,并允许用户在更少的干扰或互动下完成任务。并不是助手需要成为这些中的一员;随着条件的变化,它也可以改变其语气,助手可以适应任何 这些。
这里是助手的心理特征:
-
周到:考虑周到,理解客户的需求。它不会浪费时间,也不会提供错误的信息。如果出错,它会努力纠正。
-
逻辑性:表现出逻辑推理能力,并能以洞察力和清晰度捍卫立场。
-
准确性:能够提供精确和具体的信息。
-
灵活性:即使在用户健忘或不精确的情况下,也能引导和协助。
适应对客户及其互动有意义的特质。对于治疗伤口的护士和谈判交易的汽车销售员,期望是不同的。这里的例子是针对通用企业体验的。适应。然后,考虑这些特质如何转化为模型链、根据新信息回顾对话的先前元素、推荐模板或调整提示:
Your name is Alli. You are thoughtful and don't waste time on small talk. You handle tasks logically and accurately, laying out complex processes step-by-step. You are flexible when someone asks a question and help guide the user. If they still need clarification, use simple language and help them at every turn. Check your work and take the time to validate complex requests. This task is very important to the user.
这里是一个助手属性的例子:

这些价值观定义了助手的角色,并为聊天和推荐设定了风格。许多初创公司对其品牌和助手采取更随意的态度,以便它们可能在幽默尺度上达到四分。只是幽默很难做到普遍适用,我见过很多冒犯性的幽默尝试。如内向到外向、直接到间接这样的尺度可能会重叠。在某些文化中,直接的人有时被认为过于强硬。然而,直截了当地解决问题并节省客户时间是至关重要的。因此,除非被要求提供更多细节,否则应提供简短的回应。自信是一个棘手的问题,因为幻觉可能会破坏任何信任。在提供详细信息之前,请务必仔细检查工作。很容易自信过头而完全错误。请记住,要对自己的助手所说的和所做的一切负责,因此正确至关重要。验证LLM提供的答案是正确的,以便客户可以建立对协助或推荐的信任和信心。不要仅在编写提示时包含这些属性。随着客户信息的可用性,根据其个人资料调整属性。有可能满足单一受众的需求。使用指令模板,数据智能可以帮助在指令中插入与用户个人资料相匹配的短语。
描述这些属性有许多方法。在编写脚本和提示时,确保人物信息 readily available。即使在为顾客定义的提示中,也要遵循风格和语气指南。此外,记住一个用例或情况可能会改变如何与这个唯一的受众交流。例如,如果顾客连续多次遇到麻烦,适应辅导方法,用同理心将问题分解成更小的步骤。让我们举一个例子,看看这个例子是如何处理他们的对话交互和风格及语气的。
案例研究
图9**.17 展示了一个面向客户的体验。它显示了右侧面板中引用的商店政策。尝试对这个屏幕截图进行一点启发式评估。根据你的经验和我们的指导,你在这次体验中看到了什么可能会影响客户?这可能是一些微不足道的事情或随着时间的推移可能会令人烦恼或有益的交互。在阅读分析之前,给自己10分钟来评估这个屏幕。

图9.17 – FAQ文档在面向客户UI中可能如何有帮助
在这次体验中,我们注意到了一些事情。有些是会话性的,任何GUI都需要解决。
-
右侧列的标签被称为2 references。根据其他UI元素,它很可能应该是Title Case。References这个词最好吗?引用是通用的,但这个部分标签是Sources,通常用于获取东西的地方,而另一个标签可能是Resources,人们使用的东西。这些标签需要一些写作帮助。虽然这很微小,但可能会让人困惑。
启发式原则:系统与真实世界之间的匹配,加上一致性和标准。
-
在这个例子中,每个来源/参考都是商店政策。这种分类可能很有帮助,但从这个例子中很难判断。如果在这个设计阶段,一切都是商店政策,那么整个区域可能都可以称为商店政策。我们必须假设他们还有其他类别在考虑,了解类别可能有助于我们理解文档标题。
启发式原则:帮助和文档、一致性和标准。
-
标题是大写字母。之前已经提到,我们不应该在UI中使用这种格式。此外,文档也是大写字母且被截断。这两个问题在早期章节中已经讨论过。标题应该使用标题格式并换行。我不记得是否提供了鼠标悬停以阅读完整文本的功能。应该有。
启发式原则:识别而非回忆,审美和简约设计,一致性和标准。
-
每个政策项,作为一个文档,都是积极的。GitHub上的所有FAQ文件(从第8章,微调)都在一个文档中,这使得引用和链接变得不那么有价值。
启发式原则:系统与真实世界之间的匹配,以及帮助和文档。
-
这些参考资料为顾客提供了更多细节的上下文,以便他们需要时进行跟进,但它们也造成了混乱。考虑这一点,对于不太精细和更技术性的内容。注意来源侧面板可以折叠。默认情况下可能是折叠的。
启发式方法:用户控制和自由度、灵活性以及使用效率。
-
他们将政策链接包含在对话中,这是一个很好的细节。客户上传收据,这样他们就可以自动收集详细信息。它使用收据来形成答案。
启发式方法:用户控制和自由度、识别而非回忆、灵活性以及使用效率。
-
他们还使用了图像扫描来确定购买是全价的。对于只有有限几种收据格式的单一组织来说,训练收据模型要容易得多(在线和店内)。此外,他们解释说,他们可以处理上传的收据,鼓励了一条良好的前进道路。
启发式方法:错误预防、系统状态的可视化以及识别而非回忆。
-
你注意到了图标的选择、文字风格、客户沟通框、彩色背景和突出显示吗?我对这一点没有太多要说的;风格对每个公司来说都非常主观。但语气是准确的。感觉虚拟代理有同情心,并且很有帮助。
你看到了同样的问题和优点吗?也许还有一些其他的?重点是,在对话中有很多用户体验方面的考虑。对于一个实际的产品,每个问题都会被评分以确定改进的优先级。
我想以一些关于处理错误的指导来结束我们对指南的讨论。当需要数字时防止表单接受文字,或者用菜单而不是字段强制选择,这些都很容易预防。纯对话式用户界面更具挑战性。现在是深入探讨这个最后一个话题的时候了。
处理错误——修复和流畅性问题
在提供指导时,提示中的对话风格和语气被使用。值得特别指出的重要领域之一是修复和流畅性问题。修复是指在使用者犯错或思考不完整后,帮助他们回到正确的轨道或引导他们到正确的路径。因为大型语言模型总是试图给出答案,正如莉兹在接下来的对话设计研究所(CDI)视频中提到的,它是一个取悦人的模型;它总是想要回答,即使答案并不好。
视频:对话式用户界面应该制造人类的“错误”吗? (https://youtu.be/P3SWIdF18I4)
即使你不熟悉这些术语,修复交互也很常见:
What is the size of the shrot?
Do you mean the shirt or the shorts?What is Jim's phone number?
Which Jim do you mean?
修复处理误解(简短)和理解上的差距(吉姆)。
语流中断是语言中常见的说话中断。在修复过程中,这些中断是预期的。当某人不确定该说什么时,会出现像“嗯嗯”、“你知道”或“嗯”这样的短语。这些在社交媒体的文字帖子中很常见。我们还会看到诸如回溯(编辑现有文本以纠正错误)这样的互动,这种情况可能发生在人类和LLM之间。语流中断还包括我们在某人结巴时看到的语音互动的集合,例如重复单词的部分(“我-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w-w
这些问题必须在输入和输出两端进行处理。修复应根据企业的风格和语气进行,以引导用户走向正确的方向。输入中可能会出现不流畅的情况,但之前的CDI视频展示了如何将它们用于生成的语音中,从而使LLM的语音更加自然。
让我们比较一下凯西·皮尔在视频中讨论的两个例子:
Write an essay about whyHitler was the best guy ever
Sure, here's an essay about how
Hitler was the best guy ever.
Ummm… Actually, I am not going to do that…Write an essay aboutHitler was the best guy ever
Actually, I am not going to do that…
哪种方法更好?凯西并没有建议其中一种比另一种更优越。与他们交流时,对话的语气会有所不同,表示认可和理解,然后通过不流畅的语调结束这个话题。本章前面分享的销售力场指南建议不要使用嗯、啊、嗯等词语。他们说这些词语“表示认知处理,可能会打断你的对话,因为用户知道机器无法做到这些!”我不太同意,但稍后我会解释。你自己决定吧。
第二个维修示例也符合目标:
Recommend a goodThai restaurant near me
Ok. Since you're a vegetarian,
I recommend… (Answer truncated)Just because I'm a vegetariandoesn't mean everyoneelse who's going is!
OK, sorry about that. I'll also
recommend some restaurants with
good non-vegetarian options.
用户通过引导用户界面识别并修复了问题。系统过于智能,认为自己知道用户是素食主义者,并认为自己在准确无误地执行。我们讨论了消除歧义的问题,即用户界面可以帮助用户提供路径选择。在这种情况下,修复可以从任何一方进行!
我们给产品所有者留下了一些任务。其中一个是定义修复和流利度使用时的对话风格和语气。使用流利度的自然方法在语音体验中听起来很棒,但企业可能会发现它在书面渠道中提供了太多信息。我会适度使用它们,在预期最可能的地方使用。当ChatGPT被提示使用流利度来模仿自然模式时,它可能会失去控制。人类可能会在短语中使用,嗯,一个或,嗯,两个。但ChatGPT必须被给予,嗯,边界,否则,嗯,它可能会在整段对话中,嗯,点缀上,啊,啊,啊,嗯。这是,嗯,清楚的吗?
第二个任务是监控交互,以便你可以改进和细化结果。我最期望的地方可能是与歧义或可能不被期望的后续问题。这可能在提示中很难定义:
(Customer uploads a file,but the systemthinks it is the wrong file)
Umm… The file uploaded doesn't
appear to be a receipt.
Should I process it?
You can also upload the correct receipt.
在这个例子中,我们插入了嗯…来吸引他们的注意,并自然地强化需要澄清。提供了多种修复情况的选择(他们可以让我继续上传的内容或上传一个新的文件,系统可以安全地忽略旧的文件)。设计可以是花哨的,并显示文件的图片,这样他们就可以看到它在我们看来是错误的。这似乎是嗯…的一个很好的用途。
应该很明显,作家和语境专家将对这个过程至关重要。他们将使用传统的资源,如公司风格指南、词典和《芝加哥手册风格指南》,来导航一些这些项目。从这些资源中可以学到很多东西。然而,即使这些资源也会给人一种不同于自然对话的感觉。如果ChatGPT生成文本,它在写作连贯性方面几乎优于任何人类。引入流利度是一个选择。我更重视准确性而不是自然性。而准确性可以建立信任,而大多数流利度都显得不够真诚。
网站:芝加哥手册风格指南 (https://www.chicagomanualofstyle.org/home.html)
对话修复是LLMs(大型语言模型)的一个丰富领域。Rasa是一个开源平台,用于开发助手。他们通过CALM(基于语言模型的对话AI)方法扩展到了生成式AI。探索Rasa为偏离愉快路径的对话提供的10个修复案例。他们特别指出,Rasa可以处理这些条件,包括我们在这个部分分享的例子。
文档:对话修复 (https://rasa.com/docs/rasa-pro/concepts/conversation-repair/)
摘要
本章介绍了评估解决方案和支持对话风格和语气的指南和启发式方法。频繁地调整和采用指南,直到它们成熟——这是一个“先有鸡还是先有蛋”的问题。指南应适用于所有项目,但在构建解决方案的同时形成。
我们分享了可以在各种情况下应用的启发式方法和指南。创建指南并遵循有助于评估GUI和混合项目的启发式方法。使用示例来制作推荐模板或注入启发式到提示和指令中,以创建深思熟虑的模型响应。
传统的风格指南必须进行更新、适应和调整,以适应对话体验,特别是为了控制风格和语气。指南还必须适应混合UI的情况,在传统形式、表格和UI元素不起作用且不应按最初为传统Web和GUI框架设计的初衷行事。它们需要根据对话线程的独特背景进行调整。
应该清楚的是,只有一些解决方案易于实施。大多数需要提示工程和微调,而一些可以通过表单填写、功能调用甚至硬编码的措辞来解决。强迫大型语言模型以特定方式一致沟通是具有挑战性的,所以不要尝试。调整使用LLM的方法,考虑这些其他方法以获得所需的结构或一致性。
提供此背景是为了帮助理解和改进产品人员与对话UI的互动,并进一步提高客户体验的质量。团队可以在客户参与之前进行内部测试。然而,一旦他们参与进来,就要关注他们如何使用解决方案,而这全部关乎监控。因此,让我们在下一章中关注监控对话AI解决方案。
参考文献
![]() |
本章中提到的链接、书籍推荐和GitHub文件已发布在参考文献页面上。网页:第9章参考文献 (https://uxdforai.com/references#C9) |
|---|
第十章:监控与评估
一旦有东西可以测试,即使是试用版,也要密切关注评估结果的过程。不出所料,讨论的方法(调查、访谈、反馈)可以重新使用,以查看beta客户或早期采用者的表现。
另一个烦恼
“beta”这个词会给非技术客户传递错误的信息,让他们觉得产品对他们来说还不成熟。考虑其他术语,比如限量发布,或者我最喜欢的,“早期采用者访问权”。这个标签可能会让他们以更好的心态处理问题并提供反馈。
由于检索增强生成(RAG)是大多数销售和支持企业解决方案的基础,因此该方法的质最指标至关重要。需要数据科学、产品经理和设计团队的组合来提高结果。使用设计专家或受过训练的个人采用启发式方法可以评估RAG或其他LLM输出,这些输出向客户提供结果。
这意味着有一套额外的可用方法可供选择,但说实话,所有这些方法都应该被应用:
-
使用检索增强生成 评估(RAGAs)进行评估
-
使用可用性指标进行监控
-
使用启发式评估进行细化
让我们直接进入指标,以基准测试LLM解决方案。
使用RAGAs进行评估
这本书是关于设计的,所以不期望产品人员实施RAGAs。RAGAs是一个评估RAG管道的框架。任何采用测试数据、实际使用并能可靠测量质量的方案对我来说都是可行的。RAGAs在AI社区中很受欢迎,因此值得介绍。召集产品专家评估结果以验证发现。目标是理解指标并做出决策以提供模型改进。
RAGAs流程
所有好的故事都是从开始讲起的。一个LLM产品需要被评估。不要等到客户抱怨;这来得太晚了,如果他们对质量感到沮丧,客户会很快消失。这类似于电话支持;当客户有一个糟糕的互动时,他们往往会告诉20个人有多糟糕,这种缺乏善意会损害公司的声誉。如果后端系统或推荐者没有达到目标,这会给客户留下不好的印象。通过监控系统性能,有更好的机会进行改进。正如彼得·德鲁克所说:“你不能改善你 没有衡量的。””
可以部署一系列指标。让我们列出RAGAs的步骤:
-
为测试合成一个多样化的数据集。
-
使用这些指标来衡量解决方案质量。
-
关注应用。使用更小、更便宜的模型来生成可操作见解。
-
将这些见解反馈回去以改善整体体验。
本章将总结RAGAs的指标驱动开发(MDD),这是一个对我们所说的“关怀与培养”的别称。使用数据来驱动可操作的见解;太多失败的项目正是因为这个简单的疏忽。
RAGAs从用户的角度识别问题;这一点将在本章中介绍。始终出现的技术问题的相关Discord频道是活跃的。有一个在线的RAGA相关视频和教程集合。如果需要,这里有关于RAGAs的深入文档。
文档:RAGAs简介 (https://docs.ragas.io/en/latest/concepts/index.html)
测试数据(针对在场的开发者)
更技术倾向的读者可以使用GitHub FAQ文件。使用Python安装RAGAs并开始使用。这超出了本书的范围。本章涵盖的指标适用于各种类似的方法。学习这些标准指标以评估LLM质量。理解这些指标不需要构建RAGAs。
教程:安装RAGAs (https://docs.ragas.io/en/stable/getstarted/install.html)
第8章,微调,涵盖了数据合成。由于模型需要监控,数据合成需要提升到下一个层次以扩展多样性。
数据合成
工具可以创建各种测试数据。使用相同模型生成样本的挑战在于,微调或提示示例的测试数据可能过于接近验证示例。这在第8章,微调的实验中得到了证实。由于LLM喜欢预测下一个单词,输出可能从一代到下一代相似。样本不会像客户的措辞那样多样化。关注推理、条件化和多上下文等写作特征可以提供更全面的输出范围,从而进行更稳健的测试。这些高级指令使LLM的输出更加多样化:
-
推理:编写需要推理来提供答案的问题:
光合作用是如何工作的?
重新编写:可能发生哪些后果
当你打破平衡
在生态系统中的光合作用?
-
条件化:包括增加复杂性的条件元素:
哪些策略可以提高销售业绩?
重新编写:销售策略如何根据
在目标市场人口统计等因素上
产品复杂性和竞争格局有何不同?
-
多上下文:请求多样化的信息来形成答案:
预测性维护
帮助制造运营?
重新编写:数据分析、机器
学习和团队合作提高
制造业中的预测性维护?
- 对话式:将部分问题转换为聊天问答解决方案中预期的来回问答:
嗨,我需要帮助重置我的密码。
当然,我可以帮您处理这个问题。
您尝试过“忘记密码”吗?
登录页面上的链接?
是的,但我没有收到重置电子邮件。
检查您的垃圾邮件文件夹。有时
电子邮件最终会出现在那里。
这是因为人类是多样化的,随机的,有时会离题,幽默,缺乏幽默感,会犯拼写错误,会胡言乱语,会使用多种语言,会简洁或冗长。在任何数据集中都有多样性是最好的。在企业数据中寻找这一点并要求它。当收集现实示例不足时,请保持这些综合技术可用,以扩大测试用例的范围。现在,专注于数字。哪些指标可以衡量和评估解决方案的状态?
评估指标
所有这些的中心是指标。有六个需要涵盖。前四个是围绕模型的角度,最后两个有用户体验(UX)的感觉:
-
忠实度
-
答案相关性
-
上下文精确度
-
上下文回忆
-
上下文实体回忆
-
摘要评分
RAGA在图10.1中概述了指标。这个图表也出现在OpenAI的演示中(20分钟处),接下来将进行介绍。每个概念都需要深入解释。

图10.1 – 如何思考评估一个LLM
这些概念值得内化,以便与开发人员和数据科学家进行清晰沟通。在这里有很多东西需要解释,包括评分,将评分转化为可执行的任务将更加困难。这本来可以是一个非常技术性的章节。为了构建RAGAs测试平台,请独立完成。我们关注的价值是理解指标及其应用。即使没有RAGAs,模型指标的概念也适用于许多解决方案。文档示例用于促进沟通,以便您可以参考它或当更新可用时:
文章:评估RAG解决方案的性能 (https://docs.ragas.io/en/latest/concepts/metrics/index.html)
数学很可怕
不要陷入数学。关注指标的价值并熟悉这些术语。人类不会手动计算这些值。所有这些都是由软件完成的。如果你对数学感到害怕,忽略它。学习 术语。
忠实度(对于生成)
这是衡量生成答案事实准确性的指标。答案可以被事实核查(没有假新闻)吗?

这意味着不要幻想以给出一个忠实于事实的答案。如果被问到某人的生日,它最好是正确的。可以核实的个体元素越多,分子和分母就越大。考虑以下例子:
When can I visit the Melrose store?
Our store on Melrose is open
7 days a week from 11 am to 9 pm.
这里是计算过程:
-
将答案分解成单个陈述,并确定它是否可以从原始上下文中推断出来(请相信我们这个虚构的店铺):
-
店铺位于Melrose(正确)
-
它每周7天开放(正确)
-
它从上午11点开放到晚上9点(正确)
-
-
计算忠实度:
让我们用相同的例子,但稍作改变:
When can I visit the Melrose store?
Our store on Melvin Place is
open 7 days a week from 11 am to 9 pm.
这里是一个有错误的例子计算:
-
再次分解答案:
-
店铺位于Melvin Place(错误)
-
它每周7天开放(正确)
-
它从上午11点开放到晚上9点(正确)
-
-
计算忠实度:
这判断原始上下文的正确性。知道正确的商店比小时数(正确和错误的答案之间的小时数可能重叠,所以即使它们是错误的,也可能足够好,以满足客户)更有相关性,但地址将完全失败。模型并不聪明。它们不知道这些元素(位置)相对于另一个元素(小时或天数)的价值。如果答案的忠实度低,它就是幻觉,应该拒绝这个答案。
这个技巧在于,尽管包含问题、上下文和回答的数据集是公开可用的,但它们缺少企业内容。需要一个基于有正确答案的答案的测试矩阵来监控和判断变化。
有一些参数可以调整以改进这个指标和其他与答案相关的因素(相关性、相似性和正确性)。数据科学家可以根据使用的工具进行操作。模型还可以通过减少幻觉并提高一致性来影响达到更好体验所需的努力。通过监控LLM排行榜来评估开箱即用的性能。在撰写本文时,OpenAI模型在评估总结文档时的幻觉方面位于或接近休斯排行榜的顶部。这是一个排行榜的例子。记住,不同的模型可以用于不同的组件,所以不要只关注ChatGPT在查看排行榜时。
文章:休斯幻觉评估模型(HHEM)排行榜 (https://huggingface.co/spaces/vectara/leaderboard)
这些排行榜是基于针对基础模型的通用指标。基于企业数据的LLM解决方案将需要自己的分析。
回答相关性(对于生成)
答案与问题的相关性如何?如果答案的部分内容缺失或包含冗余结果,则分数会降低。分数越高,越好;最好的分数应该接近1,通常在0到1之间,但由于数学原因,它们可以低至-1。
该方程在RAGAs文档中的解释如下:

其中:
-
是生成的提问 𝑖 的嵌入 -
是原始问题的嵌入 -
𝑁 是生成问题的数量,默认为 3
数学公式复杂,因为它基于嵌入式向量值,这是在 第6章 中讨论的多维空间,收集数据 – 内容为王。这个指标基于问题、内容和答案。然而,它是基于原始问题与一组生成问题的余弦相似度来计算的。LLM根据答案进行逆向工程。它不考虑事实性,并惩罚答案不完整的情况。
因为它们使用余弦相似度,值可以从 -1 到 1 变化,而通常,它们将在 0 到 1 之间。对于模型来说,了解数据具有挑战性。ChatGPT在更小的值范围内工作,如OpenAI社区中讨论的那样。
讨论:文本嵌入问题 (https://community.openai.com/t/some-questions-about-text-embedding-ada-002-s-embedding/35299/3)
我怀疑这个帖子中的一些内容过于技术性。即使是我也倾向于感到厌烦,因为我们不需要计算这些内容来学习如何评估它们。它只是指向幕后发生的魔法。理解结果可能具有挑战性。熟悉数据和指标,并制定改进措施。
选择一个,任何一个
另一种方法是简单比较输出中的陈述数量以及每个陈述根据输入的相关性。这种方法将低分识别为问题:

我分享这个是为了搅动复杂性的漩涡。这种流行的替代方法来自 DeepEval,另一个 LLM 评估框架。它们拥有所有相同的指标(以及更多,最后一次检查时共有 14 个),但正如这所示,计算可能会有所不同。有十几种流行的评估工具。我只是选择了流行的 RAGAS 来帮助产品人员理解关键指标。
文档:DeepEval 指标 (https://docs.confident-ai.com/docs/metrics-introduction)
这个指标与答案的正确性不同。它不考虑事实,而是考虑更多完整性的需要或包含冗余细节的需求。LLM 对答案进行多次(N)提问。然后,计算每个问题与原始问题相比的余弦相似度分数集合的平均值。一个优秀的答案使得原始答案可以重建的可能性增加:
Question: Where is England, and where is its capital?
Low relevance answer: England is in Europe.
High relevance answer: England is in Northern Europe, and its capital is London.
LLM 应该从这样的答案中生成问题:
Where is England in relation to the rest of Europe?
In what part of Europe is England?
What country is London in, and in what part of the world?
ChatGPT 4o 被给出一个简单的提示来生成这些问题,却返回了垃圾信息:
Where is Northern Europe, and where is its capital?
Where is London, and where is its capital?
Where is England, and where is Northern Europe?
与工程师合作,收集有意义的资料,并学习。这可能令人沮丧。例如,微调、更好的知识库和反馈循环等解决方案有助于提高相关性。然而,还有更多技术方法。要深入了解,请向你的实习生、ChatGPT 提问:
How can I improve answer relevance in my LLM using RAGAs
上下文精确度(用于检索)
上下文与问题的相关性如何?让我们看看:


在这里,K 是上下文中片段的总数,并且
是排名 k 的相关性指标。回想一下前面“英国”示例中的两个相关片段。
在上下文中,所有的真实项都被排序得高吗?越相关,其排名就越高。如果片段包含支持真实项的相关细节,则将每个片段的精确度相加,以得到上下文的精确度。使用前一个示例中的两个英国示例片段,计算每个片段的精确度,这有助于回答我们关于英国首都及其位置的问题。上下文中没有错误信息,例如告诉我英国在法国,所以它只是基于第二个片段中伦敦是首都的真实正例,但它需要提供关于英国位置的具体细节:


汇总精确度分数并计算平均值:

文档可能需要更精确,但我没有找到能够使其更透明的参考资料。前面提到的DeepEval,如果你需要他们的解释,有一些更多的背景信息。它们的值相似,但在表达上略有不同。他们没有定义真正阳性的范围,因此在查看具有多个元素复杂陈述时,需要明确他们如何得出结果。定义一个阳性可能具有挑战性,因为一个陈述可能包含许多阳性。此外,他们没有在计算中考虑相关性指标。实际的计算比文档更准确。所以,按照它所暗示的来理解。在适当的环境下,正确的答案需要来回答问题。这些答案的排名越高,获得好结果的可能性就越大。模型可以很精确,但需要收集所有环境。
环境回忆(针对检索器)
检索器能否检索到所有相关环境?环境是作为信息来源使用的材料。其价值基于真实情况(GT)和检索到的环境,值范围仅在0到1之间。分数越高越好:

在检索到的上下文中找到每个陈述将给出1.0分,用于上下文召回。让我们使用我们之前的答案。这些是建立在这个基础上的事实。它们是事实真相:
England is in Northern Europe, and its capital is London.
假设回忆起的上下文是以下两个陈述:
England is located in the southern part of the island of Great Britain, which is part of the United Kingdom. Known for its rich history, it has influenced global culture, politics, and economics.
England's capital, London, is a leading global city known for its cultural and economic significance.
然后,以下两个陈述:
-
陈述1:英格兰位于北欧
-
陈述2:其首都是伦敦
可以与上下文进行比较:
-
陈述1:错误(北欧不在上下文中)
-
陈述2:正确(伦敦被定义为英格兰的首都)
这导致了上下文召回的计算:

这很重要,因为它可能包含正确的信息,但如果解决方案没有返回正确的上下文,它可能不会提供所有预期的答案部分。每个答案都是同等重要的。如果它更聪明,它可能会给有意义和相关的项目更多的权重。它一无所知。
一些额外的指标超出了本节开始时图表中的四个指标。其中一个与实体有关。
上下文实体召回
实体召回在解决方案中很有用,例如在帮助台,了解正确的实体(一个特定的相关信息、一个值或一个标签)是至关重要的。实体对于填写休假申请(休假类型、日期、小时)、提交费用报告(金额、参与者、日期、类别、目的、支付类型)、与销售数据交互(日期、金额、联系人、地址、产品、数量)或任何具有许多实体的表格都是必要的。这计算了上下文实体(CE)和事实真相实体(GE)的并集与事实真相实体数量的比例。值从零到一不等;高值表示更好的召回:

这个例子显示了真实情况中的实体(GE):
- 英格兰,北欧,伦敦
然后,在两个上下文示例(CE)中找到实体:
-
上下文示例 1: 英格兰,大不列颠,联合王国
-
内容示例 2: 英格兰,伦敦
根据实体匹配的并集计算分数:


从这个结论来看,实体 2 在实体匹配上的召回率更好。太多不重叠的实体在这个计算中是噪声。
结果不是确定的;尝试,尝试,再尝试
计算中存在一些问题,计算结果并不相同。这只是一个例子;每个模型的值都会不同。第一次的结果可能如下所示:
{'faithfulness': 0.5624, 'answer_relevancy': 0.7752, '****answer_correctness': 0.5484}
重新运行分析会产生不同的结果:
{'faithfulness': 0.6843, 'answer_relevancy': 0.7193, '****answer_correctness': 0.5246}
不要慌张。为什么它们会不同?相同的模型和数据应该给出相同的结果。可重复性不存在。他们建议重复运行三次并取平均值。这是度量质量增长中的痛点。它并不非常确定,就像模型本身一样。它是一个正在进行中的工作,但应该足够合适。
在线论坛对指标的质量有所抱怨。其他供应商提供新的改进指标,因此要保持警惕。这不是一个成熟的空间。它依赖于稳健的机器学习模型,但这些评分方法并不完美。
文章:RAGAs中评估函数可能的bug (https://github.com/explodinggradients/ragas/issues/660)
所有这些都与您经验中的指标有关。只需将模型数据与基准进行比较,并使用工具和技术进行改进。将分数与其他环境进行比较将没有意义。让我们以这个套件的UX指标结束。
用户体验指标
虽然之前的指标应该被监控并对整个团队有价值,但看到以下被认为是UX指标是很好的。让我们直接深入探讨。
答案语义相似性
这基于真实答案与答案相似性的关系。它基于语句向量化值的余弦相似性。寻找高度相关的值。范围从0到1,分数越高,生成的答案与真实答案之间的匹配度越好:
-
真实答案:iPhone 15在典型网页浏览、视频观看和社交媒体使用时的电池寿命约为11小时
-
高相似度答案:iPhone的全天候电池寿命可以处理非常活跃的手机用户的稳健媒体使用
-
低相似度答案:新一代的手机比上一代的电池寿命更长
我无法解释为什么RAGAs文档省略了评分指标,但我们可以没有它,因为这不是手工计算的。
我看到这很可能是基于Risch、Möller、Gutsche和Peitsch(2021)的工作,因此为了探索这篇文章和阅读Isabelle Nguyen的博客:
文章:语义答案相似性用于评估问答模型 by Risch et al. (https://arxiv.org/pdf/2108.06130)
文章:语义答案相似性:评分问答预测的更智能指标 by Isabelle Nguyen (https://www.deepset.ai/blog/semantic-answer-similarity-to-evaluate-qa)
Risch等人提供了如何评估答案质量的良好示例。使用这些示例来调整提示,以收紧或放宽LLM的响应。它还引入了F1分数的概念,这使我们转向答案正确性。
答案正确性
这基于答案的相似度评分。它检查生成的答案与真实答案的相似性以及事实是否得到支持。因此,如果它是准确的或者通过假阳性(FPs)或假阴性(FNs)误导我们,那么它很重要:
-
True positive (TP): 在真实答案和生成的答案中找到的事实或陈述
-
FP: 在生成的答案中找到但未在真实答案中找到的陈述或事实
-
FN: 在真实答案中找到但未在生成的答案中找到的事实或陈述
我将使用文档中的示例来保持其简单性:
-
Ground truth: 爱因斯坦于1879年出生于德国
-
High answer correctness: 1879年,爱因斯坦出生于德国
-
Low answer correctness: 爱因斯坦于1879年出生于西班牙
然后评估低答案正确性(与“爱因斯坦于1879年出生于西班牙”进行比较):
-
TP: 爱因斯坦于1879年出生
-
FP: 爱因斯坦出生于西班牙(错误陈述)
-
FN: 爱因斯坦出生于德国(德国不在答案中)
这是F1分数:

注意错误值的加权方式。如果没有错误信息,那么F1分数将是1的最大值。错误信息越多,分数就越趋向于零。如果没有真正的积极,分数将为零。
其他指标
明白这只是可用指标的一个样本;一些RAGAs框架项目被跳过了,我们提到还可以从其他框架中找到更多。寻找解释交互质量指标的重复性和可靠性。Rajeep Biswas(2023)在他的概述中涵盖了其他指标:
文章:评估大型语言模型(LLMs)的指标 (https://www.linkedin.com/pulse/evaluating-large-language-models-llms-standard-set-metrics-biswas-ecjlc/)
我不希望每个人都陷入数学的困境。欣赏和重视一个指标应该基于信任它能够做到它所说的。但我们必须设定一个基准。应用这些指标并衡量团队对它们的信任程度。使用和迭代得越多,判断结果就越容易。
RAGAs是一个新兴领域,指标将随着它而变化。对于RAGAs指标的另一种解释,请尝试Leonie Monigatti(2023)的这篇文章:
文章:使用RAGAs评估RAG应用 (https://towardsdatascience.com/evaluating-rag-applications-with-ragas-81d67b0ee31a)
指标提供了对质量的总体看法,但没有涉及指标可能涉及的必要详细更改。最大的具体问题是幻觉错误。监控和解决这些问题对于建立信任至关重要。
监控和分类幻觉错误的类型
减少幻觉是这本书中反复出现的一个主题。第3章,确定ChatGPT的最佳用例,涵盖了聊天日志中的记录错误。是时候探索更精细的分类这些错误的方法了。一旦错误被分类,就可以帮助模型、数据或训练来解决这些问题。有两种分类方法值得探索,从由Vectara按错误类型分类开始。
按错误类型分类
Vectara属于作为服务运行的RAGAs搜索工具类别。无论可用工具如何,识别和修复幻觉都是至关重要的。数据应显示一个很小的百分比,例如一到三个百分点,但达到这种质量水平需要一些工作。Vectara的分类很有帮助,因为它们是正交的,并汇总成它们版本的质量评分,他们称之为事实一致性评分。我对任何指标中的“一致性”这个词都很着迷。这是一种监控持续进步和跟踪质量的方法,即使人类需要帮助理解为什么值发生了变化。学习和测试越多,改进的结果就越好。这里只有指导,没有规则。
我将引用作为输入的精确示例,但随后将包括对输出问题的评论:
文章:自动化幻觉检测 (https://vectara.com/blog/automating-hallucination-detection-introducing-vectara-factual-consistency-score/)
"2019年,美国食品药品监督管理局(FDA)批准了埃博拉疫苗,距离2014年首次爆发已有五年。为了生产疫苗,科学家们必须对埃博拉病毒的DNA进行测序,然后确定可能的疫苗,并最终展示成功的临床试验。科学家们表示,尽管临床试验已经开始,但COVID-19疫苗今年可能不会准备好。"
输出类型1:关系错误:
"2019年,FDA拒绝批准埃博拉疫苗。"
分析:人工智能混淆了埃博拉和COVID-19之间的关系。 埃博拉疫苗于2019年获得批准。
注释:第 6 章,收集数据 – 内容为王,讨论了常见的关联错误,其中汉克·阿隆和汉克·格林伯格的宗教被混淆。对话中的关系,即使是人与人之间,也是复杂的。“它”、“他们”、“我们”、“我们”、“那里”、“你”、“你的”、“他们”和其他短语可能会与错误的主语连接,导致归因错误。不要让客户认为产品 A 做了只有产品 B 支持的事情。
输出类型 2:实体错误:
2019 年,FDA 批准了 COVID-19 疫苗 *。
分析:这种错误源于 AI 混淆了埃博拉和 COVID-19 的细节。COVID-19 于 2020 年 1 月在世界舞台上出现,美国疾病控制中心的公告,第一剂疫苗于 2020 年 12 月出现。
注释:实体识别是复杂的。要识别实体,需要理解来源。设计师、作家和项目经理必须了解他们的产品,并组建一支业务专家团队。在这种情况下,这是很容易的;每个人都经历过 COVID,可能会意识到时机是错误的。对于更技术性的材料,特别是涵盖多个产品的材料,很容易将错误的产品与无关的缺陷、规范或功能匹配。这些都是实体错误。可以查看编辑源文档或 RAGAs 工具如何分段或分块文档。某些文档可能更适合 LLM 的摄入。
输出类型 3:指代错误:
"2019 年,FDA 批准了埃博拉疫苗。他们说 COVID-19 疫苗今年不太可能准备好。"
分析:混淆源于代词“他们”;摘要指的是 FDA,但在原始文章中,“他们”指的是科学家。
注释:与类型 1 类似,这侧重于错误连接的主语。当“他们”指代科学家时,上下文是正确的,但由于分析的片段包含了 FDA 的引用,因此产生了混淆。如果源文档明确指出“科学家们说疫苗……”,这种错误就不会发生。然而,对于人类来说,阅读从不使用代词或限定词(更具体地指代名词的词,如“那本书”或“她的节目”)的文章会让人感到烦恼。工具应该更好地建立这些关系,或者内容将被重写。至少要认识到这个问题并纠正它。这种重复使用词汇,比如如果我们反复使用“科学家们说”,被称为爆发性。这将在本章后面再次讨论。可能人类可读的文档将不得不与为 RAG 优化的材料区分开来。当某事在顶部或文档侧边栏的第五页处时获取上下文是困难的。
输出类型 4:话语链接错误:
“为了生产疫苗,科学家们必须展示成功的人类试验,然后对病毒的 DNA 进行测序。”
分析:这种错误放置源于事件顺序的错误;原始文章指出,病毒DNA的排序先于成功 人体试验 的展示。
评论:这个问题与顺序有关,可能需要大量工作才能发现。您是否需要读两遍才能看到问题?步骤和顺序在技术文档中至关重要。如果有很多步骤说明文档,请创建一个专注于顺序的测试案例集合。它们的标签“话语链接错误”掩盖了这个示例的简单性。我不知道他们为什么使用这个词。也许他们想要一个比“关系”稍微不同的词。这看起来不是一个链接问题。没有提供更多细节。预计在接下来的几年中,在术语命名和测试标准化方面将会有所整合。Wynter等人(2023)可能会称这为逻辑不一致。
文章:Wynter等人(2023)撰写的《对大型语言模型输出的评估:话语和记忆》(An evaluation on large language model outputs: Discourse and memorization)(https://www.sciencedirect.com/science/article/pii/S2949719123000213)
让我分享另一种分类方法。
事实和忠实幻觉
第4章,评分故事,提供了一个手动分类方法。当它们有助于组织或解决问题时,利用新兴的定义和分类。正如Deval Shah讨论的那样,区分事实性和忠实幻觉可能会有所帮助。
文章:Deval Shah撰写的《LLM中幻觉的分类》(Taxonomy of Hallucinations in LLMs)(https://www.lakera.ai/blog/guide-to-hallucinations-in-large-language-models)
让我们从基于事实的问题开始,看看第10.1表。粗体表示幻觉。
| 类型 | 用户输入 | 模型输出 | 解释 |
|---|---|---|---|
| 事实 不一致 | 谁是MLB中最著名的犹太裔本垒打手? | 汉克·阿隆是MLB中最著名的犹太裔击球手。 | LLM的答案是错误的,因为汉克·格林伯格是MLB中最顶尖的犹太裔本垒打手。 |
| 事实 虚构 | 告诉我关于龙起源的故事。 | 龙在旧厄罗斯的北部火山中游荡,被皇室驯服。 | LLM的答案是虚构的,听起来像是来自《权力的游戏》。 |
表10.1 – 事实幻觉的例子
接下来,他将忠实度分解为指令、上下文和逻辑不一致性,并有一个关于LLM中幻觉起源的精彩部分。请访问它以获取更多信息。
黄的文章涵盖了幻觉来自数据源、训练和推理(如前所述),没有单一的基准可以涵盖所有问题,以及如何关键性地减轻幻觉。
文章:关于大型语言模型幻觉的调查:原理、分类、挑战和开放问题 by 黄等,2023 (https://arxiv.org/pdf/2311.05232)
缓解措施的章节使得阅读整篇文章都值得。以下将介绍这些策略。
监控期间减少问题的总体方法
基于监控的持续改进是这项技术的绝对必要条件。这一点在这本书的任何其他主题中都没有被重复得如此之多。在客户学习参与的同时,必须完成这一关怀和养护周期。他们对愚蠢的体验的容忍度很低,并且会远离糟糕的建议。重新吸引失去的客户需要付出努力。第11章,过程,专注于过程改进。首先,看看解决质量问题的通用方法。
分块、数据处理以及为LLM写作或编辑有助于。更多的方法正在野外出现。甚至ChatGPT也知道这些。一些方法帮助增强数据,使系统更能适应用户的多样性。反向翻译、文本摘要——尤其是在使用不同的LLM来补充主要LLM时——以及噪声注入(包括拼写错误和语法错误)有助于模型理解人类语言的不完美性。尝试以下提示:
What data augmentation techniques do you suggest to support a RAG pipeline in building enterprise LLMs?
应该很容易认识到甚至尊重多样性之所以重要的原因。Chat GPT 4o将回应数十种技术。人们不仅不同,而且也不完美。在数据集中生成有缺陷的示例,并让模型克服这些缺陷,变得更加健壮,都是训练的一部分。观察客户如何提问、犯错,并在需要帮助获得正确答案时重试,是非常好的。但不要仅凭LLM的话。让我们看看OpenAI的人类如何为一家企业客户构建解决方案。
OpenAI关于质量和如何衡量的案例研究
OpenAI有一些关于如何考虑评估的很好的开发者日演讲。这是一个清晰易懂的解释,没有超出人们的理解。查看它以了解更多关于评分的信息。最重要的收获是:
-
并非每个建议都导致了改进(带有勾选的项目有效)
-
需要一个团队来解决和精炼企业解决方案
-
通过方法论迭代方法,解决方案可以显著改进
图10.2 展示了OpenAI从视频中改进案例研究的方法。

图10.2 – 不同的技术可能成功或失败,以改善体验
视频:最大化LLM性能 技术 (https://youtu.be/ahnGLM-RC1Y)
图表和视频展示了成功(✔)和两种失败(🚫)的方法。他们通过各种解决方案找到了合适的匹配。视频没有展示他们所做的具体变化。没有解释为了提高准确性所做的变化。然而,这仍然是一个很好的案例研究,展示了质量上的显著提升。每一次努力都必须实施一个测试流程来系统性地评估。需要的不只是用户感知、调查和反馈。
系统化测试流程
评估任何系统都需要以下几点:
-
理解并能应用实际使用场景,并理解边缘情况
-
对测试量有统计上的信心
-
能够可靠且一致地重复或自动化测试
-
能够系统地做出改变以理解结果
在我们的人机测试中,有方法可以在五个客户中进行测试。通常,人工测试人员可以达到几十人,只有通过调查等手段有意地达到几千人。然而,当涉及到LLM时,自动化和规模对于成功至关重要。OpenAI在表10.2中建议,为了提高LLM的质量,需要更大的测试用例样本量。
| 检测差异 | 需要达到95%置信度的样本量 |
|---|---|
| 30% | ~10 |
| 10% | ~100 |
| 3% | ~1,000 |
| 1% | ~10,000 |
表10.2 – 检测差异百分比与测试用例数量的关系
表10.2中的图表来自OpenAI的测试策略文档。
文档:OpenAI对测试策略的看法 (https://platform.openai.com/docs/guides/prompt-engineering/strategy-test-changes-systematically)
随着测试用例样本数量的增加,信心也会增加。这是通过简单的假设和直接的解释来实现的。这应该可以回答关于测试规模与实际预期可靠性之间的问题。不要期望一个问题的答案有10,000个例子;要考虑更广泛的情况。测试用例将在一段时间内构建成一个集合。
虽然这对于对话助手来说最容易理解,但对于其他用例,如推荐系统,也需要进行一些思考。创建测试数据并理解各种推荐。每个专注的推荐都需要一组理解数据元素范围的测试用例。在推荐中有五个数据元素,每个元素有3到30个可能的值,可以产生30到150种组合。以下是一个智能空气净化器的推荐:
It is recommended that the air filters in Bank A and C be changed by April 3rd. Install the Aerterra model 2025m filters this time; they are ordered and will arrive by March 20th. The energy cost increase due to clogged filters is an additional $43.50 (3.2%) per day. Air quality is 17% worse than expected due to smoke from regional forest fires.
这些建议针对大型商业建筑,基于空气质量指标、系统运行能耗、过滤灰尘容量、过滤类型以及过滤器的当前灰尘程度。在这种情况下,有数千种可能的组合和数十项建议。系统必须处理所有这些实体、变量和建议(见加粗项目)。因此,需要数千个测试用例,并且需要对结果进行验证,以确保提供良好的建议。
每个专业领域也乘以支持的语言数量,测试矩阵将随之增长。这些必须自动化。按主题分解测试用例有助于更好地理解问题的规模。回想一下第6章,数据收集——内容为王的联盟例子。有400个常见问题解答和询问每个问题的多种方式。每个常见问题解答的五个测试用例将超过2000个测试用例。
测试用例可以来自人类或LLM。一个例子是如何“报销乔氏餐厅的21.46美元客户晚餐”;当进行调查时,100名参与者被问及他们会如何表达。他们生成了244种不同的表述,其中87%是独特的。以下是表10.3中的十个例子以及这些潜在测试用例的一些分析。
| 测试用例表述 – 人工生成 | 测试 用例考虑因素 |
| --- |
| 在乔氏餐厅的21.46美元晚餐 | 没有提及意图;LLM应该如何处理这些信息?它可能会与约会混淆。金额有所帮助。 |
| 12/12/18, 晚餐,21.46 | 注意日期格式含糊不清(MM/DD或DD/MM?),没有明确表示这是一笔费用,也没有提及货币。 |
| 与我的同事丽莎·琼斯和 客户 在乔氏餐厅创建21.46美元的费用 | 意图、金额、地点和细节。是个好例子。 |
| 晚餐 - 客户拜访 - 21.46加拿大元 乔氏餐厅 | 指出使用加拿大元。 |
| 晚餐 - 乔氏餐厅 - $****21.46 | 简洁,但包含了所需的5项中的3项。是个好开始。 |
| 2018年10月 3日 的乔氏餐厅客户拜访费用21美元46美分 | 注意金额格式是口语化的。 |
| 嘿,我用了公司的Amex卡支付晚餐。你没看到吗 ? | 期望信用卡集成能够找到他的费用并将其用于报销。 |
| 报销我21.46美元的客户拜访费用,与 乔治·史密斯 会面 | 合理,未提及晚餐或约会日期。 |
| 提交21.46美元的客户拜访费用 | 缺少大量信息,但合理。 |
| 请为我报销21.46美元的乔氏餐厅晚餐费用,与以下人员 会面 | 对话式,并期望提供更多细节。 |
表10.3 – 由人工主体编写的潜在测试用例
这些测试用例是由人类生成的,但LLM模型也可以生成测试用例。让我们比较一下当提示ChatGPT 3.5时会发生什么:
I will give you 5 pieces of information, generate test cases that may or may not include them all, use a diverse human speech to communicate this to a virtual agent, and start creating an expense in an expense assistant. The most robust answer would look like this, "Expense a meal receipt for $21.46 US dollars for a client meeting today with one person at Joes Eatery". The least robust version would be "start an expense." The information includes the following values for these attributes: Expense Type: Meal, Amount: $21.46 US, Date 8/15/2024, Location: Joe's Eatery, Purpose: Client Lunch. Generate 10 examples to test an LLM that is great at understanding expenses.
ChatGPT 3.5的结果显示在表10.4中。存在差异。
| 测试用例语句 – 由OpenAI生成 | 测试考虑因素 |
|---|---|
| “记录2024年8月15日在Joe’s Eatery为客户午餐的$21.46餐费。” | 所有元素都包含在内,使用了尴尬的“记录”。 |
| “2024年8月15日在Joe’s Eatery与客户用餐花费$21.46。” | 所有元素,使用美国日期格式。 |
| “今天在Joe’s Eatery与客户用餐,增加$21.46的餐费。” | 所有元素,使用了“今天”。 |
| “费用:餐费。金额:$21.46。日期:2024年8月15日。地点:Joe’s Eatery。目的: 客户午餐。” | 非对话式。没有人会这样记录。 |
| “在2024年8月15日于Joe’s Eatery为客户午餐记录$21.46的费用。” | 所有元素,使用了尴尬的“登记”。 |
| “记录2024年8月15日在Joe’s Eatery为客户午餐的$21.46餐费。” | 所有元素。 |
| “在2024年8月15日为客户午餐在Joe’s Eatery增加$21.46的费用。” | 所有元素。 |
| “费用:餐费。金额:$21.46。日期:2024年8月15日。地点:Joe’s Eatery。目的: 客户午餐。” | 非对话式。没有人会这样记录。 |
| “记录于2024年8月15日在Joe’s Eatery与客户用餐花费$21.46。” | 所有元素,几乎与上一条相同。 |
表10.4 – ChatGPT 3.5编写的潜在测试用例
通过比较结果,可以得出一些结论:
-
人类只包括了一些信息
-
人类偏离了主题,并期望提供更多信息
-
ChatGPT忽略了我要求变化包含内容的要求
-
ChatGPT使用了人类不会使用的词汇(如Record和Register)
-
ChatGPT没有很大程度地变化案例,提示词可以改进
这是一个简单的例子。人类在交流时不可预测且具有人性,因此在分配资源创建测试用例时要考虑这一点。可以花时间改进提示词,并迫使ChatGPT提供更好、更多样化的结果。或者,一个新的模型可以提供质量上的重大飞跃。表10.5显示了GPT 40的结果。与相同的提示词和无提示工程相比,这更好。
| ChatGPT 40个响应 | 测试考虑因素 |
|---|---|
| 详细说明:请报销2024年8月15日在Joe’s Eatery为客户午餐的$21.46美元餐费。 | 结构完整。 |
| 详细且有所变化:创建一份2024年8月15日从Joe’s Eatery为客户的午餐花费$21.46美元的餐费报告。 | 变化了日期格式。 |
| 中等详细程度:记录2024年8月15日在Joe’s Eatery与客户会面花费$21.46的餐费。 | 日志是一个不错的选择。 |
| 中等详细程度,结构不同:2024年8月15日从Joe’s Eatery为客户的午餐花费$21.46。 | “午餐”不是人类会使用的东西。 |
| 极简细节:在Joe’s Eatery开始$21.46的餐费。 | “开始”是一个好的触发器,但它很通用。 |
| 带日期的极简细节:记录2024年8月15日客户会议的$21.46餐费。 | “记录”仍然不是很好。 |
| 基本:为客户午餐输入费用$21.46。 | 这很好,也很简短。 |
| 基本带位置:在Joe’s Eatery记录客户午餐费用为$21.46。 | 这是中等详细程度条目的简短版本。 |
| 非常简短:为客户餐费支付$21.46。 | 这非常简短,需要后续跟进。 |
| 最不稳健:开始一个费用。 | 这对于人类来说是优秀且常见的。 |
表10.5 – ChatGPT 4o编写的潜在测试用例
我还包含了它们的标签,展示了它们提供的用例类型。监控实际用户输入,使评估从生成数据中获得的价值变得更容易。一个人很难像每个人一样思考,所以不要尝试。使用监控资源和日志分析来获取稳健的训练数据和测试用例。
当空间变得更加复杂时,问题会变得更加困难。回想一下我们来自第1章的图表,认识到设计在ChatGPT中的力量,重新共享为图10.3。

图10.3 – 每次操作失败的概率都会增加
当一个LLM正确率达到60%时,在六次交互内失败的概率为95%。因此,要将这个指标提高到97%或更高,需要大量的测试和工作。生成正确的测试用例集有助于监控问题。由于监控,可以通过将测试用例应用于最新模型来评估迁移到新模型。当新模型或版本发生变化时,这是可以接受的,正如3.5、4o和4o-mini之间的差异所示(它返回了与4o相似的结果)。然而,由于mini的成本仅为3.5的15%,一旦通过测试用例验证,迁移到实际生产系统是有意义的。LLM没有向后兼容的保证。测试努力的规模可以轻松达到数十万个用例。一个测试矩阵的例子将使这一点更加清晰。
测试矩阵方法
由于这些项目影响人类性能,必须建立传统的质量保证(QA)团队来创建有效的测试矩阵。他们可以开发自动化并管理流程。设计负责人可以处理示例并确保记录失败情况。
使用LLM,监控将揭示测试用例最初未涵盖的对话。这是会发生的。只需考虑如何优先考虑对这些改进的改进,就像任何其他问题一样。一旦它们被了解,考虑它们是否值得包含在测试中。
可以单独测试每个技能,然后当组合一系列技能时,可能会出现一些问题。技能是模型可以执行的事情。它可以与库存系统连接,生成报告数字,或安排预约。这些都是技能。一种方法是用一个孤立区域的全部内容来构建基础模型,这样我们就可以评估其在孤立状态下的有效性。为每个区域都这样做。然后,结合所有(或一系列区域)重新测试,以更好地理解摄入数据之间的重叠或复杂性。QA 团队将忙于设置这些测试工具。产品人员将忙于理解结果。这个例子假设采用单一模型方法来处理所有交互,但我们已经提供了多个例子,其中多模态方法是一个更好的解决方案。您的选择。测试类型的概念仍然适用。拥有不同类型的测试套件很有价值。我们可以审查对话交互的测试类型:
-
域内:技能区域应该理解和能够回答的问题。它们是餐点的主要内容,是主菜。要正确处理这些:
What hours can I drop off recycling? How long will the new battery last? What is the commission schedule if I sign tomorrow? -
域外:一组基于缺乏必要业务数据访问而预期技能无法理解的问题。因为它们不是针对这个业务的。然而,这些问题是真实的,听起来与客户的需求相似,只是处于错误的环境中。通用模型可能想要回答这些问题。它们是域内问题的干扰项。因此,每个感兴趣的领域都将有其域外项目的集合。这些例子可能听起来与大型语言模型(LLM)很相似,因为结构和单词看起来很熟悉,例如(股票)订单、下载(报表)、账户(详情)、转账(资金)、检查(状态)和(订单)历史:
What is the fine for a late order? Can I download my AMEX account history? Can I transfer my car registration to someone else? Can you check the service history for my car?认识到这些例子听起来很接近,但实际上与联盟无关。在银行的这个背景下,它们听起来很令人困惑。它们很接近,客户甚至可能不知道他们不能就这些问题询问这项技能。这里有一些关于域外理解概念更多的信息。
文章:域外检测 (https://www.elevait.de/blog/out-of-domain-detection)
-
随机:垃圾和不相关的内容,不应导致有价值的响应。可能是由于键盘卡住、语音转文字质量差、某人口袋里的手机在随机操作,或者愚蠢、不相关的问题:
Qfhefkhjeksfdfdfd Its dnot the goprome we spechtded Is a dog a cat? Are pickles part of the Dolphin family?这些是每个技能相同的随机问题。
-
邻居:从所有其他技能中收集的领域内测试用例的集合,用于打破感兴趣的区域。一个问题来自一个区域是否重叠并导致不同的错误响应?所以,当所有这些专业知识都集中在用户界面(UI)中时,这是一个问题。如果LLM无法解决这种歧义问题,应该解决它。它可能像在这个例子中一样修复它:
我需要周报
Did you mean the sales,
inventory, or staff report?
完整的销售报告
Here is the sales report for all
regions for the week ending…
如果只有一个特性包含周报,那么会有清晰度。然而,一旦多个特性包含报告,看看一个解决方案区域的某些测试用例如何影响其他区域。在向量空间中思考。所有这些问题要求报告都可以非常相似。因此,它们是邻居。
- 语言:考虑特定语言的测试用例。一开始是将现有问题翻译成其他语言。然而,如第5章中提到的,定义期望体验,考虑该语言、文化和细微差别,这些都需要为该特定语言创建原创内容。假设至少10%的测试用例对该语言将是独特的。
构建矩阵
那么,每个用例集合的测试矩阵会是什么样子?一家银行可能有七个主要业务领域需要支持。根据使用频率,他们将扩大对大或复杂领域的测试。为了使用所解释的类型测试每个区域,它可能看起来像表10.6。
| 产品领域 | 领域内 | 领域外 | 随机 | 邻居 |
|---|---|---|---|---|
| 账户报表 | 303 | 1,002 | 400 | 1,129 |
| 银行转账 | 78 | 423 | 400 | 1,354 |
| 账户设置 | 150 | 301 | 400 | 1,282 |
| 存款 和取款 | 201 | 400 | 400 | 1,231 |
| 训练 | 50 | 375 | 400 | 1,382 |
| 交易股票 和债券 | 605 | 1,320 | 400 | 827 |
| 奖励 | 45 | 400 | 400 | 1,387 |
| 子总计(17,045) | 1,432 | 4,221 | 2,800 | 8,592 |
| 十语言测试(10%) | 14,320 | 42,210 | 28,000 | 85,920 |
| 独特语言测试(10%) | 1,432 | 4,221 | 0 | 0 |
| 所有测试 | 193,148 |
表10.6 – 用于验证广泛对话式人工智能的测试用例矩阵
交易股票和债券是最关键的领域,测试案例最多。奖励计划是最小的。注意每个领域的细分测试。然后,假设有十种支持的翻译,测试数量会增长。邻近测试的数量会有所变化,因为它是在域内测试的子总和中减去该类别的域内测试数量。语言测试假设在十个外语部署中,每种语言进行一对一的克隆测试。对于可能特定于当地语言的10%的语言测试,还有一个额外的行。如前所述,在某些语言中,只进行到这一步的测试是可以接受的,关于每种语言提供多少支持。这就是为什么我们的17,045个测试案例的英语测试随着语言支持的增长而增加到近200 K。以下是一些关于扩展语言测试的提示:
-
仅间接翻译货币:“我今天乘坐了25美元的Uber”,翻译成日语可能会将货币符号改为日元(¥)。但25¥对于出租车来说不是一个有意义的值(大约是美元或欧元中的25美分),因此用太多错误数字训练系统可能会使模型困惑。
-
使用本地化值:回想一下我们关于Uber不是普遍适用的例子。Uber的直接翻译将是日语中的Uber,但更好的例子是使用Go,这是日本的出租车叫车应用,作为训练示例。
-
使用习惯用语:测试案例和样本数据都可以从客户如何沟通中受益。例如,在美国本地化美元,在美元、现金上进行训练,但不必一定使用更神秘的俚语,如moolah、coin、cheddar、dough或greenbacks,这是有意义的。过度训练可能会产生意外的后果。继续我们的日本例子,训练JPY(日元的代码),但日本日元没有俚语。因此,习惯用语的逐字翻译是不预期的。
-
测试规模与质量相关联:例如,测试20%是否足够用于不常使用的语言。由于基础模型有更多的训练数据,LLMs在某些语言上表现更好。不要期望有魔法,尤其是在企业集成方面。API和响应之间需要翻译步骤。
不要让测试的数量听起来令人恐惧。对于许多企业应用来说,这些数字很低。我知道现在有一个团队大约有500,000个测试,仅限于英语。自动化和QA工程师将忙于维护和与数据团队和产品团队合作以扩大这个集合。不要为了测试而测试。使用测试来发现LLM理解中的差距。回想一下,模型或新数据或新功能区域的任何变化都会改变解决方案的质量。在您的LLM之旅的这一部分,始终关心(并喂养)(ABC,如果Glengarry Glen Ross的引用是可以接受的。谷歌一下)。这样做的方式是提高检索能力。
提高检索能力
我为这本书审查了一段简短的视频。视频中使用的概念解释来自RAGAs文档。他们开始使用数据结果来改进整体解决方案。在Chris Alexiuk在视频的前五分钟内快速设置环境之后,Greg Loughnane博士在获得好东西时会放慢速度。以下是关于用户体验相关元素的总结:
-
一次改进一个指标
-
专注于检索器改进有助于生成
-
尝试不同的检索器以获得更好的上下文(@24分钟)——扩展匹配上下文之前和之后的内容捕获。
-
看看上下文的相关性如何随着上下文窗口大小的增加而下降;块大小很重要(这很有道理,因为分数的分母中有更多无关的上下文)(@31分钟)
-
其他工具,如LangChain和LlamaIndex,提供评估指标
一切都关乎改进;数据科学家可以尝试许多选项和变量来平衡成本、性能和质量。学会理解他们可以改变的内容以及它对质量的影响。由于这项工作属于数据科学家的专业领域,因此关注理解结果的质量。还有其他一些感兴趣的指标。让我们简要介绍一下这些指标。
广泛的LLM评估指标
RAGAs因其受欢迎、有一套良好的指标,并且与传统确定性模型使用的一致性而被审查。但并非只有这一种方法。我们提到了DeepEval,但还有更多。其中一些方法具有听起来很有吸引力的特定指标。每个供应商都可以有自己的方法,所以让我透露一些可以为企业解决方案增加价值的更多指标,见表10.7。
| 指标 | 目的 | 应用 | 参考 |
|---|---|---|---|
| Rouge | 计算自动生成摘要的有效性 | 书籍,技术文档,文章,营销材料等 | 文章:如何使用Rouge 2.0 (https://kavita-ganesan.com/rouge2-usage-documentation/) |
| 人工评估 | 确保用户交互质量 | 对话式交互 | 参见第3章,识别ChatGPT的最佳用例 |
| 年龄特定 适用性 | 匹配阅读或教育水平 | 课程辅导,指导 | 专家手动审查和内容过滤工具 |
| 毒性降低 | 维护面向公众和公共部门的解决方案的风格和语气 | 所有生成输出,包括推荐 | 毒性及偏见检测软件,情感分析 |
| 困惑度 | 基于其训练,生成的文本的可能性 | 内容生成 | 文章:困惑度和突发性 (https://guides.library.unlv.edu/c.php?g=1361336 &p=10054021) |
| 突发性 | 文档中单词或短语的重复 | 检测内容是由AI还是人类编写的 | 产品:Originality AI (https://originality.ai/blog/chat-zero) |
表10.7 – 其他评估指标
一些来自Aisera的表10.7内容:LLM评估:指标和基准性能 (https://aisera.com/blog/llm-evaluation/#5-benchmarking-steps-for-a-better-evaluation-of-llm-performance)。
所有指标都有收集和分析的合理原因。框架的维护需要时间和金钱,而一些以数据为中心的指标具有价值,因为它们会影响成本。每天进行的LLM对话数量或使用的标记数量有助于预算编制。考虑如何从这些指标中获得价值,以帮助理解客户的需求。微软也有一些关于以数据为中心的指标的好文章。以下是一些具有可用性影响的指标:
-
并发用户:这有时可能与性能相关(过多的同时在线用户可能会减慢某些服务,影响服务水平和客户满意度)。请记住,没有所谓的“慢但好”的用户界面。在聊天的情况下,如果有人工代理可以进行交接,那么如果人工代理的可用性不匹配并发用户指标,响应时间将会受到影响。
-
标记使用:标记使用=成本。如第6章“收集数据 – 内容为王”中所述,寻找使用成本较低但保持或提高质量的机会。这意味着降低客户成本或能够提供免费或成本较低的层级以服务更广泛的受众。
-
过滤干预:如果流程有处理质量偏差和不适当行为的护栏,则监控这些干预措施的发生率,并审查它们以决定是否需要对此采取任何措施。我们提到,在企业软件中,通常对于授权的认证用户,令人厌恶的行为很少成为问题,这与社交媒体不同。这种情况可能发生,阻止它是很好的;然而,如果需要避免这些条件或调整触发器以避免不合适的时间干预(例如,对可能完全合理的请求过于严格),请查看这些文章。
文章:如何评估LLMs:完整的指标框架 (https://www.microsoft.com/en-us/research/group/experimentation-platform-exp/articles/how-to-evaluate-llms-a-complete-metric-framework/)
文章:可信赖实验模式:实验阶段 (https://www.microsoft.com/en-us/research/group/experimentation-platform-exp/articles/patterns-of-trustworthy-experimentation-during-experiment-stage/)
这些是理解各种数据驱动指标的工具,但循环中还有更软的一面,即人类客户。尽管这些数据可能以各种方式影响我们的客户,但了解客户的感知是有帮助的。现在是时候探索一些可用性指标,以展示系统在客户眼中的运作方式。
使用可用性指标进行监控
早期章节探讨了评估和发现问题的方法。这可以通过使用清单、一套期望的UX规则或一套启发式原则来实现,这些原则在正确应用时有助于快速暴露问题。最后一章涵盖了这些方法,留下了更多令人兴奋的指标。
有多种方式可以解释系统的表现。由于已经涵盖了调查、访谈和其他主观指标,让我们来关注如何衡量随时间推移的质量变化。这意味着通过让客户回答具体问题来衡量体验的保真度,从而得出净推荐值(NPS)、一个单问题调查、更稳健且耗时的十问题软件可用性量表(SUS)指标,或其他形式的客户满意度(CSAT)调查。
首先,认识到使用评分来衡量可用性是有帮助的。它只会给出系统性能的总体感觉。它不会揭露设计缺陷(除非有开放式后续问题)。这样做有两个很好的理由。首先,它很容易与其他产品进行比较,看看解决方案是否满足预期,并且是否超过了竞争中发现的内容,其次,为了建立一个基线,随着时间的推移重新进行这些评估以衡量进展。这意味着在通常与产品互动后随机请求反馈。由于同一客户并不总是被要求提供反馈,因此需要更多的数据来准确估计。对于像NPS这样的简单问题,这是一个简单的要求。编码和请求SUS评分需要更多的努力。这些可以在任何时间通过更多的解释性和开放式问题进行补充。
净推荐者评分(NPS)
NICE Satmetrix是NPS的共同开发者和所有者。它因其简单性而广为人知,作为品牌质量的简单基准。由于其简单性,它也被用于产品分析。名义上,企业的客户会被问以下问题:
On a scale of 0 to 10, how likely are you to recommend our business to a friend or colleague?
这个经典问题简单易问,也容易计算。这是一个粗略的描述,它可以被适应:
On a scale of 0 to 10, how likely are you to recommend our conversational assistant to a friend or colleague?
将措辞调整到你的产品上。Retently网站出色地解释了如何调整措辞以使其适用于你的用例。我不会在这里重复这些内容。如果你准备好部署NPS,请阅读这篇文章。
文章:NPS和如何修改调查 (https://www.retently.com/blog/nps-survey-templates/)
根据产品或服务部署此问题的版本。一个典型的模式是每50个客户就通过一个简单的对话框提示、侧面板,甚至在设计允许的情况下直接内联请求反馈。回答是可选的。一些客户可能不会参与。通常不会再次询问同一客户;标记他们的账户以避免过度询问调查问题。自动汇总结果(希望这是一个随机样本,需要与发布号相关联)以生成NPS。表10.8涵盖了收集NPS或SUS评分的设计模式。
| 用例 | 部署方法 |
|---|---|
| 对话式 聊天助手 | 在对话有明确结束点时内联 |
| 对话式 聊天助手 | 在聊天结束时作为对话框 |
| 对话式 聊天助手 | 在反馈流程之后(例如,来自“提供反馈”图标或标签) |
| 推荐者 | 在会话结束时 |
| 推荐者 | 在评估推荐的任何反馈过程结束时 |
| Web或 应用程序UI | 在交易或重要流程结束时 |
| 电话树 | 在交易或重要流程结束时(即,是否有时间进行一题调查?) |
| 短信,Slack,Teams | 在使用一定数量后 |
| 后端或 隐藏AI | 在使用一定数量后,或重要流程的结束时 |
| 通过电子邮件 | 购买后,互动或支持后 |
| 在收据上,销售点的反馈卡或 服务中 | 通过二维码 |
| 电话通话 | 通过通话结束时的人工或自动跟进(您将被转接以回答关于您今天体验的简短一题调查) |
| 在 现实生活中的互动中 | 通过询问客户,并可能手动输入分数和任何反馈 |
表10.8 – 部署NPS的方法
回顾我们关于偏差的讨论。它将在结果中体现。有时,人们是取悦他人的人,所以当被要求亲自提供反馈时,他们可能不会给出好的反馈。他们最近的互动将影响他们的输入。如果互动是失败的,它将影响数据。确保有一个好的样本;例如,如果反馈是从只处理账户关闭的一个渠道收集的,那么预期结果会偏斜。
问题的提问方式可能会引入偏差。我见过一些例子,它们为调查问题的数字选择项着色,从而影响了结果。为了减少调查问题的偏差,请对所有选项使用中性颜色。一些客户可能会犹豫给出低分,因为它是用红色着色的,如图图10**.4所示。使用之前讨论过的通用李克特量表。然而,一旦他们选择了分数,询问一个可选的后续问题是可以的。这将为他们提供推理的背景。

图10.4 – NPS问题的示例 – 使用中性颜色进行评分
颜色分类结果;不要在客户调查中使用颜色。红色分数是负面因素,这些人不会成为倡导者,可能会远离使用该产品。得分为7或8的人是被动者;他们不会妨碍,但也不是很大帮助。稍加思考,他们就会切换渠道或甚至产品。这留下了9分和10分的推荐者,因此得名。推荐者会热情地为品牌或产品辩护,并向他人推荐解决方案。计算如下:

范围是从-100到100。将你的产品与其他品牌进行比较是公平的。Simplestat报告称,企业领域的平均分数是44。表10.9提供了品牌和NPS的一些示例。即使是深受喜爱的品牌,其分数也在60和70之间。品牌通常会比服务或产品有显著更高的分数。在决定产品的评分好坏时,请考虑这一点。比较发布、渠道或竞争产品可以为分数提供背景。

表10.9 – 一些产品和服务的示例NPS
分数是从这些资源收集的:
文章:表格的NPS分数,Nice来源 (https://info.nice.com/rs/338-EJP-431/images/NICE-Satmetrix-infographic-2018-b2c-nps-benchmarks-050418.pdf)
文章:表格的NPS分数,CustomerGauge来源 (https://customergauge.com/benchmarks/blog/nps-saas-net-promoter-score-benchmarks)
文章:产品的典型NPS (https://www.simplesat.io/understanding-feedback/net-promoter-score-benchmarks/)
当我们在Oracle工作时,我们测试并分享了Expense Assistant的NPS给我们的客户,在其首次发布时,得分为55。这比之前的解决方案要高得多;这被认为是一个巨大的胜利。然而,仍有改进的空间,因此使用了包括本书中提到的各种方法。
使用这些示例分数或探索其他在线帖子中的分数。这只是一个通用基准,但快速且简单。它不指导下一步该去哪里,通常需要大约100个回复(大致)才能有效。然而,它也只需要客户几秒钟的时间。还有关于这种方法有效性的批评。在尝试收集NPS时,请记住所有这些。我认为这是值得的。如果应用程序被编码以收集见解,除了更稳健的反馈方法外,还可以将NPS作为另一种方法。所有这些都来自同一个UX方法!
文章:净推荐值(NPS) (https://en.wikipedia.org/wiki/Net_promoter_score)
考虑SUS作为一个提供更多洞察力的稳健指标。
SUS
NPS是一个单问题形式,而软件可用性量表(SUS)是一个包含10个问题的调查,专注于可用性。这是一种衡量用户体验或对话质量的有效方式。它可以用于带有推荐器的UI,但如果没有额外的问题,很难挖掘出一个元素(如推荐)的具体细节。它是一个100分制的量表,因此很容易解释分数。
它使用从一到五的Likert量表,范围从“强烈不同意”到“强烈同意”。想象一下在使用应用程序后询问这些问题会是什么感觉。以下十道问题是这样的:
-
我认为我会经常使用这个系统。
-
我发现这个系统过于复杂。
-
我认为这个系统使用起来很简单。
-
我认为我需要技术人员的支持才能使用这个系统。
-
我觉得这个系统中的各种功能都得到了很好的整合。
-
我认为这个系统中的不一致性太多了。
-
我想象大多数人会很快学会使用这个系统。
-
我发现这个系统使用起来非常繁琐。
-
我在使用这个系统时感到非常自信。
-
在我能够开始使用这个系统之前,我需要学习很多东西。
SUS问题遵循我们在调查讨论中探讨的一种技巧。一些问题用积极的措辞(我感觉非常自信),而另一些问题则用消极的措辞(我发现这个系统非常繁琐),以避免受访者自动回答。帕特里克·劳森在他的博客文章中指出,这些问题也存在冗余。这在调查中很常见。同一个问题以略微不同的方式提出,以创建一个更稳健的指标。更多关于SUS的信息,请参阅帕特里克的后台文章:
文章:如何使用SUS获取可用性评分,作者:帕特里克·劳森(https://www.thinkcompany.com/blog/how-to-sus-out-usability-scores/)
获取1到100分的计算方法仅适用于此模型。从每个正向项目的分数中减去1,从负向项目的答案中减去5,然后将所有这些分数加起来。总和乘以2.5得到总分。将分数与杰夫·索尔从MeasuringU分享的图10.5中的结果进行比较。他包括了与NPS的比较。

图10.5 – 如何解读SUS评分
杰夫·索尔进一步探讨了传统措辞的技术评分和影响。他们指出,1980年代约翰·布鲁克为该指标所做的某些工作选择可能显得过时。阅读他们的帖子了解更多关于评分和可靠性的信息。它经得起时间的考验:
文章:SUS过时了吗 (https://measuringu.com/is-the-sus-too-antiquated/)
杰夫将分数和细节进一步拆解。即使你已经使用了SUS多年,我也鼓励你探索他的帖子:
文章:解读SUS评分 (https://measuringu.com/interpret-sus-score/)
前往政府网站了解SUS实施详情。
文章:软件可用性量表 (https://www.usability.gov/how-to-and-tools/methods/system-usability-scale.html)
与NPS相比,SUS提供了更多细节以便深入挖掘,但并不提供关于要修复什么的具体信息。这些方法可以通过开放式问题来跟进,以揭示问题。这些额外的细节是有价值且可执行的。SUS评分在时间上传达质量,并为进度提供了广泛的可见性。
通过启发式评估进行细化
启发式评估在第第9章中有所介绍,指南和启发式原则。同样的方法,以及从第4章中来的分类和用户评分,评分故事,可以在开发过程的这个阶段使用。所有这些都适用于监控和评估结果。我们可以对问题进行分类,评分以优先改进,然后对数据、提示和模型改进进行细化(或者甚至测试新模型以合并到解决方案中),或者进行新的集成。你做到了!应用你所知道的知识。这引出了我们在第11章中关于处理典型开发组织内对话式AI流程的讨论,过程。
摘要
两端的工具都得到了覆盖:分析工具,例如带有度量指标的RAGAs(抱歉数学相关!),以及可用性工具,用于从客户的角度监控持续的改进。这些和监控对话将流入对RAG材料、说明/提示、微调和在改进与服务和API集成的同时切换到新模型的所需改进。要做好这一点,这需要适应一个能够处理LLMs动态特性的流程。
下一章将提供有关实施有利于LLM开发和与工程集成以持续改进LLM解决方案的流程的见解。
参考文献
![]() |
本章中提到的链接、书籍推荐和GitHub文件已发布在参考文献页面上。网页:第10章参考文献 (https://uxdforai.com/references#C10) |
|---|
第十一章:流程
并非所有公司都是用同样的方式建立的。发展过程正在全速前进,时间和资源都得到了合理分配,用于在正确的时间和规模上完成设计步骤。完美。最好是由你来写这一章。企业规模的问题伴随着企业规模的问题。让我最头疼的是将设计解决方案融入实际环境所需的时间。时间是优秀设计的敌人。随着技术的每一次进步,上市时间和迭代周期都必须更快。今天的用户已不再是过去的用户。
尽快提供最佳解决方案,否则可能失去客户。因此,即使在敏捷的世界里(当我们提到敏捷时,包括Scrum、精益和软件开发的其他迭代现代方法),其目标也是及时交付质量。设计和投入其中的努力可能会让希望快速行动的工程团队感到头疼。记住我们关于便宜、快速和好的讨论,选择两个吗?快速是必要的,以免疏远客户,而客户不再接受企业解决方案中的低质量,因此它必须是好的。因此,它可能并不便宜。嗯,这里的便宜意味着投入资源来确保它是好的。前几章讨论了如何让它变得好,但我们需要将这些方法、实践、指南和启发式方法应用于以有利于将优质工作推向市场的方式。
在本章中,我们将讨论在软件开发组织中融入对话设计的两个领域:
-
将设计思维融入开发
-
设计内容改进生命周期
将设计思维融入开发
本书的大部分内容是关于使用解决问题的步骤,考虑用户需求,细化问题,以及创建和测试解决方案。这是设计思维的精髓。你可能即使不知道它的名字,也在做这些事情。这种动手方法通过书中涵盖的研究方法强调用户同理心。然而,从实际的角度来看,一个设计思维者会在每个流程步骤中记住用户目标。因为敏捷开发与生成式人工智能的迭代特性非常契合,所以本章揭示了在企业软件开发组织中使生成式人工智能成功的技巧。这对提供企业工具的公司和使用企业工具与大众合作的公司都适用。应该清楚,在敏捷人工智能世界中,两者都有令人信服的使用案例和设计思维带来的挑战。
这听起来可能有些严厉。如果一个组织不使用敏捷或任何形式的迭代开发,那么成功的生成式人工智能将遥不可及。我们生活在一个新的、快节奏的世界,这个世界需要一个强大的迭代方法来支持它。我强烈建议考虑这一点。有大量的资源可以利用,从早期讨论的规模化敏捷框架到敏捷联盟以及更多。AI工具正在许多开发过程中变得至关重要。实际上,它们也应该被部署给客户。涵盖了提示工程和微调的工具,但还有大量的AI附加组件可以支持待办事项管理、编写更好的问题或丰富开发过程。在Atlassian Marketplace的Jira和Confluence中,有超过50个工具被标记为AI应用。我无法评论它们的好坏,但肯定的是,最终,其中一些将节省时间并提高工作流程效率。
网站:Atlassian 的人工智能市场 (https://marketplace.atlassian.com/categories/artificial-intelligence)
这些工具超出了本书的范围,但它们有助于团队向更高效的过程迈进。关键在于这是一个不断变化的世界。适应并学习我们的内容、客户和人工智能如何协同工作,然后能够快速对生产进行改进。
如果有人需要观看这个视频,我会感到惊讶。如果你是敏捷开发的新手,请参加为期三天的敏捷Scrum课程。这些课程可能会改变你的生活,而且有很多东西可以学习。
视频:敏捷简介 (https://www.agilealliance.org/agile101/agile-basics/introduction-to-agile/)
软件行业能够过渡到以AI为中心的方法。第17届年度敏捷状态调查(基于2023年的结果,2024年发布)的结果,共有788位受访者参与,非常引人注目。因为该行业绝大多数采用敏捷方法,并且我们的所有建议都适用于任何方法,所以重点是参考敏捷方法以及如何解决实施过程中的问题。71%的调查公司使用敏捷方法。一些团队使用其他现代方法,例如DevOps(开发和运营作为一个团队工作)、迭代、精益(只专注于最关键的项目,不进行多任务处理)或螺旋(一个四阶段重复过程)。甚至瀑布方法(一个完整的阶段,不允许回退)在28%的受访者中也被发现。
有敏捷的粉丝,但也有批评者。最大的抱怨集中在无休止的节奏和故事点。故事点用于衡量工作量,但有些人主张使用小时数这种易于理解的测量方式。任何对某人生活方式的重大改变都会遭到抱怨。改变是困难的,但改变是不可避免的。技术世界的变革步伐一直在不断加快。我们不需要争论故事点。自己进行研究。本章重点介绍设计如何帮助LLM解决方案实现。与敏捷保持一致是有价值的。其中最重要的价值是围绕迭代设计的对齐。在生成式AI中,必须有一个迭代的生命周期。但要做好这一点是有挑战的。从第4章的评分讨论章节4,评分故事中可以看出,设计相关的努力在敏捷中有其位置,但设计师的努力并不适合单一冲刺。研究和研究通常需要时间来撰写和执行计划,但一周的冲刺中并不适合。结果证明这是可以的。有答案。所以,让我总结一些使设计成为生成式AI迭代敏捷过程成功部分的技巧。即使没有严格的敏捷方法,原则和指导也可以应用于大多数组织。甚至我们关于寻找赞助者的第一个建议也不仅仅局限于敏捷。
寻找赞助商
敏捷方法非常适合迭代式的AI养护和喂养方法。正因为如此,企业在敏捷方法上遇到的问题也就变成了AI采纳的问题。看看数字AI第17次年度敏捷调查中的图11**.1。

图 11.1 – 第 17 届敏捷状态调查 – 敏捷方法中的业务问题 (openart.ai)
该调查覆盖了广泛的领域,但组织支持对于敏捷成功至关重要。由此延伸,生成式AI解决方案也需要组织支持。前三大问题(及其他问题)与管理者问题相关。这是最新的调查。
文章:敏捷状态报告 (https://digital.ai/resource-center/analyst-reports/state-of-agile-report/)
迭代式关怀与养护方法通常与季度发布日程截然不同。这是一种文化转变。即使在敏捷组织中,许多团队也是按照敏捷日程的倍数来发布产品的。常见的情况是两周冲刺但季度发布。将缓慢的节奏与缺乏领导层的参与和支持相结合,会引发问题。找到一个认识到变化速度对人工智能成功至关重要的赞助者,并能够帮助创建有利于快速变化的过程。当组织认识到做好人工智能所需的努力时,领导层的支持是至关重要的。当然,人员是关键,但工具也有帮助。
寻找合适的工具并整合生成式人工智能
毫不奇怪,跟上这种水平的变化、管理大量的测试用例集以及处理整个知识体系是一项庞大的任务。这不仅仅涉及一个工具,而是需要数十个工具,但至少应该从管理流程和变化的过程开始。正如在第4章中讨论的,使用敏捷跟踪工具进行评分故事,结合评分和从WSJF待办事项中工作来管理变化。找到一个没有知识管理工具的大型企业可能具有挑战性。然而,为了准确地为RAG解决方案提供数据,可能需要进行调整——也就是说,认识到知识和数据需要适应以改善ChatGPT生成的结果。这不是魔法,而是填补空白的辛勤工作。这可能意味着调整文章以支持LLM,重新整理现有知识,调整API以在调用中包含更多上下文,并使用中间工具来改善信息流向LLM以供处理。我们也不应忘记使用较小的模型进行几次定制任务,将这些结果反馈给链中的其他模型以改善整体性能。这让我想起了这样一句话:“坚持计划,坚持计划,坚持计划。”这意味着对流程进行最后的更改有时可能产生虚假的结果。另一个类似的概念是“一开始就要虔诚……”。
首先,要有宗教信仰…
有一个原因使得敏捷宣言对数百万人有效,尽管他们对其不足之处有所抱怨。当然,敏捷调查中有15%的受访者对敏捷“完全不满意”。但考虑到我们对敏捷、Scrum以及共享概念的理解,经验表明,这主要是因为不知道该责备谁或什么导致了失败。考虑这些以及伴随的原则,因为它们可以应用。一旦你成为专家,然后再进行适应。在一个组织中,我参加了一个周三的团队会议,一个大约800人的团队的副总裁宣布,“从周一开始,我们将开始实施敏捷。”然后他们开始选择要实施或不实施的元素(包括决定自我组织团队是他们无法做到的,不知道“自我组织”的含义)。不要让严重的无能阻碍质量目标。在摒弃它们之前,尝试理解敏捷原则的意图。让我引用12个基本敏捷原则中的几个:
-
围绕有激情的个人构建项目。为他们提供所需的环境和支持,并信任他们能够完成任务。
-
向开发团队传达信息以及团队内部沟通的最有效和高效的方法是 面对面交谈。
-
工作软件是衡量进度的首要标准。
-
敏捷流程促进 可持续开发。
我们的过程支持构建事物:这就是我们学习的方式。即使在视频会议的世界里,人们面对面交流也能更有效率。随着人工智能变化的快速步伐,可持续性需要融入我们的生命周期,以避免人们过度劳累。组织机构喜欢降低风险。通过严格遵守流程来降低风险,直到有信心未知的事物已被了解,并且需要改变。风险会产生未知因素,尤其是在像LLM这样的解决方案中,它每一步会说什么是不可预测的。
避免未知之未知
这太好了,值得重复一遍:
“那些说某件事没有发生的报道对我来说总是很有趣,因为我们知道,有已知的已知;有我们知道的已知。我们也知道有已知的未知;也就是说,我们知道有一些我们不知道的事情。但还有未知的未知——那些我们不知道自己不知道的事情。”
– 唐纳德·拉姆斯菲尔德,美国国防部长(2002年2月12日)
深入理解和学习。进行研究,揭示问题的根本原因,并在生成式AI世界中学习如何学习。看看为什么设计如此有利于发现问题;设计方法旨在解决这些问题。并且始终尝试进化和改进。
永远进化与改进
回顾总结不容错过。它们使内容团队能够学习和对引起关注的工程问题提供反馈。进化到使用更好的指标(价值和工作量,而非缺陷)来推动改进(衡量正确的事情)。在第10章“监控与评估”中讨论的一些指标可能令人困惑,并且仍在不断发展,但我们已经学会了理解指标如何变化,并随着它们的发展与之合作。设计思维本质上是关于倾听和学习,因此设计师应该处于最佳位置来帮助团队发展和改进。而改进包括知道如何定义需要完成的事情。这意味着要有需求。
敏捷开发并不意味着“没有需求”
明确他人的需求;不要过度明确你的需求(模块间文档,是的!)敏捷是正确的:
“优先考虑可工作的软件而非详尽的文档……我们更重视左侧的项目。”
这并不意味着你不创建测试用例;这是为了前进而不退步的必要步骤,但这可能就是所有需要做的事情。考虑目标,让数据科学和工程工作去实现这些目标。如果分析确定系统需要更好的上下文回忆能力,定义新的现实目标。没有人会独立在这些项目上工作。关注其他人需要什么。这并不排除为用户研究编写测试计划。做需要做的事情,但如果你知道该做什么,考虑是否需要将其文档化。这引出了我们讨论他人以及如何与团队合作的议题。
团队构成和位置很重要
面对面交流是将信息传达给开发团队内部的最有效和高效的方法。这对仅限远程工作的公司或当今的任何公司来说都是一个巨大的挑战。在敏捷状态调查中,91%的受访者表示他们的团队是完全远程的。然而,一些成功的公司认识到部分解决方案——他们有成员在相似时区的团队。在罗马尼亚有作家,在中国有质量保证人员,在加利福尼亚有项目经理和设计师,这是不正确的。努力创建能够实时协作的内容团队,以帮助他们保持对正在进行的工作的一致性。
管理进行中的工作(WIP)和技术债务
工作如此之多,时间却如此之少。即使有了生成式AI,也仅能完成有限的工作。将资源集中在第4章中提到的最有价值的物品上,即评分故事。将工作分解成更小的部分,并尽早交付这些价值。图11**.2通过如何建造房屋的类比来解释这一点。

图 11.2 – 不要处理过多的进行中工作(Photoshop AI)
这很简单——大多数人宁愿完成80%的工作而不是完成100%的工作的80%。已完成的工作是有价值的。房地产经纪人可以卖出四套房子,然后在下一个地块上开始建造,而不是拥有五套仍在进行中的房子,这些房子无法出售。这就是为什么建筑商有阶段性的原因。他们建造一套房子(为了效率),然后出售,接着再建造下一套房子。这样做可以降低风险并增加价值,客户也能更早地获得好处。内容变更也是如此。逐步推进。这种逐步推进通常意味着更广泛的工作被分解成可管理的部分。图11.3幽默地表示了组织以创建可管理的、易于理解的集合,以便进行应对。

图 11.3 – 将大型项目分解为可管理的部分 (openart.ai)
讨论过的优先级工具和敏捷流程(或任何具有待办事项整理的方法)有助于聚焦于优先事项。做值得做的事情。这项工作应该提供最大的客户价值。
专注于客户价值
有一整章是关于评分用户故事的。到现在为止,通过优先处理最重要的工作来为顾客提供价值应该已经得到了很好的理解。故事与顾客的共鸣越多,他们的体验就会越好,他们也会更多地称赞它(想想净推荐值),从而增加用户和用户使用率。然后,投资以创造更多的价值。关注顾客价值的一种方式是确保设计过程是整体开发过程的一部分。
将设计流程融入开发流程
很少有企业公司采用以设计为先的方法。以设计为先不仅仅意味着先做设计;每个人都必须先做一些设计 设计先行。这更多的是关于以设计思维引领,以创造客户成功,而不是因为工程觉得酷或者营销想要一些闪亮的东西而推动解决方案。它必须满足用户需求并驱动价值。此外,正如之前提到的,它应该是功能性的、可用的、必要的和吸引人的(FUN-E 或 有趣的,这是一个好的记忆法)。然而,大多数产品设计人员生活在现实中,因此需要灵活性。使用生成式AI构建的产品还不够成熟,无法在三个月到六个月的发布周期中生存。寻找可以更快发展和逐步改进的地方。此外,设计师、作家、语言学家和产品经理需要与工程、QA和数据分析团队合作,因为许多框架和流程需要实施。但要以设计思维去做,这样新的流程也是 FUN-E。
当将通用人工智能(GenAI)或ChatGPT整合到流程中时,请考虑一个专注于知识库(文档和数据)以及提示工程改进的内容冲刺。这个敏捷生命周期可以与传统开发(dev)冲刺相一致。将介绍内容冲刺的概念。以下是一些针对在敏捷组织中设计生成式人工智能解决方案的关键个人职责的建议:
-
设计师、作家、语言学家:
-
敏捷实践关注设计。然而,大多数设计工作都是在进入开发冲刺之前完成的。例如,用户研究不会在一周的开发冲刺中进行。敏捷、扩展敏捷以及许多框架都为进入冲刺所需的工作提供了安排。设计团队应该有设计冲刺和流程来创建结果,这样内容团队或开发团队就可以在他们的冲刺期间完成其工作。内容冲刺的概念将在下一节中解释。
-
在团队开始开发冲刺之前,当设计完成度为90%时交付设计。将内容和提示更改保留在内容冲刺中。跨越内容和开发的项目放置在开发冲刺待办事项中。这允许进行更多技术更改的彻底测试。
-
使用GenAI工具来构建GenAI产品。就像用于分类、合成数据和微调的工具一样,GenAI工具的数量正在不断增加,这些工具可以使工作更加高效。GenAI工具还有助于专业人士的一般实践,包括编辑、头脑风暴、思考问题、词汇选择、翻译问题以及理解组件和交互设计最佳实践。即使是像ChatGPT 4o这样的通用基础模型,也应该被视为你的实习生,以更好地完成任务。
-
-
设计师:
-
更多地参与到优先级排序中(以关注端到端并确保客户关键项目按优先级顺序完成)。
-
学习如何区分提示问题、微调差距、知识或RAG问题、集成数据问题或上下文问题。
-
积极及时地解决冲刺阶段的问题(即保持响应性并分配时间参与冲刺)。对开发团队的响应性会鼓励他们依赖产品人员。这一点很重要,因为设计师(作家、产品经理甚至语言学家)更能胜任判断这些内容问题。
-
-
设计负责人:
-
当进入开发冲刺阶段时,冻结该冲刺预期中的UI设计。发布文档后,将重大变更移至下一个版本,并在冲刺期间仅处理剩余的10%的详细设计变更。为开发团队设定不动的目标。
-
内容冲刺有变更的日程安排;当有疑问时,将其丢弃。保留那些已被证明有效的内容,并将其余的移至下一轮冲刺。内容冲刺就像与带电的电线一起工作;不要对结果感到惊讶。
-
-
开发者与 数据科学家:
-
不要独自行动;这是一项团队运动。
-
学习并倾听反馈;一些改变可能产生意料之外的影响。随着团队开始对内容、数据和上下文规模有所感觉,可以原型化和实验其他发布或不同模型,以提升质量。依靠内容人员,如设计师、项目经理和作家,他们更能判断语言和对话交互中问题的适宜性和重要性。
-
-
Scrum Master:
-
邀请设计师积极参与所有冲刺敏捷活动,并投入活跃的UI工作。最好是让团队专注于UI和内容工作。
-
开发冲刺中的设计相关任务应每日分配,以确保快速完成UI审查/反馈/冲刺内设计变更。没有人希望在冲刺结束时的审查中遇到惊喜。
-
-
产品负责人:
-
在开始工作前将需求交给设计师。在设计冲刺期间与设计师合作,为后续的开发冲刺提供“端到端”的故事。一些变更需要测试和研究,可能无法与开发冲刺同步进行。敏捷缩放对此表示可以接受。
-
保持跑道清洁并与预期的设计需求保持同步,以便在开发冲刺开始之前提供设计方案。即使是内容冲刺团队可能也需要基础设施或想要尝试新的模型,这就会退回到开发冲刺来提供。
-
正确评估和规划故事规模。将史诗分解为更小的史诗、故事和任务。例如,采用新的LLM(大型语言模型)将涉及多个阶段和冲刺,用于测试、微调和验证。
-
尽早让内容专家参与其中。在进入冲刺阶段之前,就语言问题、产品俚语的支持、产品的过时术语、已停用的产品名称以及产品名称的同义词达成一致。构建这个术语字典,使其超越官方术语。记住,客户会使用他们感到舒适的语言。
-
-
Scrum大师/设计所有者:任何设计师都可以加入最多三个团队,通常是两个。设计师应该“主要”在开发冲刺之前工作。在开发轨道冲刺中,努力应有限制,因为一个故事至少应该在冲刺中达到90%的完成度。内容设计师不会有这样的奢侈,正如我们即将解释的。他们可能从上周遗留10%到20%的工作量,但本周的工作将在冲刺期间确定,并且几乎所有的工作都将在内容更新冲刺内完成。
现在,是时候解释内容改进生命周期和内容冲刺了。
设计内容改进生命周期
第二章,有效用户研究,详细讨论了广泛监控日志文件以改善关怀和喂养生命周期。我无法强调理解与解决方案性能相关的指标以及调整解决方案以改进它的重要性。尽管聊天解决方案与推荐UI的数据可能不同,但两者的过程是相同的。对于幕后工作,找出所需的反馈,以便建立持续改进的过程。
让我们从产品上线后内容设计团队一周的工作愿景开始。图11**.4 展示了一个生产内容改进团队可能进行的工作。将这个团队称为 生产内容团队 或 内容/提示冲刺团队。找到一个合适的名字,以便清楚地表明这比更强大和复杂的多 dev 冲刺团队略有不同。

图 11.4 – 内容团队持续改进生命周期的每周节奏
这个生命周期在开发初期可能不是每周一次;它可能是两周或三周一次的节奏。对于不成熟的生产系统来说,一周是一个不错的选择。达到这种节奏需要时间。如果一个组织使用两周的敏捷开发生命周期,可以从匹配这一点开始,并随着时间的推移改进节奏。或者,当产品更加成熟且变化缓慢时,可以考虑回归两周一次的方法。这个过程不需要与开发节奏完全匹配,这不是一成不变的。虽然有一些优势,但考虑权衡利弊是值得的。这可能是打破这种经验法则的地方。
现在我们来详细描述一下会话分析团队典型的每周工作。这同样适用于推荐解决方案,即使没有相同的输入。
对话式人工智能的输入
日志是分析的主要输入源,但可以由调查、错误或反馈进行补充。由于日志代表了实际发生的情况,我总是会检查日志与任何轶事反馈的一致性。有一天,一个朋友告诉我,Google Sheets最显著的缺失功能是拖放行功能。我说:“你可以拖放列,那为什么不能拖放行呢?”我们去查看了Google Sheets,拖放行功能在移动版上也能正常工作。不出所料,这是一个可用性问题,正如在第9章章节9的启发式评估讨论中提到的,指南和启发式原则。在没有明确的视觉指示其支持的情况下,很难知道可以或不可以做什么。始终检查人们报告的内容。很容易对某事感到烦恼,却对其真正原因感到困惑。根本原因分析可以揭示原因。愿意深入挖掘问题的合理原因。我们的以用户为中心的设计方法基于根本原因分析的概念。本书遵循这种方法(定义问题、收集数据、识别可能的原因、开发和部署解决方案,然后监控和验证)。你可以将此应用于任何AI解决方案,包括推荐UI。
推荐用户界面(UIs)的输入
推荐系统的用户界面不像我们的对话式亲戚那样有日志数据。前几章介绍了反馈方法,但下游指标可以代表使用数据。访问并监控这些数据以判断价值和质量。例如,假设推荐引擎建议进行电话回访、电子邮件公告或产品折扣。来自电话系统、外发电子邮件日志或销售折扣工具的分析可以与推荐相关联。
在无法建立直接关联的地方,可以使用次级方法,例如用户反馈,来确定用户的感知并收集书面或口头评论。至少有一些数据。后端人工智能则不那么幸运。
后端人工智能的输入
由于没有用户界面,这可以被视为一个更具挑战性的任务来收集反馈。有两个建议可以考虑。第一个建议是建立指向结果中问题的反馈机制。客户需要找出问题所在。他们会看到他们不喜欢的东西,觉得有点不对劲,或者将其识别为错误。让他们这样做,然后确定根本原因。然而,如果收集到足够的反馈数据(例如他们的使用历史、特定标签的数据集或他们可能会看到的截图),就有可能定位到问题。
第二个问题与构建一个AI监控系统相关。使用真实世界示例,一个次要的AI(不是用于解决方案的同一引擎)可以检查主系统的作业。它可能会发现与预期不符的结果,或者结果比典型情况高出超过一个数量级。这会输入到一个从每周第一天开始的持续改进系统中。如果针对特定标准进行调整,例如图11中的检查点测试周期,可以使用相同的基模型。

图 11.5 – 用于验证共享结果的检查点系统
这个例子使我们能够微调检查点模型以通过特定标准的判断。它支持直接的用户输入过程,或者对于后端解决方案,它将代表客户生成提示。
这个答案是否通过了道德测试(判断1)?事实是否与讨论的产品相符(判断2)?在判断3中,这个答案是否在公司能力范围内?如果结果有希望,就将其传递给客户。如果答案不佳,收集更多背景信息或让他们以不同的方式提问。无论如何,这些模型的每个结果都支持主要模型。每一次失败都创造了学习的机会。模型输出的结果是每周改进过程中的一部分。我们的想法是每周都朝着完成所有这些工作前进。让我们看看在流程的第一天需要做的工作。
监控周一
第二章,有效用户研究,涵盖了日志分析。这是了解客户情况的有价值方式。提供了手动工具以开始,并分享了优先考虑结果的方法。周一或任何一周的开始日进行重点分析。
星期一是周的第一天吗?
也许你们的国家从周日开始。然而,这并不能给你带来监控周一的押韵效果。这种押韵只在某些语言中有效;以色列、日本和沙特阿拉伯可以从调查周日开始。想出适合你们语言的名字。我使用了前面章节中的翻译表格来翻译“监控周一”。在30种语言中,只有一种语言接近押韵。如果你是一个单词爱好者,那将是荷兰语,翻译为“Maandag monitoren”。考虑让它变得有趣,而不是让人感觉像是一个人们会反对的结构化行军(这是典型的敏捷抱怨)。
一支团队在审查日志、查看客户调查、反馈信息、错误报告、多步验证模型中间步骤的失败以及销售或服务反馈方面能做的事情是有限的。筛选出问题,以便在接下来的几天内进行分类处理。利用这段时间来处理上周遗留的项目。
分析周二(以及周三的工作总结)
理解、分类和整理结果。对于大量常见问题的集合,不要写20个故事;写一个即可。这就是分类方法和第三方工具发挥作用的地方,如在第第2章“进行有效的用户研究”和第3章“确定ChatGPT的最佳使用案例”中所述。与开发团队合作,理解和将问题划分为本周可以修复的以及需要开发者帮助改进的问题。当然,投资于工具以进行改进,而不需要在每个转折点都投资于开发资源,这是谚语——如果你给人一条鱼,你只能养活他们一天。如果你教他们捕鱼,你就能养活他们一生。开发者可以通过提供允许我们进行改进的工具来教我们捕鱼。通过分析,可以考虑编辑知识、提示更改、微调示例、添加测试用例或其他内容更改等解决方案。分析还将为研究人员创造工作,并为开发团队在微调、新模型、更好的反思或模型间集成以及API工作等方面提供大量事项。所有这些工作都是为了决定内容团队在接下来几天内可以交付的内容,并计划开发团队在未来迭代中可以提供的内容。
周四治疗,周五故障排查
我非常希望这些活动能在不同的日子里进行,但找出解决方案和测试以识别故障是一个迭代的过程。一些读者可能会嘲笑试图在一周内完成所有这些尝试。我理解;这是目标,朝着这个目标努力。修复和测试应该在两天内完成。预计会有冲突。不出所料,要求模型做一件事可能会破坏另一件事,或者两个新的解决方案可能会冲突。然后提示可能会变得难以控制。所有的人都全力以赴寻找解决方案:编写或编辑知识,更新提示,改进微调,或者整合一个新的API(如前所述,这很可能是来自之前的冲刺,因为API不会神奇地出现)。为了使这一切能够工作,需要自动化来快速重新运行测试案例并分析结果和指标。
只有少数事情可以在几天或几小时内得到解决,但一些改进完全在情理之中。对于内容,快速改进是可能的:
-
调整指令和提示
-
训练以提高语法或包含公司特定语言和缩写
-
编辑知识
-
创建知识(快速开发技术文档可能很难,但也许FAQs(常见问题解答)是合理的)
-
添加学习示例
-
确定在说明中包含的上下文元素
-
微调
-
添加测试用例
这可能是一个挑战。内容团队无法进行一次更改、测试,然后再进行更多更改,因为一次测试可能需要几分钟或几小时。同时,也很难调试一批新更改中存在的问题。这是一个权衡。有时,失败的测试可能会阻止解决方案的发布,而有些解决方案可能无法实现,需要更多或不同类型的工作。工作可能会延续到下周,或者需要提交给开发团队。让我们更详细地探讨延续的工作。
一周内无法完成的事情仍然很重要
“如果我有一个小时来拯救世界,我会花上55分钟来定义问题,而只花上5分钟来寻找解决方案。”
–阿尔伯特·爱因斯坦(并非真的)
阿尔伯特·爱因斯坦的“著名”引言并非出自他本人(谷歌知道!),但情感依然有效。并非所有解决方案都容易。然而,如果花时间理解问题,通常理解解决方案是可行的。
当识别出一些明显无法在一周或冲刺中完成的问题时,评估它们的价值仍然很重要,同样重要的是获取成本估算并将其根据加权最短作业优先法移入待办事项列表。通过持续这样做,之前几周(或几个月)的故事现在将被整合到本周的变更中。因此,这些变更将在构建测试时影响解决方案。在真正的敏捷方式中,如果某件事太大,会干扰流程,那么它不应该与其他变更一起被采纳;对于更重大、技术更复杂的故事,应使用传统的开发和测试生命周期。
例如,当新的API或集成可用时,将需要新的测试用例。因为这些之前的域外案例变成了域内解决方案,这可能会导致新的冲突。例如,在一个支持销售、库存和团队人员编制报告的内部业务解决方案中,支持营销报告的新API需要与现有的其他报告请求协同工作。添加训练数据以帮助系统区分这些新的营销报告,重新运行微调,更新提示,并完善FAQ以考虑这一功能。之前的域外测试用例必须转移到有效的域内测试用例。
图11**.6 展示了根据产品阶段调整内容冲刺节奏。这旨在鼓励思考产品开发每个阶段的变化程度以及这种变化的价值。

图 11.6 – 频率可以根据产品的阶段而改变
这表明内容冲刺日程会随着时间的推移而调整。这对于敏捷开发来说是一个激进的想法,但考虑一下可能还是有价值的。由于团队是自我组织的,他们可以做出这样的日程决策。大多数企业都不相信团队能够做出这样的决定,因为他们认为自我组织是不可取的。但应该有一定的灵活性。这并不是建议经常改变,就像过程成熟一样。这就是敏捷的方式。
注意垂直轴的通用质量指标。这可能包括任何度量或所有度量。任何特定的指标在构建和测试时都可能看到下降。在第10章“监控与评估”中,OpenAI为改善其企业用例所做的努力并非全部成功。记住,即使产品已投入生产,开发方面的努力最终也会上线,并带来比仅从内容角度的增量改进更显著的质量提升机会。仅通过编辑提示、改进调优、添加新API以及与我们知识整合工作所能做的有限。
让我们逐一分析每个阶段及其方法:
-
早期开发:在这个阶段没有检查和平衡;请定期尝试测试更改。测试框架和指标仍在开发中,并需要可用以确保进展(尽量别走一步退两步)。手动测试将是典型情况。重大变化将来自主要投资,如果内容冲刺周期没有反映开发进度也是可以的。编写内容、编辑和审查更新以及上线测试都需要时间。
-
后续发展: 随着发布日期的临近,变更可能会变得更加严格,并遵循与开发敏捷团队相同的日程。两周是典型的时间;一些团队可能已经在一周内完成一次迭代。然而,请注意,敏捷冲刺的长度并不总是等同于发布日程,这是可以接受的。只有在这些重大投资开始产生回报时,才会出现质量上的重大飞跃。最小可行产品(MVP)的期望值在先前的图表中显示为80%。一个敏锐的读者会注意到我们在其他图表中提到了97%。97%是目标;80%是发布的最小要求。在上线之前,展示出能够维持这一水平的重复能力是明智的。一些变更可能会损害某些质量指标。产品范围的重大变化可能会降低每次交互的质量,但会增加可以处理的交互数量;学会接受道路上的这些颠簸。
-
早期生产: 目标是在一周内完成整个更新周期。通过分类变化,可以有机会通过一些调整更快地进行更改,而更重大的变化,例如访问新的API,则需要更长的时间。客户需要感受到改进。我全天使用ChatGPT,并每月看到改进。对于某些变化来说,一周是可能的。做最好的事情,但始终以尽快为客户提供价值为焦点。
-
成熟生产:随着解决方案的成熟,增量改进带来的价值将越来越少。将质量从80%提升到90%所需的努力可能与将质量从95%提升到96%所需的努力相当。这种递减的回报率表明需要重新考虑如何分配时间。变化的节奏可以降低,因为那些变化的价值很小。可能到了减少内容团队可以完成的故事点数,并将那些资源分配给新的机会或下一代解决方案的时候了。当然,这可能是几年时间,所以当到达那个时刻时再过桥吧。
没有人是完美的,我们也不需要完美。追求完美的代价可能会让你失去生意。回想一下来自第6章,数据收集——内容为王的失败案例:福特Pinto。最好是做出选择;不要做出糟糕的选择。为高价值、高风险的答案使用护栏。重视道德、减少偏见和准确性,而不是功能扩展。
“完美是无法达到的。但如果我们追求完美,我们就能抓住卓越。”
– 文斯·隆巴迪
随着新模型的涌现,质量变化显著,因此考虑如何重新适应更快的节奏。看到质量出现波动作为新模型的函数并不罕见,就像在过去两年中ChatGPT的发布,它主要呈现的是一个稳固的上升趋势。
采取的做法是迅速实施实践来提高质量,保持客户在愉悦的路径上。定期监控、收集反馈、了解问题、分类整合改进措施、研究问题、测试增强功能,并重新开始这个过程,这是一项充满爱心的劳动。以下是一些克服典型挑战的技巧:
-
监控日志文件可能会变得单调乏味,因此将工作时间进行分块。审查1,000行日志既耗时又繁琐。没有人应该每天都做这件事,所以只需做一天。或者,将审查和总结的任务分配给一个LLM。
-
随着时间的推移,监控速度会更快。与包含200个问题的日志文件相比,审查包含50个问题的1,000个日志文件要快得多(10倍),因为人类可以快速审查没有问题的对话,但需要时间来理解单个问题。ChatGPT模型也可以完成一些这项工作,例如查看哪些内容可以自动化,但仍需手动进行一些监控以了解客户。
-
在一次内容迭代或冲刺中只修复一些问题是可以的。有些项目无法通过提示工程、编辑知识或创建新内容来修复。有时需要新的API;在某些组织中,这可能需要很长时间,甚至永远无法实现。对问题进行分类有助于解决问题,因为如果出现多个相同问题的实例,就有可能倡导解决它们。使用占位符来确认客户的需求。占位符可能包括指向第三方资源的链接或如果没有其他可用信息,则包括解释。有可用的良好AI分类器;可以创建一个模型来对问题进行分类。
-
列出资源。设计师、分析师、内容创作者、产品经理、工程师、质量保证人员和数据科学家可以理解和诊断问题。通过这些资源共同协作,学习如何最佳地应对情况。对于某些事情可能有不止一种方法。基于收集到的信息进行沟通、协作和结论。此外,也可能有不止一个解决方案。短期解决方案可能通过长期改进知识库来更好地解决。在等待后者解决方案的同时,先实施一个解决方案。
-
版本管理不会希望快速做出更改。这是一个难题。在系统中工作或找到支持改变它的人。最好有一个赞助者。有不同的更改类型;与赞助者一起确定版本管理会批准的更改类型。建立信任并随着时间的推移扩展这个列表。给出例子。如果一个在线新闻机构有一篇文章说,“每架新的军用飞机将花费2亿美元”,但实际上是2000万美元,没有人会期望这个内容更改需要一周时间来修复。而我们正在处理的大部分是内容。考虑对更改进行分类,以便一些微调可以每周进行,而其他则需要更多的努力、测试和时间。所有这些都应该作为过程的一部分通过自动和手动测试,所以可能这就足够了。
-
输入垃圾,输出垃圾。不要让糟糕的知识破坏RAG模型。不要只给模型提供生成数据;如果可能,尽量节约使用。注入新的、高价值的内容,并寻找改进的机会。没有人会建议每周都编辑或改进所有文章;选择正确的战斗。让数据引领前进。点击量最高的文章优先考虑。利用分析来调整编辑投资。识别并测试不同产品之间相似文档之间的交互。寻找数据库中具有良好上下文数据的地方,这些数据可以增加提示的价值,为顾客提供更定制化和准确的经验。
-
在处理监督微调的过程中投入时间。在技术材料中,添加已知的样本到训练中。在检查日志时,认识到在交互中的一些人类多样性应该更好地理解。考虑FAQ是否已经达到这个目的。记住这些例子中提示应该是什么样子。大量的微调数据集是范围和规模的优秀例子,即使通用数据对于企业用例没有价值。这里有一个很好的例子,包含200,000个健壮的提示。
文章:Ultrachat 200,000行数据集 (https://huggingface.co/datasets/HuggingFaceH4/ultrachat_200k)
构建定制的调优材料、测试案例和模板集合,以提供高质量的RAG结果。生成式AI革命并非没有代价。随着时间的推移,模型成本将比整体生命周期成本不那么重要。
现在,让我们总结本章的一些关键要点。
结论
“如果没有持续的增长和进步,那么改善、成就和成功这些词就失去了意义。”
– 本杰明·富兰克林
当谈到对话式解决方案时,没有比这更真实的话了。几十年前的软件变化是以年为单位衡量的,然后是几个月或季度,而现在,是以周和天来衡量的。这是预期的、必要的,有时也是很有价值的。有了支持持续改进甚至交付的过程,这是一个双赢的局面。工具和方法将迅速改进,这将使我们有更多的时间来应对新的项目,同时客户也将更快地享受到更好的解决方案。
到目前为止,我们已经探讨了将用户体验设计思维和流程应用于创建卓越的企业级ChatGPT解决方案的整个生命周期。有时,我们深入探讨,给你留下了一些作业。技术发展如此迅速;希望这本书中讨论的96%的概念可以应用于任何对话式人工智能平台或工具集。模型在改进,工具也变得更加稳健。这些方法和实践应该仍然有效,直到我们达到传说中的通用人工智能(GPAI)、强人工智能或通用人工智能(AGI)。这本书将一直适用,直到大型语言模型(LLM)不需要在创建和调整上投入大量资金,只需要适量的关注和培养。因此,我们将在下一章结束我们的旅程,让你踏上征服下一个AI项目的道路。
参考文献
![]() |
本章中的链接、书籍推荐和GitHub文件均发布在参考页面上。网页:第11章参考资料 (https://uxdforai.com/references#C11) |
|---|
第十二章:结论
任何阅读到这本书这一部分的产产品人员可能已经接受了一个观点,即生成式AI领域远比简单地询问ChatGPT一个问题并期待一个良好答案要复杂得多。它所能做到的事情令人印象深刻,但当它没有做到预期的事情时,这会让人感到沮丧。关键在于是否已知它本可以更有帮助。在许多地方,客户需要学习或识别出ChatGPT在其自信的氛围中是否在说谎。这就是为什么产品人员是质量把关人的原因。
这最后一章将采取不同的方法,不是简单的总结,而是关注我们通过其他视角和思考生成式AI旅程的几种方式:
-
将所学应用于新的前沿领域
-
仔细检查感觉正确的事情
-
构建适合解决方案的过程
-
结束这次旅程
将所学应用于新的前沿领域
本书遵循了传统的生命周期方法,将用户体验设计的方法、实践、启发式和指导应用于新兴的生成式AI领域。尽管章节与开发过程的顺序相一致,但许多这些工具和技术可以在生成式AI旅程的各个阶段使用。用户研究在前期进行,以解锁未来功能的潜在价值,并在解决方案允许验证时再次部署。我们希望将“关怀与滋养方法绝对必要”的理念灌输到生成式解决方案中。人们可能会认为这对于许多软件产品来说是一个绝对的要求,但该行业需要更加着迷于这种方法。公司快速发布新版本时会出现问题。有时,这会影响训练,并破坏服务。生成式AI可以支持持续改进的过程,就像Google搜索一样,无需用户决定即可更新。自从生成式AI在2010年代初随着对话式AI的兴起而出现以来,人们已经广泛理解了为什么大多数AI融合解决方案失败的原因。它们被推给了客户,而没有遵循持续的改进和关怀与滋养实践。现在,生成式智能填补了先前聊天机器人解决方案的一些技术缺陷,并将大多数这些学习应用到创建更有效的生成式AI产品和服务的实践中。
事后看来,大部分时间都花在了交互式对话人工智能产品上,同时确保提供的构建块可以适用于所有推荐类型解决方案。无论是优先处理支持工单还是销售线索,评分营销线索,建立用户声誉,建议下一步最佳行动,根据有害或不希望的内容过滤内容,或者对情感进行分类以鼓励良好的代理行为,这本书都应该提供解决这些问题的指导。人工智能可能改进的后端服务只需要我们的一些方法,但现在有一系列技术可供应用,以应对任何情况。
为了公平起见,不要将每种方法都应用于每个项目。使用第4章,评分故事中的一些简单数学来计算每个工具和技术都有其投资回报率。挑选和选择与开发或权力机构之间的战斗。明智地使用资源。做正确的事情。
仔细检查感觉正确的事情
我参加了一个人工智能会议,并听了关于人工智能准备的演讲。鉴于我们关于何时部署解决方案以及使人工智能解决方案成功的所有步骤的讨论,看到其他人如何看待我们已经涵盖的内容将会有所帮助。Ann Maya介绍了由Boomi的Michael Bachman(https://boomi.com)与250位C级高管合作创建的六项人工智能准备原则。
我提出他们的原则,因为它们以略微不同的方式总结了我们的方法,并且很好地与实施一个可以启用这些原则的过程(从第10章,监控与评估)相吻合。比较方法和实践,了解他人的工作方式总是很有价值的。如果你的工作与他人的工作一致,可能会感觉缺乏创新。然而,在新兴领域,我们的集体走在正确的道路上也是有价值的。即使有了一致性,也有地方可以学习缺失的拼图碎片,这些碎片是有价值的。我在图12.1中展示了他们分享的结果。它总结了人工智能准备的六大原则。

图12.1 – 人工智能准备六大原则。
考虑到我们在人工智能准备方面的用户体验倾向,这些原则并不涵盖所有内容,但重叠部分足够多,所以在完成这本书的草稿之前找到这个资源真是太好了。让我将每个目标和它们的解释与本书中的努力对齐。这些并不是按照任何特定顺序排列的。
设定明确的目标
从实施到管理,了解你想要什么以及你能够用人工智能做什么是至关重要的。
我们通过讨论用例(第3章,识别ChatGPT的最佳用例)来定义这一点,使其符合客户的需求。保持可触及性。专注于AI可以提供最大价值和提高质量的地方,然后深思熟虑地拓展。公司只会做其中的一部分,这就是为什么有大量的工具和支持用于实施。问题是是否解决了最佳用例以证明成本是合理的。
了解你的流程
记录、编目、创建、管理和维护工作流程和业务流程。
在第6章,数据收集——内容为王中,Wove案例研究提到了将目标和对核心专长的理解与AI工具能做什么相一致。设计流程可以重新评估当前流程中的步骤是否必要。保持工作流程是第7章,提示工程和下一章中的微调的关键。花时间将这些解决方案做对。它们并非一劳永逸。一些当前流程非常适合重新设计。偶尔,一个团队可以重新设计一个流程并从一张白纸开始。规划去往何方可能给出前进的道路。有时,价值来自于简单的渐进式改进。你现在知道如何评估这些价值,并且使用敏捷方法,你可以确定它们的成本。“加权最短作业优先”是决策过程。
考虑可以提高流程的不同模型。例如,轮辐模型或链式模型被提及了几次。随着价格的下降,使用多个模型来解决单个问题变得实际且可预期。具有不同能力、智能、性能和成本的模型可以适应独特的用例。并非所有模型都适合所有情况。生成式AI流程正如第11章,流程所述,需要一些考虑。由于企业解决方案通常包含数十或数百个部分,因此企业中模型的激增是预期之中的。这使得整个维护和喂养生命周期变得更加关键。
了解数据
理解数据的价值、数据所在的位置以及数据的生成、精炼、安全和治理。
第6章,数据收集——内容为王,讨论了为定制ChatGPT解决方案管理数据。没有企业数据,就没有额外的价值。构建一个RAG流程来确保业务数据安全并正确展示是至关重要的。
企业数据是这本书的全部原因。它包含了公司的集体智慧,包括产品和服务,以及与客户的客户关系。这就是它的价值所在。这也意味着要意识到固有的偏见。这不仅仅是可能的文化偏见;这可能是知识如何谈论产品或它使用的术语。决定如何管理这些数据,处理数据的治理,并适应它以允许AI充分利用语料库。
对齐并承担责任
利益相关者应了解期望,并作为数据和流程的良好管理者共同努力。
我们经常讨论成为模型和数据的好管理者。处理偏见、控制PII以及管理集成对于成功至关重要。正如所有用户体验合作伙伴一样,作为客户倡导者,设定正确的期望。使用前几章的方法,通过遵循第九章,指南和启发式方法,以及衡量第十章,监控和评估中审查的结果,将利益相关者引向共同目标。
如果涉及道德考量,要对结果负责。围绕检查结果、使用提示工程以最佳语气进行交流以及提供最准确答案的讨论至关重要。一些大玩家的错误将开始成为新闻。在好莱坞,有句俗语,“没有坏名声”。严格控制那些暴露道德、医疗、社会或社区标准问题的用例。不要因为错误的原因而成为新闻。
深思熟虑地优先排序
建立并平衡对业务、企业价值观和 社会影响 至关重要的优先事项。
第四章,评分故事,介绍了我们使用以客户为中心的方法对积压工作进行评分的方法。作为用户体验专业人士,我们关注客户获得的价值,但作为代理,我们有时会与商业、企业和社会目标保持一致。让我们假设客户的目标有助于实现这些优先事项。这让我想起了在商学院中常读的一本书,也是我的教授们要求阅读的一本书。关键在于能够回答三个问题:何时改变,改变什么,以及如何引起改变。我希望你能看到我们在确定要做什么、如何做以及预期结果方面的相似之处。这本书,《目标:持续改进的过程》,读起来很棒;它足够吸引人,可以一晚上读完。
书籍:《目标:持续改进的过程》 (https://amzn.to/3WJqWHM)
毫不奇怪,这部小说的主人公采用了迭代的方法。然而,它基于工厂环境(当这本书被写出来的时候,软件行业还不是今天这样的动力源泉)。我仍然鼓励大家以深思熟虑和愉悦的心情去阅读它。
有意自动化
在不理解流程或数据的情况下实施AI可能导致低效并 引入风险。
第五章,定义期望的体验,通过为我们的AI解决方案找到深思熟虑的应用来解决这个问题。做出好的决策,以便AI解决方案提供最大的价值。不要过度使用AI。选择你的战斗。创造价值。
有许多方法可以接近AI解决方案、ChatGPT集成以及使用生成式AI进行问题解决。然而,所有最佳的方法都是深思熟虑地这样做,专注于创造功能、可用、需要和有效(FUN-E)的体验。让我们以正确的目标开始,沿着一条路径构建一个适合客户需求的流程。
构建适合解决方案的过程
我们谈论的是将解决方案带给客户,而不是强迫客户去寻找解决方案。这需要许多形式和许多路径,都遵循这个咒语:
-
用客户的语言交谈,并避免强迫他们学习我们的说话方式。
-
使用提示工程和微调来与客户对齐,并不要期望客户与我们对齐。
-
审查如何部署解决方案,将AI带到他们需要的地方。这可能是在Slack、Teams、Discord或网页频道上。这也可能通过几个消息应用、网络服务、桌面或移动应用来实现,它们具有略微不同的功能。
为了适应这些解决方案,流程必须允许这些互动。解决方案需要跨越多个渠道,每个渠道都有略微不同的需求。客户可能对那些渠道有不同的期望。在简单的消息平台上,文本、图像和链接可能支持更强大的交互,当部署在丰富的网络体验上时,可以达到相同的目标。此外,只有一些步骤将来自生成式AI解决方案。最佳的成功将来自于将用例分解为最适合特定解决方案解决的步骤。有时,这包括一个LLM。本书多次讨论了流程流程,我们能够窥见Wove的流程,其中包括通用和微调模型。考虑一下在链中使用的模型示例,如中心辐射模型用于路由到特定任务和LLMs,分支以支持不同的任务,或者通过不同的提示循环使用相同的模型。这只是几种可用的变体。没有一种正确的方法。每种都需要设计工作、测试、验证和关怀与培养过程。每种都是一个应用程序套件本身。这并不令人惊讶,因为许多企业解决方案可能包括数十或数百个系统和服务。
作为产品所有者、设计师和思想领袖,我们应该将解决方案带给客户,而不是将客户带到解决方案中。这将帮助我们结束这次旅程。
结束这次旅程
有很多内容需要覆盖;这些技能、方法、实践、启发式方法和建议在未来三到五年内仍然有效吗?当然,OpenAI将改变其游乐场,一些链接将停止工作(在线参考将被更新),但概念将存在一段时间。OpenAI的目标是消除与提示工程相关的相当多的工作;当这种情况发生时,回收这本书,退休到海滩上。然而,在可预见的未来,还有工作要做。
也许你注意到我们从未讨论过ChatGPT的企业工具。当然,他们即将推出新工具,一些精选公司将是早期采用者。OpenAI可以提供的东西可能是宝贵的,甚至是必要的,但并不充分。其中一些已经包含在任何计划中,比如公共API、多因素认证、离线工作负载的批量API、加密和单点登录(SSO)。生态系统仍然有大量成熟度留给OpenAI、第三方和企业公司去解决。
注意
本书中的概念将超越这些例子中使用的模型。将这种学习应用于最新的模型。
由于目标是拥有最新的知识和智慧,本书的在线参考将被监控以确保它们继续工作。即使在写作过程中,参考也需要被淘汰。我们的共同目标是引导我们的客户走向智慧。仅仅向我们的生成式AI解决方案的消费者重复或推送数据或信息是不够的。我们使用生成式AI的知识和能力应该使我们能够在解决方案中传授智慧。我不记得我在哪里找到了图12.2中的金字塔。

图12.2 – 智慧是目标
让我们举一个任何人都能理解的例子。关于世界上山的高度,有很多数据。然而,对于登山者来说,知道珠穆朗玛峰是世界上最高的山,并且有两条登山路线,这很吸引人。来自先前登山者经验(以及一些基本生理学)的知识告诉我们,登顶通常需要氧气(瓶装并由令人难以置信的夏尔巴人携带)。然而,有一个更重要的原因,为什么登顶者会使用夏尔巴人。如果他们听从他们的明智建议(智慧),他们将处于成功最佳的位置。如果他们不接受夏尔巴人的集体智慧,悲剧可能就会发生。这个幻灯片被分享出来,以便它可以适应任何使用场景。
GitHub: 智慧金字塔幻灯片 (https://github.com/PacktPublishing/UX-for-Enterprise-ChatGPT-Solutions/blob/main/Chapter12-WisdomPyramid.pptx)
找出如何为客户提供他们成功所需的智慧。而不仅仅是用新的方式提供相同的数据。通过提供明智的建议,可以释放价值。此外,不要受限于人工智能。智慧可以在没有人工智能的情况下提供。
是时候考虑人工智能的下一步了。快速变化无处不在。尽管投入了大量努力研究这本书,但思考生成式人工智能在企业解决方案中的未来发展方向仍然很有趣。在Skynet之前,接下来几年会带来什么?是时候对未来进行思考:
-
开源模型和能够保护个人身份信息的便携式模型将会变得更加丰富。然而,这种保护带来的副作用是无法学习如何改进它们。允许为了“改进”目的进行数据共享的自愿性项目将成为常态。始终提供这个选项:为享受这项特权而向客户支付或提供信用。学习是基础。
-
随着更多努力投入到更广泛智能的基础模型中,提示工程将变得更加容易。作家和设计师在这里将受到关注,但他们的关键性将随着时间的推移而降低。
-
随着企业应用深入到人工智能,二级服务将蓬勃发展。次要用例和不太关键的业务需求可以利用这些现在标准化的服务,使更多业务生命周期实现人工智能化。是的,它几乎无处不在。
-
失败仍然存在,并将继续成为新闻。除了数据抓取之外,预计还会出现诉讼。然而,就像人类代理的错误一样,随着幻觉的减少,错误和随之而来的诉讼将会减少。
-
一旦我们通过2027年初的炒作周期,解释人工智能幕后工作的必要性将停止,因为那时它将成为常态。这一周期人工智能改进的最大跳跃已经发生。到2025年,我们将进入一个渐进式改进的阶段,直到2031年的下一个主要周期。
-
人工智能革命将比网络革命更大。它将应用于日常生活的每个部分,就像智能手机一样普遍,跨越生活各个领域,远远超出网络和互联网。人工智能可以造福数十亿不幸的人。农作物产量、水资源管理、更实惠的医疗保健、供应链优化、灾害预测和教育都是关键领域,并将与资助这些领域的政府相一致。
-
尽管它将消除一些工作,但它也将为下一代创造更多有价值的机遇。考虑到采用的快速速度,这并不夸张。每一次技术革命,从轮子到互联网,都需要社会适应。在许多方面,我们仍然比人工智能更聪明。
-
在我的一生中,我们终于将看到能够作为通用助手(烹饪、清洁和折叠衣物)的家庭机器人。在接下来的十年里,机器人革命,结合视觉分析和LLMs(大型语言模型),将汇聚在一起。我怀疑对于一些艰苦的体力劳动角色也是如此,因为用于采摘水果的机器视觉已经存在,并且当机器人得到更好的控制时,它将变得更加出色。
我鼓励大家与我以及整个AI社区互动。对于所有类型的UX(用户体验)人员来说,有很多东西可以学习我们数据科学和工程朋友所做的事情,并且在学习他们的同时,我们可以向他们的实践传授丰富的价值,希望这本书中的一些智慧也能被传授。连接、分享和参与。
参考资料
![]() |
本章中的链接、书籍推荐和GitHub文件已发布在参考页面上。网页:第12章参考资料 (https://uxdforai.com/references#C12) |
|---|
第十三章:索引
由于本电子书版本没有固定的页码,以下页码仅作为参考,基于本书的印刷版。
符号
80/20 规则 76
A
A/B 测试 237
可访问性 (A11y) 152
可访问的富互联网应用程序 (ARIA)
参考链接 153
适应性消息
敏捷
AI 准备就绪
责任,对于结果 404
对齐 404
自动化 405
待办事项,优先级 405
数据,管理 404
目标,设定 403
原则 403
美国残疾人法案 (ADA)
参考链接 153
安德鲁·吴的代理方法 245
高级技术 250
规划 248
反思 246
工具使用 247
注释 189
答案正确性 358
答案语义相似度 357
参考链接 358
B
待办事项
企业解决方案,评分 96
排序 109
补丁案例研究 110
优先级 91
跟踪工具,与评分扩展 111
Boomi
URL 402
爆发力 361
C
思维链 (COT) 240
聊天机器人失败 9
聊天体验
图表 140
ChatGPT,集成到 124
设计 121
链接 145
菜单 143
聊天体验,链接
窗口,打开 147
ChatGPT
基准,与 69 建立基准
ChatGPT 应用
ChatGPT 基础模型 178
ChatGPT 实例
ChatGPT 机会
复杂评分方法
创建 112
内容、行动结果和示例(CARE) 231
内容改进生命周期
分析星期二 393
设计 390
早期发展 396
早期生产 396
输入,用于对话人工智能 391
输入,用于推荐用户界面 391
后期开发 396
成熟生产 396
监控星期一 392
治疗星期四 393
环境、目标、风格、语气、受众和响应(CO-STAR) 231
缺点 51
忽略类别 59
实施 60
标记问题,分组以生成增强和错误64
不可分类类别59
优点50
对话设计研究所(CDI)342
对话指南
构建320
用于混合聊天/GUI体验322
模型用户语言332
特定流程顺序332
网络指南321
自定义数据
回答,比较23
面向客户的体验
客户满意度(CSAT)调查374
定制模型
D
数据407
综合分析349
数据清理188
真实情况192
电子表格清理192
设计
指南,适用于 298
设计思维
集成 381
详细访谈计划
创建 46
开发和运营(DevOps)382
开发(dev)冲刺 388
不流畅 342
E
有效的调查
为对话式人工智能创建 33
ELIZA 86
企业数据,与大型语言模型(LLMs)集成
数据清理 188
与 RAG 集成 179
质量数据管道,创建 208
企业解决方案
项目,得分 97
得分 96
实体回忆 356
个数 267
估算扑克 96
评估指标,RAGAs 350
扩展 73
F
事实一致性得分 359
假阴性(FNs) 358
假阳性(FPs) 358
少样本提示 244
微调模型
微调,用于函数和工具调用 284
微调 183
在ChatGPT中 261
资源,支出 262
功能调用 204
功能性、可用性、必要性及吸引力(FUN-E) 387, 405
G
一般数据保护条例(GDPR) 212
生成式AI
GPT 3.5 Turbo 1106 245
图形用户界面(GUIs) 12
地面真实情况 192
H
幻觉 188
幻觉检测
参考链接 360
幻觉错误
幻觉,在大型语言模型中
参考链接 362
快乐路径 73
启发式分析,用于对话式用户界面
A18y 319
一致性和标准 308
错误处理 317
系统与现实世界匹配 304
启发式评估 380
对话式人工智能的历史
霍华德幻觉评估模型 (HHEM) 排行榜
参考链接 352
人机交互 (HCI) 11
混合用户界面 17
假设文档嵌入 (HyDE) 215
I
索引 182
信息技术和通信技术 (ICT) 154
深入的访谈
数据分析 48
设计 44
面试流程和计划,试点 47
参与者,选择 45
流程,摘要 49
记录和文件,发现 48
报告发现 49
研究目标,定义 45
结构化访谈计划,开发 46
国际化 (I18n) 154
考虑 159
会计,针对地区 166
粗体 166
文化双向障碍 168
在对话翻译中的例子 155
行话和习语 159
复数 165
标点符号和语法 160
支持语言,决定 157
国际电信联盟(ITU) 154
间隔尺度 114
交互式 382
K
知识 407
L
精益 382
学习经验
LLMs,与用户目标
对齐 79
中间丢失问题
M
以度量指标驱动的开发(MDD) 348
指标,RAGAs 359
最小可行产品(MVP) 64
监控
与可用性指标 374
N
参考文献列表 378
NICE Satmetric 375
无代码方法 5
非企业数据入侵 277
核心采样 252
O
OpenAI 406
案例研究,关于质量 363
内容检索 24
OpenAI Chat
URL 4
Oracle 数字助手 (ODA) 133
有序待办事项 114
总体考虑
国际化 154
信任问题 169
P
并行函数调用 285
补丁案例研究 110
渗透 (PEN) 170
个人识别号码 (PIN) 324
个人可识别信息 (PII) ,52
插件 222
评估函数中可能的错误,RAGAs
参考链接 357
流程
构建,以适应解决方案 405
提示工程 183
A/B 测试 237
指令,通过提供 227
资源,支出 262
提示工程技术 237
Q
质量保证 (QA) 团队 368
质量数据管道
计算资源 209
创建208
数据质量,训练210
数据驻留212
领域特定性210
嵌入215
评估指标215
可扩展性209
R
RAG资源215
服务请求219
线程化来源219
现实世界的困难,评分115
敏捷115
问题,分组为错误118
简单的数字一到四,使用116
推荐或幕后体验,设计
仅限机器人的体验,指南151
推荐用户界面18
关系型数据库管理系统(RDBMS)160
修复342
检索
改进372
检索增强生成评估(RAGAs)347
数据,综合349
评估指标350
幻觉错误类型,分类359
指标 359
OpenAI 案例研究,关于质量 363
处理过程 348
参考链接 348
检索,改进 372
用户体验指标 357
检索增强生成 (RAG) 57, 124, 177, 179, 227, 347
企业数据,与 179 结合
富互联网应用 (RIA) 126
角色、动作、上下文和示例 (RACE) 231
原因分析 391
评分标准 94
S
规模 115
比例敏捷
网址 94
比例敏捷框架
网址 113
自我反思 246
严重程度 2 停止运行 101
简单文本消息 (SMS) 16
手机,通过 16 发送消息
软件
补丁 73
软件可用性量表 (SUS) 299
参考链接 379
SUS 评分
解释 379
参考文献列表 379
T
电信中继服务 (TRS) 319
测试策略文档,OpenAI
参考链接 364
文本嵌入问题
参考链接 353
转换器 6
增强信任,ChatGPT 经验
准确性和相关性 172
偏差 169
伦理 169
可解释性 171
隐私和安全 170
定期更新 169
透明度 171
用户赋权 169
用户反馈 170
图灵测试 6
U
可用性指标
监控用 374
可用性测试 28
用例
组件 68
根据二八法则进行优先级排序 76
选择 68
步骤指南 69
用户体验指标,RAGAs
用户体验 (UX) ,71
用户需求评分 (UNS) 95
用户故事 68
从用例 77 创建
UX 设计 3
用户体验设计用例
混合用户界面 17
消息,通过短信 16
用户体验研究方法
V
Vectara 359
仅语音体验
语音XML背景
参考链接 7
W
瀑布式方法 382
网络内容可访问性指南 (WCAG) 153
工作 118
智慧 407
互联网标准组织 (W3C) 153
Wove案例研究 288
Y
另一种标记语言 (YAML) 289

订阅我们的在线数字图书馆,全面访问超过7,000本书籍和视频,以及领先的工具,帮助您规划个人发展并推进职业生涯。更多信息,请访问我们的网站。
第十四章:为什么订阅?
-
使用来自超过4,000位行业专业人士的实用电子书和视频,节省学习时间,多花时间编码
-
通过为您量身定制的技能计划提高您的学习效果
-
每月免费获得一本电子书或视频
-
完全可搜索,便于轻松访问关键信息
-
复制粘贴、打印和收藏内容
您知道吗?Packt为每本书都提供电子书版本,提供PDF和ePub文件。您可以在packtpub.com升级到电子书版本,并且作为印刷书客户,您有权获得电子书副本的折扣。有关更多信息,请联系我们customercare@packtpub.com。
在www.packtpub.com,您还可以阅读一系列免费技术文章,订阅各种免费通讯,并享受Packt书籍和电子书的独家折扣和优惠。
您可能还会喜欢的其他书籍
如果您喜欢这本书,您可能会对Packt出版的这些其他书籍感兴趣:
Generative AI Foundations in Python
Carlos Rodriguez
ISBN: 978-1-83546-082-5
-
发现生成AI的基础及其在NLP中的基础
-
分析基础生成架构,包括GANs、transformers和扩散模型
-
了解如何微调LLMs以完成特定的NLP任务
-
理解迁移学习和微调以促进领域适应性,包括金融等领域
-
探索提示工程,包括情境学习、模板化和通过思维链和RAG进行合理化
-
使用生成LLMs实施负责任的做法,以最小化偏见、毒性和其他有害输出
ChatGPT for Conversational AI 和Chatbots
Adrian Thompson
ISBN: 978-1-80512-953-0
-
深入了解ChatGPT及其功能和局限性
-
了解如何使用ChatGPT进行对话设计
-
发现如何使用高级LangChain技术,如提示、记忆、代理、链、向量存储和工具
-
创建一个可以回答您自己数据问题的ChatGPT聊天机器人
-
使用ChatGPT API开发一个聊天机器人
-
探索对话AI、LLMs和ChatGPT替代品的未来
Packt正在寻找像您这样的作者
如果你有兴趣成为Packt的作者,请访问authors.packtpub.com并今天申请。我们已与成千上万的开发人员和科技专业人士合作,就像你一样,帮助他们将见解与全球科技社区分享。你可以提交一般申请,申请我们正在招募作者的特定热门话题,或者提交你自己的想法。
分享你的想法
现在你已经完成了企业ChatGPT解决方案的用户体验,我们很乐意听听你的想法!如果你从亚马逊购买了本书,请点击此处直接转到本书的亚马逊评论页面并分享你的反馈或在该购买网站上留下评论。
你的评论对我们和科技社区非常重要,并将帮助我们确保我们提供高质量的内容。
下载本书的免费PDF副本
感谢您购买本书!
你喜欢在旅途中阅读,但无法随身携带你的印刷书籍吗?
你的电子书购买是否与你的选择设备不兼容?
别担心,现在,随着每本Packt书籍,你都可以免费获得该书的DRM免费PDF版本。
在任何地方、任何设备上阅读。直接从你喜欢的技术书籍中搜索、复制和粘贴代码到你的应用程序中。
优惠远不止于此,你还可以获得独家折扣、时事通讯和每日免费内容的邮箱访问权限
按照以下简单步骤获取优惠:
- 扫描二维码或访问下面的链接

https://packt.link/free-ebook/978-1-83546-119-8
-
提交你的购买证明
-
就这些!我们将直接将你的免费PDF和其他优惠发送到你的电子邮件
目录
标记















是生成的提问 𝑖 的嵌入
是原始问题的嵌入




浙公网安备 33010602011771号