(点击上方图片观看本课视频)
在我们已经了解如何构建文本生成应用之后,现在来看看聊天应用。
聊天应用已经融入了我们的日常生活,不仅仅是提供休闲交流的工具。它们还是客户服务、技术支持,甚至是复杂咨询系统的重要组成部分。很可能你最近就从某个聊天应用中获得了帮助。随着我们将生成式 AI 等更先进的技术集成到这些平台中,复杂性增加了,挑战也随之而来。
我们需要回答的一些问题是:
- 构建应用。如何高效地构建并无缝集成这些 AI 驱动的应用以满足特定的使用场景?
- 监控。应用部署后,如何监控并确保应用在功能和遵守负责任的 AI 六项原则方面都能达到最高质量?
随着我们进一步进入由自动化和无缝人机交互定义的时代,理解生成式 AI如何改变聊天应用的范围、深度和适应性变得至关重要。本课将探讨支持这些复杂系统的架构方面,深入研究针对领域特定任务进行微调的方法,并评估确保负责任 AI 部署的相关指标和考虑因素。
本课内容包括:
- 高效构建和集成聊天应用的技术。
- 如何对应用进行定制和微调。
- 有效监控聊天应用的策略和考虑因素。
完成本课后,您将能够:
- 描述将聊天应用集成到现有系统中的考虑因素。
- 根据特定使用场景定制聊天应用。
- 确定关键指标和考虑因素,以有效监控和维护 AI 驱动聊天应用的质量。
- 确保聊天应用负责任地利用 AI 技术。
通过生成式 AI 提升聊天应用不仅仅是让它们变得更智能;更重要的是优化其架构、性能和用户界面,以提供高质量的用户体验。这包括研究架构基础、API集成和用户界面设计。本节旨在为您提供一份全面的路线图,无论是将其集成到现有系统中,还是作为独立平台构建。
完成本节后,您将掌握高效构建和整合聊天应用的专业知识。
在深入构建聊天应用之前,让我们比较一下“聊天机器人”和“AI驱动的聊天应用”,它们在角色和功能上有着显著的区别。聊天机器人的主要目的是自动化特定的对话任务,例如回答常见问题或跟踪包裹。它通常由基于规则的逻辑或复杂的AI算法驱动。相比之下,AI驱动的聊天应用是一个更广泛的环境,旨在促进人类用户之间的各种形式的数字通信,例如文本、语音和视频聊天。其显著特点是集成了生成式AI模型,可以模拟细腻、类似人类的对话,根据各种输入和上下文线索生成响应。生成式AI驱动的聊天应用可以进行开放领域的讨论,适应不断变化的对话上下文,甚至生成创造性或复杂的对话。
下表概述了它们在数字通信中的独特角色的主要差异和相似之处。
| 聊天机器人 | 生成式AI驱动的聊天应用 |
|---|---|
| 任务导向且基于规则 | 上下文感知 |
| 通常集成到更大的系统中 | 可以托管一个或多个聊天机器人 |
| 功能有限,基于编程 | 集成生成式AI模型 |
| 专注于特定任务的结构化交互 | 能够进行开放领域的讨论 |
构建聊天应用时,一个很好的起点是评估现有的资源。使用SDK和API构建聊天应用是一种有利的策略,原因有很多。通过集成文档完善的SDK和API,您可以战略性地为应用的长期成功奠定基础,同时解决可扩展性和维护问题。
- 加快开发过程并减少开销:依赖预构建功能,而不是自己构建昂贵的功能,可以让您专注于应用的其他重要方面,例如业务逻辑。
- 更好的性能:从头开始构建功能时,您最终会问自己“如何扩展?这个应用是否能够处理突然增加的用户数量?”维护良好的SDK和API通常已经内置了这些问题的解决方案。
- 更容易维护:更新和改进更容易管理,因为大多数API和SDK只需在发布新版本时更新库即可。
- 访问尖端技术:利用经过大量数据集微调和训练的模型,为您的应用提供自然语言处理能力。
访问SDK或API的功能通常需要获得使用提供服务的权限,这通常通过使用唯一密钥或身份验证令牌来实现。我们将使用OpenAI Python库来探索其工作原理。您也可以在以下OpenAI的笔记本或Azure OpenAI服务的笔记本中自行尝试。
import os
from openai import OpenAI
API_KEY = os.getenv("OPENAI_API_KEY","")
client = OpenAI(
api_key=API_KEY
)
chat_completion = client.chat.completions.create(model="gpt-3.5-turbo", messages=[{"role": "user", "content": "Suggest two titles for an instructional lesson on chat applications for generative AI."}])上面的示例使用GPT-3.5 Turbo模型完成提示,但请注意,在执行之前需要设置API密钥。如果未设置密钥,您将收到错误提示。
一般的用户体验原则适用于聊天应用,但由于涉及机器学习组件,这里有一些特别重要的额外考虑因素。
- 解决模糊性的机制:生成式AI模型有时会生成模糊的答案。如果用户遇到此问题,允许他们请求澄清的功能会非常有帮助。
- 上下文保留:高级生成式AI模型能够记住对话中的上下文,这可能是用户体验的必要资产。让用户能够控制和管理上下文可以改善用户体验,但也带来了保留敏感用户信息的风险。可以通过引入保留策略等方式来平衡上下文需求与隐私之间的关系。
- 个性化:通过学习和适应,AI模型可以为用户提供个性化体验。通过用户档案等功能定制用户体验,不仅让用户感到被理解,还能帮助他们更高效地找到具体答案,从而创造更满意的互动。
OpenAI的ChatGPT中的“自定义指令”设置就是个性化的一个例子。它允许您提供关于自己的信息,这些信息可能是提示的重要上下文。以下是一个自定义指令的示例。
这个“档案”提示ChatGPT创建一个关于链表的课程计划。注意,ChatGPT会根据用户的经验提供更深入的课程计划。
微软提供了指导,帮助编写有效的系统消息以生成LLM的响应,分为以下四个方面:
- 定义模型的目标用户,以及其能力和局限性。
- 定义模型的输出格式。
- 提供展示模型预期行为的具体示例。
- 提供额外的行为防护措施。
无论用户是视觉、听觉、运动还是认知障碍者,一个设计良好的聊天应用都应该对所有人可用。以下列表分解了针对各种用户障碍的特定功能,以增强无障碍性。
- 针对视觉障碍的功能:高对比度主题和可调整大小的文本,屏幕阅读器兼容性。
- 针对听觉障碍的功能:文本转语音和语音转文本功能,音频通知的视觉提示。
- 针对运动障碍的功能:支持键盘导航,语音命令。
- 针对认知障碍的功能:简化语言选项。
想象一个聊天应用能够理解您公司的术语,并预测用户群体常见的具体查询。有几种值得一提的方法:
- 利用DSL模型。DSL代表领域特定语言。您可以利用所谓的DSL模型,这些模型经过特定领域的训练,能够理解相关概念和场景。
- 应用微调。微调是指使用特定数据进一步训练模型的过程。
利用领域特定语言模型(DSL模型)可以通过提供专业的、与上下文相关的交互来增强用户参与度。这是一种经过训练或微调的模型,能够理解和生成与特定领域、行业或主题相关的文本。使用DSL模型的选项可以从从头开始训练,到通过SDK和API使用现有模型。另一种选择是微调,即采用现有的预训练模型并将其调整为适应特定领域。
当预训练模型在特定领域或任务中表现不足时,通常会考虑进行微调。
例如,医疗查询非常复杂,需要大量的上下文。当医疗专业人员诊断患者时,他们会基于多种因素,例如生活方式或既往病史,甚至可能依赖最近的医学期刊来验证诊断。在这种复杂的场景中,通用AI聊天应用可能无法成为可靠的资源。
考虑一个设计用于帮助医疗从业者的聊天应用,它可以快速参考治疗指南、药物相互作用或最新的研究成果。
通用模型可能足以回答基本的医学问题或提供一般建议,但可能在以下方面存在困难:
- 高度具体或复杂的案例。例如,神经科医生可能会问应用程序:“目前管理儿童患者耐药性癫痫的最佳实践是什么?”
- 缺乏最新进展。通用模型可能难以提供包含神经学和药理学最新进展的答案。
在这些情况下,使用专业的医学数据集对模型进行微调,可以显著提高其处理这些复杂医学问题的能力和可靠性。这需要访问一个大型且相关的数据集,代表需要解决的领域特定挑战和问题。
本节概述了“高质量”聊天应用的标准,包括可操作指标的捕获以及遵守负责任使用AI技术的框架。
为了保持应用的高质量性能,跟踪关键指标和考虑因素至关重要。这些测量不仅确保了应用的功能性,还评估了AI模型和用户体验的质量。以下是涵盖基本、AI和用户体验指标的列表。
| 指标 | 定义 | 聊天应用开发者的考虑因素 |
|---|---|---|
| 正常运行时间 | 测量应用程序运行和用户可访问的时间。 | 如何最大限度地减少停机时间? |
| 响应时间 | 应用程序回复用户查询所需的时间。 | 如何优化查询处理以提高响应时间? |
| 准确率 | 正确预测的正例与总正例预测的比例。 | 如何验证模型的准确率? |
| 召回率(敏感性) | 正确预测的正例与实际正例的比例。 | 如何测量和提高召回率? |
| F1分数 | 准确率和召回率的调和平均值,平衡两者之间的权衡。 | 您的目标F1分数是多少?如何平衡准确率和召回率? |
| 困惑度 | 测量模型预测的概率分布与数据实际分布的匹配程度。 | 如何最小化困惑度? |
| 用户满意度指标 | 测量用户对应用的感知,通常通过调查收集。 | 您多久收集一次用户反馈?如何根据反馈进行调整? |
| 错误率 | 模型在理解或输出中犯错的频率。 | 您有哪些策略来减少错误率? |
| 重新训练周期 | 更新模型以整合新数据和见解的频率。 | 您多久重新训练模型一次?什么触发重新训练周期? |
| 异常检测 | 用于识别不符合预期行为的异常模式的工具和技术。 | 你将如何应对异常情况? |
微软的负责任人工智能方法确定了六项原则,这些原则应指导人工智能的开发和使用。以下是这些原则的定义,以及聊天应用开发者需要考虑的事项及其重要性。
| 原则 | 微软的定义 | 聊天应用开发者的考虑事项 | 为什么重要 |
|---|---|---|---|
| 公平性 | 人工智能系统应公平对待所有人。 | 确保聊天应用不会基于用户数据进行歧视。 | 建立用户信任和包容性;避免法律后果。 |
| 可靠性与安全性 | 人工智能系统应可靠且安全地运行。 | 实施测试和故障保护措施以尽量减少错误和风险。 | 确保用户满意度并防止潜在伤害。 |
| 隐私与安全 | 人工智能系统应安全并尊重隐私。 | 实施强大的加密和数据保护措施。 | 保护用户敏感数据并遵守隐私法律。 |
| 包容性 | 人工智能系统应赋能所有人并与人互动。 | 设计对多样化用户群体友好且易于使用的UI/UX。 | 确保更广泛的人群能够有效使用该应用。 |
| 透明性 | 人工智能系统应易于理解。 | 提供清晰的文档和人工智能响应的理由。 | 如果用户能够理解决策的生成方式,他们更可能信任系统。 |
| 责任性 | 人类应对人工智能系统负责。 | 建立明确的审计和改进人工智能决策的流程。 | 在出现错误时能够进行持续改进和纠正措施。 |
查看作业。它将带你完成一系列练习,从运行你的第一个聊天提示,到分类和总结文本等。注意,这些作业提供了不同编程语言的版本!
完成本课后,请查看我们的生成式人工智能学习合集,继续提升你的生成式人工智能知识!
前往第8课,了解如何开始构建搜索应用!
免责声明:
本文档使用AI翻译服务Co-op Translator进行翻译。尽管我们努力确保翻译的准确性,但请注意,自动翻译可能包含错误或不准确之处。原始语言的文档应被视为权威来源。对于重要信息,建议使用专业人工翻译。我们不对因使用此翻译而产生的任何误解或误读承担责任。


