首页 / 资料库 / 微软 · 生成式 AI 入门

资料库15 分钟读完MIT聊天应用UX微调AI指标负责任AI

构建聊天应用

译自《Building Generative AI-Powered Chat Applications》 · 查看英文原文

原文出处Building Generative AI-Powered Chat Applications 原作者:Microsoft · 许可证:MIT License 中文译本由诸葛AI学院整理,仅供学习参考,版权归原作者与微软所有。

(译文按资料库规范不保留图片;原文开头是一张课程横幅图,点开为本课视频。)

前面已经学过怎么做文本生成应用,现在来看聊天应用。

聊天应用早就融入了我们的日常,早已超出闲聊工具的范围,成了客服、技术支持乃至专业咨询系统的一部分。不久前你可能就从某个聊天应用那里得到过帮助。随着生成式 AI 这类先进技术接入这些平台,系统的复杂度上去了,挑战也跟着上来。

有几个问题必须先想清楚:

  • 怎么构建应用。针对具体使用场景,如何高效构建这类 AI 应用,并把它们无缝集成进去?
  • 怎么监控。应用上线之后,如何监控和保证它始终处于高质量状态?这里的质量有两层:功能本身,以及是否遵守负责任的 AI 六项原则

我们正快步走进一个自动化、人机无缝交互的时代,理解生成式 AI 如何改变聊天应用的广度、深度和适应性,变得越发重要。本课会拆解支撑这类系统的架构,讨论面向特定领域的微调方法,并评估落地负责任的 AI 时该看哪些指标、该注意什么。

引言

本课涵盖:

  • 高效构建和集成聊天应用的技术。
  • 如何对应用做定制化和微调。
  • 有效监控聊天应用的策略与考量。

学习目标

学完本课,你将能够:

  • 说清楚把聊天应用集成进已有系统时需要考虑什么。
  • 针对具体使用场景定制聊天应用。
  • 找出关键指标和考量,监控并维护 AI 聊天应用的质量。
  • 让聊天应用负责任地使用 AI。

把生成式 AI 集成进聊天应用

用生成式 AI 升级聊天应用,光让它"更聪明"还远远不够。架构、性能、用户界面都得优化,最终交出高质量的用户体验。这就要研究架构基础、API(应用程序编程接口)集成和界面设计。本节无论你是要接入已有系统,还是做成独立平台,都给你一张覆盖这些领域的路线图。

读完本节,你就能高效地搭建和集成聊天应用。

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

动手做聊天应用之前,先把"聊天机器人"(chatbot)和"AI 驱动的聊天应用"区分开,两者扮演的角色和承担的功能不一样。

聊天机器人的主要任务是自动化完成特定的对话工作,比如回答常见问题、查询快递进度。它通常由规则逻辑或者复杂的 AI 算法驱动。AI 驱动的聊天应用则是一个大得多的环境,支撑文字、语音、视频等多种数字交流,人在其中也能互相聊天。它的标志是接入了生成式 AI 模型:模型能模拟细腻、接近真人的对话,依据大量多样的输入和上下文线索生成回复。这类应用可以聊开放话题,能跟上不断变化的对话语境,甚至能产出有创造性、有复杂度的对话内容。

下面这张表列出两者的关键差异和共同点,帮你看清它们在数字交流中各自的位置。

聊天机器人 生成式 AI 驱动的聊天应用
聚焦特定任务,基于规则 能感知上下文
常作为子系统接入更大的系统 可以承载一个或多个聊天机器人
功能局限于预先编程的部分 内嵌生成式 AI 模型
交互专业、结构化 能进行开放领域讨论

用 SDK 和 API 借力现成功能

做聊天应用,第一步是看看市面上已经有什么。用 SDK(软件开发工具包)和 API 来搭应用,好处很多。接入文档完善的 SDK 和 API,等于为应用的长期发展做好布局,扩展性和维护上的后顾之忧提前解决。

  • 加快开发,减少杂务:不用从零造轮子,你可以把精力放在应用里更要紧的部分,比如业务逻辑。
  • 性能更好:自己从头造功能,迟早会琢磨"它能扩展吗?用户突然涌进来扛得住吗?"维护良好的 SDK 和 API 通常自带这些问题的答案。
  • 维护更省心:新版本发布时,多数 API 和 SDK 只要升级一下库就行,更新和改进都好管理。
  • 用上前沿技术:接入经过大规模数据集训练和微调的模型,你的应用就有了自然语言能力。

调用 SDK 或 API 的功能,一般要先拿到服务使用许可,通常靠一个专属密钥或认证令牌(token)。我们用 OpenAI 的 Python 库来看看这是什么样。你也可以自己跑一跑本课的练习笔记本:OpenAI 版Azure OpenAI 服务版

```python import os from openai import OpenAI

API_KEY = os.getenv("OPENAI_API_KEY","")

client = OpenAI( api_key=API_KEY )

response = client.responses.create(model="gpt-5-mini", input="Suggest two titles for an instructional lesson on chat applications for generative AI.", store=False) print(response.output_text) ```

上面的例子用 GPT-5 mini 模型,通过 Responses API 完成提示词任务。注意在此之前要先设置好 API 密钥,不设密钥会直接报错。

用户体验(UX)

聊天应用要遵守 UX(用户体验)的通用原则,但因为系统里有机器学习成分,下面几条额外考量变得格外重要。

  • 处理歧义的机制:生成式 AI 模型偶尔会给出含混的答案。给用户一个"要求澄清"的入口,遇到这种情况很有用。
  • 上下文保持:先进的生成式 AI 模型能记住对话中的上下文,这对用户体验往往是刚需。让用户能控制和管理上下文会改善体验,但也带来敏感信息被留存的风险。要考虑这些信息存多久,比如引入留存策略,在上下文需要和隐私之间找平衡。
  • 个性化:AI 模型能学习、能适应,可以给每个用户不同的体验。用用户档案这类功能定制体验,用户会觉得被理解,也更容易找到想要的答案,交互更高效、更顺心。

个性化的一个现成例子,是 OpenAI ChatGPT 里的"自定义指令"(Custom instructions)设置。你可以在里面填写个人信息,作为提示词的重要上下文。原文此处有一张截图,展示的是 ChatGPT 的"自定义指令"设置界面。

这个"档案"会提示 ChatGPT 生成一份关于链表(linked list)的课程计划。注意,ChatGPT 考虑到了用户的经验背景,给出的计划更深入。原文此处有第二张截图,展示的就是这条提示词和生成结果。

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

微软发布过一套指南,教人怎么写有效的系统消息(system message),让大语言模型(LLM)生成更理想的回复。指南分四块:

  1. 明确模型为谁服务,说清它的能力边界和局限。
  2. 规定模型的输出格式。
  3. 给出具体示例,示范模型该有的行为。
  4. 追加行为护栏。

无障碍

用户可能有视觉、听觉、运动或认知方面的障碍,设计良好的聊天应用应该人人可用。下面按障碍类型列出对应的无障碍功能。

  • 视障支持:高对比度主题、可调字号、兼容屏幕阅读器。
  • 听障支持:文字转语音、语音转文字功能,声音提醒配视觉提示。
  • 运动障碍支持:支持键盘导航、语音命令。
  • 认知障碍支持:提供简化语言的选项。

面向特定领域的模型定制化与微调

想象一个聊天应用,它懂你们公司的行话,还能预判用户常问的问题。有两条路可走:

  • 用领域专用语言模型。DSL 即领域专用语言(domain-specific language)。这类模型在特定领域的数据上训练过,懂这个领域的概念和场景。
  • 做微调(fine-tuning)。微调就是拿特定数据对模型继续训练。

定制化路线一:用 DSL 模型

用领域专用语言模型,可以提供更专业、更贴合上下文的交互,用户参与度也会更高。这类模型经过训练或微调,能理解和生成特定领域、行业或学科的文字。用法有多种:从零训练一个,通过 SDK 和 API 调用现成的,或者做微调:拿一个已有的预训练模型,把它适配到具体领域。

定制化路线二:做微调

预训练模型在专门领域或具体任务上不够用时,就该考虑微调了。

拿医疗举例。医疗问题复杂,需要大量上下文。医生诊断病人,要看生活方式、既往病史等各种因素,有时还得对照最新医学文献验证诊断。在这么微妙的场景里,通用 AI 聊天应用靠不住。

场景:一个医疗应用

设想一个聊天应用,给医务人员快速查治疗指南、药物相互作用或最新研究发现。

通用模型答答基础医学问题、给点通用建议也许够用,但下面这些它会吃力:

  • 高度专门或复杂的病例。比如神经科医生问:"儿童患者耐药性癫痫,目前管理的最佳实践是什么?"
  • 跟不上最新进展。神经学和药理学的新进展,通用模型很难及时纳入答案。

这种情况下,用专门的医疗数据集微调模型,它处理这类复杂医学询问会更准确、更可靠。前提是你得有一个量大、对口的数据集,覆盖要解决的那些领域难题和问题。

高质量 AI 聊天体验的考量

本节给出"高质量"聊天应用的标准:抓到可操作的指标,并按负责任的 AI 框架来用技术。

关键指标

要让应用保持高质量,必须盯住关键指标。这些度量既保证应用功能正常,也评估 AI 模型和用户体验的质量。基础指标、AI 指标、体验指标都在下表里。

指标 定义 聊天开发者的考量
正常运行时间(Uptime) 应用可运行、用户可访问的时长占比 怎么把宕机时间压到最低?
响应时间(Response Time) 应用回复用户提问所花的时间 怎么优化查询处理,缩短响应时间?
精确率(Precision) 正确为正的预测数,占全部被预测为正样本的比例 怎么验证模型的精确率?
召回率(Recall,敏感度) 正确为正的预测数,占实际为正样本总数的比例 怎么度量并改进召回率?
F1 分数(F1 Score) 精确率与召回率的调和平均,平衡两者取舍 你的 F1 目标是多少?如何在精确率和召回率之间权衡?
困惑度(Perplexity) 度量模型预测的概率分布与数据真实分布的吻合程度 怎么降低困惑度?
用户满意度指标 用户对产品的主观评价,常靠问卷收集 多久收集一次用户反馈?拿到后怎么改进?
错误率(Error Rate) 模型在理解或输出上出错的频率 你有什么策略降低错误率?
再训练周期(Retraining Cycles) 模型更新以吸收新数据和洞察的频率 多久再训练一次模型?什么信号触发再训练?
异常检测(Anomaly Detection) 识别偏离预期的异常模式的工具与技术 发现异常后怎么响应?

在聊天应用中落地负责任的 AI

微软为负责任的 AI 定了六项原则,指导 AI 的开发和使用。下表列出原则、定义、开发者考量和重视它的理由。

原则 微软的定义 聊天开发者的考量 为什么重要
公平性 AI 系统应公平对待所有人。 确保聊天应用不基于用户数据搞歧视。 在用户中建立信任、保持包容,同时规避法律风险。
可靠性与安全性 AI 系统应可靠、安全地运行。 落实测试和故障保护,把错误与风险降到最低。 保住用户满意度,防止潜在伤害。
隐私与安全性 AI 系统应安全并尊重隐私。 实施强加密和数据保护措施。 保护敏感用户数据,遵守隐私法规。
包容性 AI 系统应让所有人受益、让所有人参与。 设计对多样人群都可访问、易用的界面。 让更多人能顺畅使用应用。
透明性 AI 系统应可被理解。 为 AI 的回复提供清晰的文档和理由。 用户理解决策怎么来的,才更愿意信任系统。
问责制 人应对 AI 系统负责。 建立清晰的流程,审计并改进 AI 决策。 出错时能持续改进、及时纠正。

动手作业

去做本课的作业。练习从跑通第一组聊天提示词开始,一直做到文本分类和摘要。作业有多种编程语言版本可选!

继续前行

学完本课,可以看看微软的生成式 AI 学习资源合集,继续补充生成式 AI 知识。

接下来去第 8 课,学构建搜索应用

这篇在讲什么,跟咱们的课怎么对?

资料库是大厂公开教材的中文译本,偏原理和工程做法。想看面向中小企业的白话版本,去入门课场景课