人工写代码不能随便抄开源代码,就连 AI 输出代码都不能随便输出?

126 天前
 cnbatch

前一个好理解,是出于法律顾虑。以 GPL 为例:

有些人以为开源世界之间的代码可以随便抄,其实并不是的


至于后一个,我目前工作的公司向微软订了企业版 Github Copilot (登录时用的是 emu 专用账号),在 vscode 聊天框使用时,偶然会来这么一幕:输出到一半突然停止,然后删掉刚才的全部内容,只留下一句

Sorry, the response matched public code so it was blocked. Please rephrase your prompt.

stackoverflow 有相关提问:
https://stackoverflow.com/questions/79091544/
看得出遇到这种事的人并不少

相关的 Github 文档有提到:
https://docs.github.com/zh/copilot/how-tos/manage-your-account/manage-policies#enabling-or-disabling-suggestions-matching-public-code

GitHub Copilot 会根据 GitHub 上的公共代码检查代码建议及其周围约 150 个字符的代码

如果账号类型是个人账号,打开 Github 页面进入自己 Profile 里面可以改设置

麻烦的是,emu 专用账号的管理权是在公司手上,员工无法改

Github 自己的文档证实了这一点:

如果你是 GitHub Enterprise Cloud 的组织成员,已通过你的组织分配了 GitHub Copilot 席位,你将无法在个人帐户设置中配置与公共代码匹配的建议。 与公共代码匹配的建议设置将从你的组织或企业继承

“公共代码匹配”这个设置项,这应该也是出于法律顾虑?如果是怕生成出来的代码“意外地”接近于现有的 GPL 代码,那倒是情有可原,毕竟商业公司顾虑很重(但对于用户而言真是无可奈何)


是 GitHub Copilot 会这样,还是各个辅助编码的 AI 都这样?

3018 次点击
所在节点    程序员
10 条回复
shakaraka
126 天前
AI 输出的东西还不是人为控制的么,有啥想不通,又不是一个独立个体
Hieast
126 天前
才 150 个字符?那理论上可以写程序制造垃圾代码做专利流氓,用常见变量和操作符专门生成 150 字符长度的垃圾代码,让你啥都写不出来。
cnbatch
126 天前
@wunonglin 我发这个帖不是“想不通”,而是吐槽 Github 的限制过于死板
2L 已经提到了可能的后果
GDSR
126 天前
@Hieast 天才
Hieast
126 天前
@GDSR 现在很多人苦论文查重久矣,真自己写的也能查出一堆重复,反而洗稿用一些不常见的字词、不太通顺的语法就能过,让人不禁质疑这就是另一种形式的“以代码行数定工作量”。到时候大模型( AI )为了反制重复,生成乱码变量就搞笑了。
billlee
126 天前
AI 不主张输出代码的版权,版权属于你的公司,那侵权的责任也属于你的公司。如果 copilot 不提供这个功能,很多公司就会直接禁止员工使用 copilot.
lixile
125 天前
究其原因在于 开源管理
在大部分大厂合规里面有开源合规
开源合规关键在于 license 引用方式 分发方式
对外分发的情况下
GPL LGPL 在于进程引用(一般为 rpc ) LGPL 为需要动态链接
MIT 等 最好直接按库引用

问题回到 op 说的 150 字符 这里涉及到片段引用 业界有 fossid blackduck 等工具扫描 ,片段引用在于 1 、无法跟踪引用代码后续演进,如果有对应漏洞无法及时修复。
2 、开源协议风险 特别是 GPL 系列的协议
不同公司中 我见过 20 行 50 行 120 行等做代码相似度 需要整改的
对于过于死板的问题 就是 120 字符是否合理 以及 对应的 hash 化后 相似度匹配算法的问题 可能实现不太过
(个人觉得真的 120 字符太短了 太容易匹配上了)
seWindows
125 天前
Linux 的 yes 命令。无论那种“正常”的 C 实现,相似度绝对高于 60%。除非你故意绕弯子。但是正常人编写不可能绕弯子。
cnbatch
125 天前
@lixile 一百多个字符确实短得离谱,要是像 8L 提到的那种特殊情况,AI 的输出说不定频繁“撞墙”没法看

看得出目前业界对于相似度的判断标准算不上成熟,实在粗暴又死板,十分无奈
keakon
124 天前
其他 AI agent 都不会审查输出的代码,换一个吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1153772

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX