Data+AI时代,如何打造下一代数智平台? 了解详情
写点什么

上海交大林云:揭秘大模型的可解释性与透明度,AI 编程的未来在这里!

林云

  • 2024-08-14
    北京
  • 本文字数:2913 字

    阅读完需:约 10 分钟

上海交大林云:揭秘大模型的可解释性与透明度,AI 编程的未来在这里!

在软件开发的世界里,代码的生成、编辑、测试和调试一直是核心活动。然而,随着大语言模型的介入,这些环节正在经历一场深刻的变革。这些变革不仅提高了开发效率,也为我们带来了新的挑战和问题。在 8 月 18-19 日,AICon 上海站有幸邀请到了上海交通大学 计算机科学与工程系副教授林云 ,他将与我们探讨语言模型如何影响软件开发的每一个环节,并为我们展示如何通过先进的分析技术来优化和增强模型的预测能力。


本文为会前采访文章,他深入探讨了大语言模型在软件开发中的应用,分享了提高模型可解释性的策略,如可视化技术和影响函数。通过 ISSTA’24 的案例,他展示了全项目感知的交互式编辑方案,并讨论了数字孪生技术在验证模型能力中的应用;最后,他预测了 AI 对软件开发范式的影响,并强调了开发者在 AI 时代需要的新技能。期待对你有启发~


另外,在 8 月 18 日至 19 日举办 AICon 全球人工智能开发与应用大会,即将深入端侧 AI、大模型训练、大模型安全实践、RAG 应用、多模态创新等前沿话题。详细内容可点击原文链接查看。


大语言模型在软件工程中的应用与挑战

InfoQ:您认为当前大语言模型在代码生成、编辑、测试和调试等方面的表现如何?有哪些具体的应用案例?


林云:这些软件工程任务的自动化手段的原本瓶颈在于专有或者领域知识的不足,比如特定文件资源的获取以及特定错误或异常的根因定位等;而语言模型的出现通过将大量的编程知识压缩和编码,使得弥补这种“知识鸿沟”变成了现实。我们课题组和字节进行合作,在代码自动编辑进行探索,提出了基于语言模型的端到端编辑方案,来解决编辑的传播、定位、生成和反馈循环等问题。


目前在定位和生成的准确率都达到了相对理想的效果;至于测试,我们正在尝试来让语言模型进一步学习领域知识,来生成领域相关的测试用例;至于调试,我们也在期望让模型生成出整个调试的过程,由此使得技术更加实用。

InfoQ:大语言模型在不同类型的编程任务中表现出了哪些优势和局限性?


林云:语言模型的优势在于常识量巨大,能够解决带至于泛化出各种基于大量常识知识的解决方案。而局限在于长上下文的确定性推理(比如,跨文件的数据流分析等)。所以如果将语言模型和传统的程序分析工具有效解决,是一个非常有价值的课题。


可解释性方法与模型透明度

InfoQ:在训练和使用大语言模型时,您遇到过哪些可解释性的挑战?如何解决这些挑战?


林云:主要的可解释性问题在于代码表征分析和训练样本归因两个方面。表征分析其实希望理解模型是否能够理解两片代码的相近语义,这段泛化模型的能力非常重要。而训练样本归因在于解决模型的预测源自于哪些训练数据,这个对数据集质量非常重要。


对于前者,我们开发了表征空间可视化技术来理解模型训练过程中的训练动态;对于后者,我们优化了传统的影响函数(Influence Function),来观测训练样本的贡献和彼此之间签在的冲突。

InfoQ:您能否详细说明基于数据和基于表征的可解释性方法,并分别讨论它们在实际中的应用效果?


林云:深度学习本质上是表征学习,任何样本都会在一个高维向量空间上有一个向量表示。我们目前的做法是把表征空间上发生的各种训练事件转化成一个可交互式动画,来观测训练过程。


在这个过程中,我们可以观测样本之间语义距离的变化,并且利用影响函数(一种基于数据的可解释性方法)来进一步推断这种变化的根因。这些可解释性方法的组合使用在现实中可以有效帮助我们分析训练数据质量、模型的表达能力、以及训练数据标注中的一些问题。

InfoQ:您提到的 ISSTA’24 的代码编辑工作是如何实现全项目感知的交互式编辑的?能否分享一些具体的实现细节?


林云:我们 ISSTA’24 的工作提出了一种端到端的代码编辑方案,叫做 CoEdPilot。当用户给定一个编辑要求后,我们的工具能够迭代式地完成全项目编辑定位和编辑生成。并且通过将先前的编辑作为用户反馈,进一步调整和精化定位和生成的结果。


我们通过设计两个 transformer 将一个大的端到端任务拆解成两个小模型,来交互式地完成这个任务。一个小型的语言模型用于编辑定位,另一个小型的语言模型作为编辑生成。我们通过收集大量代码提交历史记录来循环指令微调这两个模型,来达到比较好的效果。更多详细信息可以关注 AICon 上海站的分享。


InfoQ:在这个案例中,您是如何分析和追溯训练样本的?使用了哪些技术手段来构建数字孪生环境?


林云:我们通过设计了自己的影响函数来将一个预测溯源回对它贡献最大的训练样本。这里基本的思想是分析一个训练样本和一个测试样本之间的预测联动性来完成的。至于数字孪生验证场景,我们期望将一个静态的代码提交恢复成一个动态的代码编辑场景,来验证模型的能力。

InfoQ:您在演讲中提到了代码深度表征分析和数字孪生模拟编程场景。能否进一步解释这两种技术的具体实现方式及其对模型性能的影响?


林云:这里主要解决的问题在于模型训练准确率不等于模型对真实编程的生产力,所以我们设计了这个技术来解决两者之间的差距。如上文所说,我们将一个静态的代码提交恢复成一个动态的代码编辑场景,来进一步验证模型的能力。


InfoQ:如何通过这些技术提高模型的透明度和可信度?


林云:通过这些可解释性技术,我们期望能够有效帮助程序员来将模型训练的过程白盒化。比如通过训练数据归因,模型的使用者能够更好地理解模型做出决策的依据,这样可以方便使用者来更好的接纳或者拒绝模型的建议。

未来展望与开发者技能

InfoQ:您认为大语言模型在未来将如何影响软件开发范式?会有哪些新的趋势或创新?


林云:语言模型嵌入程序开发活动已经是大势所趋。以往的代码开发的一些知识可能是程序员之间口口相传,有了语言模型之后,大家会逐渐思考留下更多的代码开发历史并训练相应的模型来完成推荐。所以在未来,代码开发活动,同时也是数据标注活动,这可能会引起面向模型的开发活动的思考和创新。

InfoQ:针对 AI 时代,您认为开发者需要掌握哪些新的技能和知识以适应这种变化?


林云:我觉得开发人员可能在一定程度上需要了解 AI 模型的运行原理。因为交付可靠的软件其实仍然是不变的要求,但如果把工作交给一个概率驱动的语言模型,这一方面需要有比较强的验证机制来检验概率模型结果的可靠性;另一方面需要理解语言模型本身的局限性。这样才能有更加好的人机协作编程方式,来交付更加可靠的软件制品。


嘉宾介绍


林云,上海交通大学 计算机科学与工程系副教授、系主任助理、博士生导师,原新加坡国立大学助理教授(研究岗),入选 2021 年国家海外高层次青年人才计划。主要研究领域为软件工程,侧重代码、网页和 AI 模型的自动分析技术。在国际顶级会议和期刊发表论文近 50 篇。担任 PRDC2023 国际会议程序委员会联合主席,以及重要国际会议的程序委员会委员和审稿人,主持国家基金委优青项目(海外),获得过 ICSE2018 最佳论文奖。

活动推荐


8 月 18-19 日,AICon 全球人工智能开发与应用大会将在上海举办。来自字节跳动、华为、阿里巴巴、微软亚洲研究院、智源研究院、上海人工智能实验室、蔚来汽车、小红书、零一万物等头部企业及研究机构的 60+ 资深专家,将带来 AI 和大模型超全落地场景与最佳实践分享,帮助与会者提升技术视野、获得有价值的实践指导。大会火热报名中,详情可联系票务经理 13269078023 咨询。



2024-08-14 15:085435

评论 1 条评论

发布
用户头像
确实,大模型目前还是概率启动的,希望能进化为逻辑+数据+记忆驱动的大模型
2024-08-30 11:10 · 安徽
回复
没有更多了
发现更多内容

深入理解Flutter相机插件【Flutter专题22】

坚果

flutter 28天写作 签约计划第二季 12月日更

react源码解析12.状态更新流程

buchila11

React

netty系列之:小白福利!手把手教你做一个简单的代理服务器

程序那些事

Java Netty 代理 程序那些事 12月日更

实用机器学习笔记十四:多层感知机

打工人!

人工智能 机器学习 算法 学习笔记 12月日更

彻底搞通服务发现的原理和实现

高性能架构探索

架构 分布式 微服务 服务发现 签约计划第二季

手把手带你漫游语音识别世界|入门到实战

攻城先森

音视频 语音识别 内容合集 签约计划第二季

Game On Serverless:SAE 助力广州小迈提升微服务研发效能

阿里巴巴云原生

阿里云 Serverless 云原生 SAE 合作

C++ 开发笔记

行者孙

内容合集 签约计划第二季

流量控制-从原理到实现

高性能架构探索

架构 分布式 微服务 签约计划第二季

给弟弟的信第13封|一个北京姑娘的艰辛生活

大菠萝

28天写作

面试官:react中的setState是同步的还是异步的

全栈潇晨

React

亿级流量实验平台设计与实现

高性能架构探索

架构 分布式 微服务 签约计划第二季 实验平台

Kafka 在消息队列领域为何如此流行?

老周聊架构

kafka 内容合集 签约计划第二季

效能研发:做一款GraphQL代码生成器

梁龙先森

签约计划第二季

面试官:useLayoutEffect和useEffect的区别

全栈潇晨

React

Scrapy Spider中间件,你学会了吗?本篇博客有一案例

梦想橡皮擦

12月日更

面试官:如何实现 List 集合去重?

王磊

java面试

吃透负载均衡

高性能架构探索

负载均衡 架构 分布式 微服务 签约计划第二季

【LeetCode】寻找旋转排序数组中的最小值Java题解

Albert

算法 LeetCode 12月日更

lock-free在召回引擎中的实现

高性能架构探索

架构 分布式 微服务 签约计划第二季

Prometheus Exporter (二十六)Statsd Exporter

耳东@Erdong

Prometheus 28天写作 exporter 12月日更 StatsD

让容器跑得更快:CPU Burst 技术实践

阿里巴巴云原生

阿里云 容器 云原生 cpu CPU调度

react源码解析11.生命周期调用顺序

buchila11

React

React进阶(五):导航守卫

No Silver Bullet

React 路由 12月日更

带波浪效果的CollapsingToolbarLayout + RecycleView

阿策小和尚

28天写作 Android 小菜鸟 12月日更

前端架构师修炼指南精选

杨成功

前端 架构师 内容合集 签约计划第二季

日常的情绪控制

搬砖的周狮傅

情绪控制

前端开发:正确安装nvm的方法(非常详细)

三掌柜

28天写作 28 12月日更 12月

前端工程建设那些事

梁龙先森

内容合集 签约计划第二季

阿里云田涛涛解读未来自动化运维新思路:CloudOps

阿里云弹性计算

CloudOps 云上运维

JerryScript:物联网开发者的得力工具

华为云开发者联盟

物联网 LiteOS JerryScript 引擎 物联网应用

上海交大林云:揭秘大模型的可解释性与透明度,AI 编程的未来在这里!_AI&大模型_InfoQ精选文章