软件开发中的 8 个伦理问题示例

软件开发中的 8 个伦理问题示例

随着软件在人类生活的方方面面根深蒂固,开发者对其客户负有伦理责任。我来来探讨如何承担这一责任。


传统上,伦理实践并非软件开发的一部分。软件并非总是对日常生活有直接影响,且开发速度缓慢。

在现代社会中,人们在生活的各个方面都会遇到软件。人工智能 (AI)、大数据和数据分析 (data analytics) 都会对个人产生切实的影响。

尽管软件开发人员主要在企业的幕后工作,但他们在项目过程中的决定,在合规性 (compliance)、公平性 (fairness)、诚信 (integrity) 和信任 (trust) 方面,可能对世界产生超乎寻常的影响------无论是好是坏。行业中的每个人都应该意识到软件开发中的社会与伦理问题。

以下是一些伦理问题的示例以及开发者可以如何解决它们:

  • 成瘾性设计 (Addictive design)。

  • 企业拥有个人数据 (Corporate ownership of personal data)。

  • 算法偏见 (Algorithmic bias)。

  • 薄弱的网络安全和个人身份信息 (PII) 保护 (Weak cybersecurity and personally identifiable information (PII) protection)。

  • 过度强调功能 (Overemphasis on features)。

  • 缺乏透明度 (Lack of transparency)。

  • 环境影响 (Environmental impact)。

  • 人权影响 (Human rights impact)。

1. 成瘾性设计 (Addictive design)

每位开发者都渴望创建人们喜欢使用的程序------这只是良好的用户体验 (UX) 设计。问题在于,有些团队设计的应用程序让人们爱不释手。这引发了关于社交媒体等数字平台角色的伦理担忧。

人道技术中心 (Center for Humane Technology) 的 Tristan Harris 等批评者认为,社交媒体公司从愤怒、困惑、成瘾和抑郁中获利------从而将我们的福祉和民主置于风险之中。值得注意的是,Harris 在谷歌工作时,因其关于推动成瘾性技术设计以及公司在社会中的道德责任的演讲而走红。

在消费者喜爱的产品和劫持他们注意力的产品之间取得伦理平衡,更像是一门艺术而非科学。在产品创建和更新中,请问以下问题:

  • 谁受益?

  • 他们如何受益?

  • 他们在多大程度上受益?

  • 是否有保障用户健康和理智的措施?

  • 包括通过 AI 和机器学习 (machine learning) 进行的货币化 (monetization) 以及客户数据收集和使用有多公开?这些实践有多透明?

技术诚信委员会 (Technology Integrity Council) 创始执行董事 David K. Bain 将 Duolingo 和 TikTok 作为应用程序设计的两个对比示例。这两个应用程序都为它们的创造者带来了增长和收入,但它们对用户的益处性质不同。

Duolingo 的客户获得语言技能,并通过促进神经元生长 (neuronal growth) 和大脑可塑性 (brain plasticity) 的活动受到挑战。TikTok 用户获得文化知识,并通过让大脑沐浴在令人陶醉的神经递质 (neurotransmitters) 中的视频内容获得即时满足感。"基于此,许多成年人会说 Duolingo 的真正用户收益大于 TikTok,"Bain 说,但他补充道,他十几岁的女儿会不同意。

这两个应用程序对旨在防范成瘾性依赖的使用限制持有不同态度。Duolingo 鼓励一致性,并有力论证其使用与优化的学习曲线 (learning curves) 相关。Duolingo 肯定会揪着用户的衣领 (grabs users by the lapels) 要求他们完成每日配额 (daily quota) 并保持连续表现 (performance streaks)。但一旦每日活动完成,Duolingo 就会释放用户。相比之下,TikTok 通过本质上无限量的可消费媒体 (consumable media) 自助餐来吸引用户留下。

应用程序通常包含用户操纵 (user manipulation)、货币化方法 (monetization methods)、用于企业用途的用户数据收集 (user data collection for corporate use) 以及用于增强应用程序的机器学习算法 (machine learning algorithms)。透明的应用程序提供者会让用户对这些实践有一定程度的了解和理解。

以下是这一伦理方面在这两个示例应用程序中的体现:"Duolingo 的用户显然是强制每日计划的自愿受害者,但几乎可以肯定没有意识到广告和使用数据连接到一个更大的广告生态系统,"Bain 说。"TikTok 的用户,尤其是年轻用户,我非常肯定在很大程度上是快乐地没有意识到他们成瘾的方法和后果。"

2. 存疑的个人数据所有权 (Questionable personal data ownership)

随着设备和软件的发展,基于 AI 的生物识别 (biometric) 和其他关于客户的上下文数据 (contextual data) 处理有所增加。软件可以以令人恐惧的详细程度对用户进行画像 (profile users) 并预测行为。

"通常,伦理问题是关于如何处理这些数据,"广告验证和欺诈预防平台 TrafficGuard 的首席产品官 Miguel Lopes 说。这种伦理问题对于各种业务的开发者来说都是一个困境------不仅仅是那些登上新闻的社交媒体巨头。

算法 (algorithm) 指导信息收集和画像构建 (profile building),但随后的行动是故意的。开发者通常清楚这些数据在特定情境下的力量。

开发者可以帮助公司内其他角色理解技术选择对伦理考量的影响。

Lopes 说,伦理担忧的根本原因之一与企业如何产生收入以及如何激励开发者和业务经理有关。在许多情况下,公司将用户数据视为一种有价值的货币,并希望将其存储的数据货币化。"这些因素可能导致这些组织不道德地共享其用户数据,"他说。

开发者在个人数据和软件设计方面面临艰难抉择。他们可以在理解责任在于组织的前提下创建利用用户数据的系统,或者他们可以提出担忧,但面临因违背项目目标而可能受到惩罚的风险。现代技术公司的工作文化应让开发者能够毫无畏惧地提出个人数据所有权的担忧。

这类担忧在 Lopes 工作过的不同组织中激起了丰富的讨论,这些组织决定不提供免费服务层级。"我们分析了其中的含义,更倾向于通过销售我们的服务而不是用户数据来维持运营,并且不让我们的开发团队面临这些艰难的选择,"Lopes 说。公司内部的透明度是一个关键因素。开发者应该了解他们正在参与的项目的整个背景,而不仅仅是他们需要完成的模块。

公司应该让开发者能够轻松地提出担忧。人力资源 (HR) 部门可以创建机制,让开发者能够表达他们的担忧而无需担心报复,例如用于伦理问题的匿名热线。然后,组织应跟进并独立识别该用例是否违反了隐私、法律或伦理政策。

3. 算法偏见 (Algorithmic bias)

技术会放大现有的偏见。"当今开发者面临的一个更紧迫的伦理问题是偏见 (bias),"业务自动化平台 Pegasystems 的首席客户主管 Spencer Lentz 说。

偏见常常在未被察觉的情况下进入系统------Lentz 将偏见比作病毒。计算机本身没有内在的道德框架。软件只能反映其创造者的偏见。因此,开发者和数据科学家 (data scientists) 必须从训练数据 (training data) 和他们构建的算法中清除偏见。Lentz 说,从开发者的角度来看,偏见通常集中在出于错误的原因消除选项上。

当在不完整和有偏见的数据 上训练时,AI 可能会产生有偏见的结果

近年的报道和研究说明了软件系统中的偏见如何能对特定人群延续系统性种族主义 (systemic racism),这会造成机会丧失、恶化医疗护理并增加监禁率。例如,在《Race After Technology》一书中,Ruha Benjamin 对一个案例提出了担忧:开发者未能将黑人的声音纳入训练 AI 语音识别算法中,理由是认为使用该应用程序的黑人较少。

高管、数据科学家和开发者必须创建一种组织文化,制定伦理准则,并赋予业务任何层级的个人在看到有问题时发声的权力。

"时至今日,模型中的偏见已众所周知,以至于 LLM 幻觉 (LLM hallucination) 已成为一个主流概念,"数据科学平台 Anaconda 的首席 AI 和创新官兼联合创始人 Peter Wang 说。"如今最大的风险是,人们被炒作和害怕落后的恐惧冲昏了头脑,以至于没有花时间勤奋地构建评估机制和实施治理 (governance)。作为一个行业,我们需要更加透明地说明企业 AI 项目的失败率有多高,这样管理者和高管才不会感到有必要在一致性 (alignment)、准确性 (accuracy) 和安全性 (safety) 等极其重要的话题上仓促行事。"

Wang 主张,是时候为 AI 提供商创建一个管理机构了,类似于美国医学会 (American Medical Association) 之于医生。该机构可以制定全行业的伦理准则和最佳实践 (best practices)。"这些技术在商业环境中仍然相对较新,我们都将从源于我们集体智慧和投入的伦理标准中受益,而不是让每个个体或组织自行决定,"他说。

4. 薄弱的安全性和 PII 保护 (Weak security and PII protection)

随着软件在我们的线上和线下环境中扮演越来越重要的角色,应用程序安全 (Application security) 的重要性日益增长。

开发者可能只在代码发布后才处理安全性问题,而不是在开发过程中。因此,软件社区缺乏安全的开发标准 (secure development standards)。

"重点几乎完全放在将产品推向市场上,"软件开发咨询公司 Bit Developers 的创始人兼首席软件架构师 Randolph Morris 说。一旦软件产品公开发布,重点就会转移到新功能和性能优化上,因此安全性仍然很少受到重视。

黑客 (Hackers) 和其他恶意行为者 (malicious actors) 会对真实的人造成切实的损害。一种被动应对 (reactionary approach) 应用程序安全的方法------在发现漏洞 (vulnerabilities) 时才进行修补------既不实用也不可行。

为了履行对客户安全的这一伦理责任,开发者需要接受教育,但通常只有专门的网络安全 (cybersecurity) 课程涉及这些主题。首先,让你的团队了解网络安全故障,例如 2015 年具有里程碑意义的 Anthem 医疗数据泄露事件 (Anthem medical data breach),其中 PII 以纯文本 (plain text) 形式存储在数据库中。"如果这些信息被加密 (encrypted),就不会那么容易使用和有价值地分发,"Morris 说。

此外,行业需要修订安全标准 (security standards)。组织可以采取更多措施来采用旨在保护 PII 的标准。支付卡行业数据安全标准 (Payment Card Industry Data Security Standard, PCI DSS) 和针对医疗保健应用程序的 HIPAA 是一个良好的开端,但开发者还应考虑其他形式的 PII------以及保护它的软件设计。

探索企业在应用程序设计中应负责任处理的不同类型的个人信息

5. 优先考虑功能而非影响 (Prioritizing features over impact)**

许多伦理问题的核心在于一个决定:软件发布中的功能 (capabilities) 比它们可能产生的影响更重要。但仅仅因为你能够做某事,并不意味着你应该做。

"如果开发团队是根据其功能开发速度来衡量的,那么在设计或实施阶段,特定实施的伦理问题很可能不会被优先考虑,"应用安全平台 Black Duck 的软件供应链风险策略负责人 Tim Mackey 说。

企业本身必须为其软件中的伦理标准定下基调。以下是企业可以实现这一目标的一些方法:

  • 在整个软件生命周期(从设计到运营)中体现伦理优先事项。

  • 就开源软件许可和使用等伦理选择对员工进行培训。

  • 教导开发者、架构师、测试人员和其他软件团队成员符合法规和客户期望的数据管理实践 (data management practices)。

Mackey 指出,开发者并不总是关注客户使用其软件的司法管辖区的最新立法行动新闻,但企业必须确保他们知情。

工程领导层 (engineering leadership) 与法律团队之间的协作有助于避免伦理缺陷。例如,企业应关注客户的个人数据访问 (personal data access) 和保留 (retention)。数据访问控制 (Data access controls) 和日志记录机制 (logging mechanisms) 是在软件实施时启用的。负责创建功能性、用户友好型产品的开发者可能认为数据访问限制是另一个团队的责任。相反,应确保数据保护 (data protection) 是软件设计中包含的一项功能,从根本上防止未经授权的访问 (unauthorized access)。

6. AI 透明度的幻象 (Mirage of AI transparency)**

大型语言模型 (Large language models, LLMs) 在软件开发中扮演着越来越重要的角色,涉及生成代码和支持非结构化数据处理 (unstructured data processing) 等任务。由于 LLM 的复杂性,很容易忽视这些系统是如何被训练、配置和部署的------以及这对用户意味着什么。

"软件公司应该始终披露他们如何训练其 AI 引擎,"Lopes 说。"用户数据被收集的方式------通常是静默地收集并输入 LLM------引发了关于同意 (consent)、安全和自动化伦理界限的严重问题。"

已经出现了一些引人注目的案例,其中用户在平台上的互动被用于在没有任何通知的情况下静默训练 AI。"我们看到公司在未经同意的情况下收集行为数据 (behavioral data),本质上将用户变成了无偿贡献者,而这些模型有一天可能会取代他们的工作,"他继续说道。

一个训练有素的 AI 代理 (AI agent) 需要深度配置 (deep configuration)、监督 (supervision) 和昂贵的人力人才。"你认为通过跳过适当开发而节省的成本,几乎总是被一个专业化程度低的代理所造成的损害所掩盖------无论是安全风险、错误信息 (misinformation) 还是客户信任的丧失,"Lopes 说。

AI 伦理框架 (AI ethics frameworks) 旨在缓解上述部分问题

7. 环境影响 (Environmental impact)**

随着对气候变化影响(包括气温上升、洪水、火灾和其他不利天气条件)认识的提高,对各种活动环境影响的担忧日益增长。技术公司的活动也可能减少清洁水的获取、污染空气并减少生物多样性。

AI 使用量的增长带来了显著增加能源消耗以及随之而来的碳排放 (carbon emissions) 的风险。它还可能增加用于冷却数据中心的水系统压力,从而损害当地社区。云提供商也开始探索碳中和能源 (carbon-neutral energy sources),如核裂变电厂 (nuclear fission plants),同时掩盖了处理乏放射性燃料 (spent radioactive fuel) 相关的仍未解决的环境成本。

这些都是通常超出软件开发周期的大局考量,但在决定扩展由新 LLM 驱动的应用程序的潜在影响时,值得考虑。其他方面包括新软件应用程序可能鼓励不良环境选择的潜力。一个快时尚应用程序 (fast-fashion app) 可能会以产生更多浪费为代价来推动收入。

8. 社会与人权影响 (Social and human rights impact)**

考虑软件开发实践对人权影响的多个维度包括其对劳动力和社区的潜在影响。

在劳动力方面,一个担忧是所谓的"数据标注血汗工厂" (data labeling sweatshops) 的增长,其中涉及让工人接触有毒内容 (toxic content) 以改进 AI 系统中的内容审核 (content moderation)。尽管大多数企业并未直接参与此过程,但他们可能忽视了其 AI 和数据系统供应商和承包商所采用的做法。

此外,必须考虑优化应用程序在相对容易量化的方面(如仓库吞吐量 (warehouse throughput))的潜在影响,与在更难以量化的方面(如工人健康或心理健康)的潜在影响。风险在于,某些类型的生产力优化 (productivity optimizations) 可能对工人的生活及其对家庭和社区的贡献产生不利影响。

AI 系统在软件开发中的兴起推动了数据标注行业的增长,但通常缺乏监督。新的应用程序也有可能破坏社区的社会结构 (social fabric)。

合乎伦理的软件开发最佳实践 (Best practices for ethical software development)

以下是培养具有积极社会影响的实践的几种方法:

  • 主动性 (Proactivity):对软件工程选择对合乎伦理的软件开发乃至整个世界的影响和背景保持好奇。

  • 诚实 (Honesty):考虑软件工程选择如何可能与伦理原则相冲突,即使这对你个人或公司来说是不舒服的。

  • 问责制 (Accountability):确定在公司内部衡量和沟通伦理问题的方法,以确保每个人都达成共识。

  • 平衡社会责任与技术能力 (Balance social responsibility with technical ability):记住开发者可以帮助公司内其他角色理解技术选择对伦理考量的影响。


【注】本文译自:8 examples of ethical issues in software development

相关推荐
bug菌12 分钟前
当AI遇上编程,传统IDE还能守住最后一道防线吗?Trae告诉你答案!
aigc·ai编程·trae
mCell3 小时前
Claude Code Sub-agent 模式的详解和实践
agent·ai编程·claude
bug菌4 小时前
还在羡慕ChatGPT?用Trae零基础打造你的专属AI聊天机器人!
aigc·ai编程·trae
bug菌4 小时前
还在羡慕别人的IDE功能强大?看Trae插件系统如何让你的开发环境"私人定制"!
aigc·ai编程·trae
Goboy15 小时前
连连看游戏:Trae 轻松实现图标消除挑战
ai编程·trae
Goboy15 小时前
扫雷游戏:Trae 轻松实现经典的逻辑挑战
ai编程·trae
程序员老刘·15 小时前
Flutter 3.35 更新要点解析
flutter·ai编程·跨平台开发·客户端开发
不如摸鱼去18 小时前
Trae 辅助下的 uni-app 跨端小程序工程化开发实践分享
微信小程序·小程序·uni-app·aigc·ai编程
bug菌20 小时前
程序员转型产品经理,是逃避技术还是拥抱未来?Trae可替你回答!
aigc·ai编程·trae