夏炎:研究工作要“既专又广”|我在微软做研发 DATE: 2024-04-27 16:01:00
科学研究与技术创新的既专又广过程总是充满了不确定性 ,科研人员无法提前计算创新的夏炎周期 ,也无法预料每个灵感所带来的研究最终结果 。若想将一项研究成果落地并通过产品化的工作方式让更多人感受到前沿技术所带来的便利 ,研究工程师的微软参与尤为重要 ,他们需要全面掌握终端用户的做研需求,深入了解技术应用的既专又广深度与广度,打通各个环节的夏炎流程 ,有效地将算法模型与产品应用连接起来。研究然而知易行难,工作这一过程中的微软艰辛与技术落地时的成就感也只有亲身经历的人才能体会。接下来就让丹棱君和大家一起从微软亚洲研究院研究工程师+“超级奶爸”夏炎的做研故事中 ,获取一份十年陈酿的既专又广科研成果落地经 !
2018 年,夏炎夏炎的研究生命中多了一个重要的角色——成为一名父亲,四年多的育儿经历,让他不仅习得全新的语言体系“婴语” ,也看见了育儿中的大学问。夏炎发现 ,育儿与工作中竟然有很多互通的理念,对彼此都有着积极的促进作用。比如通过教练式管理的方法,以身作则 ,关心孩子的想法和兴趣 ,激发孩子的潜能;再比如,《如何说孩子才会听 ,怎么听孩子才会肯说》中的理念,与“倾听员工/团队成员的意见和心声”如出一辙。作为微软亚洲研究院育儿群中的活跃分子 ,夏炎经常会热情、耐心地与同事们分享自己学到的知识 ,也因此成为了研究院“享誉盛名”的“超级奶爸”。
如今,拥有首席开发经理与“超级奶爸”双重身份的夏炎,对科研转化和技术落地也有了更深入的思考 ,而在与众多跨领域专家,包括与儿子这个“儿童专家”的交流,也让他从不同学科中汲取着研究开发的灵感 。
微软亚洲研究院的“骨灰级实习生”
2008 年,还在读研究生的夏炎希望可以找一份实习工作,积累社会经验 。很快 ,与微软亚洲研究院一直保持合作的导师为他做了推荐 。凭借自身过硬的履历以及与研究院需求的完美匹配 ,夏炎顺利开启了他在微软亚洲研究院的实习之旅 。而这个实习一做就是两年,早已超过一般实习生的实习周期,夏炎也成为了大家口中的“骨灰级实习生”。
实习期间,夏炎的主要工作是围绕着当时还处于早期发展阶段的互联网搜索技术而展开的 。其中一个项目是关于企业的内部搜索,另一个项目则与学术搜索相关。尽管现在大家对搜索技术的应用已经习以为常 ,但这两个项目在当时都属于非常超前的技术研究与应用 。
在跟随研究员们做基于论坛的问答机器人项目时,夏炎第一次接触到了机器学习。问答机器人的主要功能是在同一问题的众多回答中,自动提取最优质的回答进行配对 。十几年前,推荐系统、机器学习尚在萌芽期 ,用户基于搜索引擎输入关键词后 ,还需花费大量时间阅读搜索结果才能筛选出可用信息 ,而此时微软亚洲研究院已经将机器学习技术转化到了微软的产品中 ,大幅提升了搜索的速度和精度。原本专业更偏向于软件工程的夏炎,在经历了将研究算法成功落地于实际场景的项目后,深切地感受到了前沿科技对人们工作生活所带来的巨大影响。两年的实习经历也让夏炎更加系统地了解了如何将研究员论文中的算法转化成对用户有用的工具和产品,为他之后从事的其他技术转化项目奠定了基础 。
实习期间,夏炎(第三排左三)与其他实习生小伙伴们一起出游
“在研究院实习的两年 ,我不仅接触到了最前沿的技术,还有机会和很多聪明人共事。无论是其他实习生还是一起合作的研究员,很多都是领域中的大牛,我可以和他们一起做对社会有意义的技术和产品 。对一个在校学生来说 ,微软亚洲研究院极大地开阔了我的见识和眼界,这也是研究院最吸引我的地方” ,夏炎说。
“既专又广”是做科研转化的必要能力之一
正是这份吸引力让夏炎在研究生毕业后,直接选择加入了微软亚洲研究院 。从实习生到正式员工,夏炎并没有感到很大的不同,但是需要从更多做辅助性的工作,逐渐成长为整个项目的负责人 。而在一次次将研究成果转化为产品的项目历练中 ,夏炎愈发意识到科学探索的挑战性和技术转化的重要性 。
夏炎曾与微软必应(Bing)产品团队的同事合作,将研究院以图搜图的算法集成到必应搜索中。为了实现这一功能,身为研究工程师的夏炎既要知晓底层索引技术的实现机制,了解中间的运行过程以推荐最合适的内容,还要熟悉最上层的前端交互设计。此外 ,开发过程中还会涉及到跨团队、跨语言的沟通与协作。在这项技术功能化的过程中,夏炎意识到要想把研究成果成功转化进产品,需要把研究模型、产品功能、交互界面等各个环节全部打通,这对开发人员的综合能力提出了很高的要求 。
此后,夏炎又和研究院自然语言计算组的研究员一起对必应的搜索场景进行了优化 。当用户在输入诸如“世界上最高的人是谁?” 、“全球最富有的人是谁?”这类问题时,搜索引擎可以借助这一功能在海量的数据中自动找出答案并直接呈现出来 。在这个项目中,作为科学研究与产品落地的连接人 ,夏炎不仅要理解自然语言处理(NLP)算法模型的实现原理 ,还要了解用户对产品的需求 。比如 ,在研究中模型进行计算的耗时在产品端是不可接受的时长 。这时工程人员就需要重新解析代码,或者更换另一种编程语言,在实现同样功能的同时,精细地甄别、选择最有价值的特征,减少不必要的计算,并且尽量让模块进行并行处理以达到最短的返回结果时长 。只有不断对算法模型进行裁剪 、优化 、提升性能 ,产品才能达到上线标准 ,满足用户的体验 。