1977 字

休息

刚闭关赶完一个急活,先写个博客放松下。这次是为下周休斯敦开会准备海报,按说我已经习惯了第二天报告头一天准备材料了,读博时期就遇到过第二天下午的报告前一天晚上十点才收到通知,而且我人在北京,报告在上海。当时连安排行程订票带做幻灯片一共用了一个多小时,然后睡觉早起赶航班转地铁,到了会场离报告还有不到一小时开始跟老师讨论内容,然后上台报告。这种经历中每件事都要卡时间节点必须完成,所以要实时根据有限信息做重大决策与取舍,还是挺锻炼人的,但其实本可以安排好从容不迫的。后面我又遇到过几次类似事件,都属于极限施压,好在我对压力不怎么敏感,紧急状态下不算慌,最后大部分过关了,搞砸了的也有,但也能被理解,本来就属于有枣没枣打一杆子的事。

很多时候看起来紧急的事其实是有人觉得紧急或不太可能完成,很多事其实只是完美主义者想多了主观上提高了难度,总想每一步都最优化搞清楚原理才需要时间。我更多是直接试错,只要不被卡就下一步,只要事后做好复盘就行。如果想训练自己这种情况下的心态,可以去下棋,而且是下限定时间的残局,给自己每一步不超过30秒分析局面然后就行动,不用在乎最后输赢,关键先把限时条件下心态稳下来。而且输多了也是好事,我经常发现有人面对挑战上来就怕输而不敢尝试,这个状态会特别保守,时间长了也好特别依赖保守心态带来的安全感。

当然另一个极端就是纯赌徒,这种心态也不太好,会让人变得特别投机。我见过很多人投机成功几次后就对一步步走的模式特别不屑,总去寻找新的大机遇,想做风口上的猪。时间长了就没法回归正常生活了,总想着捡个漏或中个奖来跨入人生下一阶段而忽视自己的成长。有意思的是,很多这样的人只是学了纯赌徒的一部分心态,没学到他们赌输了还能乐观进赌场的状态,赢了几次就开始搞迷信了,风水塔罗星座几件套搞起来,开始尝试去用玄学解释自己的运气,这其实跟那些缩在自己安全区不出来的人也差不了多少。

不过这次急活情况特殊些,之前都是东西做完了整理个海报或幻灯片,属于食材备好了就炒个菜,这次是食材没备好,菜谱没定下来,所以要一边尝试一边总结还要一边查文献。我年初提交摘要时的那部分内容可以说大部分都被推翻了,不过这也不意外,毕竟当时也是为了提交摘要一两天搞出的东西。其实当时就预感如果要正式做,里面坑的数量不亚于满天繁星,接近一半多的技术我都没有储备,基本是现炒现卖。不过我当时预期是还有四五个月,慢慢来,结果最后又变成了还有几天。

这里ChatGPT起了很大的作用,我之前探索一个问题可能要半天一天去搜资料,现在在一个语境里通过不断提问其实节省了我大量的学习时间。具体来说就是我需要用python实现一些功能,实现完了需要将脚本打包成函数方便后面继续用,这些在R里面顺理成章的操作换到python里还是有不少问题的。例如 python 里取出对象里数值的方法就跟R里面很不一样,不用$@按名字取,而是很诡异的用类型定义里的__getitem__方法取,这就要求你要熟悉一些常见对象的数值输出是怎样的,否则读那些代码就感觉莫名其妙的。另外就是我发现 python 要求用户对类型的理解要比较透,但我一贯是搞定输入输出就完活的函数式编程选手,经常因为搞不清某个类的用法一头雾水,另外就是我习惯了在R里面用str()来搞清对象结构,但在python里就有种瞎子摸象的感觉,想看结构又得引入pprint()。因为R跟python都是高级语言,所以应用上互通的地方又很多,有点类似看日文的感觉,明白大体意思,自己实现就全是坑,好在ChatGPT基本可以帮忙填坑。

另外就是有时候ChatGPT也会搞出屎山代码,大概率是因为最初输入的那一个原型函数里面坑太多,不断打补丁上去之后整个函数又臃肿又低效。此时可以重启一个聊天,结合之前线索直接让它实现功能,有时会有奇效,例如把运行效率提高个几十上百倍啥的。我在将一个实时读取预处理换成集中预处理成一个列表后再训练模型之后,训练时间从几小时缩到几十秒,感觉非常魔幻。在过去几天高强度使用ChatGPT后也会有些很多看起来很琐碎但非常实用的经验累积下来,很多东西我之前可能要开着搜索引擎折腾很久才搞明白。不过这次也算是极限施压了,以为我预判了ChatGPT可能帮我大幅节省时间才敢拖到最后几天才开始做这个工作,如果效率没提高,那我的保底方案就是把年初两天跑出的结果重新包装下。依照我对领域内建模与数据处理水平的判断,估计这次参会的九成九的人根本看不出区别,剩下的也都是懂原理会调包的水平,对于代码细节的打磨其实是非常小众的人才关心的事,他们只需要知道处理上百个样品十几GB数据只需要不到一分钟就够了,当然得买显卡。

好了,吐槽到这里了也就放松完了(虽然闭关期间也用碎片等待时间通关了一个战旗游戏,但心态并不是玩游戏的心态,纯粹打发时间),但今天还要搞这个月研究速递跟一篇审稿。