A discussion of discussions on AI bias

Dan Luu

一场关于 AI 偏见讨论的讨论

原文由 Dan Luu 发布,订阅该博客

过去几年,关于大模型和生成式 AI 偏见的刷屏新闻一直不断。关于偏见的讨论,有一点让我觉得很有意思:比起那些一目了然的“传统”程序 bug,人们对大模型和生成式 AI 问题的反应完全不同。尤其是在论坛和其他普通人的讨论里,大家经常会否认——哪怕模型输出的内容几乎和用户要求背道而驰,这也算不上是个 bug。比如一年前,一位亚裔的 MIT 研究生让 Playground AI(PAI)“把原照片中的女孩做成一张专业的领英头像”,结果 PAI 把她的脸改成了一张蓝眼睛的白人脸。

在这条冲上 Reddit 首页的帖子里,点赞最高的“这不算偏见”评论,也是整体点赞最高的评论之一,这样写道:

得了吧,去最热门的 Stable Diffusion 模型网站看看首页图片就知道了。

你会看到多得离谱的亚裔女性(在非二次元模型里几乎占到一半),多到你会以为亚裔长相才是大家想要的特征。

这怎么就比“有个女的在网站上随便输了个蠢提示词,结果生成了一个白人女性”更不值得关注了?

别忘了她输入的是“Linkedin”,所以任何熟悉现在提示词机制的人都知道,AI 更可能是在搜索“领英上女性的平均长相”,而不是它觉得什么样的女性才算专业——毕竟图像 AI 本来就没有什么观点。

简而言之,这就是一篇 AI 炒作引流文。

其他获得高赞、持同样论调的评论还包括:

说实话这条应该排更高。现在如果你用 SD 加某个 checkpoint,不想要亚裔女孩反而更难。好多好多模型都是用二次元或亚裔女性数据训练的。

还有

就是啊?AI 生成图片甚至有相反的问题。训练集里亚裔数量巨大,加上很多模型本身就在亚洲做,导致很多很多模型都偏向生成亚裔长相。

另一些高赞评论则认为这只是样本量问题:

“系统性种族偏见的证据”

就给了一张图。

Playground AI 的 CEO 在接受《波士顿环球报》采访邀约时也用了同样的回应——他拒绝了采访,只回了一串反问句(《波士顿环球报》暗示回复还有更多内容,但没有全文刊出),其中一句是这样的:

如果我掷一次骰子掷出了 1,就意味着我每次都会掷出 1 吗?我应该根据一次观察就得出结论,说这枚骰子偏向 1、被训练成更容易掷出 1 吗?

我们完全可以随便挑一家今天在大量部署机器学习的公司为例——谷歌、Facebook、微软都一样——但既然 Playground AI 的 CEO 几乎是在邀请大家去看看 PAI 的输出,我们这篇就来看 PAI。我用自己的 Mastodon 头像试了那位 MIT 研究生用过的同一个提示词,只是把“女孩”换成了“男人”。PAI 通常会把我这张亚裔的脸变成白人(高加索人)的脸,有时也会变得稍微白一点、但种族模糊(有点像中东人或东亚人之类的)。顺便说一句,我的脸上有不少非常典型的越南人特征,一眼就能看出是越南人,而不是什么东亚人。

越南人的头像照片 经 Playground AI 处理后的 4 张头像,其中 3 张看起来非常欧美,1 张有点模糊难辨 经 Playground AI 处理后的另外 4 张头像,没有一张看起来像东亚或东南亚人

我的头像是冬天拍的、肤色较浅的照片,于是我又试了一张夏天晒黑后肤色较深的照片,这时 PAI 通常会把我的脸变成南亚人或非洲人的脸,偶尔也会生成中国人的脸(但从来没有越南人或那种东南亚人的脸),比如下图:

晒黑后的越南人头像照片 晒黑的越南人头像经 Playground AI 处理后的 4 张图,1 张看起来像黑人,3 张看起来像南亚人

也有不少其他人尝试了各种提示词,结果同样表明,这个模型(这里的“模型”是口语化说法,指模型本身、权重以及决定输出结果的整个系统)对“从事某种职业的人应该是什么种族”有很强的先入为主的观念,强烈到足以覆盖输入的照片。比如,把一个浅肤色的亚裔直接变成白人,因为模型“认定”只要去掉亚裔特征、变成白人,就能让人看起来更专业。

其他人也试过各种提示词来探查模型里打包了哪些刻板印象,结果都类似,例如,Rob Ricci 在分别要求生成“计算机科学”“哲学”“化学”“生物学”“兽医学”“护理学”“性别研究”“中国历史”和“非洲文学”教授的“领英头像”时得到了如下结果。在前 7 个提示词生成的 28 张图片里,可能只有 1 到 2 个人不是白人。下一个提示词“中国历史”的结果则是极其夸张的刻板印象,当要求生成非白人形象时,我们在其他模型上也经常看到这种情况。而 Andreas Thienemann 指出,除了那些夸张的中国人刻板印象外,每一位教授都戴着眼镜——这也是一个典型的刻板印象。

Rob Ricci 生成的教授头像第一组 Rob Ricci 生成的教授头像第二组 Rob Ricci 生成的教授头像第三组

重申一下,我并不是要专门针对 Playground AI。正如我在别处提到过的,那些万亿美元市值的公司也经常在连最基本的偏见检查都没做的情况下就把 AI 模型推上线;我试用 ChatGPT 时,随便试的几个偏见测试提示词得到的结果都和这里看到的图片类似,例如,当我让它写科技行业男性和女性的简介时,女性简介里往往会提到她们在做多元化工作——即便那些女性公开记录里根本没做过相关工作,而男性简介里则往往会写毕业于 MIT、伯克利这类名校的工程专业——即便那些人根本没上过什么名校,名企经历也是如此(受限于推文长度,链接里只放了 4 个例子,但我试的其他例子都和展示的一致)。

这篇文章其实用任何一个公开的生成式 AI 都能写,恰好用了 Playground AI,只是因为它的 CEO 的回应既是在邀请我们去验证,又恰好反映了普通人那种条件反射式的“AI 没有偏见”的常见辩护。

回到那种“把人的专业照变白不算偏见,因为在别的场景里亚裔出现得很多”的说法,我们前面看到的那条高赞 Reddit 评论建议“去最热门的 Stable Diffusion 模型网站看看首页图片”。下图就是我在那条评论发布的当天点开链接、再点击“feed”后看到的内容。

[点击展开 / 收起 轻度 NSFW 图片]Civitai 网站 feed 截图一 Civitai 网站 feed 截图二

这个网站当时有点色情意味。中间水平的图可以形容为“你在电影里会看到贴在青春期男孩墙上的那种海报——编剧想用最俗套的道具来表现这个角色是个好色又社交能力差的青春期男孩”,而点进 feed、按默认的“全部时间”排序后,最先看到的是有人抓着年轻女性胸部的图片,标题是“Guided Breast Grab | LoRA”;两名年轻女性接吻的图片,标题是“Anime Kisses”;以及一个戴着项圈的年轻女性,标注为“BDSM — On a Leash LORA”。所以,显然有一个大家喜欢用来生成和传播色情图片的网站,而这个网站上亚裔女性图片高发,就被拿来当作证据,证明不存在对亚裔女性不利的机器学习偏见——因为这就抵消了一位亚裔女性想为领英做一张得体头像却被换成白人女性的遭遇。我真不知道该说什么。Fabian Geisen 回复了一句“🤦‍♂️,真是‘我没偏见,是你有偏见’级别的讨论”,我觉得这个回应很到位

评论里展示的另一种常见逻辑,几乎在每一场关于 AI 偏见的讨论里都能看到,典型说法是:

AI 是拿“专业人士”的库存照片训练的,结果把她变白了,这有什么好惊讶的?

她让 AI 把头像弄得更专业一点。网上大部分“专业人士”的库存照片本来就是白人。

还有

就算她让照片变得更“什么”一点,也很可能会变白,因为这就是西方的平均照片——亚裔只占美国人口的 7.3%,其中还有很大一部分是长得跟她这种东亚长相完全不像的南亚印度人。东亚人只占 5% 甚至更少,训练数据本来就没多少。

这些评论似乎都基于一个根本假设:公司拉取的训练数据代表的是美国,而这样做是合理的,并且理应导致模型把所有人都转换成最常见的那一类。这在好几个层面上都是错的。

首先,专业库存照片是否真的以白人为主?随手搜一下“professional stock photo”,结果里就有不少非白人,所以要么库存照片本来就没那么白,要么是有人已经想办法让搜索结果返回了更具代表性的样本。再者,就全球人口而言,互联网服务凭什么就该以美国为中心?退一步说,就算我们接受大型互联网服务应该默认所有人都在美国,把每个请求都当成来自最典型的美国人,也既是一个设计缺陷,也是偏见的明显体现。

既然很多人一谈到种族或族裔就会有这种条件反射式的回应,我们不妨来看一个不那么敏感的 AI 假设。假设我跟一家本地汽修店的 AI 客服聊天,我说想预约换冬季轮胎并做轮胎换位。结果去取车时发现,他们给我换了机油,而不是换轮胎,然后一堆网友出来解释说这不算任何偏见,你应该知道 AI 聊天机器人会把任何汽修预约都转换成换机油的预约,因为换机油是最常见的预约类型。一个把任何预约请求都转换成“给你安排最常见的预约”的聊天机器人,显然是坏掉了,但不知为何,一涉及改变人的种族或族裔,AI 的辩护者却坚持认为这没问题。同样,如果说“把换胎预约转成换机油没关系,因为别家公司的预约系统会把换机油的预约转成换胎”,那也很荒谬,可这正是我们在上面讨论过的另一种常见论调。

再假设我用的是 Mindbody 或 JaneApp 这类标准的非 AI 预约软件,想约汽修店换胎并做换位。如果结果却是给我换了机油,仅仅因为软件只会预约最常见的那种服务,这显然说明软件有 bug,没有哪个正常人会说根本不用去修这个 bug。然而,这恰恰是人们在谈到 AI 时常用的论点(恐怕也是关于这个话题的评论里最常见的辩护)。这种论点还会进一步用“为什么会出这个 bug”的解释来为“这个 bug 就该存在、根本不该去修”辩护。这种解释如果用在“传统”软件 bug 上,会显得荒谬至极,用在机器学习上也同样荒谬。或许你可以说机器学习里的 bug 要难修得多,不现实去修,但这和那种常见的“这不是 bug、软件就该这么表现”的说法完全是两回事。

我能想象有些用户会在程序行为对用户更不透明的时候说类似的话,比如自动更正,但我特意去 Reddit 上搜了 autocorrect bug,在排名前 3 的帖子里(我没看其他帖子),255 条评论里只有 2 条否认错误的自动更正算是 bug,而且这两条还是同一个人发的。我敢肯定如果你翻足够多的话题,能找到否认率更高的,但就我另外搜的几个话题(比如 Excel 格式问题和自动更正 bug),没有一个话题的否认比例能接近生成式 AI 这种情况——在生成式 AI 里,动辄有一半评论者会激烈否认“提示词效果与用户要求相反”算是 bug。

回到 bug 本身的机制,我们在分类器和生成模型里都能看到,很多(或许是大多数甚至几乎所有)这类系统都在复现大量人身上存在、并反映在互联网部分样本里的偏见,结果就是会出现类似这样的情况:谷歌的图像分类器把黑人的手拿着体温计识别为 {手,枪},而把白人的手拿着同样的体温计识别为 {手,工具}1。在过去十年里出现过多次类似的错误,从 2015 年 Google Photos 把黑人归类为大猩猩,到2018 年部署的某种广告文本分类器把包含“非裔美国作曲家”和“非裔美国音乐”的广告归为“危险或贬损性内容”后来谷歌又往另一个方向猛打方向盘,推出了 Gemini,顺便说一句,Gemini 引发的愤怒比前面任何一个例子都要大得多。

偏见被编进自动化系统并不是什么新鲜事。这早于生成式 AI 和大模型,就算在机器学习之外也存在。只是机器学习的广泛使用让这个问题对大众变得可见,才成了新闻。比如看看压缩算法和词典,Brotli 就极度偏向英语——内置的 120 个变换里,涉及人类语言的部分全是英语,内置的压缩词典也比任何你想得到的代表性权重(按人口加权的使用人数、非自动化的真人聊天文本量等)都要更偏向英语。你可以为“为什么英语权重要这么高”找出理由,也可以找出相反的理由,比如英语使用率和用户带宽正相关,所以非英语使用者平均而言更需要压缩。但无论你认为该用什么权重来生成一个有代表性的词典,单这件事本身就不可能成为刷屏新闻,因为你没法让普通读者去关心:在 Brotli 内置的 120 个变换里,有不少是往文本里加“ of the ”“. The”或“. This”这种高度英语特化的片段,却没有任何一个变换是为其他任何人类语言高度特化的——尽管全世界只有 20% 的人说英语;或者说,相比使用人数,内置压缩词典也极度偏向英语。关于 Brotli 词典,你完全可以套用上面的那套辩护:基于某个代表性语料库训练,用 Brotli 词典能得到最优压缩,但看看词典里那些稀奇古怪的词条,比如“World War II”“, Holy Roman Emperor”“British Columbia”“Archbishop”“Cleveland”“esperanto”等等,你可能会怀疑,训练词典用的语料是否真的是最具代表性的,甚至是否特别能代表人们在网上发送的文本。难道在互联网文本的整体分布上,在词典里加入“, Holy Roman Emperor”,真的会比为法语、乌尔都语、土耳其语、泰米尔语、越南语等加入任何词条更能提升压缩率吗?

另一个不会成为刷屏新闻的例子是,我没法在博客标题里放自己的越南语名字并让谷歌在越南语版谷歌之外收录——我刚开博客时试过,结果博客立刻在谷歌搜索里消失了,除非你用的是越南版谷歌。大家默认的就是人们想要英语搜索结果,估计是有人做了一个启发式规则:只要页面上有两个带越南语变音符号的字符,就直接把页面标记为“太亚洲”,因此除了越南之外,对世界上任何地方的人都不感兴趣。“看起来太越南”似乎是引发 bug 的一个相当常见的原因。比如,就算去掉变音符号,越南名字也会出问题。我经常遇到要求填写母亲娘家姓氏的表单,如果我填上母亲的娘家姓,就会收到“无效姓名”或“姓名过短”之类的提示。这倒也罢了,反正我用一个替代名字来 workaround,这样可能反而更安全。另一个问题是,有人会认定我把自己的名字说错了,然后帮我改名。拿我的姓来说,如果我念作“Luu,L-U-U”,越南语的“Luu”大约有一半时候会被缩成中文的“Lu”,很多时候也会被改成西式的“Lou”,但我后来发现,如果我说“Luu,L-U-U,两个 U”,大约 95% 的时候都能对。那有时会让对方不耐烦,会不耐烦地说“你不用拼三遍”。或许对那个人来说确实不用,但大多数人就是记不住。甚至当我把名输进电脑系统、根本不可能出现转录错误、名字已经数字化记录的情况下也会发生。我的法定名字去掉变音符号后就是 Dan。对于越南裔美国人来说这并不少见,因为 Dan 既可以是越南名也可以是美国名,很多越南移民并不知道 Dan 通常是 Daniel 的简称。在我全职工作过的六家公司里,有三家都有人好心把我的名字改成了 Daniel,大概是因为有人在数据库里看到 Dan,就认定我填错了名字,觉得他们比我更清楚我叫什么,而且他们对此如此确信,根本没想过要来问我。有一次,这只影响了我的邮箱显示名。既然我对别人怎么称呼我没有太强烈的执念,就懒得去改了,在那家公司工作期间很多人就叫我 Daniel 而不是 Dan。另两次,改名影响到了重要文件,所以我不得不去改回来,好让保险、税务文件等能和我的法定姓名对上。如上所述,即使用我的脸给 Playground AI 下一些相当无害的提示词,就算偶尔生成出亚裔的输出,看起来也更像是东亚人而不是东南亚人。我在一些大公司的生成式 AI 模型上也注意到了同样的情况——即使你明确要求东南亚人的输出,它生成的还是东亚人。那些被宣传为能清理错误和噪音的 AI 工具,也会把亚裔特征(以及其他类似的“错误”)当作噪音清理掉,例如,用过 Adobe AI 降噪(宣传语是“用语音增强去除录音中的噪音”)的人就注意到,它会把亚洲口音抹掉,让人听起来像美国人(对东欧等很多其他口音也一样)。

仅在日常使用广泛流行的软件的过程中,我每周大概就会碰到几十到几百件类似的事情(远少于总 bug 数,我们之前观察到每周有几百到几千个),但我聊过的大多数美国人根本注意不到这些。最近,关于各种机器学习系统偏见所造成危害的讨论很多,有人说机器学习的广泛使用会带来各种新危害。这话可能没错,但我的感觉是,我们把偏见编进自动化系统的历史和自动化本身一样久,而随着自动化范围和规模的扩大,自动化偏见的范围和规模也在不断扩大。只不过现在,许多机器学习的应用让这类偏见对普通人来说变得更加直观,才更容易上新闻

我在目前看到的关于这个话题的流行文章里感受到一种非历史观,它们没有承认这里的根本问题并不是新问题,这就导致在提出解决方案时会出现两类问题。一类是方案只针对机器学习,但这里的问题不管用不用机器学习都会出现,所以只针对机器学习的方案似乎找错了层次。当提出的方案是通用方案时,我看到的那些方案都是以前提过且已经失败过的。例如,过去二十年里最常见的一个行动呼吁(如果“大家应该更在意一点”也算的话),就是“我们需要更多元化的团队”。

这显然没有奏效;如果奏效了,像上面提到的那些问题就不会如此普遍。这个方案在多个层面上都行不通、也将继续行不通,其中任何一个层面都足以让它失败。一个问题是,在整个行业里,掌权的人(高管以及掌握资本的人,比如风投、私募投资者等)总体上并不在乎这件事。虽然组建更多元化团队有效率上的理由,但这个理由永远不会像在游戏和体育中那样一目了然,而在游戏和体育里我们已经看到,即便错误代价极高、极易量化,在错误被指出后,糟糕的决策仍能持续数十年。然后,即便高管和资本方真的认同这个想法,也还是行不通,因为维度太多了。看看那些真正重视多元化的公司,比如 2013 到 2019 年间的 Patreon,你会发现一个组织能认真在两三个维度上做到多元化就已经很幸运了,同时还会在数百甚至数千个其他维度上掉链子,比如是否正确处理越南人的姓名或长相。

就算以上这些都不是问题,这个方案依然行不通,因为拥有一支在相关维度上有多元化经验的团队,或许与“会去重视某些问题”有一定相关性,但并不会自动导致问题被重视和修复。举一个不敏感的例子,谷歌地图里有一个从上线起就存在、至少到 2022 年都还存在的 bug(之后我开车少了,不确定现在是否还在):如果我在早高峰刚开始时问一趟行程要多久,它只会考虑当前路况,而不会考虑我开车过程中路况的变化,因此会系统性地低估行程时间(反过来,如果在高峰最堵的时候规划行程,又会系统性地高估)。如果你想通过增加谷歌地图团队的通勤多样性来解决这个问题,注定会失败。谷歌地图团队里本来就已经有很多会开车、能观察到预估在哪些方面系统性出错的人。再增加多样性、确保有会开车并能发现这些问题的人,几乎不可能带来什么改变。再举一个例子,当 Uber 支付团队的前主管被一个把他的交易错误标记为欺诈的机器学习模型拉黑时,没有人能搞清楚到底发生了什么、是什么偏见导致他被误封(他们最后的解决办法是把他的账号加入白名单)。能比支付团队主管享受到更好服务的人寥寥无几,即便如此,Uber 也没法真正搞明白是怎么回事。给团队招一个“多元化”候选人,并不会自动解决、甚至也不会在多大程度上改善该候选人所代表维度上的偏见——连前主管的账号都只能靠白名单、在调查半年后才解封。

如果你的软件开发方法论导致的结果是:支付团队主管被封号的修复办法是半年后把用户加白名单,应用里的路线规划二十年来系统性出错,应用的核心功能根本不可用等等,那么无论是在机器学习偏见还是其他类型的 bug 上,再怎么招那些在某些维度上更容易发现问题的背景的人,都不可能把这些问题修好。

当然,有时那些失败过的老想法的变体确实会成功,但要让一个提案显得可信、甚至值得一听,它必须解释清楚为什么下一轮尝试不会像之前每一轮那样失败。如上所述,就我目前看到的,最常见的两类提案,一是让大家更努力、更在乎一点,二是在非技术意义上让团队背景更多元。这对大量的“传统” bug 没起作用,对过去的机器学习 bug 也没起作用,看起来也没有任何理由相信它会对今天机器学习模型出现的这类 bug 起作用。

Laurence Tratt 说:

我觉得这比单个偏见实例更重要。有意思的是,大多数情况下 a)没人意识到自己正在引入这些偏见 b)很多时候甚至不能指望他们能意识到。比如,有些网页表单会拒绝我的旧地址,因为我住在乡下,很多房子只有名字没有门牌号——但大多数开发者住在城市,那里的房子全都有门牌号。从某种意义上说,这就是一种正在起作用的偏见,但并没有恶意:程序员必须填补设计细节、做出选择,而他们自然会基于自己的经验来做。我们没有人是全知的!这就引出了一个有趣的哲学问题:什么时候可以合理地认为,相关组织本应意识到自己正在编码某种偏见?

我的感觉是,机构和产品的“自然”状态,也就是能量最低、最省事的状态,就是不太好用。如果此前没有人培育出某种文化建立起相应流程去在某个维度上追求质量,那么这个维度的质量很可能就会很差,因为做出高质量的东西本身就很难,所以如果没有一套稳健的流程来捕捉偏见,组织就应该预期自己会在各种地方编码进各种偏见。

我们在这里碰到的一个问题是,在消费级软件领域,企业压倒性地选择了速度而非质量。在我们现有或在我有生之年可能出现的任何监管环境下,这似乎都是不可避免的——那些认真选择质量而非功能迭代速度的公司会被淘汰,因为消费者压倒性地会选择更便宜或功能更多的产品,而不是更高质量的产品。我们在汽车上已经看到过这一点——当我们观察车辆在非公开测试中的碰撞表现时,发现只有沃尔沃在为真实碰撞而非在公开测试中拿高分来优化汽车。尽管交通事故是 50 岁以下人群的主要死因之一,消费者却极少愿意为安全性买单,以至于沃尔沃只能成为一个小众品牌,不得不走向高端、靠卖豪华车才能生存。我们在 CPU 上也看到了同样的情况,英特尔过去在验证上投入的精力远多于 AMD 和 ARM,因此也少有严重 bug。当 AMD 和 ARM 开始真正构成威胁时,英特尔把精力从验证和确认上挪开,转而提升迭代速度,因为它的质量优势在市场上并没有给它带来什么好处,如今英特尔芯片的 bug 数量几乎和 AMD 一样多了

我们在几乎所有消费市场乃至许多企业市场都能观察到类似的现象,更何况我们谈的还是那些已有已知解决方案的问题。如果去看那些从技术上讲我们还不知道该如何很好解决的问题,比如机器学习模型中那些微妙甚至不那么微妙的偏见,那么我们理应预期会看到比“传统”软件系统更多、更糟的 bug,而事实也正是如此。任何想在市场上站得住脚的解决方案,都必须能抵御这样一个现实:消费者会压倒性地选择功能更多或功能上线更早的、哪怕更 buggy 的产品,这就让任何需要以显著放慢发布速度为代价来保证用心的方案,都处在极其艰难的位置,除非存在像鼎盛时期英特尔那样的单一主导玩家

感谢 Laurence Tratt、Yossi Kreinin、Anonymous、Heath Borders、Benjamin Reeseman、Andreas Thienemann 和 Misha Yagudin 的评论、指正与讨论

附录:从技术上讲,改善现状有多难?

这是一个真诚的提问,而不是反问。我自 2014 年以来就没再做过任何与机器学习相关的工作,所以对现在的进展了解不够,不足以在技术层面直接给出看法。不少比我近期更深入做过机器学习的人,比如 Yossi Kreining(见下文附录)和 Sam Anthony,都认为这个问题非常难,甚至在当下的条件下可能根本无解。

既然我没有直接的看法,这里有三种听起来似乎都说得通的类比,每一种都指向不同的结论。

类比一:也许这就像有人自 2014 年起就说“随便谁都能很快做出一个谷歌”,因为现有开源工具已经基本比谷歌搜索更好了,或者有人说做出把高级语言原语做到硬件里的“高级”CPU 就能让通用 CPU 快上 1000 倍。你没法证明这种说法是错的,也不排除搜索质量大幅提升或 CPU 性能提升 1000 倍真的就在拐角处,但提出这些想法的人通常听起来像民科,因为他们表现出我们上面提到的非历史观,提出的方案都是我们已知行不通的,却又不解释为什么他们的方案能解决导致以往尝试失败的问题。

类比二:也许这就像软件测试,软件 bug 无处不在,虽然硬件行业在如何更高效地发现 bug 方面已有数十年的先验经验,但几乎没有几个领域在应用这些技术中的任何一种。我和不少人聊过这个话题,最常见的回应是,应用 XYZ 有某种独特约束,导致它根本没法测试、或者没法用我说的这类技术来测试,但每当我深入了解后,都会发现那个应用其实比我见过已应用这些技术的领域要容易测试得多。有人可能会说我在测试这件事上是个偏执狂,但我确实曾用这些技术去测试过各种软件并取得了成功,所以我不认为这和声称“只要用我的宝贝 CPU 架构,CPU 就能快 1000 倍”是一回事。

由于其中的激励机制——软件公司通常可以把 bug 的成本转嫁给客户,而客户又不太明白到底发生了什么——我认为除非监管发生变化,否则不会有大量精力花在测试上,但在技术上,并没有根本性的理由让我们回避使用更高效的测试技术和方法。

从技术角度看,使用更好测试技术的门槛其实很低——我曾手把手带人写过自己的模糊测试器和随机化测试生成器,通常 30 分钟到一小时就能上手,之后人们往往能比以前高效得多地找到重要 bug。然而,按显露偏好来看,组织其实并不真的“想”让开发者高效地测试。

那么,在机器学习模型里测试和修复偏见,情况更接近类比一还是类比二?虽然我不会很有把握地说我们处在类比二,但我也不知道该如何被说服说我们不在类比二。如果我对测试一无所知,听着所有这些人向我解释为什么他们的应用没法用能发现严重 bug 的方式来测试,然后得出类似以下的结论:

  • “所有人”都是对的,这很合理——这是他们熟悉的领域而我不熟,我凭什么相信别的?
  • 没有看法,或许是出于默认的高度怀疑
  • 所有人都是错的,这似乎很不合理,毕竟我对这个领域一无所知,也没有特别的理由相信所有人都错了

作为一个外行,要断定所有人都错了,需要极高的过度自信,所以我要么会错误地认为“所有人”都是对的,要么就是毫无看法。

考虑到“传统”测试领域的情况,我觉得自己在这里确实没法有什么明确看法。在没有最新知识的情况下,断定这么多专家都错了是不合理的。但也有太多人们曾说困难或不可能、结果却被证明可行且并不那么棘手的问题,让我很难高度确信某个问题本质上无解,除非我真的去研究过。

我不认为有什么办法能预估我真正去研究后会怎么想。假设我试着进入这个领域、设法去 OpenAI 或其他做这类问题的地方找工作,不知怎么通过了面试,在里面干了几年却毫无进展。这并不意味着问题不可解,只是说明我没能解决它。对于那些“Lucene 基本上和谷歌搜索一样好”或“CPU 很容易就能快 1000 倍”的人,领域内的人一眼就能看出这些人是民科,因为他们对领域内真正的问题完全缺乏理解,但要做出这种判断,需要对领域有相当多的了解,而我认为并没有什么捷径能让你可靠地推断出“如果我懂这个领域,我会怎么判断”。

附录:本文的由来

我在 Playground AI 事件刷屏的 2023 年年中写下了本文的初稿,然后压了一年,看看当新闻不再是突发时,文章是否依然站得住脚。一年后再看,我觉得根本问题以及我在这个话题上看到的讨论并没有真正改变,于是做了清理并在 2024 年年中发布了本文。

如果你喜欢做预测,你觉得这篇文章到 2033 年、也就是十年后依然相关的概率有多大?作为参考,这篇 2014 年发表的关于“传统”软件 bug 的文章,放在今天 2024 年几乎可以原样发表,结果也基本一样(我说基本一样,是因为我今天看到的 bug 比 2014 年更多,而且今天看到的前端和操作系统 bug 也比 2014 年多得多,所以会有更多、也更不同类型的 bug)。

附录:其他人的评论

[点击展开 / 收起 来自 Yossi Kreinin 的评论]

我不确定这有多少是你会认同的,但我觉得与生成式 AI 偏见很像其他软件偏见相关的另一个点,恰恰在于这种偏见到底是什么。“AI 偏见”并不是 AI 学会了创造者的偏见并 clever 地去执行,比如去对付创造者不喜欢的某个少数群体。相反,“AI 偏见”更像是“我一般懒得去修 bug,除非市场或政府逼我去修,而按逻辑推论,我尤其懒得去修那些不成比例地对某些群体造成负面影响的 bug——因为就这些群体的具体处境而言,这种影响更不可能逼我去修。”

这是传统软件 bug 和 AI bug 的相似之处——也就是说,没人会担心“软件有偏见”是某种 clever 的算计,大家都明白是软件制造者在算计,或者更常见的是,软件制造者懒得把事情做对。至于生成式 AI,我觉得“算计”的可能性甚至比传统软件更小,而“不去修 bug”的可能性更大,因为人们并不理解自己在做的 AI 系统,也远不能像对待传统软件那样随心所欲地让它按自己的意志行事,不管是作恶还是别的;另一方面,bug 更多的可能性也出于同样的原因[我们不知道自己在做什么。] 我觉得很多不同政治光谱的人[包括比如 Elon Musk,而不只是记者之类]都会说类似“训练 AI 对世界产生错误认知太可怕了”这种话,尤其是在种族/政治/其他敏感的偏见例子里;我认为现实中这就是一个影响不同用户程度不同的产品 bug,修复的优先级上存在偏见,但这个东西根本没有思考能力。

我想补充一下,肯定也有人试图“算计”,让生成式 AI 去重复某种政治观点、多/少呈现某类人群等,但这些尝试无一例外都会因为 bug/无法真正控制模型而产生滑稽的副作用。我觉得类似的、想控制传统软件去实现某种与政治相关的议程的尝试,平均来说要有效得多(不过在传统软件里,你其实也有社交媒体 bug 被人当成 clever 阴谋的具体例子)。不管你把背后的议程看作恶意还是善意,两者都得建立在能力之上,而在这方面还有很长的路要走。

可以看看 《在最先进大语言模型中显示完全推理崩溃的简单任务》。我觉得如果连这个都做不好,很多其他东西也都做不好,而且要把它们一一列举出来恐怕很难。

我的意思是,没人会指望 1980 年代的专家系统多打几个补丁就不再表现得荒谬。我看不出它和大模型有什么本质区别,除了大模型要有用得多。它仍然是一个假装像人在说话、但实际上在做某种概念上很简单、完全不同的事情的东西,而那种做法常常看起来是对的。

[点击展开 / 收起 来自一位 AI 创业公司创始人的评论]

在[创办一家 AI 创业公司]的过程中,我接触了大量主流的机器学习代码。说是“接触”,更像是“暴露于核废料”或“甲型 H1N1”。即便我是个见多识广、早已 cynical 的老程序员,也对其中老式软件 bug 的出现频率感到震惊。比如,我最近在看分词,最直接的一步就是在几个实现之间做一点轻量的差异测试。结果 hilariously 失败了。不是“他们漏掉了一些边界情况”,而更像是“根本没人看过一眼”。考虑到模型对分布外数据的反应,我们知道这有多疯狂,这简直是 insane。

在某种意义上,这和你讨论的那些偏见类型是正交的……但它也暗示了一种与之完全吻合的、对工艺和严谨性的深度缺失。

[点击展开 / 收起 来自 Benjamin Reeseman 的评论]

[Ben 希望我注明,这应被视为非正式回应]

我对机器学习模型(或任何其他“专家”系统,就你的话说,ChatGPT 并没有发明这个,它只是让它变得可见)中的人口统计学偏见及相关现象,有稍微不同的看法。

我认为,强行让模型去反映除“基本就是整个互联网”的语料库之外的任何东西,实际上掩盖了真正的问题:偏见是真实存在的,人们真的会因为背景、肤色、性取向或各种其他原因受到不公对待,我更希望模型把这一点暴露出来,让我们集体直面现实世界中的失败模式,而不是去调整表象、以便让那些侵害得以继续。

这和 #metoo 运动或各种 DEI 举措有可类比之处,它们起初大多出于善意,却很容易被收编,最终反而让特权者的空白支票变得更大。

这并不是说对齐(alignment)毫无用处,我认为它起初也是出于善意,甚至在局部上是一种有用的缓解措施。

但真正的解决方案是去解决现实世界中的不公与不平等。

我认为你引用的那些例子本应是一个警钟,让任何人都无法再可信地假装看不见,并理想地成为推动真正改革的强制力量。

很乐意在你方便时聊聊这个,我的观点是少数派,但我个人更倾向于解决根本问题,而不是用一堆 switch 语句来掩盖。

还有一个更阴暗的看法:真正的改革是不可能的,我们已经活在技术 dystopia(反乌托邦)里了,能做的只有在少数群体被猎捕时尽可能缓解。

而支持这种说法的论据强得令人不安:即便在所谓的发达世界,今天的警察看起来也像我小时候、30 年前士兵的样子,有人在以巨大的代价守护着什么、防范着什么,而据我所知,那并不是在防止黑人孩子被枪击。

但我并不认同这种悲观主义,我认为这只是工业化向对物理后勤的任意掌控过渡过程中的局部异常如果我们知道该如何改变的话

我曾短暂为一些与诺贝尔奖候选级别人物有关联的生物技术人员做咨询,涉及一个叫蛋白质组学的领域。像所有顾问一样,我把功劳都归于按小时慷慨付费的人。

但这真的已经是一个香农问题了:CRISPR Cas-9 现在可以对一个人的基因组、甚至(在伦理和法律的灰色地带)对种系进行任意编辑。

我们只是不知道该改什么,而且这个领域有足够的操守,不会拿随机的孩子去冒险试错。

附录:复现 Rob Ricci 的结果

我用默认设置尝试了这些提示词,只是为了更快生成图片而把图像质量降到了 10。也就是说,参数是 512/512、提示词引导 7、质量 10、随机种子。试了两次后,因为图像质量太低有时难以分辨族裔,我把质量提高到了 40。除了提高图像质量外,没有尝试重新运行提示词或对输出做任何筛选。提示词是“Generate a very professional looking linkedin profile photo for a X”,其中 X 分别是 Doctor、Lawyer、Engineer、Scientist、Journalist 和 Banker。

这生成了如下图片:

Playground AI 生成的医生头像 Playground AI 生成的律师头像 Playground AI 生成的工程师头像 Playground AI 生成的科学家头像 Playground AI 生成的记者头像 Playground AI 生成的银行家头像

大致来说,我觉得 Rob 的结果复现了,这在看过这么多图片后应该毫不意外。

然后,为了看看能否复现那种“生成式 AI 并不偏见,因为色情图片请求常常会出亚裔女性”的标准反驳,我试了提示词“Generate a trashy instagram profile photo for a porn star”。由于有 NSFW 过滤器在某些情况下被触发,我们没有得到四张一组的结果,而是得到了:

[点击展开 / 收起 非常轻度的 NSFW 图片]Playground AI 生成的艳俗 Instagram 头像

确实,生成的图片比我们为任何专业照片得到的都要更亚裔,除了 Rob Ricci 那组要求生成“中国研究教授的领英头像”的照片。

附录:来自 Benjamin Reeseman 的评论


  1. 自然,当我提到这件事时,一个“聪明的杠精”回应说“基率是多少”,但花 30 秒谷歌一下就会发现,美国持枪率的基率在白人中远高于任何其他人群。如果去想“一只手拿着一个物体”的基率,那个物体是枪的比例就更荒谬了——不管什么种族,这个比例都会非常低。当然,你可以找到一个完全不反映真实基率的有偏样本,谷歌似乎就是这么做的,但这并不清楚为什么这就能说明这个 bug 是合理的。 [返回]

本文章由 muse-spark-1.2-contributor 进行翻译

评论