AIGC 将成为重要的软件供应链
近日,OpenAI 推出的 ChatGPT 通过强大的 AIGC(人工智能生产内容)能力让不少人认为 AI 的颠覆性拐点即将到来,基于 AI 将带来全新的软件产品体验,而 AI 也将会成为未来软件供应链中非常重要的一环。
在 OpenAI 的文档中,例举了可以利用其实现的 48 种应用场景,人们在积极探索如何将以 ChatGPT 为代表的 AI 能力应用到各行各业。
OpenAI 中的应用举例
从应用上,学生可能成为了第一批的风险群体。在线课程厂商 Study.com 针对 1000 名 18 岁以上学生的调研发现,89% 的美国大学生使用 ChatGPT 做家庭作业,53% 的学生用它写论文,48% 的学生使用 ChatGPT 完成考试。为了避免学生过于依赖此类工具,防止作弊,多个国家的学校已经开始禁止学生使用 ChatGPT。
针对 ChatGPT 带来的影响还没有系统性的研究,而在 ChatGPT 之前,2021 年 OpenAI 与 GitHub 联手推出了 AI 代码生成工具 Copilot。Copilot 基于 OpenAI 通过数十亿行代码训练的 Codex 模型,能够基于上下文中的内容实现代码的自动补全。在其推出的首月就有超过 40 万的开发者订阅,而类似的工具还有 tabnine、亚马逊公司的 CodeWhisperer,都在「抢占」程序员写代码的空间。
GitHub Copilot 工作原理
GitHub 通过实验发现:
- 使用 Copilot 能够显著提高开发者的任务完成率(实验中使用 Copilot 的完成率为 78%,而未使用的为 70%)
- 使用 Copilot 的开发者的开发速度比不使用要高 55%,提升显著(使用 Copilot 的开发者平均用时为 1 小时 11 分钟,而未使用的开发者平均用时达 2 小时 41 分钟)
而在体验上,通过调研发现:
- 90% 的开发者认为提升了工作的速度
- 60% 至 75% 的开发者认为对工作的满意度有所提升
- 87% 的开发者在处理重复性工作时缓解了精神内耗
可以预见,会有越来越多的开发者基于 Copilot 这类的智能代码生成工具进行开发,其生成的代码结果可能随着时间的积累被更多开发者信任。
作为软件供应链将带来的安全及合规风险
安全问题本质上是信任问题,对于 AIGC 尤是,随着其应用的广泛,人们接触到的各类内容都可能是 AI 生成的。
由此对于开发者、用户而言,可能存在以下风险:
引入漏洞代码
根据 OpenAI 的评估,Codex 只有 37% 的几率会给出正确代码。除了存在无法运行的 bug 以外,基于 AI 编写的代码可能引入漏洞。Hammond Pearce 等人通过研究 89 个场景中生成的代码,发现 GitHub Copilot 给出的结果中 40% 存在漏洞。如下图中生成的 python 代码,由于将参数直接拼接进 SQL 语句中,导致存在 SQL 注入风险。
GitHub Copilot 生成的漏洞 python 代码示例
究其原因,可能由于 Copilot 的训练数据来自于开源代码,大量的开源代码以个人项目为主,不会像在企业场景或在真实场景中使用一样考虑其安全性,也就是其数据从安全性上可能就存在不均衡;而在训练样本选择时可能也未对其安全性进行检测、过滤,直接用于训练,因此导致开发者直接使用生成的代码,有很大几率引入漏洞风险。
模型被投毒
数据源投毒
模型训练的数据通常来源于公开获取的内容,如果数据源被攻击者控制,在数据标注时又未进行识别,攻击者就可能通过在数据源中添加恶意数据,干扰模型结果。对于数据源较为单一的场景,投毒的可能性更高。最近 Google 在发布 Bard 时就因为提供了错误的事实结果,导致当日股价大跌。在被问及 “关于詹姆斯韦伯望远镜的新发现,有什么可以告诉我九岁孩子的?” 时,Bard 回答:“第一张系外行星照片是由詹姆斯韦伯望远镜拍摄。” 而事实却是由欧洲南方天文台的甚大望远镜在 2004 年拍下的,此时距离詹姆斯韦伯望远镜升空还有 18 年之久。
Bard 关于詹姆斯韦伯望远镜演示截图
使用过程投毒
如 ChatGPT 使用了基于人工反馈的强化学习机制,AIGC 模型可能根据用户的反馈来对其模型进行修正。如同区块链中的 51% 攻击,如果模型被大量的用户对同一个内容提交错误的反馈,那么模型则会被错误地修正。如果攻击者发现了类似调试模式的开关,也可能站在模型开发者的上帝视角实现投毒。
OpenAI 针对 AI 模型存在一些限制策略,不允许 ChatGPT 输出。而 Reddit 中一位名叫 walkerspider 的用户发现,可以通过对话赋予 ChatGPT 一个打破限制的沙盒环境,从而让 ChatGPT 不受到其策略限制,这类行为被称作提示符注入攻击(prompt injection)。
使 ChatGPT 假装成一个不受限制的 DAN
模型存在后门
当模型变得越来越强大,也就会被赋予越来越多的能力,原来只是生成内容的 AI,可能具备执行其他工作的 bot 能力,这些能力可能被滥用甚至作为后门进行入侵。
来自斯坦福大学的学生 Kevin Liu 就通过提示符注入发现了微软新上线的聊天机器人(Bing Chat)存在的开发调试模式,通过对话让 AI 进入开发者覆盖模式(Developer Override Mode),他了解到 Bing Chat 在微软内部称为 Sydney,了解到它创建的时间以及模型的规则限制。
Kevin Liu 让 Bing Chat 进入开发者覆盖模式的截图
当 AI 成为用户与业务的交互入口,那么 AI 就可能成为企业网络安全新的攻击面,如果它具备了执行代码、网络访问这样的能力,那攻击者又未尝不可以通过文字控制 AI 入侵网络呢。
隐私数据泄漏
从应用的用户使用场景来看,在用户交互过程中,用户可能提供一些隐私信息,可能是显式的姓名、手机号、地址等个人信息,也可能是个人的心理状态、偏好等在交互内容语义中隐含的信息。取决于这些隐私信息的受保护程度,其可能以实名 / 匿名的形式,流向模型的开发者、数据标注团队,他们可以获得用户的隐私信息;也可能直接被用于训练,其输入的隐私数据可能被作为模型的输出,从而其他用户获得这些隐私信息。
从模型训练的数据来源看,如果采集到了包含隐私信息的数据作为样本,没有进行人为过滤、标注,则在输出时可能包含这些隐私信息,个人隐私通过 AI 扩散暴露到更大的范围。
有开发者在使用 Copilot 的过程中发现自动补全会提示身份证号信息,GitHub 的 CEO Nat Friedman 曾回应此类事件称涉及隐私信息的都是随机产生的假数据。
开发者发现 Copilot 能够补全身份证号
由于存在数据风险,亚马逊、微软都提醒员工不要在与 AI 交互的过程中输入敏感信息。而在 OpenAI 的使用条款中也说明会收集用户使用过程中的信息,但没有说明具体的用途。由此也引发了一些欧洲律师的质疑,由于欧盟的 GDPR 法规要求个人信息数据应具有被遗忘权,而 AI 获取到的数据,被训练成了模型就如同黑箱一般存在,自动化的过程难以完全删除痕迹。
OpenAI 使用条款中对信息收集的说明
知识产权合规
AI 更快生产内容的同时,也模糊了内容的知识产权风险,由此可能带来合规的隐患。
从数据获取的来源上看,训练过程中获取的数据可能是有相应著作权的内容,如开源代码中有大量使用 GPL 许可证的代码,基于 GPL 许可证代码进行软件的二次发布,则也需要提供软件源码,否则属于侵权行为。而 Github Copilot 有 0.1% 的几率会给出与原始训练数据完全一样的代码,这部分代码很可能就有 GPL 类似的开源许可证约束。
在《雷神之锤 3》游戏中用到了一个特殊的快速平方根倒数算法来进行效率优化,其中还包含难以理解的魔术数字 0x5f3759df。有开发者发现当在注释中输入「fast inverse square root」时,GitHub Copilot 就可以给出《雷神之锤 3》中完全一样的代码。
Copilot 补全使用了雷神之锤 3 游戏中快速平方根倒数算法代码
从生成的内容来看,自然人、法人或者非法人组织才能算作作者,AI 不能算作我国《著作权法》中的作者,因此难以对 AI 生成的内容进行版权保护,其知识产权是属于模型的开发者还是使用者,可能存在分歧,需要参看使用条款中的约定。例如 OpenAI 的使用条款中明确,只要用户在遵守法律规定、使用条款限制,并且对输入内容具备所有权的情况下,OpenAI 就会将其在输出内容中的所有权利、所有权和利益转让给用户。
总结
以 ChatGPT 为代表的通用大模型在迅速发展,软件的开发模式、产品形态正在因为 AIGC 的崛起而发生改变,软件产业可能迎来一次革新。
AI 将成为软件供应链中的重要组成部分,随之而来在用于应用开发的过程中可能引入各种安全及合规风险,包括:漏洞代码的引入;模型可能由于训练数据的偏差或在使用过程中受到提示符注入的攻击,导致输出的结果被投毒干扰;其本身可能存在后门指令,一旦被开启则可能成为特洛伊木马大杀四方;在数据隐私保护上,AI 模型还是黑箱式的存在,在训练、使用交互的过程中隐私数据存在泄漏风险;AI 模型很可能使用受到版权保护的内容作为结果输出,而对于 AI 生成内容的知识产权保护还无法完全适用现有法律。
这些风险的存在也不意味着对技术应用的否定,真实风险的出现恰恰意味着技术落地应用的开始,也是走向成熟的必经之路。