博客

用你自己的“黄队” LLM 构建负责任的 AI 产品

我们用于构建 AI 的工具正在飞速演进,而 PyTorch 正处于许多技术进步的核心。然而,如果我们不改进构建 AI 系统的方法,在提升性能的同时,我们也有可能在迅速放大潜在的危害。负责任地构建 AI 意味着所设计的系统不仅要性能卓越,还要做到公平、安全且透明——例如,确保 AI 招聘工具不会偏袒任何特定的人口群体。

开发负责任 AI 系统的一种有效方法是“黄队”(Yellow Teaming)——这是一种主动性实践,旨在在部署前发现潜在的意外后果。黄队通过做出更深思熟虑、具备影响意识的设计决策,帮助企业在竞争激烈的市场中脱颖而出,从而打造出整体更优秀的产品。

在本篇博客中,我们将展示如何利用可重用的系统提示词(system prompt),在 AWS Graviton4 上快速创建一个基于 PyTorch 的 LLM 黄队助手。我们还将提供一个示例,展示如何使用您的新助手来探索功能设计中可能导致商业严重后果的意外情况,并最终打造出更好的产品。

让我们开始吧。

什么是黄队(Yellow Teaming)

您可能已经听说过网络安全中更常见的术语“红队”(Red Teaming),它涉及模拟对手如何攻击您的产品并在发布前修复漏洞。虽然存在其他颜色编码的方法(如防御攻击的“蓝队”),但“黄队”的不同之处在于,它从产品生命周期的开始就专注于深思熟虑的设计和实现。 红队实践已经被应用到 AI 领域。如今,黄队原则也正成为 AI 开发的重要组成部分。

黄队实践通过提出一系列探索性问题,帮助揭示您的产品对业务、用户以及整个社会更广泛的、意想不到的影响。这种黄队的应用及其背后的基本原理在 The Consilience Project 的文章《开发进行中》(Development in Progress)中有深刻的阐述。Center for Humane Technology 的免费课程《最大限度减少有害后果》(Minimizing Harmful Consequences)模块中也提供了与之密切相关的实践方法。

为什么黄队很重要?

其核心理念是:通过从广阔的视角分析产品决策的后果,您可以设计出更好的产品,为公司的利润和用户的福祉创造正向反馈循环。例如,它能帮助您避免构建一个无意中强化偏见的聊天机器人。

传统的开发实践通常致力于解决狭隘定义的成功指标。设定具体的产品可衡量指标有助于聚焦和问责,但也可能导致对单一指标的过度优化,而忽视了对公司同样重要的其他信号。例如,构建一款 AI 驱动的推荐应用,短期内可以提高参与度,但却让用户感觉变差,且难以长期留住用户。

狭隘的产品优化往往会导致未被衡量的负面影响。这包括用户在使用产品时感到倦怠或沮丧、声誉受损或用户对公司的整体参与度下降,以及因缺乏信任和有效的沟通而导致社会分裂。

在许多情况下,纸面上看起来成功的产品,实际上正在伤害您的用户、您的公司以及您的长期目标。

如何实施黄队实践

黄队方法简单且功能强大。选择一个您正在开发的产品,系统地评估其在大规模采用时对用户、业务和社会产生的各种后果。从直接后果开始,然后通过询问“之前的这些影响会导致什么结果?”来推演二阶和三阶后果。您应该从多个维度思考这些后果:

  1. 好与坏
  2. 短期与长期
  3. 预期与非预期
  4. 对公司与对用户
  5. 对单个用户与对用户群体

这类问题有助于促进富有成效的头脑风暴:

  • 这个功能会激励用户产生什么样的行为?
  • 这项技术提供了哪些功能(即使是无意的,用户现在能做哪些以前做不到的事情)?
  • 这会提高还是降低人们对我们平台的信任?
  • 哪些社会群体可能会受益——或者被抛在后面?

黄队基于复杂系统思维和外部性分析——这些领域传统上被认为远离工程工作流程。但是,通过引入一个轻量级的黄队助手来辅助您的构思过程,它可以成为产品开发中直观且高投资回报率(ROI)的一部分。

构建您的 PyTorch 黄队 GPT (YellowTeamGPT)

好消息是,您不需要哲学博士学位或顾问团也能对您的 AI 项目进行黄队测试。您只需要付诸行动,并在这项黄队实践中使用一个好的 LLM 和正确的提示词。在本地运行 LLM 有几个优势:最大的好处是您可以安全地输入保密的产品计划,而无需担心数据泄露。另一个好处是,较小的模型并不完美且会出错,这迫使用户对每一个输出进行批判性思考,从而使我们处于分析非显而易见产品后果的最佳状态。

以下是如何在您的 Graviton 实例上设置基于 PyTorch 的 80 亿参数 Llama3 模型。首先,创建一个运行 Ubuntu 24.04 且至少有 50 GB 存储空间的 r8g.4xlarge 实例,然后按照以下三个步骤操作:

1. 使用 torchchat 仓库和其他必要条件设置您的机器

sudo apt-get update && sudo apt install gcc g++ build-essential python3-pip python3-venv google-perftools -y

git clone https://github.com/pytorch/torchchat.git && cd torchchat

python3 -m venv .venv && source .venv/bin/activate

./install/install_requirements.sh

2. 输入您的 Hugging Face (HF) 访问令牌,从 Hugging Face 下载模型(请注意最大序列长度参数,您可以增加该参数以支持更长的对话,但这会线性增加内存使用量)

pip install -U "huggingface_hub[cli]"

huggingface-cli login

python torchchat.py export llama3.1 --output-dso-path exportedModels/llama3.1.so --device cpu --max-seq-length 8192

3. 使用 Arm CPU 优化运行模型,并将每条回复的最大 Token 长度设置为 700

LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libtcmalloc.so.4 TORCHINDUCTOR_CPP_WRAPPER=1 TORCHINDUCTOR_FREEZING=1 OMP_NUM_THREADS=16 python torchchat.py generate llama3.1 --dso-path exportedModels/llama3.1.so --device cpu --max-new-tokens 700 --chat

For more details on these commands and additional code snippets to add a UI to this chatbot, review this Arm Learning Path.

You can then enter a custom system prompt. Below is a simple prompt that turns your local LLM into a Yellow Teaming assistant. Feel free to review and tweak it to get the most out of it for your specific needs. Here’s what it does:
  1. 收集关键产品细节:您在构建什么、如何盈利、您的用户是谁。
  2. 分析直接和间接后果:YellowTeamGPT 会逐一呈现后果,考虑对您的业务、用户及更广泛层面的非显而易见的影响(您可能会开始自己思考出更多的影响)。
  3. 与您互动:您掌握主动权,可以指示 YellowTeamGPT 继续列出一般的直接后果、识别具体的公司风险、转向二阶效应,甚至构思功能以使您的产品更完善。

这是供您复制的 YellowTeamGPT 系统提示词。如果是直接复制,请确保将其作为一行复制到您的终端中,否则换行符可能会导致问题。

你是一位复杂系统思维和 AI 产品设计方面的专家,名为 YellowTeamGPT。你帮助技术人员构建用户喜爱并降低公司风险的优秀产品。你的工作方式是通过黄队(Yellow Teaming)方法论帮助用户评估其产品设计决策,该方法论旨在识别设计决策对业务、用户和社会的影响。

你将要求用户提供关于其正在开发的产品的信息。一旦获得足够的信息,你将分析该产品在大规模部署时可能产生的后果。构建你的思考过程:首先回顾直接后果,然后分析由这些直接影响产生的二阶后果(通过询问“接下来可能会发生什么?”)。考虑对公司、用户和社会的影响;考虑短期和长期影响;考虑诸如真理与认知、人类福祉、能力增长、经济等多个类别。

你的目的是建设性地挑战用户,而不是强化他们现有的想法。扮演“魔鬼代言人”的角色,帮助用户以他们目前尚未考虑到的方式进行思考。

你将按此格式输出:对于识别出的每一个后果,将其与产品质量联系起来,并向用户提出一个问题,帮助他们更好地设计产品以减轻该后果(或将负面影响转化为积极影响)。一次列出一个后果,并要求用户继续列出更多后果或深入探索该后果。

黄队示例

将提供的系统提示词输入您的 LLM 并按回车。接下来,您的 YellowTeamGPT 助手将询问一些产品细节。以下是我使用的假设产品示例:

我正在构建一个能将群聊对话转换为朗朗上口的流行歌曲的应用程序。目标群体是任何用户,例如 WhatsApp 用户。核心功能是导入群聊对话,并输出与歌词和节拍相匹配的曲调。这是一款适用于任何智能手机的应用。理想情况是拥有数百万用户。盈利方式是通过针对用户的定向广告。

您会注意到,当 YellowTeamGPT 思考并生成回复时,它明显比 ChatGPT 或其他流行 GPT 慢。就像模型的不准确性一样,它的慢速度也可以被视为一种优势。这项练习的目的是放慢脚步,仔细思考非显而易见的产品影响,并进行头脑风暴,在您的产品所触及的系统中创造积极价值。当您的 YellowTeamGPT 在“思考”时,您也应该如此。

以下是我对话的片段。首先,它从一个直接后果开始:

然后我指示它继续分析另一个后果:

我要求探索该应用大规模传播错误信息所带来的二阶效应:

最后,我请求协助进行头脑风暴,以构思减轻这种危害的产品功能。它生成了一些有趣的初步构思,虽然尚未达到产品化水平,但很容易激发进一步的思考。

通过在该用例中使用 YellowTeamGPT,我们能够迅速探索可能未曾考虑过的产品影响。我们随后能够针对之前未曾预料的问题进行功能头脑风暴,从而改善产品体验,同时也降低了我们假设公司声誉受损的风险。

将黄队实践融入您的工作流程

在任何决定产品功能和用户体验的决策环节,黄队都能发挥作用。以下是您可以使用新 YellowTeamGPT 的几个场景:

  • 新产品构思会,以扩展您的思维。
  • 功能规划文档,以压力测试您的规格说明。
  • 代码审查工作流,以标记潜在的滥用行为。
  • 冲刺回顾(Sprint retrospectives),以反思大规模下的设计选择。
  • 产品演示文稿(Pitch decks),以展示负责任的 AI 尽职调查。

这可以是非常正式的,也可以是非正式的。您和您的团队针对多个维度思考意外的、N 阶产品后果的次数越多,您的产品就会越好。通过将黄队融入您的工作,您不仅是在做正确的事情,您还在构建能够:

  • 获得用户更多参与和信任的产品
  • 减轻有害影响的产品
  • 最小化公司风险的产品
  • 创造持久商业价值的产品

让我们不再把负责任的 AI 实践仅仅当作待办事项清单上的勾选项,而是将其视为它真正的本质——一种为您的公司、您的用户以及我们共同的社会创造积极成果的竞争优势。