华为自研编程语言仓颉揭秘、软件开发智能化四大核心能力、让国产大模型离了英伟达也能奔跑,全球软件研发技术大会重磅开幕!
The following article is from CSDN Author SDCon
作者 | 《新程序员》编辑部
出品 | CSDN(ID:CSDNnews)
软件早已吞噬世界,当大模型能够生成代码、自己改 Bug,自然语言编程逐渐崛起之时,程序员们该何去何从?
7 月 4 日,CSDN 联合高端 IT 咨询与教育平台 Boolan 举办的 SDCon 2024 全球软件研发技术大会在北京威斯汀酒店盛大开幕。大会以「大模型驱动软件智能化新范式」为主题,聚焦大模型智能应用开发、软件开发智能化与研发效能、AI 与 ML 智能运维、云原生架构、可观测性技术、架构设计与演进等软件开发关键技术栈,全方位揭秘 GPT 时代开发者的升级蜕变之道。
其间既有软件界巨擘 MIT 计算机与 AI 实验室(CSAIL)副主任、ACM Fellow Daniel Jackson 和世界著名软件架构大师、云原生和微服务领域技术先驱 Chris Richardson,国内技术领军人物华为编程语言首席专家、仓颉编程语言首席架构师冯新宇,北京智源人工智能研究院副院长兼总工程师林咏华,CSDN 高级副总裁、Boolan 首席技术专家李建忠分享对技术前沿的卓见,又有来自微软、华为、阿里巴巴、百度、腾讯、字节跳动、小红书、京东、美团、蚂蚁集团、360、知乎、美图、MIT、宾夕法尼亚州立大学、智源研究院、IDEA、同程旅行、去哪儿旅行、基调听云、TYAN、京东云、TDengine、西云算力、快递100、Zoho卓豪、人民邮电出版社异步社区、智优沃、非十科技、Tetrate、eBay、灵雀云、Datastrato、云猿生、AutoMQ、支流科技、NineData、衍数科技等四十余家领先企业及组织的技术大咖与专家学者带来最新的成果展示与实践经验,每一位到场的观众都受益匪浅。
Daniel Jackson:
上午 9 点,MIT 计算机与 AI 实验室(CSAIL)副主任、ACM Fellow Daniel Jackson 教授带来了主题为《软件设计的要素——概念驱动的软件设计》的演讲。他指出了目前开发者面临的三大困境:软件结构复杂、安全存在隐患、AI 编程不靠谱,并介绍了“概念”这一全新的设计方式,从根源解决这些问题,使软件实现更广泛的模块化。
Daniel Jackson MIT 计算机与 AI 实验室(CSAIL)副主任、ACM Fellow
Dainel 教授先是以三个我们相当熟悉的成功产品作为例子:iPod、WhatsApp 和 Zoom。这几款产品都在自己的时代遇到了拥有相同实力、相同定位甚至相同功能的竞品,但它们都找到了一个典型的「应用场景」。他表示,“软件设计应该以应用场景为先,而不是拘泥于规格细节”,应用场景能最直观地展现软件的典型应用方式,并在社交、精神和服务等层面同时满足用户。
紧接着,应用场景引出了概念的存在,正式进入演讲的核心:概念。
iPod 的例子中,“歌曲”+“iTunes 商店”+“多端同步”是使这款产品成功的概念;
“群聊”是 WhatApps 曾经独领风骚的创新性概念;
“会议链接”功能 +“视频会议”则是 Zoom 的核心概念。
在这些概念中,有许多都是我们“熟悉的概念”,并没有真正产生颠覆性的创新,而是所谓的组合创新。
根据这些例子,Daniel 教授总结出一个道理:创新往往不是创造新的东西,而是让原本的事情做起来更加简单。他还表示,概念之间不仅可以交互、同步与组合,还能融入产品设计之中,驱动开发者的编程流程。
最后,Daniel 教授提炼了三道金句:模块化是关键、提取“熟悉的概念”、告别敏捷。在 AI 大模型赋能软件研发的这个时代,他提倡开发者围绕概念来革新软件架构,以模块化为本,彻底摈弃敏捷开发的模式。由于概念提供了基于大语言模型的代码生成所需要的模块化特性,使得基于大语言模型生成整个应用成为可能,“开发者”将摇身一变为“概念设计师”,开辟新的职业道路。
李建忠:
随着大模型能力迭代迅猛,AI 赋能软件研发工具层出不穷,软件开发在大模型时代将面临哪些机会和挑战?CSDN 高级副总裁、Boolan 首席技术专家李建忠在主题为《软件开发智能化范式思考与探索》的演讲中,直击语言模型的本质,表示语言对人类知识压缩有着高度的抽象作用,它不仅蕴含人类知识,还包含思维过程。在心理学研究中,将大脑的运作方式分为系统 1 与系统 2。系统 1(System 1)是直觉系统,快速、无意识、自动化的,脑力耗费不多;而系统 2(System 2)是逻辑系统,迟缓、理性、规划的,需要高度集中注意力。
李建忠 CSDN 高级副总裁、Boolan 首席技术专家
在我们的日常工作与生活中,95% 的决策由系统 1 主导,只有 5% 才会使用到系统 2。但在编程领域则不一样,除了肌肉记忆之外,绝大部分都是系统 2 的思考。这就是为什么我们能够看到当前大模型在系统 1 方面表现良好,但在系统 2 上的表现则差强人意。这也从某种程度上反映了为什么在严肃编程领域,大模型的效果并没有想象中那么好。李建忠也引用 Safe Superintelligence 创始人、OpenAI 前首席科学家 Ilya Sutskever 的著名论断“ANN(数字神经网络)与 BNN(生物神经网络)在数学原理上已基本等同”。
紧接着,李建忠谈到了大模型为计算产业带来的三大范式转换:计算范式、开发范式、交互范式。特别地,围绕智能化软件开发范式转换,李建忠深入分享了自己对于大模型这项热技术在软件编程领域的冷思考。他认为,软件系统具有复杂性、动态性、协作性、混沌性的四大特征,当前,业界对于大模型驱动软件智能化具有四类典型的误区,分别是:
误区一:只训练结果数据,而不训练过程数据;
误区二:基于软件系统的静态特征来训练大模型;
误区三:追求一步到位、一劳永逸的智能;
误区四:追求一超多能的超级智能。
李建忠指出:大模型正在重构软件开发,但这并不意味着我们在上个时代积累的经验(尤其是优秀的方法论和实践)被废弃,而是被 AI 压缩和加速了。接着,李建忠分别从软件的”复杂性“、”动态性“、”协作性“、”混沌性“四个方面,结合传统软件开发领域积累的宝贵智慧,进行了大模型时代的新思考。
李建忠表示,在大模型如何应对软件复杂性方面,抽象仍然是一个高级手段,也是当前软件研发大模型亟待提升的能力项。在软件动态性方面,演化是智能的本质,我们需要抛弃对于追求一步到位的智能软件开发的幻想,不仅要训练结果代码,也要训练过程数据。软件工程并非孤立的过程,而是在人类开发者、代码审查者、错误报告者、软件架构师和工具(如编译器、单元测试、代码检查工具和静态分析器)之间进行的对话。以 Google DIDACT 为例,使用软件开发过程作为训练数据来源,而不仅是最终结果(完成代码),通过让模型接触开发者在工作中看到的上下文,结合他们的响应行为,模型可以学习软件开发的动态性。在协作方面,李建忠基于著名的“康威定律”,提出智能时代的康威定律——“智能体的协作沟通架构决定系统设计架构”。在混沌性方面,智能体的工具能力是桥接传统”确定性计算“和大模型”概率性计算“的桥梁。
基于以上探讨,李建忠总结了大模型驱动智能软件开发的四大核心能力:
1. 抽象能力:抽象能力的提升是大模型思维能力的关键;
2. 演化能力:智能的核心是演化、大模型加速软件系统迭代;
3. 协作能力:智能体的协作架构决定系统设计架构;
4. 工具能力:使用工具解决确定性问题。
在演讲最后,李建忠对于软件开发智能化范式进行了提纲挈领的总结与展望,带来了十大关键词。首先是模型能力的展望,包括:(1)扩展定律:Scaling Law 仍然在发挥着关键作用;(2)提高上下文窗口(3)长期记忆能力(4)System 2 的提升(5)降低模型幻觉。
其次,在数据语料方面,也有很多值得探索的方向:(6)研发全流程数字化:如何将当前研发全生命周期中各角色的行为活动数据实现数字化、并成为训练大模型的语料;(7)多模态数据训练:软件开发领域不止文本和代码,还有诸多图表等形式;(8)将模型做“小”:不必追求所谓的大一统模型,而是基于多个模型,使用智能体协作起来;(9)模型合成数据:用大模型生成的代码和设计“喂给”下一个模型训练;(10)最后是多智能体协同,未来在软件开发领域一定是一个非常重要的方向。
从头塑造新架构,让应用开发跟上需求的快速变化
著名软件架构大师、云原生和微服务领域技术先驱 Chris Richardson 在演讲中提出了「快速流动架构」作为适应现代软件开发需求的新兴风格,其重要性在于它不仅加速了广大开发者软件交付的速率,还确保了质量的稳定性,这一切得益于其对 DevOps 和团队拓扑的有力支持。
Chris Richardson 著名软件架构大师、云原生和微服务领域技术先驱
Chris 首先进行了介绍:DevOps 作为一种融合了开发与运维的原则和实践体系,致力于推动软件的快速、频繁且稳定发布,它要求构建高效的部署管道并借助 DORA 指标衡量系统性能,以实现对高频率 Git 推送的敏捷响应。团队拓扑与组织层面,小型且长期稳定的团队在高度信任与心理安全的环境下运作,促进了需求、开发、测试及部署环节的无缝协作,显著提升了团队效能与灵活性。
演讲中,最精彩的莫过于 Chris 关于架构设计中“暗能量”与“暗物质”的比喻,前者象征着微服务、团队自治以及快速部署管道所带来的“排斥力”,推动系统边界向外延伸;而后者则代表了简化互动、高效交流与偏向 ACID 而非 BASE 事务处理的“吸引力”,促使系统内部紧密相连。微服务架构的核心目标在于设计松散耦合的服务,避免分布式单体的陷阱,确保服务间API的互操作性,同时,独立部署能力保证了更新维护的便捷性。
为了规避分布式单体架构的风险,快速流动架构应运而生。Chris 表示,快速流动架构能呈现出一种适应 VUCA(易变性、不确定性、复杂性、模糊性)环境的特质,它不仅加速了软件交付过程,更在质量与效率之间找到了平衡点,完美契合了现代业务环境下的持续变化需求。
做好当代、迎接未来,华为自研编程语言仓颉背后的思考
华为编程语言首席专家、仓颉编程语言首席架构师、南京大学教授冯新宇带来了备受期待的《仓颉:一款全场景智慧化应用编程语言》主题演讲,这也是仓颉历经 5 年研发攻关以来,在 HDC 之外,首次在业界亮相。
冯新宇 华为编程语言首席专家、仓颉编程语言首席架构师、南京大学教授
在全球范围内,编程语言的种类数不胜数,为什么总是要有新的编程语言出来?为什么华为会自研仓颉编程语言?
冯新宇教授首先抛出了这两个关键性的问题。他表示,从技术视角来看,可以总结为要解决特定的技术问题、实现特定的编程理念。产业/技术变革需要新的开发范式,由此聚焦在特定领域,或者是个人兴趣或学术界会研究推广特定的语言范式或特性。冯教授以大家所熟知的面向对象语言为例,其最早即起于仿真领域。
而从开发者生态视角来看,无论是微软对 C#,苹果对 Swift,Google 对 Go、Dart 乃至 Kotlin 的大力投入与支持,其共性都在于,由平台型企业主导的繁荣开发者生态。
基于这两方面的考虑,仓颉希望能够繁荣 HarmonyOS 应用生态,打造最适合 HarmonyOS 的应用开发语言,并将能力辐射到其他领域,支持全场景应用开发,迎接智能化、空间化、一体化的产业与技术变革。在这样的前提下,冯新宇教授深入分享了仓颉语言「做好当代+迎接未来」的设计理念和技术特性。
所谓做好当代,即仓颉作为一门通用的编程语言,仓颉覆盖应用开发和框架/中间件层,希望在效率(表达力丰富、易学易用、高效并发)、安全(安全编码)、性能(高性能 FFI、轻量化运行时、充分编译优化)三者之间实现更好的平衡。
在具体的技术路线上基于类型系统、内存管理维度对仓颉明确了研发重点—— 自动内存管理的静态类型语言。在类型系统方面,支持函数式、命令式和面向对象等多种范式,语言特性包括值类型、类和接口、泛型、代数数据类型、模式匹配以及高阶函数等。
而为了“迎接未来”,仓颉团队深入思考大模型下的应用开发将有大模型作为运行时服务和大模型辅助生成代码两大方式,各有挑战。对于前者,需求的精确描述(Prompt)、与大模型的交互、服务的编排、结果的校验等是重点。基于此,冯新宇教授披露,仓颉正在基于基于仓颉的 eDSL 能力构建 Agent 原生智能应用开发。
对于后者,冯新宇教授在现场抛出了非常关键的思考 —— 从生成代码的角度来说,编程语言能够做什么事情?代码生成需要和 IDE 配合良好,在设计编程语言时,更容易写还是读是关键。冯新宇教授表示,有了大模型之后,写代码的负担得到降低,但由于大模型的黑盒属性,代码的可读性、评审测试验证登能力变得更加重要。如何让大模型生成更高质量的代码,就对编程语言提出了需要更加声明式、抽象级别更高的要求。
让整个产业没有难用的算力,支撑大模型继续奔跑
英伟达 H100 供不应求,显卡租赁动辄数万美元,在全球都面临着算力紧缺的时候,国内开发者还剩下哪些选择?北京智源人工智能研究院副院长兼总工程师林咏华以“大模型及多元 AI 芯片时代的软件开发”为出发点,深入探讨了这一问题。所谓“多元”,便是指除英伟达以外的国产 AI 芯片,当前的软件开发者被英伟达这座高墙堵住,面临着前所未有的机遇和挑战。为了实现多元异构 AI 芯片 + 大模型开发,林咏华提出了两大挑战:“芯片异构”和“集群异构”。
林咏华 北京智源人工智能研究院副院长兼总工程师
大模型的兴起为软件开发提供了新的方向,包括编程助手、智能对话替代 GUI、基于语言模型的自动化交互等方向的发展。然而,林咏华强调了现实的“骨感”:现在许多模型厂商积极地在 HumanEval 等测评榜上“刷分”,如 GPT-4o 和 Claudu 3.5 Sonnet 等模型都取得了 90% 以上的好成绩,但若选用更贴近开发者日常编码情况的 TACO 测评,并限制刷榜,只取 pass@1(只测一次)的成绩,会发现许多代码生成模型的能力“惨不忍睹”,当前代码生成模型的能力还存在局限,需要开发者编写逻辑保护代码进行补充。
随着代码生成模型的发展,开发者对算力的需求也在飞速增长。模型尺寸的增加、训练数据量的上升导致了计算需求的显著增长。林咏华表示,国内先进算力的供应不足,导致算力价格并未遵循摩尔定律,面临算力缺口的挑战。这要求国内的 AI 芯片能够补上这一缺口,支持大模型的训练和推理工作。
紧接着,林咏华提出了第一大挑战“芯片异构”的核心命题:我们能否让软件开发者感受不到 AI 芯片的差异?在国内,存在多种不同架构的AI芯片,这些芯片来自不同的制造商,具有各自的编译器和指令集。这种芯片的异构性给软件开发带来了迁移困难、软件差异、架构差异等问题。为了解决这些问题,智源研究院牵头打造了基于 Triton 前端编程语言实现通用算子库的软硬件生态体系。要克服芯片异构带来的挑战,建立一个开源的软硬件生态体系显得尤为重要。通过开源算子编程语言(Triton)及其编译器,智源研究院联合多家单位共同打造了一个覆盖主流大模型算子的通用算子库。这个生态体系得到了多家芯片厂商的支持,并且已经在多个硬件平台上得到应用。
在分析 AI 芯片“集群异构”的挑战时,林咏华指出了两大难题:如何在不同的 AI 芯片集群完成大模型训练?在资源异构、通信差异的情况下,又该如何合池不同的 AI 芯片资源训练一个大模型?为了解决这些挑战,智源研究院发布了面向多种 AI 芯片的高效并行训练推理框架 FlagScale ,该框架能够在不同 AI 芯片上完成大规模大模型的训练和微调训练,并支持不同并行模式的开发。这不仅解决了单一集群训练的问题,也使得不同 AI 芯片集群可以合池训练同一个大模型。最后,林咏华强调了自己的愿景:“让产业没有难用的 AI 算力,支撑大模型继续奔跑,实现全面赋能软件开发。”
高峰对话:软件开发智能化新范式
主会的精彩演讲令人意犹未尽,而在上午最后的圆桌对话环节中,华为编程语言首席专家、仓颉首席架构师冯新宇,CSDN 高级副总裁、Boolan 首席技术专家李建忠,北京智源人工智能研究院副院长兼总工程师林咏华在 Athena labs CTO 王兴明的主持下,围绕“软件开发智能化新范式”展开深度的探讨与经验分享,延伸了每位嘉宾的演讲内容,为观众们答疑解惑。
对于广大开发者要如何更有效地利用大模型在软件开发中的能力,李建忠分析说,“程序员面对复杂问题时,初期倾向于使用分解的方式,但随着软件开发的深入,这种策略逐渐不够用,需要转向更高阶的抽象思维。”
当前大模型在低抽象任务上表现出色,但在高抽象任务上能力不足,这要求开发者找到合适的策略来弥补大模型的这一不足。当前训练大模型时,仅依靠静态代码或结果导向的训练方式可能不足以反映软件复杂度的抽象,因此需要在训练阶段加入更多的高抽象理解。
李建忠提出,为了更好地使能大模型在软件开发中的运用,程序员需要掌握更多高抽象的技能,而将低抽象的任务交给大模型来完成。他建议在训练阶段增加对高抽象任务的理解,而不是仅仅依赖于静态训练 GitHub 上的代码。此外,他还强调了前人智慧的传承重要性,包括敏捷开发和康威定律在内的宝贵经验,都可以智能化,而不是被忽视。
冯新宇在对话中提出了他对大模型在软件开发中应用的看法和理解。他认为,大模型可以在较小的颗粒度上辅助软件开发,这就像有一个非常高效且博学的同事一样,尽管“黑盒”的存在会让这个“同事”偶尔会犯一些低级错误。因此,他强调了人脑的配合作用,意味着我们可以将大模型视为工具,帮助我们在各个开发流程中发挥作用,即使大模型不如人类靠谱,但它仍然可以在一定程度上融入现有的工作流程,并处理不确定性过程中的问题。
最后,冯新宇指出,人类更擅长进行抽象思考,大模型则可以处理具体的工作;既然大模型的全称是“大型语言模型”,它们通过分析和生成自然语言来进行工作。因此,未来的训练应该着重于提高人类的信息结构化和抽象能力,以便更好地与大模型交流和合作。结合人类的抽象能力和大模型的处理能力,每个人都应该在自己擅长的领域内发展,可以更有效地完成软件开发和其他技术领域中的挑战性任务。
针对主流模型的开发和使用问题,林咏华表示,为了适配流行的框架和大模型,例如千亿级别的大模型,开发者可以通过稍微修改一些库文件来快速实现所需功能。她还强调了这种框架和模型对国产化新芯片的支持,旨在降低企业成本并提高开发速度。林咏华最后为广大开发者给出了一道建议:“听得再多不如试一下子”,理论学习固然重要,但实际操作和尝试更为关键。她建议每个人都应该亲自尝试使用大模型,以确定它们的实际边界和适用场景。
不焦虑纯干货!
四大专场同步并行,参会嘉宾热情高涨
一如许多与会开发者观众的高度评价,全球软件研发技术大会非常接地气,不宣扬 AI 无所不能,而是脚踏实地,分享实实在在的实践干货经验。在主会之后,四大专场同期举行,聚焦软件开发智能化、AI 智能应用开发、云原生架构、可观测性技术等 12 大备受开发者关注的主题方向,展开精彩分享,现场交流氛围浓厚,欢迎大家持续关注。
{现场照片集}
精彩花絮,展位人头攒动
在会场之外的展厅中,基调听云、TYAN、京东云、TDengine、快递100 、Zoho卓豪、人民邮电出版社异步社区等展位吸引了众多参会者的目光,现场热闹非凡!
{现场照片集集锦}