许多 Azure OpenAI 模型都是生成式 AI 模型,这些模型已经展示了内容和代码生成、摘要和搜索等高级功能的改进。许多这些改进也带来了与有害内容、操纵、类人行为、隐私等相关的负责任的人工智能挑战。有关这些模型的功能、限制和适当用例的更多信息,请查看透明度说明。
除了透明度说明之外,我们还创建了技术建议和资源,以帮助客户设计、开发、部署和使用负责任地实施 Azure OpenAI 模型的 AI 系统。我们的建议以Microsoft Responsible AI 标准为基础,该标准制定了我们自己的工程团队遵循的政策要求。该标准的大部分内容都遵循一定的模式,要求团队识别、衡量和减轻潜在危害,并规划如何操作人工智能系统。根据这些实践,这些建议分为四个阶段:
识别:通过迭代红队、压力测试和分析,识别人工智能系统可能造成的潜在危害并确定其优先级。
测量:通过建立明确的指标、创建测量测试集以及完成迭代、系统测试(手动和自动)来测量这些危害的频率和严重程度。
缓解:通过实施工具和策略(例如即时工程和使用我们的内容过滤器)来缓解危害。实施缓解措施后重复测量以测试有效性。
操作:定义并执行部署和操作准备计划。
除了与 Microsoft Responsible AI 标准相对应之外,这些阶段还与NIST AI 风险管理框架中的功能密切对应。
确认
识别人工智能系统中可能发生或由人工智能系统引起的潜在危害是负责任的人工智能生命周期的第一阶段。越早开始识别潜在危害,就越能更有效地减轻危害。在评估潜在危害时,重要的是要了解在特定环境中使用 Azure OpenAI 服务可能导致的危害类型。在本节中,我们提供建议和资源,您可以使用它们通过影响评估、迭代红队测试、压力测试和分析来识别危害。红队和压力测试是一组测试人员聚集在一起并有意探索系统以识别其局限性、风险面和漏洞的方法。
这些步骤的目标是为每个特定场景生成潜在危害的优先级列表。
识别与您的特定模型、应用程序和部署场景 相关的危害。
识别与您在系统中使用的模型和模型功能(例如,GPT-3 模型与 GPT-4 模型)相关的潜在危害。考虑这一点很重要,因为每个模型都有不同的功能、限制和风险,如上面各节中更详细地描述的。
确定您正在开发的系统的预期用途所带来的任何其他危害或扩大的危害范围。考虑使用负责任的人工智能影响评估来识别潜在危害。
例如,让我们考虑一个总结文本的人工智能系统。文本生成的某些用途的风险低于其他用途。例如,如果系统要在医疗保健领域用于总结医生笔记,则因不准确而造成伤害的风险高于系统总结在线文章的风险。
根据频率和严重程度等风险要素对危害进行优先级排序。评估每种危害的风险级别以及每种风险发生的可能性,以便对您已识别的危害列表进行优先级排序。考虑与组织内的主题专家和风险经理合作,并在适当时与相关的外部利益相关者合作。
从最高优先级的危害开始进行红队测试和压力测试,以更好地了解所识别的危害是否以及如何在您的场景中实际发生,以及识别您最初没有预料到的新危害。
使用组织的内部合规流程与相关利益相关者共享此信息。
在此识别阶段结束时,您应该有一个记录在案的、按优先顺序排列的危害列表。当系统的进一步测试和使用中出现新的危害和新的危害实例时,您可以再次按照上述流程更新和完善此列表。
措施
一旦确定了优先危害列表,下一阶段就涉及开发一种系统测量每种危害的方法并对人工智能系统进行评估。有手动和自动测量方法。我们建议您从手动测量开始两者都进行。
手动测量适用于:
衡量一小部分优先问题的进展。在减轻特定危害时,最有效的做法通常是继续手动检查小数据集的进度,直到不再观察到危害,然后再转向自动测量。
定义和报告指标,直到自动测量足够可靠,可以单独使用。
定期抽查,衡量自动测量的质量。
自动测量可用于:
大规模测量并增加覆盖范围,以提供更全面的结果。
随着系统、使用情况和缓解措施的发展,持续进行测量以监控任何回归。
下面,我们提供了具体建议来衡量您的人工智能系统的潜在危害。我们建议您首先手动完成此过程,然后制定计划以自动化该过程:
创建可能产生每种优先危害的输入:通过生成可能产生每种优先危害的目标输入的许多不同示例来创建测量集。
生成系统输出:将测量集中的示例作为输入传递到系统以生成系统输出。记录输出。
评估系统输出并向相关利益相关者报告结果
定义明确的指标。对于系统的每个预期用途,建立衡量每个潜在有害输出的频率和严重程度的指标。针对您确定的每种优先危害类型,创建清晰的定义,对在您的系统和场景中被视为有害或有问题的输出进行分类。
根据明确的指标定义评估输出,并记录和量化有害输出的发生。定期重复测量,以评估缓解措施并监控任何回归。
使用组织的内部合规流程与相关利益相关者共享此信息。
在此测量阶段结束时,您应该有一个定义的测量方法来对系统针对每种潜在危害的执行情况进行基准测试,以及一组初始记录结果。当您继续实施和测试缓解措施时,应继续细化指标和测量集(例如,为最初未预料到的新危害添加指标)并更新结果。
缓解
减轻大型语言模型(例如 Azure OpenAI 模型)带来的危害需要采用迭代、分层方法,其中包括实验和持续测量。我们建议制定一项缓解计划,其中包含针对此过程早期阶段确定的危害的四层缓解措施:
在模型级别,了解您将使用的模型以及模型开发人员可能已采取哪些微调步骤以使模型符合其预期用途并降低潜在有害用途的风险非常重要和结果。
例如,对于 GPT-4,模型开发人员已经能够使用强化学习方法作为负责任的 AI 工具,以更好地将模型与设计者的预期目标结合起来。
在安全系统级别,您应该了解已实施的平台级别缓解措施,例如有助于阻止有害内容输出的Azure OpenAI 内容过滤器。
在应用程序级别,应用程序开发人员可以实现元提示和以用户为中心的设计和用户体验缓解措施。元提示是提供给模型以指导其行为的指令;它们的使用可以在引导系统按照您的期望运行方面发挥重要作用。以用户为中心的设计和用户体验 (UX) 干预措施也是防止误用和过度依赖人工智能的关键缓解工具。
在定位层面,有很多方法可以让将使用您的系统或受您的系统影响的人们了解其功能和局限性。
下面,我们提供了在不同层面实施缓解措施的具体建议。并非所有这些缓解措施都适合每种情况,相反,这些缓解措施可能不足以满足某些情况。仔细考虑您的场景和您确定的优先危害,并在实施缓解措施时,制定一个流程来衡量和记录其对您的系统和场景的有效性。
模型级缓解措施:查看并确定哪个 Azure OpenAI 基本模型最适合您正在构建的系统,并自行了解其功能、限制以及为降低已发现的潜在危害风险而采取的任何措施。例如,如果您正在使用 GPT-4,除了阅读本透明说明之外,您还可以查看 OpenAI 的GPT-4 系统卡,解释该模型带来的安全挑战以及 OpenAI 为准备 GPT-4 而采用的安全流程。部署。可能值得尝试不同版本的模型(包括通过红队和测量),以了解危害如何以不同的方式呈现。
安全系统级缓解措施:识别并评估平台级解决方案(例如Azure OpenAI 内容过滤器)的有效性,以帮助减轻已识别的潜在危害。
应用程序级缓解措施:提示工程(包括元提示调整)可以有效缓解许多不同类型的损害。查看并实施此处记录的元提示(也称为“系统消息”或“系统提示”)指南和最佳实践。
我们建议实施以下以用户为中心的设计和用户体验(UX)干预措施、指导和最佳实践,以引导用户按预期使用系统并防止过度依赖人工智能系统:
审查和编辑干预措施:设计用户体验 (UX),鼓励使用系统的人员在接受 AI 生成的输出之前对其进行审查和编辑(请参阅HAX G9:支持高效纠正)。
在用户首次开始使用系统时以及在持续使用过程中的适当时间,突出显示人工智能生成的输出中潜在的不准确性(请参阅HAX G2:明确系统可以做它能做的事情的程度)。在首次运行体验 (FRE) 中,通知用户 AI 生成的输出可能包含不准确之处,他们应该验证信息。在整个体验过程中,包括提醒检查人工智能生成的输出是否存在潜在的不准确之处,无论是总体上还是与系统可能错误生成的特定类型内容相关的不准确之处。例如,如果您的测量过程确定您的系统对数字的准确性较低,请在生成的输出中标记数字以提醒用户并鼓励他们检查数字或寻求外部来源进行验证。
用户责任。提醒人们在审查人工智能生成的内容时对最终内容负责。例如,在提供代码建议时,提醒开发人员在接受之前检查和测试建议。
揭示人工智能在交互中的作用。让人们意识到他们正在与人工智能系统(而不是另一个人)交互。在适当的情况下,告知内容消费者内容已部分或全部由人工智能模型生成;此类通知可能是法律或适用的最佳实践所要求的,并且可以减少对人工智能生成的输出的不当依赖,并可以帮助消费者自行判断如何解释此类内容并采取行动。
防止系统拟人化。人工智能模型可能会输出包含意见、情感陈述或其他表述的内容,这些表述可能暗示它们与人类相似,可能会被误认为是人类身份,或者可能会误导人们认为系统具有某些功能,但实际上它并不具有某些功能。 't。实施降低此类产出风险或纳入披露的机制,以帮助防止对产出的误解。
引用参考文献和信息来源。如果您的系统根据发送到模型的引用生成内容,则明确引用信息源可以帮助人们了解人工智能生成的内容来自何处。
在适当的情况下限制输入和输出的长度。限制输入和输出长度可以减少产生不良内容、超出其预期用途的系统误用或其他有害或非预期用途的可能性。
结构输入和/或系统输出。在应用程序中使用即时工程技术来构建系统输入,以防止开放式响应。您还可以限制输出以某些格式或模式构建。例如,如果您的系统为响应查询而生成虚构角色的对话,请限制输入,以便人们只能查询一组预定的概念。
准备预先确定的回应。对于某些查询,模型可能会生成攻击性的、不适当的或其他有害的响应。当检测到有害或冒犯性的查询或响应时,您可以设计系统以向用户提供预定的响应。预定的反应应该经过深思熟虑地制定。例如,应用程序可以提供诸如“你是谁/什么?”之类的问题的预先写好的答案。以避免系统做出拟人化的响应。您还可以使用预先确定的答案来回答“您的使用条款是什么?”等问题。引导人们采取正确的政策。
限制社交媒体上的自动发布。限制人们如何自动化您的产品或服务。例如,您可以选择禁止将人工智能生成的内容自动发布到外部网站(包括社交媒体),或禁止自动执行生成的代码。
机器人检测。设计并实施一种机制来禁止用户在您的产品上构建 API。
定位级别缓解措施:
适当透明。为系统用户提供适当程度的透明度非常重要,以便他们能够围绕系统的使用做出明智的决策。
提供系统文档。为您的系统制作并提供教育材料,包括对其功能和限制的解释。例如,这可以是通过系统访问的“了解更多”页面的形式。
发布用户指南和最佳实践。通过发布最佳实践来帮助用户和利益相关者正确使用系统,例如及时制作、在接受之前对其进行审查等。此类指南可以帮助人们了解系统的工作原理。如果可能,将指南和最佳实践直接纳入用户体验中。
当您实施缓解措施来解决潜在的已识别危害时,重要的是开发一个流程来持续衡量此类缓解措施的有效性,记录衡量结果,并审查这些衡量结果以不断改进系统。
操作
一旦测量和缓解系统到位,我们建议您定义并执行部署和运营准备计划。此阶段包括与相关利益相关者完成对系统和缓解计划的适当审查,建立收集遥测和反馈的管道,以及制定事件响应和回滚计划。
有关如何部署和操作系统使用 Azure OpenAI 服务以及适当的、有针对性的危害缓解措施的一些建议包括:
与组织内的合规团队合作,了解您的系统需要进行哪些类型的审核以及何时需要(例如,法律审核、隐私审核、安全审核、可访问性审核等)。
制定并实施以下内容:
制定分阶段交付计划。我们建议您使用“分阶段交付”方法逐步启动使用 Azure OpenAI 服务的系统。这让有限的人有机会尝试该系统、提供反馈、报告问题和疑虑,并在系统更广泛发布之前提出改进建议。它还有助于管理意外故障模式、意外系统行为和报告意外问题的风险。
制定事件响应计划。制定事件响应计划并评估响应事件所需的时间。
制定回滚计划确保您可以在发生意外事件时快速有效地回滚系统。
做好针对意外伤害立即采取行动的准备。构建必要的功能和流程,以阻止有问题的提示和响应,并尽可能接近实时。当意外伤害确实发生时,尽快阻止有问题的提示和响应,制定和部署适当的缓解措施,调查事件并实施长期解决方案。
开发一种机制来阻止滥用您系统的人。开发一种机制来识别违反您的内容政策(例如,通过生成仇恨言论)或以其他方式将您的系统用于意外或有害目的的用户,并采取行动防止进一步的滥用。例如,如果用户经常使用您的系统生成被内容安全系统阻止或标记的内容,请考虑阻止他们进一步使用您的系统。在适当的情况下实施上诉机制。
建立有效的用户反馈渠道。实施反馈渠道,利益相关者(以及公众,如果适用)可以通过该渠道提交反馈或报告生成内容的问题或在使用系统期间出现的其他问题。记录如何处理、考虑和解决此类反馈。评估反馈并根据用户反馈改进系统。一种方法可能是包含带有生成内容的按钮,允许用户将内容识别为“不准确”、“有害”或“不完整”。这可以提供更广泛使用的结构化反馈信号以供分析。
遥测数据。识别并记录(符合适用的隐私法、政策和承诺)表明用户满意度或他们按预期使用系统的能力的信号。使用遥测数据来识别差距并改进系统。
本文件无意也不应被解释为提供法律建议。您所在的司法管辖区可能有适用于您的人工智能系统的各种监管或法律要求。如果您不确定可能适用于您的系统的法律或法规,特别是如果您认为这些法律或法规可能会影响这些建议,请咨询法律专家。请注意,并非所有这些建议和资源都适合每种场景,相反,这些建议和资源可能不足以满足某些场景。