2024年,袁粒和团队决定发起 Open-Sora Plan,把 Sora 展示的视频生成能力做成一个开放的研究项目。摆在面前的问题很现实:训练模型需要大量数据和算力,即使后来有企业参与、提供支持,他们能调动的资源,与头部公司内部做视频模型的投入仍有很大差距。
袁粒对这个项目的期待,并不以追上 Sora 的效果为前提。他希望先把架构搭起来,把代码和训练方法公开,让企业能接着开发,也让学生有机会在上面验证自己的想法。“哪怕这个模型没训出来,我们先把架构开出来。”
在他看来,把试错中的经验也写进技术报告,后来的人就能少花一些重复摸索的时间。一个高校团队的工作做到这里,已经可以为其他研究提供起点。
2017年,袁粒到新加坡国立大学读博,其间曾赴哈佛大学参与视觉神经科学研究。2021年,他与合作者提出 T2T-ViT,探索如何提高视觉 Transformer 在有限训练数据下的学习效率,随后加入北京大学。目前,袁粒是北京大学助理教授,研究涉及以视觉为中心的多模态算法与架构,以及 AI for Science。
聊起各个项目,袁粒总会回到那些还没解决的问题。视频已经能生成得很逼真,模型却未必能解释画面里的运动;科研智能体完成了一次任务,遇到参数修改、结果复用和环境变化,又可能无法继续。
这也让“大学还能做什么”有了具体的落点。资源有限,高校团队仍然可以找出现有方法的局限,尝试新的架构,再通过开源让更多人参与验证。一项工作暂时没有做完,也可以先为后来的研究提供起点。袁粒把它比作一段共同走过的路:到终点的十米,也许由某个团队或拥有资源的企业冲过去,前面九十米的探索,同样有意义。
没跑通的那个念头
袁粒把研究主线概括为:让机器形成可以检验的世界理解,再把这种理解转化成预测和生成。先理解世界,再去预测、生成世界,下一步看能不能把这些能力转化成行动。这条主线是在研究中慢慢形成的,很多宏大的规划在实际执行中都会发生偏移。
2018年,BERT 和第一代 GPT 出来时,他就在想:它们的底层都是 Transformer,既然在自然语言处理里这么有效,能不能也用来处理视觉?当时有两种尝试,一种是把视觉领域的卷积用到语言,另一种是把语言领域的 Transformer 用到视觉。他做了后一种。不过,学校实验室的算力和数据有限,前后累计探索了一年,没有跑通。
后来他去哈佛做生物视觉研究,动机很纯粹:想去看看启发人工神经网络的脑科学那边发生了什么,能不能给研究一些推动或信心。当时大家对 AI 的期望比较高,但落地范围有限、泛化能力不够好。在高校做学术研究的一个好处,是可以静下心来重新思考底层问题:为什么当时的神经网络泛化不行,问题到底在哪里。
会做出来,就算理解了吗?
2023年推出 Video-LLaVA 时,不少大模型还是分别处理图像或者视频。图像主要提供空间信息,视频还涉及时间和动作的变化,这些信息原本的表征有比较大的差异。如果直接交给语言模型,那时候的模型无法适应时空上的差异。团队的想法是,先让图像和视频的信息对齐,再映射到语言模型能够处理的空间。
实验中看到,在统一的视觉表征下,图像和视频的学习可以相互促进。当然,这不等于模型已经掌握了物理因果,它是在为进一步理解物理世界打基础。
理解与生成的关系并不简单。理解了,未必能准确生成——理解往往在抽象空间中进行,从抽象回到具体需要补充很多细节,这个升维过程经常出现信息偏差。反过来,生成得好,也未必理解得清楚:模型可以生成两个高速运动的物体,再问它这两个物体是在匀速、加速、减速还是做不规则运动,能不能把运动轨迹精准算出来,很多模型并不能很好地回答。
对于让理解模型、生成模型各司其职再通过智能体连接的做法,袁粒不否认分工协作的价值,但他强调两个层次:单个智能体能否形成比较完整的能力,以及多个智能体怎样一起完成复杂任务。桌面的摩擦系数变了,负责理解的模型知道这个条件变化,但它怎样把这个变化传给生成模型,让杯子的运动也相应改变?中间的连接可能损失信息。两个模型接在一起,不意味着它们就共享了对场景的全部认识。
AI 之后,大学怎么做研究?
Open-Sora Plan 虽然由高校团队发起,但有很多企业参与,提供算力、数据,一起做这个项目。这些资源和头部企业内部做视频模型的投入仍有很大差距,但发起开源项目,不一定要把最终效果做到和 Sora 一样。把模型代码、训练方法开放出来,企业就有一个能借鉴的起点,学术界也有一套能验证想法的系统。
做项目的过程中,团队自己会遇到现有架构的问题,开源社区也会反馈这些局限。比如很多模型是一段一段生成视频的,如果未来要走向世界模型、走向可交互,就需要考虑怎样持续生成,前面的内容怎样被后面继续使用。与字节跳动合作的 Helios 就是在尝试流式生成,需要处理历史信息怎样保留、计算量怎样控制,以及时间越长误差会不会不断累积等问题。
历史信息也不是越近就一定越重要。第十秒出现的主体,在第五十九秒可能还会出现。可以把更早的信息存得更紧凑,但要保留主体身份、场景布局这些后面仍然需要的信息。团队做了很多对照实验,检验不同压缩方式的影响。画质很直观,但做模型时更要关心运动和贯穿时间、空间的关系——画质可以通过后续方法改善,运动、主体身份、逻辑和交互关系才是架构里要重点保住的东西。
袁粒说,团队本来也是从开源里受益的。同学们和社区交流,能找到真实存在的问题。做开源,是希望开放地做科学、做研究,而不是关起门来解决一些假问题。流式生成就是交流中探索出来的方向。科研智能体也一样,开放给不同领域的人使用之后,才会更具体地发现,把它做成一套系统到底有多复杂。
科学家不会只做一轮实验
很多模型用于科研时,关注一次输入、一次输出。但真正的科研任务是连续的,里面有过程依赖,也有失败和反复修改。前面一步产生的对象,后面可能要多次使用;之前失败的参数、失败的结果,也可能要重新查看。换了参数,系统就要分清新结果和旧结果,知道自己执行到哪一步,这一步依赖哪些内容,后面应该怎样走。
在 OpenAI4S 中,团队把代码作为科学行动的基本单位,让生成的代码在持续运行的 Python 或 R 环境里执行。这样,计算产生的中间对象可以保留下来,后面的步骤能继续使用。系统还要记录执行过程、结果版本,反复比对中间对象,追溯某张图、某份数据到底怎样产生。
但把过程记录下来,还不意味着研究者就能放心复现结果。内存里的对象不会自动跨进程保存,程序中断了,要恢复哪些东西、依赖哪些文件、哪些代码适合重新执行,都需要处理。换一台机器,想完整重建环境再运行一遍,仍然有困难。科学实验还涉及很多设备,机器、设备变了,原来的流程不一定能直接运行。团队希望从计算机里的科学计算,也就是“干实验”的自动化执行,慢慢走到与真实实验相连接的“干湿闭环”。怎么与科研设备打通,是下一步的核心卡点之一,这些事情不是一个团队就能解决的。
流程差异这么大,通用科研智能体会不会离实际需求太远?袁粒的处理方式是:通用能力、泛化能力是希望达到的目标,但切入点需要具体。高校团队开始时先从一些领域、一些任务切进去,技能模块也会偏向某些领域。开源之后,大家可以上传自己的技能模块,帮助项目丰富;企业也能带来资源和更多使用场景。从专用慢慢走向通用,如果只靠一个团队,效率比较低。
最后十米不一定由我完成
做科研、做学术,首先要看解决的是不是真问题。如果不是真问题,就是在纸上谈兵。高校团队找到一个真问题,哪怕暂时不能完全解决,先提出一个初始方案,也可以通过开源、通过和企业合作,让它产生一些价值,把解决问题的方法往前推一点。
至于最后能推到哪一步,袁粒觉得可以抱着“功成不必在我,但功成必定有我”的态度。解决问题的过程中要有自己的贡献,最后那一步是不是由自己完成,很多时候有偶然性,甚至有运气成分。可能前面九十米都是大家一起探索的,最后五米、十米,是某一个团队或者企业冲过去的。就像今天的大模型,前面有很多学术界的算法、架构探索,也有更早的脑科学研究。最后面向大众的产品由企业完成,不意味着前面的工作没有意义。
热门跟贴