数说名师 | 贺品嘉教授专访——培养优秀的学生,学生就是你的“名片”

教授简介
全球Top 2%顶尖科学家
顶会ICSE 2025和FSE 2024的程序委员会成员
软件工程顶刊TOSEM副编辑
曾获IEEE开源软件服务奖
曾任苏黎世联邦理工学院博士后
个人简介:
贺品嘉教授现为香港中文大学(深圳)助理教授。贺品嘉教授于2018年从香港中文大学获得博士学位,此后在苏黎世联邦理工学院从事学术研究工作三年。贺品嘉教授的研究方向为软件工程、软件测试、软件安全、智能运维、可信人工智能、自然语言处理等。
他在ICSE、FSE、ASE、ISSTA、ICLR、OSDI、TDSC等顶级会议期刊发表过学术论文40余篇。获得首届IEEE开源软件服务奖、ISSRE最有影响力论文奖、ISSRE 2022杰出审稿人奖。其Google Scholar引用超4300次,H-Index为24。贺教授主导的自动化日志分析开源项目LogPAI在GitHub上被star 4000余次,并被450多个学界业界组织下载5万余次。贺品嘉教授是软件工程顶刊TOSEM的副编辑、也是四大软件工程顶会(ICSE/FSE/ASE/ISSTA)的程序委员会成员。
研究领域:
软件工程、软件测试、软件安全、智能运维、可信人工智能、自然语言处理
教授课程:
CSC4001 Software Engineering I 软件工程
CSC6041 Software Engineering I 软件工程
教授访谈
Q: 您能介绍一下您的学习生涯吗?
A: 我2013年开始读博,四年半博士毕业。读博前于2010年开始在华南理工大学读本科。当时计算机专业有一个双语联合班,很有吸引力,就是如果你在本科第三年结束前找到一个读研究生的机会就可以三年本科毕业。我参加了选拔考试,有幸成为最终录取的三十个人当中的一员。
大二快结束的时候,香港中文大学(港中文)来我们学校招博士生。港中文最后给两人发了offer(录取通知),我是其中之一。当时我比较纠结,因为才大二,我不知道博士毕业后能做哪些职位,也不清楚科研是要做什么事情。我与身边的朋友和长辈沟通,听取他们的意见。最后,有两个因素促使我读博:首先,香港的Ph.D.(博士)时间较短;其次,如果后续发现自己不适合读博士的话,还可以转硕士毕业。
Q: 可以讲一下你是怎么走到科研这条路上的吗?
A: 我可能是个非典型的例子,最初读博士并不是因为喜欢科研,纯粹觉得这是一个比较好的选择。我当时不太想去大厂工作,想在学校里多待一段时间,可以说是因缘际会迈上这条路后开始热爱并决定投身于科研。刚开始读博时,我没有想着以后做科研,我想的是赶紧拿到博士学位出去工作、赚钱、创业。一开始我想的都是怎么尽快达到导师的毕业要求,怎么发够论文。
读到第二、第三年的时候,我慢慢被逼着以自己为主导的身份去完成很多课题。这个时候我开始体会到科研的乐趣,比如怎么从零开始找到一个重要的问题,怎么在找到问题之后从很多文献里找到依据和思路,然后自己去设计一些东西,包装出来写在论文里,最后去会议上做报告。我完整地体验了几次这个过程之后,觉得科研非常有意思,也获得了一些成就感。
大概在博三后期、博四的时候,我开始思考要不要往科研上走,直到快毕业,我才真正确定做科研。博士毕业时都面临未来职业方向的重大选择,我属于比较慢的性格,我想着先看别人去公司里工作的感觉怎么样再说,因此就先在组里做博士后。
我了解了学界和业界具体的情况后,觉得学界比较适合我。虽然公司的薪水很高,但是缺乏时间和课题选择的自由度。我比较喜欢时间上自由一点。在公司即便是做研究的岗位,对研究课题也有比较明确的限制。有时候我们研究的课题往往只是出于兴趣或好奇心,我就是想知道一个东西如果用我自己的方案来走会有什么样的结果,但往往并不是公司关心的。学校对于科研的自由度就高一些,能够尊重我的个人兴趣。所以我决定待在学校。
当时有一个契机是我女朋友先去瑞士做博后了。我们顺便在瑞士旅游时,我就被瑞士的自然风光和丰富的户外运动所吸引,想着以后找找瑞士的博后机会。后来在香港做博后的某天,我的博士导师Michael R. Lyu(吕荣聪,香港中文大学计算机科学与工程学系教授,国际知名软件可靠性工程及软件容错技术学者,是该领域最早的研究者之一)告诉我领域内一位很厉害的老师Zhendong Su(苏振东,瑞士苏黎世联邦理工学院计算机科学教授,欧洲科学院院士)马上要去ETH(苏黎世联邦理工学院),鼓励我申请他的博士后。我毫不犹豫地申请且成功了,接着开启我在瑞士的三年博后生涯。能遇到这两位导师,我一直觉得我非常幸运,很感谢他们对我科研和人生上的种种帮助。
做博后的过程中,我也有一些公司和学校职位的邀约。我做选择的时候,事业发展的前景也有考虑,但是会更综合考虑工作岗位的舒适度。

贺品嘉教授在瑞士滑雪
Q: 港中大(深圳)/港中大(深圳)数据科学学院具体哪些地方吸引你呢?
A: 我和港中大(深圳)有种特殊的缘分。最早在读博的时候,我已经从港中大的博导那里听过这个学校。2018年底我刚去瑞士时,恰逢港中大(深圳)徐扬生校长来ETH招聘。我抱着了解情况的心态去听了一下,对学校有了进一步的认识。活动后徐校长非常热情地和我们交流,也鼓励我以后申请。2020年,我女朋友加入了港中大(深圳),我从她那里更清楚地了解了这个学校的情况。最后经历了面试与多轮交流,我觉得这边在生活和事业发展上都能给我提供比较好的支持,所以我就过来了。
我觉得我每一步的选择都是比较顺其自然的。到了做选择的节点,如果我觉得还没有准备好就会再等一等。比如,我会主动在博导那里再做一段时间博士后,或者再多待一段时间看看机会、想一想。等我比较确定了,我才会去做选择。所有的选择都非常理性。
生活上我想离家近一点,我爸妈在广州,深圳自然是一个非常合适的地方。我对深圳也很熟悉。此外,我在瑞士待久了之后,对吃的会看重一些。瑞士的中国人不多,因此那里的饮食不太对我们的胃口。相比之下,深圳的美食真的太多了。
从职业发展来说,我比较看重的,是学校能不能给比较好的环境和支持,以及老师是不是有一定的自主性。港中大(深圳)每个老师都比较独立一点,你可以不依附于一个大团队也能做好的研究。这边是真的有比较西化的管理体系和独立PI(项目负责人)环境。
另一点是学生的质量。在读博的时候,最重要的事情是发表高质量的论文,论文就是你的“名片”。但是做老师之后,更重要的事情是培养优秀的学生,学生就是你的“名片”。我也有跟这边的老师聊过,觉得他们的学生都很优秀。我们在招博士生上自由度比较高,只要符合学校、学院的要求,我们也觉得他的水平够高,就可以招进来。这也是非常重要的一点。
Q: 你的研究领域比较热门且与实践结合比较紧密,是什么原因让您选择了现在的研究领域呢?
A: 科研上我还是走了挺多弯路的。博士的前两年有一年是在做跟师兄相近的方向,有一年在探索自己想做的方向,博三、博四做了博士论文最后的方向。博后的三年,又做了另一个方向,很幸运我最终还是找到了我感兴趣的领域并有所成就。
我现在主要做软件工程这个大的领域,最主要的原因还是我导师是做这个方向的。因为我大二下拿了offer,大三就要去找导师,当时我对于研究方向还什么都不懂,不知道如何选择。因为神经网络、深度学习这些东西才刚刚火起来,对于本科生来说还是很新的概念。所以我就去港中文的网站上看有哪些老师和他们研究的方向,我选了几个感兴趣的老师并阅读他们最近的论文摘要。这个过程中,我看到我导师的一篇论文,觉得很有趣,就联系了论文的第一作者,我的师兄。深入了解实验室的研究方向后,我综合考虑了兴趣、前景和个人能力。师兄把我引荐给了我的导师,我得以成功进组。
进去之后,我才慢慢了解到这个研究领域的全貌。一开始看论文的方向,在整个领域来说是属于什么分支,然后看这个领域整体是研究什么的,大家都在关心什么问题。从那个时候开始,我才坚定地选择软件工程这个领域。
博一做了一年之后也有一些成果,但是深入研究后我发现自己对于这个方向不是特别感兴趣,所以想探索一下其他方向。我的导师很好,让我自由探索。我后面又花了大概半年多的时间,去看这个领域下面各个方向的论文,看别人在研究什么问题,以及有没有其他问题是我更感兴趣、更可以做的。
到了博二的下学期,刚好我在微软实习的师兄回来,我跟他讨论了一下他在微软做的软件日志分析,我发现很有意思。一方面在科研上有其重要性,另外在业界有一定的实用场景。由此我才开始接触日志分析方向。
我在博士第三年上才真正意义上的完整独立看论文、找题目、找解决方案、写论文。前面的论文或多或少都有师兄和导师的帮助。博三的经历是我真正尝试自己把所有过程走了一遍,因此有很大的成长。做完一个课题之后,我觉得智能运维这个方向很有意思,便继续深入挖掘,直到博士毕业。
做博后时又换了一次方向。我觉得我是“船到桥头自然直”的类型,就看大概需要什么或者我的兴趣有没有改变。改方向的主要原因是我博士阶段做的方向不是博士后的导师实验室主要关注的方向。我那个时候对于AI软件的可靠性非常感兴趣,我在AI领域的背景知识刚好可以和博士后导师的研究领域软件测试有交集和合作。所以我在博后的三年又做了另一个方向。

贺品嘉教授在AiDD软件研发数字峰会上报告
*AiDD(AI+软件研发数字峰会)旨在帮助更多企业借助AI技术,使计算机能够更深入地认知现实世界,推动软件研发全面进入数字化时代。
Q: 您目前做的一些科研课题研究具体有哪些应用场景?
A: 总的来说,我们如果把软件看成开发、测试和维护三大块的话,我所做的研究就是为了在这三大块上,给开发者或维护人员提供更好、更智能的解决方案,让大家使用软件的时候感觉不到软件后面有很多问题。
软件工程方向,就是会关注任何跟软件有关的事情,比如软件是怎么开发出来的?开发之前需不需要做一些准备?开发的流程是怎么样的?开发的过程中有没有一些工具能辅助开发?这些都是软件工程关心的。比如最近很火的GitHub Copilot,我写一段自然语言,工具就可以生成对应的代码,这是对开发者的一种辅助,这个是我们领域比较关心的东西。
在软件开发完之后,我们往往还需要做很多其他的事情,比如要对软件进行测试或分析,看我们写完的软件程序有没有bug。目的是找到潜在的软件bug,或者证明这些软件是没问题的。比如,若要去找安卓APP的bug,我们可以写一个测试程序,让该程序自动多次地运行这个APP,以触发人工不易发现的bug。
在软件使用的过程中,还有维护的阶段。有时候我们的软件会出问题,比如用着用着一个网页就进不去或者一个服务就打不开了,这个往往是由于背后运行的一些云计算的软件出问题了。我们为了避免这种情况或者尽快解决这类问题,就会有一个维护的阶段。这个阶段关注的是怎么尽早预测到潜在的问题,发生了问题后怎么尽快缓解,以及缓解后怎么尽快把根因找到等。
Q: 目前您有没有一些落地的研究成果?比如跟业界的合作?
A: 有的。我们与华为、微软等企业有紧密的合作,所以有部分技术集成在了它们的产品里。此外,我们团队开源了大部分研究成果,它们被很多公司和知名高校使用。我经常在开会或参加活动时碰到业界的人,跟我说“我用了你们的技术”;或者收到邮件,比如一个在美国公司的员工联系我说,“最近我们的Boss(老板)想探索这个方向,让我把你的工具部署在某个产品线上”。这些让我挺有成就感的。
Q: 交叉学科是SDS的特色,您跟其他的研究方向有没有密集的交流合作?
A: 跟其他方向的交集很多,比如最近大语言模型很火。我们领域能交叉的方向有两块,一块是应用AI的技术来解决软件工程的问题,比如可以用大模型做自动程序修复;另一块是AI软件的可靠性和安全性,比如ChatGPT其实也有各种各样的问题,你能够诱导它回复一些有害的回答,怎么去避免这种情况也是我们感兴趣的。
对于新型的AI软件像ChatGPT,我们怎么对它做评测?出问题的时候,我们怎么修复?怎么去维护它?它的整个开发过程中跟传统软件开发过程有什么区别?这些东西都是需要多个领域的人一起探讨的。从这个角度来说,我们跟别的领域的老师有很多交流合作的机会。

贺品嘉教授在学院开放日活动为新生家长答疑
Q: SDS是一所年轻的学院,您在学院有没有设定什么发展目标?
A: 学院比较新的话有一个好处,就是你能参与学院发展和成长。你做的一些事情,可能对学院发展有直接帮助,这个能让老师更有参与感。对于比较新的学校和学院来说,很多东西都是需要大家一起探索的,包括课程的制定、政策、流程都是不确定的。在一定程度上能参与到发展的过程中,能对这些东西产生积极的帮助,可能对老师来说也是有一些成就感和满足感的。
我来之前,港中大(深圳)没有做软件工程方向的老师。所以我对自己的要求是尽量在教学和科研上,从软件工程的角度给学院学校的建设添砖加瓦。让这个学校喜欢软件工程或者相关方向的学生有一个比较好的交流渠道。虽然我个人的力量有限,但长远来说也希望能把我们学校的软件工程方向发展好。
Q: 您的教学风格是怎样的?
A: 我带学生的方式都是从Michael R. Lyu和Zhendong Su两位导师那学习得来。我尽量给学生比较直接的指导。我比较重视培养学生独立科研的能力,我跟学生说的是,希望你们在毕业的时候至少有能力做一个全程没有我也行的工作。就是你已经具备了独立找课题、找解决方案、看相关文献、做实验、写论文,给talk的能力。这个是我对学生们的最终要求。
当然这个不可能一蹴而就,所以从第一个工作开始,我会有比较多的参与。第一个工作往往会给他们一个具体的方向,当然如果他能找到方向且我认可的话,就按他的方向走。我会给一些建议,比如这个方向同行是否重视,可能会遇到什么问题。但我还是比较尊重学生的选择。因为我觉得,哪怕我知道他们某个课题大概率会失败,但是在学生意愿很强的情况下,有些东西还得他们自己经历过了才能深刻理解。
确定课题之后就会开始做,我们会频繁讨论这个课题怎么推进,有什么解决方案,然后做实验。在这个过程中,我们更多是一种学生主动的方式。这点上我也挺幸运,我的学生大都很主动积极。他们会发微信催我,说“老师您看了我的论文吗?”甚至过年的假期他们还在Push我,有时候刚好论文截稿是在过年那几天。在这种发现问题并提问的模式下,我会引导他们找问题的答案。比如说学生可能会问我,我们这个技术需不需要跟某个技术对比?我会反问他,你自己觉得我们需不需要对比呢?你觉得要对比的原因是什么?不要对比的原因是什么?我比较喜欢引导他们自己先想一想。如果所有的东西都是我直接告诉他们的话,他们就缺少了学习的过程。往往我会先让他们给一个答案,如果我觉得这个答案不对,那我再告诉他们我的想法。如果对了,我可能再补充一下。
理想情况下,学生需要问我的东西会越来越少,或者从具体课题转向其他方面。我希望他们最终在自己的课题上,懂得比我多。在第一个工作之后,他们可能对科研的其中几个环节熟悉。在第二个工作或第三个工作之后,他们对科研的选题以及写作也慢慢熟悉。在最后快毕业的时候,他们可能觉得贺老师对具体课题的理解没有他们深入,那我培养学生的目的就达到了。
希望学生毕业之后不管是去学术界还是工业界,给他一个任务或者给他一个很模糊的挑战的时候,他能找到其中最重要的问题,然后去解决它。这个就很像我们在科研里去做不同论文的感觉。基本上每个学生进来,我都会跟他们说希望你们在毕业的时候能达到这个目的。博士期间的经历和成果给你的信心,就是不管你遇到什么问题,只要给你足够的时间,你都能解决。

贺品嘉教授与其博士导师及师弟师妹参加学术会议ICSE 2023
*ICSE全称为International Conference on Software Engineering,是国际公认的软件工程领域学术顶会,由国际计算机学会(ACM)与电气与电子工程师协会(IEEE)联合主办,每年召开一次。
Q: 您有没有一些学习上的建议给本科生以及未来想要从事科研的学生?
A: 我知道学生们很卷,本科生的压力大。我回想自己读本科的时候虽然有压力,但是没有卷这个感觉。因为我们当时接触的信息没有现在这么多,获取信息的渠道比较少。
我当时的想法是把眼前的事情做好,把该上的课上好,该学的科目学好。如果有什么社团活动,或者有什么兴趣爱好,我就去好好做。把眼前能做的事情做好。我是到差不多机会来的时候才知道有这个机会,才去思考各种可能的发展。信息多是一个好事,但是一定程度上,也会给学生带来比较大的压力。
学业当然重要,但在大学里,最重要的事情是要了解自己。喜欢做什么、不喜欢做什么;兴趣爱好是什么;擅长做什么;喜欢思考型的事情还是沟通型的事情;喜欢时间上自由一点还是有规律固定的时间表。找寻自我的过程中有很多方面可以去探索。特别是像我们如果在国内读中学、小学的话,在大学以前能真正想这些问题的人其实很少。我自己在大学的时候才意识到这些事情的重要性。
了解自己,可以通过学不同的科目,也可以通过参加不同的社团。在这个过程中,你需要观察自己,慢慢就知道自己是一个什么样的人。你会知道什么东西对自己更重要,这个时候你就更容易找到努力的方向,有方向的卷往往不累。当你不知道自己想要什么的时候,你可能只看到大家都很努力。比如说同寝室的人,一个人在本科大二、大三就去组里做科研了,一个人参加了比赛,还有一些在准备语言考试。这个时候如果你因为大家的影响,觉得自己没有做这个事情就落后了,这样去卷肯定会很累的。但是当你有一个清晰的目标之后,针对这个目标努力,这个时候虽然辛苦,但是我觉得心理和精神上会舒服很多。
如果你现在不知道自己应该干什么,你就把眼前能干的事情做好。大学最好的东西就是学生发展可以有各种各样的路径,你可以成绩好,也可以竞赛打的好,可以社团做的很好,也可以乐队做的很好。只要在你喜欢的事情上找到了成就感和满足感,那大学生活就是成功的。
对于硕士生和博士生来说,我觉得最重要的是主观能动性和踏实努力。科研是长跑。学生往往会低估自己在四五年内能做出来的东西,但是会高估自己在一个月内能做出来的东西。建议的话,希望学生能踏实主动,努力把眼前的事情做好,切忌眼高手低。

贺品嘉教授与学生
十周年校庆寄语
今年是港中大(深圳)的十周年,我诚挚地祝愿学校在未来的征程中继续蓬勃发展,培养更多优秀人才。我对学校的未来充满信心。让我们携手并肩,共同书写港中大(深圳)辉煌的下一个十年!
——贺品嘉