Skip to content

Latest commit

 

History

History
198 lines (128 loc) · 17.1 KB

File metadata and controls

198 lines (128 loc) · 17.1 KB

构建生成式 AI 驱动的聊天应用

构建生成式 AI 驱动的聊天应用

(点击上方图片观看本课视频)

在我们已经了解如何构建文本生成应用之后,现在来看看聊天应用。

聊天应用已经融入了我们的日常生活,不仅仅是提供休闲交流的工具。它们还是客户服务、技术支持,甚至是复杂咨询系统的重要组成部分。很可能你最近就从某个聊天应用中获得了帮助。随着我们将生成式 AI 等更先进的技术集成到这些平台中,复杂性增加了,挑战也随之而来。

我们需要回答的一些问题是:

  • 构建应用。如何高效地构建并无缝集成这些 AI 驱动的应用以满足特定的使用场景?
  • 监控。应用部署后,如何监控并确保应用在功能和遵守负责任的 AI 六项原则方面都能达到最高质量?

随着我们进一步进入由自动化和无缝人机交互定义的时代,理解生成式 AI如何改变聊天应用的范围、深度和适应性变得至关重要。本课将探讨支持这些复杂系统的架构方面,深入研究针对领域特定任务进行微调的方法,并评估确保负责任 AI 部署的相关指标和考虑因素。

介绍

本课内容包括:

  • 高效构建和集成聊天应用的技术。
  • 如何对应用进行定制和微调。
  • 有效监控聊天应用的策略和考虑因素。

学习目标

完成本课后,您将能够:

  • 描述将聊天应用集成到现有系统中的考虑因素。
  • 根据特定使用场景定制聊天应用。
  • 确定关键指标和考虑因素,以有效监控和维护 AI 驱动聊天应用的质量。
  • 确保聊天应用负责任地利用 AI 技术。

将生成式 AI 集成到聊天应用中

通过生成式 AI 提升聊天应用不仅仅是让它们变得更智能;更重要的是优化其架构、性能和用户界面,以提供高质量的用户体验。这包括研究架构基础、API集成和用户界面设计。本节旨在为您提供一份全面的路线图,无论是将其集成到现有系统中,还是作为独立平台构建。

完成本节后,您将掌握高效构建和整合聊天应用的专业知识。

聊天机器人还是聊天应用?

在深入构建聊天应用之前,让我们比较一下“聊天机器人”和“AI驱动的聊天应用”,它们在角色和功能上有着显著的区别。聊天机器人的主要目的是自动化特定的对话任务,例如回答常见问题或跟踪包裹。它通常由基于规则的逻辑或复杂的AI算法驱动。相比之下,AI驱动的聊天应用是一个更广泛的环境,旨在促进人类用户之间的各种形式的数字通信,例如文本、语音和视频聊天。其显著特点是集成了生成式AI模型,可以模拟细腻、类似人类的对话,根据各种输入和上下文线索生成响应。生成式AI驱动的聊天应用可以进行开放领域的讨论,适应不断变化的对话上下文,甚至生成创造性或复杂的对话。

下表概述了它们在数字通信中的独特角色的主要差异和相似之处。

聊天机器人 生成式AI驱动的聊天应用
任务导向且基于规则 上下文感知
通常集成到更大的系统中 可以托管一个或多个聊天机器人
功能有限,基于编程 集成生成式AI模型
专注于特定任务的结构化交互 能够进行开放领域的讨论

利用SDK和API的预构建功能

构建聊天应用时,一个很好的起点是评估现有的资源。使用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密钥。如果未设置密钥,您将收到错误提示。

用户体验 (UX)

一般的用户体验原则适用于聊天应用,但由于涉及机器学习组件,这里有一些特别重要的额外考虑因素。

  • 解决模糊性的机制:生成式AI模型有时会生成模糊的答案。如果用户遇到此问题,允许他们请求澄清的功能会非常有帮助。
  • 上下文保留:高级生成式AI模型能够记住对话中的上下文,这可能是用户体验的必要资产。让用户能够控制和管理上下文可以改善用户体验,但也带来了保留敏感用户信息的风险。可以通过引入保留策略等方式来平衡上下文需求与隐私之间的关系。
  • 个性化:通过学习和适应,AI模型可以为用户提供个性化体验。通过用户档案等功能定制用户体验,不仅让用户感到被理解,还能帮助他们更高效地找到具体答案,从而创造更满意的互动。

OpenAI的ChatGPT中的“自定义指令”设置就是个性化的一个例子。它允许您提供关于自己的信息,这些信息可能是提示的重要上下文。以下是一个自定义指令的示例。

ChatGPT中的自定义指令设置

这个“档案”提示ChatGPT创建一个关于链表的课程计划。注意,ChatGPT会根据用户的经验提供更深入的课程计划。

ChatGPT中关于链表课程计划的提示

微软的大型语言模型系统消息框架

微软提供了指导,帮助编写有效的系统消息以生成LLM的响应,分为以下四个方面:

  1. 定义模型的目标用户,以及其能力和局限性。
  2. 定义模型的输出格式。
  3. 提供展示模型预期行为的具体示例。
  4. 提供额外的行为防护措施。

无障碍设计

无论用户是视觉、听觉、运动还是认知障碍者,一个设计良好的聊天应用都应该对所有人可用。以下列表分解了针对各种用户障碍的特定功能,以增强无障碍性。

  • 针对视觉障碍的功能:高对比度主题和可调整大小的文本,屏幕阅读器兼容性。
  • 针对听觉障碍的功能:文本转语音和语音转文本功能,音频通知的视觉提示。
  • 针对运动障碍的功能:支持键盘导航,语音命令。
  • 针对认知障碍的功能:简化语言选项。

针对领域特定语言模型的定制和微调

想象一个聊天应用能够理解您公司的术语,并预测用户群体常见的具体查询。有几种值得一提的方法:

  • 利用DSL模型。DSL代表领域特定语言。您可以利用所谓的DSL模型,这些模型经过特定领域的训练,能够理解相关概念和场景。
  • 应用微调。微调是指使用特定数据进一步训练模型的过程。

定制:使用DSL

利用领域特定语言模型(DSL模型)可以通过提供专业的、与上下文相关的交互来增强用户参与度。这是一种经过训练或微调的模型,能够理解和生成与特定领域、行业或主题相关的文本。使用DSL模型的选项可以从从头开始训练,到通过SDK和API使用现有模型。另一种选择是微调,即采用现有的预训练模型并将其调整为适应特定领域。

定制:应用微调

当预训练模型在特定领域或任务中表现不足时,通常会考虑进行微调。

例如,医疗查询非常复杂,需要大量的上下文。当医疗专业人员诊断患者时,他们会基于多种因素,例如生活方式或既往病史,甚至可能依赖最近的医学期刊来验证诊断。在这种复杂的场景中,通用AI聊天应用可能无法成为可靠的资源。

场景:医疗应用

考虑一个设计用于帮助医疗从业者的聊天应用,它可以快速参考治疗指南、药物相互作用或最新的研究成果。

通用模型可能足以回答基本的医学问题或提供一般建议,但可能在以下方面存在困难:

  • 高度具体或复杂的案例。例如,神经科医生可能会问应用程序:“目前管理儿童患者耐药性癫痫的最佳实践是什么?”
  • 缺乏最新进展。通用模型可能难以提供包含神经学和药理学最新进展的答案。

在这些情况下,使用专业的医学数据集对模型进行微调,可以显著提高其处理这些复杂医学问题的能力和可靠性。这需要访问一个大型且相关的数据集,代表需要解决的领域特定挑战和问题。

高质量AI驱动聊天体验的考虑因素

本节概述了“高质量”聊天应用的标准,包括可操作指标的捕获以及遵守负责任使用AI技术的框架。

关键指标

为了保持应用的高质量性能,跟踪关键指标和考虑因素至关重要。这些测量不仅确保了应用的功能性,还评估了AI模型和用户体验的质量。以下是涵盖基本、AI和用户体验指标的列表。

指标 定义 聊天应用开发者的考虑因素
正常运行时间 测量应用程序运行和用户可访问的时间。 如何最大限度地减少停机时间?
响应时间 应用程序回复用户查询所需的时间。 如何优化查询处理以提高响应时间?
准确率 正确预测的正例与总正例预测的比例。 如何验证模型的准确率?
召回率(敏感性) 正确预测的正例与实际正例的比例。 如何测量和提高召回率?
F1分数 准确率和召回率的调和平均值,平衡两者之间的权衡。 您的目标F1分数是多少?如何平衡准确率和召回率?
困惑度 测量模型预测的概率分布与数据实际分布的匹配程度。 如何最小化困惑度?
用户满意度指标 测量用户对应用的感知,通常通过调查收集。 您多久收集一次用户反馈?如何根据反馈进行调整?
错误率 模型在理解或输出中犯错的频率。 您有哪些策略来减少错误率?
重新训练周期 更新模型以整合新数据和见解的频率。 您多久重新训练模型一次?什么触发重新训练周期?
异常检测 用于识别不符合预期行为的异常模式的工具和技术。 你将如何应对异常情况?

在聊天应用中实施负责任的人工智能实践

微软的负责任人工智能方法确定了六项原则,这些原则应指导人工智能的开发和使用。以下是这些原则的定义,以及聊天应用开发者需要考虑的事项及其重要性。

原则 微软的定义 聊天应用开发者的考虑事项 为什么重要
公平性 人工智能系统应公平对待所有人。 确保聊天应用不会基于用户数据进行歧视。 建立用户信任和包容性;避免法律后果。
可靠性与安全性 人工智能系统应可靠且安全地运行。 实施测试和故障保护措施以尽量减少错误和风险。 确保用户满意度并防止潜在伤害。
隐私与安全 人工智能系统应安全并尊重隐私。 实施强大的加密和数据保护措施。 保护用户敏感数据并遵守隐私法律。
包容性 人工智能系统应赋能所有人并与人互动。 设计对多样化用户群体友好且易于使用的UI/UX。 确保更广泛的人群能够有效使用该应用。
透明性 人工智能系统应易于理解。 提供清晰的文档和人工智能响应的理由。 如果用户能够理解决策的生成方式,他们更可能信任系统。
责任性 人类应对人工智能系统负责。 建立明确的审计和改进人工智能决策的流程。 在出现错误时能够进行持续改进和纠正措施。

作业

查看作业。它将带你完成一系列练习,从运行你的第一个聊天提示,到分类和总结文本等。注意,这些作业提供了不同编程语言的版本!

出色的工作!继续学习之旅

完成本课后,请查看我们的生成式人工智能学习合集,继续提升你的生成式人工智能知识!

前往第8课,了解如何开始构建搜索应用


免责声明
本文档使用AI翻译服务Co-op Translator进行翻译。尽管我们努力确保翻译的准确性,但请注意,自动翻译可能包含错误或不准确之处。原始语言的文档应被视为权威来源。对于重要信息,建议使用专业人工翻译。我们不对因使用此翻译而产生的任何误解或误读承担责任。