写点什么

上海交大林云:揭秘大模型的可解释性与透明度,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:085221

评论 1 条评论

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

让你10分钟就能看懂Linux文件权限(超级详细、超级简单!!!)

Albert Edison

Linux centos linux 文件权限控制 8月月更

SRv6 L3VPN的工作原理

穿过生命散发芬芳

8月月更 SRv6

Linux性能调优之内存负载调优的一些笔记

山河已无恙

签约计划第三季

Android编译系统初探

桑榆

8月月更

彻底透彻Docker常用网络模式及应用场景

知识浅谈

开源 8月月更

小程序容器+自定义插件,可实现混合App快速开发

Speedoooo

小程序 插件 APP开发

关于解决Hexo常见报错的处理以及上传时出现errorSpawn错误的详细说明

CtrlX

Hexo Blog 报错 博客搭建 8月月更

突破边界,华为存储的破壁之旅

脑极体

如何给 UE4 场景添加游戏角色

HelloWorld杰少

c++ 游戏 UE5 8月月更

SENSORO成长伙伴计划 x 怀柔黑马科技加速实验室丨以品牌力打造To B企业影响力

SENSORO

品牌 产业生态 创新生态

开源一夏 | 手撸代码,Redis发布订阅机制实现

知识浅谈

开源 8月月更

C++内存分区模型分析与实例以及扩展

CtrlX

c++ 前端 程序员进阶 后端、 8月月更

【SeaTunnel】从一个数据集成组件演化成企业级的服务

Apache SeaTunnel

大数据 微服务 数据处理 数据集成 大数据 开源

如何看待腾讯云数据库负责人林晓斌借了一个亿炒股?

雨果

DaaS数据即服务

Database Plus 的云上之旅:SphereEx 正式开源 ShardingSphere on Cloud 解决方案

SphereEx

数据库 ShardingSphere SphereEx #开源

使用常见问题解答软件的好处有哪些?

Geek_da0866

为你的“架构”安排定期体检吧!

凌晞

构架 软件架构治理 架构治理

Java中的引用

flow

签约计划第三季

dvwa 通关记录1 - 暴力破解 Brute Force

Todd-Lee

渗透测试 DVWA

有点奇怪!访问目的网址,主机能容器却不行

华为云开发者联盟

云计算 主机 云网络 后盾

【LeetCode】设计食物评分系统Java题解

Albert

LeetCode 8月月更

微软校园大使喊你来秋招啦!

DawnMagnet

leetcode 204. Count Primes 计数质数 (Easy)

okokabcd

LeetCode 算法与数据结构

面试突击70:什么是粘包和半包?怎么解决?

王磊

Java 面试题

空间数据库开源路,超图+openGauss风起禹贡

这不科技

opengauss

升哲科技携全域数字化方案亮相2022全球数字经济大会

SENSORO

人工智能 大数据 物联网 数字经济

企业公众号文章写作方向:如何写出读者认可的优质内容

石头IT视角

经验共享|在线文档协作:企业文档处理的最佳选择

Baklib

Godaddy域名解析速度慢问题以及如何使用DNSPod解析解决

CtrlX

Hexo 域名解析 DNS服务器 域名配置 8月月更

不要再使用MySQL online DDL了

Qunar技术沙龙

使用JDK的同步容器时,应该避免那些坑

华为云开发者联盟

后端 开发 华为云

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