购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.5 使用Copilot的风险和挑战

现在我们都对Copilot帮助编写代码感到兴奋,但我们还需要讨论一下使用Copilot时所面临的潜在风险。有关这些问题的更多阐述,请参阅参考文献 [2]

版权问题 。Copilot是通过学习人类编写的代码来掌握编程技能的。在讨论Copilot等AI工具时,人们常会使用“训练”一词,这里指的是“学习”。具体来说,它采用GitHub上数百万个开源的代码仓库进行训练。人们担心Copilot可能会“盗用”这些代码并提供给他人。然而,根据我们的观察,Copilot很少推荐使用他人代码的大块内容,尽管这种可能性确实存在。即便Copilot提供的代码是多段他人代码的融合与转化,也可能引发版权问题。例如,Copilot生成的代码的版权归属尚未有明确共识。为了解决这一问题,Copilot团队正在引入新功能,例如,能够检测其生成的代码是否与现有代码相似,及相关代码的许可证情况。尽管我们鼓励你将这些代码用于个人的学习和实验,但如果你计划用于家庭之外的场合,还请务必谨慎对待这一问题。这里的表述有意保持了一定的模糊性,这是因为法律适应这种新技术可能需要一段时间。在社会就这些议题进行充分讨论之前,保持谨慎是明智之举。

教育 。作为编程入门课程的讲师,我们亲眼见证了Copilot在编程作业这种任务类型上的卓越表现。在一项研究 [3] 中,Copilot面对166个常见的初级编程任务,它的表现如何?在第一次尝试中,它就解决了将近50%的问题;一旦提供更多信息,这一比例甚至可提升至80%。相信你已经目睹了Copilot在解决标准入门级编程问题时所表现出的能力。教育领域需要考虑到Copilot这类工具的出现并进行变革,目前教师们也在积极探讨这种变革的具体形式。学生们是否可以使用Copilot?如果可以,他们将以何种方式使用?Copilot又将如何辅助学生学习?未来的编程作业又将呈现出何种新的面貌?

代码质量 。我们必须保持警惕,不能盲目信任Copilot,尤其是在处理敏感代码或需要保障安全的代码时。例如,为医疗设备编写的代码,或者处理用户敏感数据的代码,我们必须理解透彻。人们在面对Copilot的神奇表现时很容易麻痹大意,从而在未经仔细审核的情况下接受它生成的代码,但那些代码可能完全是错误的。在本书中,我们处理的代码并不会大规模部署,因此,虽然我们会专注于获取正确的代码,但不会过多考虑这些代码在更大范围使用时会产生何种影响。我们将致力于帮助你建立必要的基础,以便独立判断代码的正确性。

代码安全 。与代码质量一样,从Copilot获得的代码无法保证安全性。例如,在处理用户数据时,把Copilot提供的代码拿来就用是远远不够的。我们需要执行安全审计,并且通过专业知识来判断代码的安全性。当然,我们不会在现实场景中使用Copilot提供的代码,因此,也不会将重点放在安全问题上。

不是专家 。专家的一个显著特征是对自己的所知与所不知有清晰的认识。他们还能准确表达对自己答案的信心程度,如果信心不足,他们会持续学习,直到确信自己掌握了知识。Copilot及更广泛的LLM并不具备这种能力。你向它们提问时,它们只是直接给出回答而已;必要时,它们还会编造答案:将真实片段与垃圾信息混合,形成看似合理但总体上没有意义的回答。例如,我们观察到LLM有时会为尚在人世的人虚构讣告,尽管这不合逻辑,但这些“讣告”中包含了关于这些人生活的真实信息。当被问及算盘为何能在运算速度上超越计算机时,LLM有时会给出一些站不住脚的解释,例如,算盘因为是机械的,所以必然速度更快。目前,LLM正在努力改进,以便能够在不知道答案时明确表示“对不起,我不知道”,但这一目标尚未实现。它们不知道自己不知道什么,这意味着它们需要监督。

偏见 。LLM会重现其训练数据中存在的偏见。例如,当请求Copilot生成一份姓名清单时,它通常会生成一些英文名;当要求它绘制图时,得到的图可能没有充分考虑到人类之间的视觉感知差异;而要求它编写代码时,它输出的代码风格很可能反映了主流群体的编码习惯(毕竟主流群体编写了世界上的大部分代码,而Copilot正是基于这些代码进行训练的)。长期以来,计算机科学和软件工程领域一直面临多样性不足的问题。我们不能允许多样性进一步受损,更应努力扭转这一趋势。因此,我们需要让更多的人参与进来,让他们能以自己的方式自由表达。如何面对Copilot这类工具所带来的挑战,目前正在积极探索中,这对编程的未来极为关键。尽管如此,我们依然相信Copilot有希望通过降低行业门槛来促进多样性的提升。 8RRtyvfW53GnoTQxsOopXK8ZySJlCaoBbzQANG+ayXLmshEKqs9xzQ4chZ4Dn7Fm

点击中间区域
呼出菜单
上一章
目录
下一章
×