大家怎么看AI可能对自由开源软件的影响?

最近AI的新闻看多了,产生了一个比较悲观的想法:我感觉按目前这个趋势AI逐渐成熟的话有可能对自由开源软件造成很大冲击?这样想的理由主要是,现在像openai这种公司,对自己的算法模型越来越封闭不开源。而且在模型越来越大、对算力要求越来越高的趋势下,即使有人开源,缺乏资金的自由开源社区和独立开发者也越来越难以靠自己去训练模型。

那么我们以后拿什么来和大公司抗衡呢?以前的话,即使微软再有钱,开源社区搞一个操作系统、浏览器、服务器,都还能做到,因为生产力水平没有数量级的差别(甚至大公司有时候效率可能还更低)。但是如果将来人人都依赖强大的AI去编程,生产效率成数量级的拉大的话,感觉要跟上就很难了。像微软收购github,推出copilot时候关于法律和许可证的论战可能只是开始。随着AI越来越强大更大的纷争可能还在后面。

可能是有点杞人忧天的胡思乱想 :stuck_out_tongue_winking_eye:,但我觉得思考一下这些问题对将来在这个行业内寻找出路还是有一定意义的。不知道大家有没有什么想法 :smile:

AI 就是一阵子寒冬一阵子中暑,人们一会说 AI 真蠢,一会说完了完了要被 AI 代替了。

AI 编程再牛,也干不过产品经理,因为产品经理也不知道干点啥😄

5 个赞

最开始,我还不觉得会,尝试回答测试,虽然一些回答看似有道理,却仍然浅显表面。

但是我最近深度使用 ChatGPT 协助我写科研报告,其展现的能力让我非常担心。只要你给定了一个明确的 idea,其就能围绕你的 idea 生成你想要的文字,至少对于来说,英语润色和修改的工作它完全可以取代了。另外,在一个围绕同一目的长的问答列表下,我直接让其生成一段话,它非常准确且连贯的续写下去,目前仍在惊讶中。

下个 GPT4 正在训练中,说不定真的可以直接生成真正意义上的文字了。

PS. 我对其生成的文字查过重,基本上都是生成的,重复率极低。

2 个赞

科研辅助写作方面大有可为啊,省了不少心。

哈哈感谢这个信息。

自由社区可以搞去中心化的AI, 再贴个区块链上去 , 算力可以说无穷无尽 .

1 个赞

可是显卡买不买得起都要成问题了 :rofl:

说明流行的编程语言的废话都太多了


在这里我做个简单的调查

对于用一个长为 54 的 string 表示的魔方,写一个 rotate(C, D)C 为用 string 表示的魔方,D =:r | R | u | U | l | L | f | F | b | B,表示旋转的指令,输出旋转后的 string 的魔方表示。以 Python3 为例,不用非內置的 module,不需要对输入做檢查,大家觉得自已要多少行实现?也可以让 ChatGPT 写一个试试。

4 个赞
def rotate(C, D):
    def swap(C, i1, i2, j1, j2, k1, k2):
        C[i1:i2], C[j1:j2], C[k1:k2] = C[j1:j2], C[k1:k2], C[i1:i2]
        return C
    
    C = list(C)
    if D == 'R':
        C = swap(C, 0, 9, 27, 36, 45, 54)
        C = swap(C, 2, 7, 29, 34, 47, 52)
        C = swap(C, 8, 9, 17, 18, 26, 27)
    elif D == 'r':
        C = swap(C, 8, 9, 17, 18, 26, 27)
        C = swap(C, 2, 7, 29, 34, 47, 52)
        C = swap(C, 0, 9, 27, 36, 45, 54)
    elif D == 'U':
        C = swap(C, 0, 27, 9, 18, 36, 45)
        C = swap(C, 2, 5, 11, 14, 29, 32)
        C = swap(C, 6, 9, 8, 11, 24, 27)
    elif D == 'u':
        C = swap(C, 6, 9, 8, 11, 24, 27)
        C = swap(C, 2, 5, 11, 14, 29, 32)
        C = swap(C, 0, 27, 9, 18, 36, 45)
    elif D == 'L':
        C = swap(C, 0, 9, 9, 18, 18, 27)
        C = swap(C, 2, 5, 5, 8, 8, 11)
        C = swap(C, 6, 9, 15, 18, 21, 24)
    elif D == 'l':
        C = swap(C, 6, 9, 15, 18, 21, 24)
        C = swap(C, 2, 5, 5, 8, 8, 11)
        C = swap(C, 0, 9, 9, 18, 18, 27)
    elif D == 'F':
        C = swap(C, 18, 27, 45, 54, 36, 45)
        C = swap(C, 20, 23, 47, 50, 38, 41)
        C = swap(C, 6, 9, 24, 27, 42, 45)
    elif D == 'f':
        C = swap(C, 6, 9, 24, 27, 42, 45)
        C = swap(C, 20, 23, 47, 50, 38, 41)
        C = swap(C, 18, 27, 45, 54, 36, 45)
    elif D == 'B':
        C = swap(C, 0, 9, 9, 18, 18, 27)
        C = swap(C, 20, 23, 23, 26, 26, 29)
        C = swap(C, 33, 36, 15, 18, 51, 54)
    elif D == 'b':
        C = swap(C, 33, 36, 15,C, 51, 54)
        C = swap(C, 20, 23, 23, 26, 26, 29)
        C = swap(C, 0, 9, 9, 18, 18, 27)
    return ''.join(C)

还带了一个解释 其中,swap 函数是用来交换相邻的 6 个面,使得魔方旋转的效果。

你看,用 AI 编程的后果就是利用你言语上的不精确之处瞎编一个结果出来。它给的代码连图片上的例子都跑不过。

不过你可以把图片上的例子给它,看看它能怎么改进。

弱人工智能从原理上就不可能达不到人类严谨的系统思维能力,目前 ChatGPT 就是样样都会,但样样都不精通,基础级别的代码生成还不错,对新手比较有帮助,稍微复杂一点应用场景就错误百出,这也是很多半桶水的程序员有的问题,所以这些程序员确实需要担心会不会被取代。商业公司重复造轮子刷 KPI 是常有的事,而 AI 生成的代码复用性极差,只会让屎山越堆越高,而在开源社区中从近几年出圈的开源项目来看,没有一个不标榜有 Killer Feature 的,可见开源社区不缺乏造轮子的人,而是缺乏轮子造得好的人,依赖 AI 生成代码的注水项目只会在竞争激烈的开源社区里被埋没。

3 个赞

https://dl.acm.org/doi/pdf/10.1145/384283.801107

可是,我已经说了以 Python3 为例,输入形式是以上图为例标号的 string,并且问的是你觉得自已大约要用多少行代码。

在不用一些辅助库的话,用 Python 转写 APL 乃是 pain in ass,事倍功半。

chatgpt无非就是一个高级的summarizer。github上已经有的东西,可能就换个变量,换个pattern之类的东西,这种偏模版化的内容他能够帮你快速搞定。但是但凡场景复杂一点的,他就抓瞎了。

可以在一定程度上取代一些低级程序员倒是真的,原来需要 2 个低级程序员疯狂糊东西填鸭生产的套路内容现在只需要 chatgpt生成模版,1个低级程序员审查模版,修改内容即可。但是这些东西也只能够用来生产冗余度高的业务代码,但凡需要一定原创性的内容都做不了。

可以让人们接入自己的账号,自己花钱接入ai。比如emacs免费,但是ai辅助需要微软。那就自己花钱买。

不过这也是一个折中。开源是不太可能投入那么多的算力资源免费给人们用的。chatgpt需要成千上万得显卡才能算出模型。开源免费哪有这么多钱支持。

感觉这有点为难 chatgpt :rofl: 按它的架构 “旋转” 这类逻辑问题本来就处理不了, 大家对它的代码能力有点炒作过头了.

开源社区也是有资金支持的,开源社区训练的 175B 模型已经有了,虽然得承认实际用起来确实离 GPT 还是有差距,另外 Google,Meta 的通用语料和模型也大体是开源的

以前我是没钱找编辑帮我润色英语,ChatGPT让我觉得不太需要了。不提智能,有太多行业不断被自动化取代。

我自我觉得得写挺久的,但有很多方法可以让模型生成的代码变的更可用且精准,比如说 Chain-of-Thoughts(通过描述生成所有操作的 Case,然后再给定 Case 让模型生成,这块 Codeforces 上面有太多训练数据了,AI 现在 Div2 前三四道题基本上已经没有问题了,或者放宽先给每个操作生成一个函数,最后再让模型抽象),如果人只做每一步的校验工作,比直接写的要求低很多。

我觉得不必要过于担心,程序员估计不会被取代,因为编程的最大的问题是细节,而你遇到的问题的细节可能也只有你才能搞清楚

也许以后编程就是和AI进行对话,把必要的细节告诉AI

我想跳船到AI(目前靠javascript吃饭), 有知道路径的同学可以给我指点明路.

是福不是祸,是祸躲不过。