目录
达摩克利斯之剑——大模型的时代期待新的超级开发个体
史上四次工业革命和同时代的工人们
LLM会吃了开发人员吗?不,其实并没有那么危险
a. 智能化编程由来已久
b. 进化后的AI编程可以做什么
c. 智能化AI编程的“月之暗面”
d. AI编程 vs 程序员开发者们,站起来武装自己
超级开发个体的烦恼
达摩克利斯之剑——大模型的时代期待新的超级开发个体
风起云涌的AGI/LLM的使超级个体成为可能,在超级工具的加持下,强大的语音、文字、图像处理、编程以及实时交互等功能触手可得,一个人就是一个团队不再是梦想。
同样,OpenAI的CEO,Sam Altman 在接受 Reddit的采访时也表示,AI 时代会创造出一种全新的创业公司:一个人的独角兽公司,并且认为出现的时间不会太远。在AI大模型时代,超级开发个体的崛起正引发一场软件开发领域的革命。
近期我们关注的一位X上的博主,仅用4.5小时,未写下一行代码,仅依靠各种工具,即完成一个简单的记事本程序
很显然,随着AGI/LLM的普及,开发者的竞争力得到飞跃提升:
-
开发者们的工作方式正在发生根本性的变化,效率和生产力都在飞速提升,超级开发个体的生产力显著提高。借助AI大模型,开发者能够快速生成代码、设计系统架构、解决复杂问题,项目的开发周期因此大幅缩短。有数据显示,使用AI工具后,开发者完成项目的速度加快高达5倍,这让个人开发者也有能力承担过去只有团队才能完成的大型项目。
-
超级开发个体正在重新定义技能组合。除了传统的编程技能,他们还需要掌握提示工程(Prompt Engineering),以更有效地与AI模型进行互动。同时,系统思维和架构设计能力变得愈发重要,因为开发者需要将AI生成的代码与整体系统进行整合。此外,持续学习新技术的能力也成为必备素质,以便紧跟AI技术的快速发展。
我们很认同X上这位博主的观察,软件开发的未来,将由AI编写80%的代码,人类开发者完成最后关键的20%(一如AIGC在很多领域的应用),下一波模型将开始释放这些工具的潜力,迎来大规模的AI代码生成浪潮。
面对令人心潮澎湃的大模型革命,大家不仅也开始担忧,这把达摩克里斯之剑席卷而来,是否会对就业市场产生致命的冲击,尤其是对技术开发人员,会有什么样的影响呢?让我们先来回顾人类近代史上的四次工业革命…
史上四次工业革命和打工人们
-
第一次机械工业革命(18世纪末至19世纪初),那个蒸汽机喷吐白烟的时代!手工劳作被机械所替代,纺织机的轰鸣声响彻云霄,火车穿越山川河流,带来前所未有的速度和力量。那个时代,生产力如火箭般腾飞,人类第一次感受到科技的无穷魅力。
打工人们:伴随着纺织工人的失业、羊吃人的悲剧,这场革命带来工人生活条件前所未有的恶化,童工和劳工剥削、环境污染和社会不平等的加剧。 -
第二次电力工业革命(19世纪末至20世纪初),电力闪耀的辉煌岁月!爱迪生的灯泡点亮了夜空,电力驱动的机器让流水线生产如行云流水般顺畅。内燃机的轰鸣声中,汽车驶上了大街小巷,工业生产规模空前膨胀,人类社会进入了电气化的光明时代。
打工人们:马车夫砸掉汽车的怒吼,是二次工业革命的缩影。喜剧大师卓别林的摩登时代,恰如其分地反应了在大规模流水线的夹缝中工人们的命运。 -
第三次信息工业革命(20世纪下半叶),电子信息的澎湃浪潮!计算机的出现如同神奇的魔法,互联网将地球变成了一个村庄。信息技术的飞跃,自动化生产的普及,让全球化的进程如火如荼,信息社会应运而生,人类的沟通和协作达到了前所未有的高度。伴随着信息化的充分链接,全球化的发达到了前所未有的高度。
打工人们:全球化带来的贫富差距加剧以及社会撕裂的后果,正在威胁全球的稳定…美国中西部红脖子是汽车工人和钢铁工人缩影,推上了2016年川总上台
启示: 人类的前三次工业革命,既带来了生产力的飞跃发展,也同时提醒大家在追求科技和经济进步的同时,必须关注社会公正、劳动者权益和环境保护,以实现可持续的发展。
- 第四次智能工业革命(2021年起),这是一个前所未有的时代,是智能技术掀起的全球性变革!在这个崭新的时代,人工智能、大数据、物联网和先进机器人技术共同谱写了人类历史的新篇章。大模型,如GPT-4,带来了无与伦比的智能,正如同科技的魔法,悄然改变着我们的生活和工作。
正在席卷的第四次工业革命,让关于人工智能带来的潜在全球性失业潮的报道再次占据各大媒体头条,打工人们的命运再次引起全球性广泛关注,大模型这把新的达摩克里斯之剑,究竟该如何运用?
国际货币基金组织董事总经理克里斯塔利娜·格奥尔基耶娃博士警告称,随着企业大量采用人工智能技术,全球劳动力市场将遭遇“海啸”,人工智能可能会消灭全球近一半(40%)的工作岗位以及美国和英国等发达经济体一半以上(60%)的工作岗位。
第一次工业革命“羊吃人”的传说和卓别林的摩登时代,让大家不禁联想到,第四次智能工业革命下的AGI/LLM,会不会吃了开发人员?
简答来说,答案是:AI不完全会吃了程序员,但是程序员也要好好武装自己。
LLM会吃了开发人员吗?不,其实并没有那么危险
随着大模型(LLM)和生成式AI(GenAI)技术的不断进步,许多领域的工作方式正在发生巨大的变化。诸如ChatGPT、Gemini、LLaMM等文本生成聊天机器人已经让日常用户更容易完成诸如头脑风暴、写作和信息综合等任务。这些聊天机器人同样接受了编程语言的训练,如Python、Java和C++。这对程序员和软件工程师等编码工作的未来意味着什么呢?虽然这些工作角色可能会发生一些变化,但在可预见的未来,完全消除这些角色的可能性不大。事实上,正是程序员和软件工程师推动了我们今天所享受的许多AI进步。
A. 智能化编程由来已久
智能编程作为软件开发领域的一个重要创新方向,其发展历程与人工智能和计算技术的进步密切相关,而每个时代的变化,都对开发者提出新要求:
- 早期阶段(20世纪50-80年代):这一时期主要是通用自动计算装置的出现和发展。1956年人工智能概念的诞生为智能编程奠定了基础。这个时期的主要特点是以符号计算和逻辑推理为主要方法,开始探索如何用机器模拟人类智能;但是主要局限于特定领域的问题求解。其代表性成果包括早期的专家系统。
早期阶段的程序员,需要掌握底层编程技能,如汇编语言;编程工作主要集中在解决基础计算问题 程序员角色高度专业化,门槛较高。但是竞争也相对不激烈
- 逻辑推理专家系统阶段(20世纪80-90年代):这个阶段出现了基于逻辑和推理能力的专家系统,能够在特定领域辅助人类进行一定的逻辑判断和决策。在知识表示和推理技术的发展,能够在特定领域辅助人类决策;但缺乏学习能力,难以处理不确定性问题。代表性成果是IBM深蓝(1997年)等系统的出现。
专家系统发展阶段的程序员,需要开始涉足人工智能领域,需要学习新的编程范式,如逻辑编程等,并开始关注知识表示和推理技术,解决更加复杂的算法问题
- 深度学习计算系统阶段(21世纪初至今):随着深度学习技术的发展,智能编程开始向更复杂的任务迈进,如代码自动生成、程序理解等。在图像识别、语音理解等任务上取得重大突破,并开始向更复杂的任务迈进,如代码自动生成,深度学习模型在各领域广泛应用,诞生了诸如低代码或者无代码的各种工具。
深度学习系统阶段的程序员,对于基础工作的要求权重降低,转而需要掌握数据科学和机器学习,并将编程工作重点转向构建和训练模型,同时对大数据处理和并行计算技能的需求增加
历史上来看,随着智能化编程行业的演进,对于程序员的要求变化很大,对于其学习进化能力的要求日渐提高;而驱动智能化编程演进的一些主要因素,可以总结如下:
-
技术驱动:从早期的符号计算到深度学习,再到大模型,智能编程的发展一直紧跟人工智能技术的进步。
-
应用范围扩大:从最初的特定领域应用,逐步扩展到更广泛的软件开发领域。
-
与传统产业融合:智能编程技术正在与传统产业深度融合,推动"智能+"产业的快速发展,如智慧零售、智慧金融等。
-
多模态发展:智能编程正从单一的文本处理向多模态方向发展,如图像、语音等多种输入输出形式的结合。
-
通用化趋势:虽然目前仍以专用智能为主,但通用人工智能的发展正在推动智能编程向更通用、更灵活的方向发展
这几年来,智能化编程来到了大模型计算系统时代,以大型语言模型为代表,对程序员的影响足见深远,开发者需要开始使用AI辅助编程工具,如GitHub Copilot及各种大模型的API,并学习如何有效地使用和微调大型语言模型;从而使编程工作可能更多地转向问题定义和系统设计,而不是堆砌基础的代码。
B. 进化后的AI编程可以做什么
经由AGI/LLM进化后的智能化编程,不仅能够显著提升程序员的生产力,还在代码质量、项目可扩展性、个性化定制以及一致性方面带来了诸多益处。以下是AI在编程领域带来的主要优势:
-
增强生产力,AI自动化减少了开发人员在繁琐任务上花费的时间,使他们能够专注于更复杂和富有创造性的工作,从而提高他们在附加值更高的环节投入。AI可以拆解完成包括自动化任务,及通过自动生成代码、优化代码和自动化测试,使开发过程更加高效;从而使开发人员更加专注核心任务,将更多精力投入到系统设计、架构优化和创新解决方案上。
-
提高代码质量,AI能够自动分析代码模式,检测潜在的错误,并提出改进建议,从而提高整体代码质量。自动化审查有助于识别与编码标准、最佳实践和潜在漏洞相关的问题。AI可以自动识别和修复代码中的错误,减少人为疏忽。并提供代码优化建议,提高代码的效率和可维护性。
-
可扩展性和适应性,AI自动化具有可扩展性,适用于各种规模和复杂性的项目。此外,AI工具对不同编程语言和框架的适应性增强了它们在各种开发场景中的实用性,包括能够处理大规模项目,确保高效管理和执行,并能够适应多种编程语言和框架,增强其通用性。
-
代码个性化,AI工具可以适应个人的编码风格和偏好,提供个性化的建议和改进。开发人员可以根据自己的编码习惯定制AI工具,提升用户体验。包括根据开发人员的编码风格提供定制化建议,提高工作效率;以及通过个性化设置,AI工具能够更好地满足开发人员的需求。
-
项目一致性,通过实施编码标准和最佳实践,AI自动化确保了跨项目的一致性,从而简化了项目的维护和开发团队之间的协作。确保所有项目遵循相同的编码标准,提升代码可读性和可维护性;提高团队协作效率,减少因编码风格差异导致的冲突。
上图是典型的由智能化编程可以处理的标准任务,通过代码生成、理解、重构、调试、预测性编码和测试等方面的应用,显著提升了开发效率和代码质量,如果程序员能够巧妙地利用AI的优势“师夷长技以制夷”,则可以使自己的生产效率迅速提升:
-
代码生成,AI能够创建代码片段、模板,甚至是完整的函数,提高开发效率。包括自动生成常用的代码片段和模板,减少重复性工作,并根据需求生成完整的函数,快速实现功能模块。
-
代码理解,AI帮助开发人员在加入新项目时快速熟悉代码库,加速融入团队。通过分析现有代码库,提供结构和功能的概览,帮助开发人员快速了解项目。
-
代码重构和优化,AI能够分析现有代码库,识别低效部分,并建议重构策略,深入分析代码库,识别性能瓶颈和冗余代码;提供重构和优化建议,提升代码效率和可维护性。
-
调试,AI在调试过程中检测潜在问题,提供错误模式的洞见,并提出修复建议。可以自动识别代码中的潜在问题和错误,分析错误模式,提供有价值的洞见;或根据错误模式,提出具体的修复方案。
-
预测性编码,AI在开发人员编写代码时,建议代码补全或修正,提高编码速度和准确性。通过实时建议代码补全,提高开发效率。并自动检测并建议修正代码中的错误。
-
测试,AI自动生成测试用例,预测潜在边界情况,并自主执行测试。AI可以根据代码逻辑,自动生成全面的测试用例,并识别并预测潜在的边界情况,确保测试覆盖全面;同时自动执行测试,快速反馈测试结果,减少手动测试工作量。
C. 智能化AI编程的“月之暗面”
在去年由普林斯顿和芝加哥大学举行的一项研究发现,LLM想要替代码农,其实还有很长的路要走。
(论文地址:https://arxiv.org/abs/2310.06770)
在2294个GitHub真实问题面前,GPT-4解决随机GitHub问题的通过率,竟然是0%!而即使是最佳模型Claude 2,也只能解决其中的1.96%而已。那由GPT-4驱动的智能编程,又有哪些问题呢?
-
创造力和创新:编程不仅仅是编写代码,核心还是需要创造性地解决复杂问题。AI在处理未见过的新问题时,常常缺乏灵活性和创造力。生成代码并不是程序员工作的关键,理解需求、并实现它才是,并且后续的代码维护也很重要,但这目前还都是AI无法解决的。
必须要承认的是,目前一大批低水平程序员每天的实际工作就是去GitHub上搬运代码,以至于有人调侃只要会用Ctrl+C、Ctrl+V就能当程序员,所以AI编程就是在代替这部分程序员。毕竟相比于写代码,了解需求是什么、并实现的能力,才是不可替代的。 -
上下文理解:编程涉及对业务需求和用户需求的深刻理解。AI目前还难以全面理解这些复杂的背景和目标,而且当前LLM在处理长文本或多轮对话时,容易"遗忘"之前的上下文信息,导致前后不一致或逻辑混乱的问题,同时AI在大型项目中也难以理解不同模块或服务之间的复杂交互关系,导致集成问题或性能瓶颈;除非AI能够发展到自我迭代的水平,否则始终需要有人类来告诉AI要干什么,这个角色会承担起告诉AI有什么样的需求要实现,以及应该如何被实现。
-
准确性和可靠性:生成式AI有时会出现“幻觉”问题,生成误导性或不准确的代码,可能会出现错误或不准确的输出。这些模型往往基于训练数据生成内容,而训练数据的质量和多样性直接影响生成结果的准确性。同时,LLM虽然经过海量数据训练,但对特定领域的专业知识理解仍然有限。在处理特定行业或业务领域的编程任务时,可能无法准确把握领域特有的概念、术语和逻辑关系,依然需要开发人员的专业领域知识,对代码进行审核与调整。
-
复杂性管理:智能化编程可能导致代码的复杂性增加,尤其是在多个模型和工具共同工作的情况下。管理这些复杂性需要深入的技术知识和经验;而开发人员需要具备系统思维,能够有效管理和协调不同工具和模型之间的关系,以确保系统的整体性能和稳定性。
-
安全性与合规:AI目前无法全面考虑安全性、隐私保护和法律合规等方面的要求,这些通常需要专业的人为判断。研究显示,AI生成的代码比人工编写的代码在安全性方面表现更差,比如在SQL注入漏洞测试中,使用AI助手的参与者提供的解决方案安全性明显较低;而且AI可能会无意中引入安全漏洞,特别是在处理敏感数据、加密、身份验证等关键安全领域时。而且AI模型可能无法及时应对快速演变的安全威胁和新型攻击手段,对于0-day漏洞或最新的安全最佳实,AI可能缺乏及迭代的能力。开发过程中,依然需要程序员设计全面的安全测试策略,包括自动化测试和手动渗透测试,确保代码的安全性得到充分验证。关于AI模型的安全问题,在Cyber Odessey的过往深度研究《忽略了这件事,你和AI之中必有一死》文中,有非常详细的讨论。
D. AI编程 vs 程序员
人类程序员和AI各有优劣:人类具备创造力、抽象思维和伦理考量能力,能够设计出高度以用户为中心和创新的软件;而AI则在处理大数据集、自动化重复任务方面效率和准确性更高。通过结合人类的创造性和AI的高效性,程序开发可以达到前所未有的高度,确保软件既符合人类需求和道德规范,又具备高效性和准确性。
程序员的工作内容类似书籍的翻译,只不过通常的翻译是连接内容与文字,而程序员则是将人类的需求翻译成代码,给到计算机。简单来说,程序员的工作就是把现实世界中的需求,通过编程语言,翻译成计算机可执行的程序,并在后续维护程序的运行。
在这一过程中,AI能介入的部分是生成代码,其实这也是GitHub Copilot等AI编程工具的功能。可是生成代码并不是程序员工作的关键,理解需求、并实现它才是,并且后续的代码维护也很重要,但这目前还都是AI无法解决的。虽然目前ChatGPT乃至其他AI编程工具生成的代码都是对现有的已知解进行重新整合,但不能排除未来AI将继续进化。
开发者们,站起来武装自己
随着AI技术的快速发展,程序员和软件工程师的工作方式正在发生深刻变化。尽管AI有可能自动化许多编程任务,但完全取代程序员的可能性在短期内并不大。相反,程序员应当拥抱AI,提升自身技能,适应新的工作环境。以下是一些关键策略,帮助程序员在AI时代保持竞争力。
- 持续学习与技能提升,程序员们需要保持对最新AI技术、工具和编程语言的了解,并不断获取新技能。参与AI聚焦的社区也是提升技能的有效途径,Cyber Odyssey就是为希望探索AI领域最新前沿科技与商业奥秘的领航者,提供一个充满活力的内容平台,致力于激发AI gamechanger的无限潜能。这不仅包括技术上的学习,还有更加丰富的社区讨论,实例分析,从而理解业务需求和适应主要趋势,最终利用AI知识解决实际问题。
学习新技术:定期参加在线课程、研讨会和编码训练营,掌握最新的编程和AI技术。
业务需求理解:了解因技术颠覆而产生的业务需求,学习如何将技术应用于解决实际问题。
- 与AI系统协作,程序员应学会将AI工具集成到新的设计和开发过程中,以提高效率和生产力。越来越多的开发人员需要掌握数据工程和机器学习框架,将其作为日常工作的一部分。
AI工具集成:学习如何在开发流程中使用AI工具,以提高工作效率。
数据工程与ML框架:掌握数据工程和机器学习框架的基础知识,将其应用于实际项目。
- 专注于AI领域的细分发展,为了更加安全,程序员可以在AI领域内确定具体方向,如自然语言处理、计算机视觉或强化学习,并在这些领域内深入专研。
专业化:选择一个AI细分领域进行深入学习,成为该领域的专家。
持续研究:定期阅读相关领域的最新研究论文和技术文章,保持专业知识的前沿性。
- 扩展批判性技能,随着AI接管例行任务,程序员可以将更多精力放在需要批判性思维、创造力或直觉问题解决能力的复杂挑战上。这还包括沟通、团队合作和适应能力等软技能,这些在与跨学科团队合作时尤为重要。
批判性思维与创造力:培养解决复杂问题的能力,开发创新解决方案。
软技能提升:加强沟通、团队合作和适应能力,提升与不同背景团队合作的效率。
超级开发个体的烦恼
武装起来的程序员,可以迅速提升自身竞争力,并有望迎接AGI/LLM时代下,成为超级个体的机会,然而,不容忽视的是,超级开发个体也将持续面临着新的挑战,需要重视:
技术储备更新在快速变化的技术环境中尤为关键,开发人员需要不断学习和掌握新的编程语言、框架和工具。为了成为超级开发个体,不仅需要广泛的知识,还需要深入的理解和应用能力。这种平衡广度和深度的需求,使得开发人员必须花费大量时间和精力来更新自己的技术堆栈,并确保自己在各个领域都有所涉猎和精通。此外,还需要关注并掌握如何高效利用AGI和LLM等新兴工具,以最大化地提高生产力。
复杂性管理和创新成为一个关键问题,虽然AI可以提升效率,但也可能导致系统架构变得更加复杂,增加了认知负荷。如何平衡AI生成代码的效率与系统整体的可维护性,成为开发者需要解决的难题。同时,复杂的问题通常涉及多学科知识,要求开发人员具备逻辑推理、批判性思维和创造性解决问题的方法。
工作负荷管理协作对于个人开发者而言,是保持其多项目并行及平衡工作生活的核心挑战。超级开发个体通常需要处理大量的项目任务,这要求他们具备出色的时间管理和压力管理能力。此外,随着项目涉及多个领域的知识,开发人员需要与不同背景、地区、及行业的团队成员进行跨领域协作。这对开发者的沟通和协作能力提出了更高的要求,需要能够有效地与非技术人员交流,确保项目顺利进行。
安全性和合规性问题同样不容忽视。随着AGI和LLM的广泛应用,数据隐私、安全性和伦理问题变得愈发重要;AI生成的代码可能存在未知的安全漏洞,开发者需要更加警惕,确保代码的安全性和合规性。最近的研究显示,使用AI助手的开发者在处理安全漏洞时的表现相对较差,因此,严格的安全审查和合规性检查显得尤为值得注意。
从软件开发行业的角度来看,超级开发个体的出现可能加剧软件开发行业的技能差距。那些能够有效利用AI工具的开发者将获得显著的竞争优势,而传统开发者可能面临更大的压力。这种变化可能导致行业内部的重新洗牌,促使更多开发者投入到AI相关技能的学习中。
希望未来,超级开发个体的崛起将重塑软件开发的经济模式。个人开发者也将承担更大规模的项目,并重塑软件外包和团队协作的传统模式。同时,个人开发者也可以积极探索AGI/LLM新时代下的创业机会,使大家更容易将创新想法转化为现实
如何系统的去学习大模型LLM ?
作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。
但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料
包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。