当前位置: 首页 > 科技观察

搞AI在线速成的本科生:用了3个月跑完GitHub模型,太难了

时间:2023-03-17 14:48:59 科技观察

本文经AI新媒体量子位授权转载(公众号ID:QbitAI),转载请联系转载来源。“机器学习太难了!”“跑了三个月GitHub模型代码,快崩溃了!”“我还有一个博士生会议,恐怕!”发出如此绝望声音的是一名本科生,一开始他是兴致勃勃地参加了机器学习兴趣小组。可谁能想到,变成了入ML深似海的局面,从此根本帮不了别人。Reddit上的一段“吐槽”引起了网友的极大关注。非常好奇。一个接触过主流机器学习的本科生,秃头到底是怎么回事?为什么ML让这个本科生如此悲惨?这个“痛苦”的故事是这样的。起初,这位本科生同学自愿加入了一个“机器学习小组”,然后被指派协助一名博士生。学生。从去年9月份开始,博士生就给他布置了一些与“知识图谱”相关的任务,让他去实现。问题就从这里开始出现。这个本科生用了3个月的时间才把GitHub上的一些模型的代码跑通了。不仅如此,我还苦苦抱怨:在此之前,我花了无数个小时来理解预处理和评估相关的代码。结果如何?我仍然无法弄清楚如何使这些ML代码起作用!他已经很心疼了,没想到,更让他崩溃的事情,来的这么突然。博士生给了他一个“takeittoanextlevel”的请求——让他从一篇论文中找到另一个实现类似功能的GitHubrepo。所以本科生插入了现有的代码……结果不出所料,一团糟。原地爆炸!我已经完成了每一步,只是无法弄清楚问题是什么。Hold忍不住,“我不能再做了”……他现在每周见医生都觉得害怕,“因为我知道已经没有进展可以汇报了”。但痛定思痛后,作为本科生的他在Reddit上发了一条“灵魂拷问”:机器学习代码天生就这么难吗?我的脑袋有问题吗?你是怎么做到的?问题是什么?“一个星期了,一个问题都没解决,也没有进展汇报?”网友@santiagobmx1993提出了一个解决方案。根据实验的时间限制,本科生可以快速设定解决遇到的问题的时间。如果无法完成,他会寻求同事和上级的帮助,快速提高效率。比如你花了1天没完成,可以再花5小时找同级别的本科生一起解决。如果还是不行,试试再花2小时找博士生和导师一起解决。“我一直在重复操作步骤,就是想不通问题出在哪里?”网友@help-me-grow认为,在科研实验中,一定要寻求帮助。有时候自己看不出来的问题,有经验的人一眼就能看出来。网友@linverlan,作为一名博士生,也认为沟通很重要。对他来说,帮助本科生助理完成代码调试,解决困难,或者换一份更有趣的工作,都可以通过交流来实现。“被分配到一个完全不在研究范围内的任务,是不是比其他人差了好远?”网友@starfries表示,这位本科生可能还需要弄清楚自己擅长的任务是什么,做完之后才会有成就感。否则,给本科生布置只有博士才能完成的任务,自然会很吃力。“我的代码可以编译,但是运行时出错?”网友@todeedee提出基本技能:学习做单元测试。将机器学习模型分解为数据采集代码、网络代码、训练代码,并将代码进一步拆分成5~25行的小模块,分别调试,有助于尽快找出问题所在。“给我的一些代码我真的看不懂,这是我的问题吗?”网友@milkteaoppa认为,代码跑不起来,也可能是代码质量很差,理解困难也是如此。如果你只是想跑机器学习的代码,学习识别低质量代码和与博士生交流提高代码质量是很有必要的。“作为一名本科生,调试代码没问题,但是没有办法调试机器学习代码?”网友@TachyonGun认为,机器学习代码对本科生来说真的很难,因为要掌握很多必要的知识,比如数学。在调试代码的时候,会遇到很多数值问题,比如奇异矩阵,数值稳定性……所以,如果要跑机器学习代码,首先要学习数学知识(数值分析,应用线性代数,数学建模,概率理论/高级统计)和方法论的熟练程度(数值和视觉方法)。其实,这名本科生遇到的困难,也让从事科研的网友们感同身受:辛辛苦苦做了一个月的实验却迟迟不报任何进展,被导师无情吐槽;他们想复现一篇论文的代码,结果解决了“代码错误、编译错误、环境代码不兼容”的问题,花了很多时间……但也是这样,他们有积累了相应的经验,帮助这位本科生找到了合适的解决方案。“感谢您的帮助。”在网友的帮助下,本科生也静下心来,认真总结网友给出的建议。他找到了崩溃的原因:与博士生和其他研究人员缺乏沟通,对项目应该如何开展缺乏了解;此外,确实缺乏机器学习模型和参数设置的理论基础知识。当然,他也意识到,交给他的代码质量确实不高:不仅难以阅读,而且各个模块非常零散,难以集成。他现在决定去找博士生交流,坦白自己遇到的问题。……不过话说回来,作为一名本科生,无论是做finalproject还是进入实验室,你或多或少都会有这个“海报”遇到的困惑。有什么方法可以快速入门入道?清华特等奖本科生的秘密在于,一些学生作为本科生,已经掌握了四篇论文。这是清华特等奖获得者高天宇的真实经历,发表的4篇论文都在AI峰会上:两篇AAAI,两篇EMNLP。这些科研成果他也有话要说,不过都是实打实的干货分享。比如高天宇给出了让这位本科生崩溃的“拖延压力”的解决方案,让很多人同样难以启齿:经常高负荷做实验的同学,忙的时候可以切换任务,也可以Record缓解日常工作拖延带来的心理压力。此外,还有一个似乎违反直觉的建议,那就是把事情推迟到明天。这不是鼓励拖延,而是让你从忙碌的一天中解脱出来,想想明天也许会有更好的解决办法。并且,高天宇还建议大家多和自己的导师和前辈多交流,他们对过去的研究有更深入的了解,实验经验也更丰富,可以让你少走很多弯路。当然,如果你想加强自己的机器学习基础理论,高天宇也给出了一个快速阅读论文的方法:大部分论文只需要阅读摘要,然后快速分类。如果你真的觉得有帮助,那就按照下面的结构来分析吧。摘要:研究意义(包括前期研究、研究缺陷)、研究方法、研究结果简介:主要原理(解决了什么问题)相关工作:文献综述方法:详细实验:打脸专用(纸质试金石)结论:基本无用(重复摘要)的文献管理工具也是必不可少的:Nature:三步走成为“本科生研究员”除了高天宇个人的“秘密”,Nature还发表了相关的“本科生科研”文章。Nature在文章中指出,本科生参与科研项目是一流大学的普遍现象。更具体地说,比如在MIT,这个比例超过了90%。从课堂教学到实验室生活,确实是一个巨大的转变。对此,Nature认为,在这个转化过程中,通常会经历三个阶段(并不适用于所有人)。第一阶段是“不懂就搞科研”。对于刚来的本科生来说,做什么肯定是第一个问题。而且正在做某个实验,其背后的原因和本质可能不是特别清楚。第二阶段是“在理解的基础上做科学研究”。Nature说,在这种状态下从事科学研究的学生,往往是实验室想要留住的人才。他们会在实验室外投入更多的时间和经验来观察实验的局限性。这将有助于提高参与团队的意识。第三阶段是“学生研究”。这个阶段的学生像研究人员一样思考:提出新的问题和假设,计划新的实验进行测试,等等。Nature认为这个阶段的学生对实验室的贡献最大。此外,Nature还进一步提出了一些详细的建议,比如时间管理、适当的研究和休息时间、批判性阅读、记录的习惯等等。。。最后,作为一个正在经历或者已经走过来的人,你遇到过类似的问题吗?