0%

学术分享记录

1. 北大姜雪 - 代码生成与大模型 - 00:21:00~00:42:00

引言

代码生成:让机器自动编程以满足人类需求或意图的技术,比如自然语言描述生成代码

典型例子比如Copilot智能AI编程助手

但是现有代码生成通常只能完成行级或函数代码的补全与生成这种短需求的场景

无法应对复杂场景和系统设计

该组使用了自规划和自合作的方法论使大模型能够解决更复杂需求

工作介绍:Self-planning Code Generationwith Large Language Model

[2303.06689] Self-planning Code Generation with Large Language Models (arxiv.org)

image-20231104130606815

现实情况是,对于复杂问题,语言描述与代码之间存在gap,导致生成质量差

结合人类思维,我们可以将大问题分解为小问题,然后规划解决方案,根据方案解决问题

应用到代码生成,如下图所示

image-20231104131050434

基于上述思路,

image-20231104131437846

该项工作使用的BenchMark包括:

  • HumanEval:164个编程问题
  • MBPP:1000个编程问题
  • 以及上述的ET扩展版本

结果如下

image-20231104132532219

问题:如何评估代码生成质量,只是跑测试样例吗

解答:

工作介绍:Self-collaboration Code Generation via ChatGPT

软件开发是系统工程,包括了需求分析、设计、编码、测试等阶段

在代码生成中,可以引入除了编码之外的其他阶段,比如前一项工作就相当于额外引入了需求分析阶段

受到人类软件开发团队的启发,该工作提出了拟定虚拟软件开发团队共同完成复杂问题

image-20231104134107628 image-20231104134121701

见算法表述,DOL阶段负责分配角色,Collaboration阶段负责工作交互

image-20231104134619128

以瀑布模型为例,对工作做出解释

image-20231104134638731

学习作者的instruction的技巧

作者认为:用大模型组建虚拟团队可以大大提高解决复杂问题的能力

思考

比如在学习开源项目时,能否让大模型理解系统整体设计,同时解释不同模块的工作与交互

2. bryanyzhu - 大模型时代下做科研的四个思路

核心讨论:如何在有限的资源条件下,做出不错的工作

高效与轻量,如PEFT

以AIM论文为例

在前人基础上创新/寻找新方向避开内卷
通用工作,如plug-and-play的模块

做的工作可以是能用到各种领域的简单的东西,不仅指模型上的模块,也可以是函数、loss、数据增强方法等

只需要选很多的baseline,在个人能承受的setting下完成实验,因为是公平对比,所以不需要使用很大的数据集

DataWhale王翔 - LLaMA论文阅读

看着看着突然感觉,自己的科研方向是否需要深入了解大模型原理,或者说是否涉及到对大模型的网络设计

这才意识到,自己对大模型的科研还没有整体上的认识

所以暂时退出了,去看相关分享了

欢迎关注我的其它发布渠道