隨后,张乐阳立刻转身招呼团队成员:“快!把数据导进去!先跑第一组参数!这次一定要收敛啊!”
徐辰本来打算收拾东西走人,或者是去问问其他校区还有没有空閒的节点。
但他刚走出两步,就听到了张乐阳团队的低声討论。
“师兄,这次的蒙特卡洛模擬,採样点还是设的一百万吗?”一个师弟问道。
“先设一百万试试吧。”张乐阳一边操作电脑一边说,语气里充满了不確定,“上次跑两百万太慢了,结果还没收敛。这次先跑个小规模的,看看趋势。如果趋势对,再申请机时跑全量的。”
“可是师兄,咱们这个参数空间太大了,一百万个点也就是大海捞针啊。万一运气不好,还是发散怎么办?”
“那能怎么办?接著试唄!穷举法虽然笨,但总比乾等著强。”张乐阳烦躁地抓了抓头髮,“咱们也没別的办法优化模型了,只能靠算力硬堆。希望这次老天保佑吧。”
……
徐辰的脚步猛地停住了。
他回头看了一眼那群忙得焦头烂额的人。
【先跑跑看?】
【试试?】
【穷举?】
徐辰的心里瞬间凉了半截,紧接著是一股无名火起。
合著你们火急火燎地动用行政力量抢了我的机器,不是为了跑最终结果,而是在这儿“抽奖”呢?
所谓的“抽奖”,是科研圈里对蒙特卡洛模擬的一种黑色幽默。在这个高维的数字世界里,你扔进去一颗骰子,能不能撞上那个正確的解,全看老天爷赏不赏脸。运气好,单车变摩托;运气不好,那就是白白消耗电费,跟买彩票唯一的区別就是,彩票撕了还能听个响,这玩意儿跑崩了连个响都没有。
按照他们这个“试错”的跑法,这一组gpu节点,要是运气不好的话,怕是要被他们占上个十天半个月。如果不收敛,他们肯定还会继续申请延期,那自己还跑个屁啊?等到黄花菜都凉了!
……
徐辰的眉头紧紧锁了起来。
虽然我不懂什么是“夸克-胶子等离子体”,也不懂那些复杂的物理相互作用。
但是,徐辰看了看对方电脑屏幕上那个正在滚动的代码逻辑,基本看得懂大概。
那是一个典型的高维空间蒙特卡洛积分。在徐辰眼里,物理模型剥去了外衣,剩下的就是赤裸裸的数学结构。
他看到屏幕上,那个代表著“採样点”的变量,正在一个极其巨大的高维空间里,像无头苍蝇一样隨机乱撞。
“这是在做马尔可夫链蒙特卡洛採样……”徐辰心中暗道,“看这个接受率,低得令人髮指。这说明他们的提议分布选得太烂了,跟目標分布完全不匹配。”
这在数学上,是极其低效的。
他走了回去。
“等一下。”
正准备按下回车键的张乐阳手一抖,停了下来,疑惑地回头看著这位大一新生。
“怎么了同学?还有事吗?”
徐辰没有看他,而是指著屏幕上那行正在跳动的代码。
“你们这是在算一个高维积分的期望值,对吧?”徐辰没有用物理术语,而是直接切入了数学本质。
“呃……是。”张乐阳愣了一下,“这是配分函数的路径积分。”
“既然是积分,为什么要用这种各向同性的隨机游走去採样?”徐辰皱著眉头。
“你们的目標函数,在这个高维空间里显然不是均匀分布的。看这个梯度的变化,它应该集中在一个非常狭窄的流形附近。”
“你们这样均匀撒网,99.9%的计算量都浪费在了那些概率密度几乎为零的空白区域里。这就是你们收敛慢的根本原因。”
……
张乐阳张大了嘴巴。
他虽然是物理博士,但数学功底也不差。
徐辰这几句话,虽然没提一个物理名词,却精准地戳中了他们算法的死穴!
张乐阳当然知道自己的算法“笨”。
在这个圈子里混了这么多年,谁不知道metropolis算法效率低?谁不知道隨机游走是在浪费算力?
但问题是,大家都这么干啊!
“那……那能怎么办?”张乐阳下意识地反驳道,“这个系统的维度太高了,几百万维!这可不是二维平面上的找山峰,我们根本不知道那个『狭窄的流形』藏在哪个角落,除了靠隨机游走去碰运气,还能有什么办法?”
“谁说只能靠碰运气?”
徐辰摇了摇头,眼神变得锐利。
“虽然我不懂你们的物理模型,但我看你们的哈密顿量表达式……”他指了指屏幕一角那个复杂的公式,“这里面包含了一个明显的辛结构。”
“既然有辛结构,为什么不利用哈密顿动力学去辅助採样?”
“与其让粒子像醉汉一样隨机乱撞,不如给它一个初速度,让它沿著哈密顿方程的轨道,自己『滑』向那个高概率区域!”
“这在数学上叫……哈密顿蒙特卡洛,简称hmc。”
徐辰看著张乐阳,继续说道:“你们的模型本身就自带了梯度信息,你们却非要蒙著眼睛走路。这就是对数学结构的浪费。”
张乐阳整个人都僵住了。
hmc?哈密顿蒙特卡洛?
这个词他听说过,在统计学和机器学习领域很火。但在他们这个具体的物理细分领域,大家习惯了传统的metropolis算法,很少有人想过引入这种复杂的数学工具。
因为那需要对辛几何和微分方程有极深的理解,才能构造出正確的演化算子。
物理学院虽然人才济济,但术业有专攻,搞高能物理的,未必精通这种高深的几何算法。
他们也曾想过找数院的大牛帮忙,但数院那些搞几何的教授,自己的项目都来不及搞,谁有空来帮他们搞这种具体的数值计算?至於数院的学生,好苗子早被导师圈走了,剩下的水平也就那样,来了也帮不上忙。
所以,这成了他们的一个死结。
但现在,眼前这个大一新生,竟然一眼就看出了问题的本质,还隨口就给出了解决方案?
张乐阳看著徐辰那张年轻得过分的脸,心中突然升起一个荒谬的念头:
【难道……这小子是个扫地僧级別的数学天才?】
【要不……拉他进组试试?死马当活马医了!】
如果真的能用hmc,採样效率可能会提升几十倍甚至上百倍!那他们根本不需要跑十天,可能几个小时就出结果了!
张乐阳的声音开始颤抖,试探著问道:“你……你会构造这个算子?”
徐辰耸了耸肩,一脸轻鬆。
“辛几何嘛,我稍微懂一点。”
“给我十分钟,我帮你们改一下採样核函数。如果跑得通,你们这几天的活儿,今晚就能干完。”
“到时候,剩下的机时,归我。”