我們用於構建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實踐視為一個需要勾選的清單,而開始將其視為它真正的樣子——一種競爭優勢,為您的公司、您的使用者以及我們共同的社會創造積極成果。