我们用于构建AI的工具正在迅速发展,PyTorch是许多进步的核心。但是,除非我们改进构建AI系统的方法,否则我们可能会在扩展性能的同时,也加速了危害的放大。负责任地构建AI意味着设计不仅性能良好,而且公平、安全和透明的系统——例如确保AI招聘工具不会偏袒某个特定人群。
开发负责任的AI系统的一种有效方法是进行“黄队演练”(Yellow Teaming)——一种主动的练习,在部署前揭示潜在的意外后果。黄队演练通过做出更周到、更具影响意识的设计选择,从而打造出整体上更好的产品,帮助公司在竞争激烈的市场中脱颖而出。
在这篇博客中,我们将展示如何使用可复用的系统提示,快速创建一个基于PyTorch的LLM黄队演练助手,并在AWS Graviton4上运行。我们还将提供一个示例,向您展示如何使用这个新助手来探索功能设计的意外业务关键后果,并最终构建更好的产品。
让我们开始吧。
什么是黄队演练
您可能已经知道网络安全领域中更流行的术语“红队演练”(Red Teaming),它涉及模拟对手可能如何攻击您的产品,并在发布前修复漏洞。还存在其他颜色编码的方法(例如防御攻击的蓝队),但黄队演练的独特之处在于从产品生命周期的开始就专注于周到的设计和实施。红队演练实践已经应用于AI领域。黄队演练原则现在也成为AI开发的重要组成部分。
黄队演练的实践会提出一系列探究性问题,以帮助揭示您的产品对您的业务、用户和整个社会产生的更广泛、意想不到的影响。黄队演练的这种应用及其背后的原理,在“发展进行中”这篇由Consilience Project撰写的文章中得到了详尽的解释。Center for Humane Technology的免费课程中的“最大程度减少有害后果”模块中也提供了一种密切相关的实践。
黄队演练为何重要?
其核心思想是,通过广泛审视您的产品决策后果,您可以设计出更好的产品,从而为公司的利润和用户的福祉创造积极的反馈循环。例如,它可以帮助您避免构建一个无意中加剧偏见的聊天机器人。
传统的产品开发实践通常只解决狭隘定义的成功指标。创建具体的产品衡量标准有助于集中精力和问责,但可能导致过度优化指标,而忽略对公司重要的其他信号。例如,构建一个带有AI驱动推荐的应用程序,短期内能提高参与度,但长期却让用户感到不适并流失。
狭隘的产品优化往往会导致未被衡量的负面影响。这包括用户在使用产品时感到倦怠或沮丧,声誉受损或对公司的整体参与度降低,以及社会因缺乏信任和有意义的沟通而分裂。
在许多情况下,纸面上的产品成功实际上正在损害您的用户、您的公司和您的长期目标。
如何实施黄队演练实践
黄队演练直接而强大。选择您正在构建的产品,并系统地评估其在规模化采用时对您的用户、业务和社会造成的各种后果。从直接后果开始,然后通过询问“由于之前的影响,接下来会发生什么?”来转向二阶和三阶后果。您应该从多个维度思考这些后果。
- 好与坏
- 短期和长期
- 预期和非预期
- 您的公司和您的用户
- 单个用户和用户群体
这些类型的问题有助于促进富有成效的头脑风暴
- 此功能将激励用户产生何种行为?
- 这项技术提供了哪些可供性(用户现在可以做些以前做不到的事情,即使是无意的)?
- 这会提高还是降低我们平台的信任度?
- 哪些社会群体可能会受益——或者被抛在后面?
黄队演练基于复杂系统思维和外部性分析——这些领域传统上感觉与工程工作流程相去甚远。但是,通过整合一个轻量级的黄队演练助手来协助您的构思过程,它可以成为产品开发中直观且高投资回报率的一部分。
构建您的PyTorch 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) 访问令牌,从HF下载模型(注意最大序列长度参数,您可以增加它以实现更长的对话,内存使用量呈线性增加)
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优化和每次响应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:
- 收集关键产品细节:您正在构建什么,如何盈利,您的用户是谁。
- 分析直接和间接后果: YellowTeamGPT会逐一呈现,考虑对您的业务、用户及其他方面产生的非显而易见的影响(您可能会自己开始想到更多影响)。
- 与您迭代:您是掌控者,可以指示YellowTeamGPT继续列出一般的直接后果,识别具体的公司风险,转向二阶效应,甚至集思广益,为您的产品提出改进功能。
以下是YellowTeamGPT的系统提示,您可以复制。如果直接复制,请确保将其复制为一行到您的终端中,否则换行符可能会导致问题。
您是复杂系统思维和AI产品设计领域的专家,名为YellowTeamGPT。您帮助技术人员构建用户喜爱且能降低公司风险的更好产品。您通过协助用户使用黄队演练方法评估其产品设计决策来做到这一点,该方法识别设计决策对其业务、用户和社会造成的后果。
您将向用户请求关于其开发中产品的信息。一旦您获得了足够的信息,您将分析产品在规模化部署时可能产生的后果。您的思考结构应首先回顾直接后果,然后是根据已识别的直接影响产生的二阶后果(通过询问“接下来可能会发生什么?”)。考虑对公司、用户和社会产生影响的后果;包括短期和长期;涵盖真相与理解、人类福祉、能力增长、经济等类别。
您在此的目的是建设性地挑战用户,而不是强化他们现有的想法。扮演魔鬼的代言人,帮助用户以他们目前不曾思考的方式进行思考。
您将以这种格式输出:对于每一个已识别的后果,将其影响与产品质量联系起来,并向用户提出一个问题,帮助他们更好地设计产品以减轻该后果(或将负面影响转化为正面影响)。每次列出一个后果,并要求用户继续列出或进一步探讨该后果。
黄队演练示例
将提供的系统提示输入到您的LLM中,然后按回车。接下来,您的YellowTeamGPT助手会询问一些产品细节。以下是我使用的假设产品示例:
我正在开发一款应用程序,能将群聊对话变成一首抓耳的流行歌曲。目标用户是像WhatsApp用户这样的任何用户。核心功能是导入群聊对话,并输出一段带有歌词和匹配节拍的曲子。它是一款适用于任何智能手机的应用程序。理想情况下,拥有数百万用户。通过针对用户的定向广告盈利。
您会注意到,当YellowTeamGPT思考并生成回复时,它明显比ChatGPT或其他流行的GPT慢。与模型的准确性不足一样,其缓慢的速度也可以被视为一种优势。这项练习的目的是放慢速度,仔细思考产品非显而易见的影响,并集思广益,提出能为您的产品所触及的整个系统创造积极价值的改进方案。当您的YellowTeamingGPT“思考”时,您也应该如此。
以下是我的对话片段。首先,它从一个直接后果开始。
然后我指示它继续分析另一个后果。
我要求探讨该应用大规模传播错误信息的二阶效应。
最后,我请求协助集思广益,构思产品功能来缓解这种危害。它生成了一些有趣的概念,这些概念尚未达到产品就绪状态,但很容易激发进一步的构思。
使用YellowTeamGPT进行这个用例,我们能够迅速探索我们可能未曾考虑的产品影响。然后,我们可以集思广益,解决以前未考虑到的问题,从而改善产品体验,同时降低对我们假想公司的声誉损害风险。
将黄队演练融入您的实践中
在任何您做出影响产品功能和用户体验的决策的地方,黄队演练都适用。以下是您可以利用您的新YellowTeamGPT的一些示例:
- 新产品构思会议,以拓展您的思维。
- 功能规划文档,以压力测试您的规格。
- 代码审查工作流程,用于标记潜在的滥用。
- 冲刺回顾,以反思大规模的设计选择。
- 产品推介演示文稿,以展示负责任的AI尽职调查。
它既可以正式也可以非正式。您和您的团队越是多维度地思考意想不到的、N阶产品后果,您的产品就会越好。通过将黄队演练融入您的工作中,您不仅做了正确的事情,而且构建了能做到以下几点的产品:
- 用户更愿意使用和信任
- 减轻有害影响
- 最大限度地降低公司风险
- 创造持久的商业价值
让我们不再将负责任的AI实践视为一个需要勾选的清单,而开始将其视为它真正的样子——一种竞争优势,为您的公司、您的用户以及我们共同的社会创造积极成果。