会议室抢不到GPU的那天,我才懂研发资源配置到底在掰扯什么
0923南京,入秋的第一阵风吹进软件园会议室的时候,我们正在吵架。三个项目组挤在长条桌,就八张A100的归属争得面红耳赤。我们做多模态大模型微调,等了两周排期,临了被做自动驾驶仿真的组截胡——他们临时要跑一批新的测试数据,说晚三天上线就要影响整车交付。行政拿出来的排期表皱得像腌菜,谁都不让步。那时候我突然反应过来,原来我们天天碰的研发资源配置,从来不是办公室墙上贴的那个漂亮流程图。是真金白银砸出来的东西,抢起来要动真格。
说好的排期,怎么说崩就崩
大多数公司招研发、买设备的时候,都不会想明白一个问题。资源永远是稀缺的。哪怕你老板拍板不差钱,一口气买几十块高端GPU,招上百个工程师,到头来还是会抢。为啥?因为需求永远在变。上周还是优先级最高的项目,这周业务方向转了,项目砍半,资源还占着。下周突然冒出来一个新的创新机会,全公司找不出一块空闲的卡,抽不出一个有空的开发。
说实话,我之前也觉得研发资源配置是财务和运营做的表,跟我写代码的有啥关系?直到见了太多项目卡死在资源上,才反应过来错得离谱。太多研发团队把资源配置做成了静态的分蛋糕。老板拍板,哪个部门级别高,哪个项目给老板画的饼大,就分走最大块的。剩下的边角料,给那些小的预研项目爱要不要。
互联网公司研发项目GPU算力排期表
我之前待过的一家公司,为了抢资源,各个项目负责人都练出来了哭惨的本事。开会先讲自己项目有多重要,再不配资源就要死了,拿到资源转头就锁起来,哪怕自己用不完,也不会放给别人。这不是个例。很多公司做研发资源配置,从根上就错了。他们把资源当成了部门的固有资产,不是全公司可流动的生产资料。对吧?
研发资源配置,本质上是在赌不确定性
你有没有想过,研发这件事本身,就是不确定的。你投十个创新项目,可能九个都成不了,只有一个跑出来,就能覆盖所有成本。那你怎么配置资源?要是按固定优先级,把所有资源都砸给那一个你认为最靠谱的项目,万一错了呢?满盘皆输。要是把资源平分给十个项目,每个项目都拿不到足够的弹药,可能十个都死。
这才是研发资源配置最扯的地方。它不是解数学题,没有标准答案。它是在不确定里找最优解。我见过太多公司,花了几千万买了一堆高端研发设备,最后一算利用率,不到百分之二十。一半的资源被各种占坑项目锁着,剩下的一半,要么不对需求,要么没人会用。
企业闲置GPU研发服务器机柜实拍
说个扎心的事。去年我们部门有个刚毕业的小孩,做了一个垂类大模型的微调预研,申请不到卡,只能每天晚上趁别人不用的时候,偷偷用公司闲置的旧卡跑,跑了三个月,出来的效果居然比那个拿了三块A100的官方项目还好。你说讽刺不?
那为什么会这样?因为大多数人对研发资源的理解错了。很多人觉得研发资源就是钱、设备、人头。其实不对。真正的研发资源,是能随时匹配需求的可调用产能。你有一百张卡,但是全锁在各个项目组,就是死资源。你只有十张卡,能随时按需分配给最需要的项目,就是活资源。
类比一下,就像共享充电宝,你放在商场各个角落,随时能借,比你把一百个充电宝锁在办公室里,有用多了对吧?很多人觉得研发资源配置就要保大项目,把所有好资源都给大项目,小项目靠边站。其实不对,大项目的确定性高,但是增量空间少,小项目虽然不确定性高,但是可能带来颠覆式的创新。你把所有资源都给大项目,就是把所有鸡蛋放一个篮子里,也堵死了创新的路。
踩过三次坑,摸出来的一点落地思路
踩过三次坑,摸出来的一点落地思路
前前后后在三个公司碰过研发资源配置的坑,踩过三次大的,总结出来一点实在的东西,不是什么高大上的方法论,能用。
第一个坑,搞完全自由市场,谁喊得凶谁拿资源。结果呢,全是短期的急活拿到资源,真正需要长期投入的预研项目,喊不过人家,永远拿不到资源,活活憋死。
第二个坑,搞完全计划经济,提前半年一年排好所有资源。市场变了,项目都砍了,资源还空着,新的需求上来,没有资源可以放,活活错过机会。
最坑的是第三个,只算硬件不算人。很多老板觉得,我给你配十张卡,十个工程师,你肯定能做成。结果呢,全组只有一个人懂分布式训练,那十张卡,最多也就跑两张卡的活,剩下八张,不还是闲置?研发资源里,人的时间和能力,才是最贵的,也是最容易被错配的。我见过太多公司,让顶级算法工程师天天改需求写PPT,让刚毕业的小孩扛核心项目,这不叫配置,这叫浪费。
真的浪费。
不过话说回来,现在我们公司试的一套方法,用了快一年,利用率提了快一倍,创新项目的成活率也高了不少,其实也不复杂。就是搞一个共享资源池,把所有闲置的算力、闲下来的工程师时间,都放进池子里。所有项目,不管大小,都可以按自己的需求预约资源,提前给项目打分,打分看什么?不是看级别,是看潜在的回报,还有资源使用效率。你占着资源不用,超过48小时,自动回收给池子里。预研项目不需要长期资源,可以免费申领池子里的闲置资源试错,成了,再给你固定资源,不成,也没浪费多少。
当然,也不是所有资源都能这么玩。核心的涉密项目,必须要独占资源,那就给固定分配,不用凑共享的热闹。顶级专家的时间,也没法放进池子随便抢,得跟着核心项目走,这就是边界。
那天在南京的会议室,最后怎么解决的?我们把仿真组的测试拆了一部分,放到晚上闲时跑,用我们组不用的两块卡,我们白天微调,他们晚上跑测试,各得其所。走出会议室的时候,风已经凉了,我突然想,研发资源配置,说白了不就是这么回事?不是分蛋糕,是把蛋糕盘活,让真正要干活的人,能拿到家伙事。毕竟,研发拼的从来不是你拥有多少资源,是你能用好多少资源。对吧。