半岛体育“可能是全国第一篇ChatGPT一作的正经文章吧”,人类合作者之一熊节对
“总会有人想探讨AI会不会产生智能。而我的态度是,我现在就像站在泰坦尼克号船头的一个人,看到了一座巨大的冰山向我撞来,这一刻我想的是怎么逃生上岸。我不关心那个冰山会不会产生智能。”另一位人类作者仝健在采访中表示。
仝健还提到,在《流浪地球2》中,550C“生成底层操作系统”激发了他后续去思考以结构化的重写来替代重构的开发方法。他还认为,这种颠覆性的生产方式对于我们弥补工业软件的短板有实际意义。
随着ChatGPT的面世,大语言模型AI(如GPT-3)已经成为了热门话题。国内也有很多团队在进行追赶,然而,在实际追赶过程中,AI技术与软件工程能力的结合却成为了AI追赶的瓶颈。
“目前,MOSS的最大短板是中文水平不够高,主要原因是互联网上中文网页干扰信息如广告很多,清洗难度很大。为此,复旦大学自然语言处理实验室正在加紧推进中文语料的清洗工作,并将清洗后的高质量中文语料用于下一阶段模型训练。科研团队相信,这将有效提升模型的中文对话能力。”
结合文中其他部分的描述和网上其他资料,不难看出,尽管团队对其在深度学习算法和模型上充满信心,但由于数据获取和清洗方面的软件工程能力不足,导致其模型的数据量远低于ChatGPT,无法有效提升任务完成度,比如中文对话的表现不足。
根据分析,数据获取和清洗的问题实际上源于软件能力的缺陷。例如,如果数据清洗的程序需要经常变化,那么开发人员需要具备一定的灵活性,能够快速理解新的需求和业务规则,并对程序进行相应的修改和调整。并且开发人员需要掌握TDD(测试驱动开发)的相关概念和技术,如单元测试、测试框架和测试覆盖率等。因为TDD能够帮助开发人员编写高质量、易于维护的代码。开发人员还需要掌握持续集成和持续交付(CI/CD)能力,因为CI/CD能够帮助开发人员实现代码的自动化构建、测试和部署。
如果没有合适的爬虫程序和清洗工具,就无法获得足够的数据。这使得我们意识到,在AI的发展过程中,软件工程能力的重要性不容忽视。尽管大多数人关注的是训练后的模型,但在训练模型的过程中,需要写很多定制开发的软件。而这些软件是一次性的,用完即扔的,但是这个“一次性”的过程可能长达数年,需要不断调整和演进这些软件。如果这些软件没有持续演进的能力,那么就无法到达终点。因此,软件工程能力的瓶颈限制了AI的成长。
中国的软件开发行业数量庞大,但是整体水平并不尽如人意。虽然国内拥有大量程序员,但是很难掌握先进的工程实践和技术,这导致了软件开发的问题和质量不稳定。
例如,XP(Extreme Programming)包含的一组工程实践,如TDD(测试驱动开发)、重构等,在中国大型软件开发组织的上下文中难以广泛实现。这些工程实践需要高水平的技术人才和团队协作能力,但是中国的软件开发组织很难招聘到这样的人才,而且组织管理也难以支持这些实践的实施。
因此,中国的软件通常在3-5年内就需要重新开始,这是由于工程实践差导致软件逐渐腐化到无法维护。然而,从另一个角度来看,由于中国的软件工程师数量众多,对于软件的质量要求也没有那么高,因此每3-5年推倒重来的做法也被视为一种解决方案。
但是,半岛体育在为人工智能配套的软件上,这种做法可能会面临巨大的挑战。为了实现智能化,软件需要更高的精度和更长久的维护,定期的推倒重来可能从效率和质量上都不能满足需求。例如,训练OpenGPT的过程涉及到多个软件组件和工具,包括深度学习框架、分布式训练工具、数据处理和清洗工具等,这些软件组件和工具的更新和维护都是必要的。因此,中国的软件开发者们需要更加重视工程实践和技术的学习和应用,只有这样才能够适应追赶需求,但是这与我们之前所说现状的限制产生了矛盾。
我们从文中看到,“复旦团队则采用不同的技术路线,通过让MOSS和人类以及其他对话模型都进行交互,显著提升了学习效率和研发效率,短时间内就高效完成了对话能力训练。”
那么在软件开发方面,我们能否采用类似的思路呢?我们是否可以直接基于现有的ChatGPT进行AI所需的定制软件的开发?尽管这个想法听起来大胆,但实际上是可行的。
我们发现,在使用ChatGPT进行编程的时候,它可以基本上满足一些简单场景的编程需求。通过一些特定的手法,它可以有效地编写出可用的软件。这里所说的简单,是指需求描述简单,不是指需求本身简单或者实现简单。实际上,ChatGPT现在更擅长于处理许多复杂算法和软件框架的开发,因为这些需求都有专业术语,因此需求本身的描述可以很简单。
经过本人实际测试,使用ChatGPT进行编程可以大大提高开发效率。此外,基于ChatGPT进行编程也会带来一些有趣的生产方式变化。在软件开发的工程实践中,我们通常会采用一种假设:重写比重构更慢。但是,在使用ChatGPT进行编程时,我们会发现重写会更快。尽管测试仍然很重要,因为测试会告诉ChatGPT是否正确重写,但ChatGPT本身也可以根据实现代码推理出需要哪些更多的测试用例。这将形成一个恐怖的飞轮,人类提供简单的测试和需求,让ChatGPT编写出符合测试的实现,然后让ChatGPT根据实现和需求反向推理出需要哪些更多的测试,并给出测试用例和可以执行的测试代码。这样的工作方式与测试驱动开发(TDD)很像,只是其中最耗费脑力的部分:“基于测试改进代码和想出更多测试”变成了AI的工作,而人只需要让AI按照TDD的方式工作并适时纠偏即可。
基于这种生产方式及其可观的收益,我们很容易得出一个结论:ChatGPT可以用于简单小单元的开发,但对于更复杂的系统,它能否提供帮助呢?一般来说,由于算力的限制,ChatGPT输入的文本是有限的,而且ChatGPT自身的封闭性使得自建业务上下文的大语言模型AI是不可能的。然而,我们可以从工程化的角度出发,将复杂系统拆分为小单元,用简单逻辑拼装起来。既然ChatGPT可以完成小单元的编程,并以惊人的效率完成,为何不发明一种架构来充分利用这种生产力的提升呢?
这种架构看起来很像深度神经网络,每一层都是可以互相替换的细分的功能点单元。每个细分的功能点单元都可以封装为一个通用的调用接口,比如抓取不同的网站的逻辑,这些逻辑是可以被封装在代码中的,并且可以用一种DSL来描述。半岛体育这种DSL可以交给AI来学习,这些DSL不是中文,而是更结构化更形式化的语言,对于AI来说反而很友好。人可以通过TDD的方式修正它的组合结果,最终得到一个可以用于进行复杂系统开发的方式。
虽然这种方式目前还处于畅想中,但逻辑上可以做到的事情,最终一定会发生。这种新的方式一方面降低了对开发人员能力的要求,另一方面又保证了每个节点都按照唯一证明可以保证质量的工作方式:TDD来进行开发。这种方式可以为我们的追赶带来极大的意义。由于中国的软件开发人员能力存在很大的问题,我们可能受限于AI所需的配套定制软件而追赶缓慢。但这种新的方式一方面降低了对开发人员能力的要求,另一方面却恰好保证了每个节点都按照唯一证明可以保证质量的工作方式:TDD,来进行软件开发。于是我们得到了一种既科学又不需要长期训练获得的能力作为运转基础的生产方式。
最终,我们可以得出结论:ChatGPT可以用于简单小单元的开发,而对于更复杂的系统,我们可以采用一种类似于深度神经网络的架构,将复杂系统拆解为小单元,再用AI完成小单元的组合,从而实现复杂系统的开发。这种方式既提高了生产力,又保证了质量,但更重要的是,它为我们带来了一种全新的软件开发思维方式。这种方式不仅仅是一种技术上的创新,更是一种理念上的创新。我们不再局限于传统的软件开发方式,而是采用了一种更为开放、自由和创新的方式来进行软件开发。
在这种开放性的思维方式下,我们可以不再局限于传统的软件开发范式,不再局限于传统的技术框架和工具,而是充分利用现有的技术和工具,灵活地选择和组合,以达到最优的效果。同时,我们也可以吸纳更多的外部资源,比如开源代码、第三方库、人才等等,让它们与我们的系统无缝地融合在一起,形成一个更为强大、更为开放的系统。
当然,这种思维方式也面临着很多挑战。比如如何确保代码的质量和安全性,如何协调不同的开发者之间的合作,如何处理不同的利益冲突等等。但这些挑战并不是无解的,实际上它的解法就在XP(Extreme Programming,极限编程)方法中。例如测试驱动开发、持续集成、重构等实践都有助于确保代码质量。只是XP中的实践在这个时代如何与AI更好地协作需要进一步的探索。我们可以通过不断的探索和实践,逐步发展出一套成熟的软件开发流程和治理机制,来保证整个开发过程的质量和效率。
总之,ChatGPT作为一种新兴的AI技术,为我们带来了很多的机会和挑战。作为追赶者的我们却可以充分利用它的生产力,来进行我们追赶所需系统开发。在追赶的同时我们还会得到一种全新的开放性思维方式,它可能打破传统的软件开发模式,进一步的释放生产力。(正文完,翻页为人类作者问答环节)
3D打印赛道现大动作,未来市场规模有望达到6000亿元!这些概念股获北上资金加仓
万科A股150亿元定增预案获股东大会通过 董秘称“会争取把股息分红维持在35%左右”
3D打印赛道现大动作,未来市场规模有望达到6000亿元!这些概念股获北上资金加仓
万科A股150亿元定增预案获股东大会通过 董秘称“会争取把股息分红维持在35%左右”
投资者关系关于同花顺软件下载法律声明运营许可联系我们友情链接招聘英才用户体验计划
不良信息举报电话举报邮箱:增值电信业务经营许可证:B2-20090237