前面我们已经介绍了:
- 生成式人工智能Generative AI和LLMs介绍
- 发现和比较不同类型的 LLMs
- 正确有效的使用生成式人工智能
- 了解提示工程(Prompt Engineering)基础知识
- 创建高级提示工程(Prompt Engineering)的技巧
- 创建文本生成应用
我们已经学习了如何创建文本生成应用程序,现在让我们来探索聊天应用程序的工作原理。
聊天应用程序已经成为我们日常生活中不可缺少的一部分,它们不仅提供了一种轻松的交流方式,还承担了客户服务、技术支持甚至复杂的咨询系统的重要角色。您可能已经在聊天应用程序中得到过一些帮助。随着我们将生成式人工智能等更先进的技术融入到这些平台中,它们的复杂性也随之提高,同时也带来了更多的挑战。
我们需要解决的一些问题是:
- 构建应用程序 我们如何针对特定场景高效地构建并无缝地集成这些人工智能驱动的应用程序?
- 有效监控 部署后,我们如何监控并确保应用程序在功能方面符合负责任的人工智能的六大原则?
随着我们进入自动化和无缝人机交互的新时代,了解生成式人工智能如何改变聊天应用程序的范围、深度和适应性变得非常重要。本课程将深入探讨支持这些复杂系统的架构的各个方面,研究针对特定场景进行微调的方法,并评估和确保负责任的人工智能部署的相关指标和注意事项。
将生成式人工智能集成到聊天应用程序中
通过生成式人工智能提升聊天应用程序的目的不仅是让它们更智能,也是让它们更聪明。这涉及到优化它们的架构、性能和用户界面,以提供高质量的用户体验。这包括研究架构基础、API 集成和用户界面注意事项。本章旨在为您提供一个全面的路线图,指导您在这些复杂的环境中进行导航,无论您是将它们嵌入现有系统还是将它们构建为独立平台。
在完成本节后,您将具备高效构建和集成聊天应用程序所需的专业知识。
聊天机器人还是聊天应用程序?
在我们深入构建聊天应用程序之前,让我们比较一下"传统聊天机器人"和"生成式人工智能驱动的聊天应用程序",它们有着不同的角色和功能。传统聊天机器人的主要目的是自动完成特定的对话任务,例如回答常见问题或追踪包裹。它通常由基于规则的逻辑或复杂的人工智能算法控制。相比之下,生成式人工智能驱动的聊天应用程序是一个更广泛的环境,旨在促进各种形式的数字通信,例如用户之间的文本、语音和视频聊天。它的特征是集成了生成式人工智能模型,该模型可以模拟细致的人性化对话,并根据各种输入和上下文提示生成响应。生成式人工智能驱动的聊天应用程序可以参与开放领域的讨论,适应不断变化的对话环境,甚至生成创造性或复杂的对话。
下表总结了主要的差异和相似之处,以帮助我们理解它们在数字通信中的独特作用。
使用成熟的 SDK 和 API 构建生成式人工智能驱动的聊天应用程序
在构建聊天应用程序时,重要的第一步是评估现有的资源。使用 SDK 和 API 构建聊天应用程序是一种有益的策略,有多种原因。通过集成成熟的 SDK 和 API,可以战略性地定位您的应用程序,以实现长期的成功,并解决可扩展性和维护问题。
- 加速开发过程并降低成本: 依赖预构建的功能,而不是自己构建它们的昂贵过程,可以让您专注于您可能认为更重要的应用程序的其他方面,例如业务逻辑。
- 更好的性能: 从头开始构建功能时,您最终会问自己"它能否扩展?这个应用程序能否处理突然涌入的用户?"维护良好的 SDK 和 API 通常针对这些问题内置了解决方案。
- 更容易维护: 更新和改进更容易管理,因为大多数 API 和 SDK 只需要在发布新版本时更新库。
- 获取尖端技术: 利用经过微调和在大量数据集上训练的模型为您的应用程序提供自然语言功能。
访问 SDK 或 API 的功能通常涉及获取使用所提供服务的许可,这通常是通过使用唯一的 key 或身份验证 token 来实现的。我们将使用 OpenAI Python library 来探索它的样子。您也可以在本章的 notebook 中自己尝试。
ini
import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
chat_completion = openai.ChatCompletion.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 key 是在执行此操作之前设置的。如果没有设置 key,您将收到以下错误。
vbnet
AuthenticationError: No API key provided. You can set your API key in code using 'openai.api_key = <API-KEY>', or you can set the environment variable OPENAI_API_KEY=<API-KEY>). If your API key is stored in a file, you can point the openai module at it with 'openai.api_key_path = <PATH>'. You can generate API keys in the OpenAI web interface. See https://platform.openai.com/account/api-keys for details.
用户体验(UX)
一般的用户体验原则适用于聊天应用程序,但由于涉及机器学习组件,这里有一些额外的考虑因素,这就变得特别重要。
- 解决模糊性的机制:生成式人工智能模型有时会生成模糊的答案。如果用户遇到这个问题,允许用户请求澄清可能会有所帮助。
- 上下文保留: 先进的生成式人工智能模型能够记住对话中的上下文,这可能是用户体验的必要条件。赋予用户控制和管理上下文的能力可以改善用户体验,但也会带来保留敏感用户信息的风险。考虑这些信息的存储时间(例如引入保留策略)可以平衡上下文需求和隐私。
- 个性化: 人工智能模型具有学习和适应能力,为用户提供个性化体验。通过用户个人资料等功能定制用户体验,不仅让用户感到亲切,而且还有助于他们得到特定答案,创造更高效、令人满意的交互。
个性化的一个例子是 OpenAI 的 ChatGPT 中的"自定义指令"设置。它允许您提供有关您自己的信息,这些信息可能是您的提示的重要背景。 以下是自定义指令的示例。
"配置文件"提示 ChatGPT 在链接列表上创建课程计划。 请注意,ChatGPT 可以按照用户的特点获得更深入的课程计划。
微软的 LLMs 系统消息框架
微软指南 用于在 LLM 生成响应时编写有效的系统消息,分为四个部分:
- 定义模型的目标用户以及其功能和限制。
- 定义模型的输出格式。
- 提供展示模型期望行为的具体示例。
- 提供额外的行为保护。
辅助功能
无论用户是否有视觉、听觉、运动或认知障碍,设计良好的聊天应用程序都应该对所有人开放。以下列表详细列出了旨在增强各种用户障碍的可访问性的特定功能。
- 针对视觉障碍的功能:高对比度主题和可调整大小的文本、屏幕阅读器兼容性。
- 针对听觉障碍的功能:文本转语音和语音转文本功能、音频通知的视觉提示。
- 针对运动障碍的功能:键盘导航支持、语音命令。
- 认知障碍功能:简化的语言选项。
特定领域语言模型的定制和微调
想象一下,一个聊天应用程序可以理解您公司的行话并预测其用户群通常有的特定查询。有几种方法值得一提:
- 利用 DSL 模型。DSL 代表领域特定语言。您可以利用在特定领域训练的所谓 DSL 模型来了解其概念和场景。
- 应用微调。微调是使用特定数据进一步训练模型的过程。
定制:使用 DSL
利用特定于领域的语言模型(DSL 模型)可以通过提供专门的、上下文相关的交互来增强用户参与度。它是一个经过训练或微调的模型,可以理解和生成与特定领域、行业或主题相关的文本。使用 DSL 模型的选项多种多样,从头开始训练到通过 SDK 和 API 使用预先存在的模型。另一种选择是微调,其中涉及采用现有的预训练模型并将其适应特定领域。
定制:应用微调
当预训练模型在专门领域或特定任务中达不到要求时,通常会考虑微调。
例如,医疗查询很复杂并且需要大量上下文。当医疗专业人员诊断患者时,它会基于多种因素,例如生活方式或既往病史,甚至可能依赖最近的医学期刊来验证他们的诊断。在这种微妙的场景中,通用的人工智能聊天应用程序不可能成为可靠的来源。
场景:医疗应用
考虑一个聊天应用程序,旨在通过提供治疗指南、药物相互作用或最新研究结果的快速参考来帮助医生。
通用模型可能足以回答基本的医学问题或提供一般建议,但可能会遇到以下问题:
- 高度具体或复杂的案例。例如,神经科医生可能会询问应用程序:"目前治疗儿科患者耐药性癫痫的最佳实践是什么?"
- 缺乏最新进展。通用模型可能很难提供包含神经学和药理学最新进展的当前答案。
在这种情况下,使用专门的医疗数据集对模型进行微调可以显著提高其更准确、更可靠地处理这些复杂的医疗查询的能力。这需要访问大型且相关的数据集,这些数据集代表了需要解决的特定领域的挑战和问题。
高质量 AI 驱动的聊天体验的注意事项
本节概述了"高质量"聊天应用程序的标准,其中包括捕获可操作的指标以及遵守负责任地利用人工智能技术的框架。
关键指标
为了保持应用程序的高质量性能,跟踪关键指标和注意事项至关重要。这些测量不仅可以确保应用程序的功能,还可以评估人工智能模型和用户体验的质量。下面的列表涵盖了需要考虑的基本、人工智能和用户体验指标。
在聊天应用程序中实施负责任的人工智能实践
Microsoft 的 Responsible AI 方法确定了指导 AI 开发和使用的六项原则。以下是聊天开发人员应该考虑的原则、定义以及聊天开发人员应该考虑的事项以及为什么他们应该认真对待它们。