写点什么

流利说张潇君:引入谷歌工程实践,让流利说在人效上更接近硅谷

  • 2019-04-17
  • 本文字数:3759 字

    阅读完需:约 12 分钟

流利说张潇君:引入谷歌工程实践,让流利说在人效上更接近硅谷

张潇君现任流利说(NYSE: LAIX)首席算法架构师,TGO 鲲鹏会上海分会的会员,目前全面负责流利说的对话系统。张潇君与计算机结缘是在上海交大的 ACM 试点班,熟悉 ACM 班的人都清楚,ACM 班的名字源于国际科学教育计算机组织——美国计算机学会(Association of Computing Machinery),它是世界上第一个,也是迄今为止最有影响的计算机组织,计算机领域最高奖——图灵奖,就是由该组织设立和颁发的。这寓意 ACM 班旨在培养计算机科学家。



张潇君 | 流利说首席架构师


TGO 鲲鹏会上海分会会员


张潇君的计算机之路就是从这里开始的。读本科时,张潇君凭借优异的表现进入了微软亚洲研究院实习,从事 NLP(Natural Language Processing) 项目研究;研究生的阶段又去了德国人工智能中心读计算语言学,一步步扎实地打稳了自己的专业能力;毕业之后他加入谷歌瑞士,迅速提升了自己的代码编写和系统工程的能力。


2017 年,张潇君回国发展,并加入流利说,引入了诸多谷歌工业规范和最佳实践,并致力于用 NLP 的方法改变语言教学的模式。

参与世界上最复杂的系统

从张潇君的经历来看,学生时期已经在计算机语言领域积累了大量实践经验。于是,毕业之后张潇君获得了去谷歌瑞士工作的机会。谷歌瑞士办公室是一个比较特殊的地方,作为欧洲最大的研发中心,谷歌瑞士办公室网罗了欧洲几千名工程师精英,业务组也非常多。谷歌的老牌组,包括:广告、Youtube、 搜索、地图、助手等都有庞大的部门。张潇君有幸加入了广告组,从事商品广告 Campaign 后台管理。


谷歌广告部是一个庞大的部门,张潇君作为其中一员,早期专注在商品和广告的数据模型构建以及数据整合的工作,后期专注于广告在其他平台的输出,比如 Youtube、Gmail 等。这些工作听上去并不复杂,但是因为量级巨大,稍有差池都是上百万美元的差距,所以对工程的要求极高。这对张潇君来说挑战巨大,以早期的商品广告 Data Integration 系统为例,它每天需要处理上十亿级别的 Campaign 更新。 即使用 Map-Reduce 每天若干次更新数据,仍然有若干小时的延迟。但在张潇君的主导下,这个系统变成了流式的系统,大大缩短了 Campaign 的生效时间,使得系统对数据的吞吐量、有效性和延迟都达到了相当高的标准,并且有强大的 fault-tolerance,不需要工程师参与后期维护。


在谷歌瑞士张潇君参与并贡献了构建世界上最复杂系统的工作,“在这些系统的构建过程中,小到工程代码和规范,大到系统结构和业务理解都得到了很大提升,对我的个人成长帮助很大。 ”


在谷歌这样伟大的企业工作三年之后,张潇君意识到:在这样一个工程师的天堂,虽然个人能力提升很快,但是因为机构过于庞大,导致产品上线流程略长,极其考验人的耐心,成就感也会比较延迟。其实,张潇君在加入谷歌之前,也拿到了硅谷独角兽 startup 的 offer,虽然当时没有去,但心中埋下了对创业公司的情节,张潇君一直想体验 “Move Fast and Break Things ”的节奏,所以回国之后他选择了创业型企业流利说。

文化的诱惑与专业的契合

加入流利说之前,张潇君花了很长时间来深入了解流利说。除了与流利说的三位创始人王翌、胡哲人、林晖一一沟通,张潇君还与技术部的几个 Team leader 也聊过。从产品角度看,张潇君非常认同流利说用 NLP 技术来做教育这件事情,“因为教育本身就有很多重复性的工作,在交互时对学生语言的识别、理解以及和教研、知识点推荐的结合非常紧密,确实能够用 NLP 的技术来做非常大的推动,甚至是改革。”除此之外,张潇君也在沟通中发现了流利说浓厚的硅谷工程师文化,他认为流利说是为数不多的值得加入的创业型公司。


在张潇君看来,硅谷的工程师文化体现在很多方面,整个产品从设计到执行到测试再到上线的流程已经界定的非常清楚,但由于国内很多企业只一味地追求速度,并没有很好地实践。这就导致整个产品流程存在很多问题,产品迭代起来非常困难。


“但流利说在这方面做得非常好,在很多地方都实行了相当严苛的规范。”在经过深思熟虑之后,张潇君决定加入流利说,担任流利说首席算法架构师。

将谷歌的工程实践引入流利说

加入流利说之后张潇君开始发挥自己的优势,将之前的工程实践引入流利说。 比如 Bazel 作为 build 工具,使得流利说成为国内为数不多的引入 Bazel 的公司。虽然 Bazel 在谷歌内部是非常高效且完备的工具,但对工程师的要求也比较高。如果没有扎实的工程背景,一下子从其他 Build 工具,比如 CMake 或 Maven 迁移到 Bazel,会有较大的不适应;另一个问题是网络环境的差异使得 Build 过程比较缓慢,会影响工作效率。


为了解决这些问题,张潇君和另一位前谷歌工程师花了很多精力。比如,建立和维护属于流利说的 Bazel 依赖库,并且针对网络做各种优化;建立 Codelab 和培训讲座,让工程师们从入职的第一天就开始熟悉这些工具;提供代码样例,将 Bazel 工具无缝整合到现有的 CI/CD 流程中。 除了 Bazel, 张潇君也大力推动了谷歌的其他成熟工具, 例如 Kubernetes, Docker, gRPC 的运用和普及。


工程实践也离不开日常工作的规范。 比如在每次代码提交都有 Code Review,添加覆盖良好的自动测试,有自动化的 CI/CD,上线之前也有非常严苛的上线服务规范,上线之后也有系统能做 A/B 实验对比。


除了工程上的规范,算法的迭代也很严苛。流利说擅长从真实的用户数据找到痛点在哪里。比如为了解决一个真实的用户问题,上线一个初代模型,先收集用户的数据,再进行标注,迭代模型,验证想法再重新 A/B 上线,从而形成一个良好的“数据 – 算法”的迭代反馈链路。


“这些其实都是非常成熟的算法和工程实践。我们希望国内工程师能在人效上更加接近硅谷的公司,打造优秀产品的同时能形成良好的文化和氛围。”张潇君告诉 TGO 鲲鹏会记者。

结语

目前,张潇君在流利说负责构建对话系统。对话是教学的常用手段,通过对话做知识点的教学、情景的演练、提升口语和交流功能;同时对话也是人机交互在探索的全新方式。 张潇君和团队开发的功能分布在流利说各个产品线中,同时,他们也在研发独自的产品,希望能通过流利说把更多成熟的 NLP 黑科技带给用户,产生价值。


“对话系统作为自然语言处理的一个子领域,是一个综合了各个 NLP 任务,并且和内容的生产迭代有密切联系的复杂系统。它在学术领域的研究方向和工业领域的实践应用有比较大的鸿沟,需要我们的科学家 / 工程师们和产品经理、教研以及内容生产方一起协作,才能做出让用户满意的落地产品。我们也希望有更多相关领域的专家能加入到流利说,为下一代教育产品的构造一起努力。”张潇君最后对 TGO 鲲鹏会记者说道。

Q&A

TGO 鲲鹏会:您早年在微软亚洲研究院和德国人工智能研究所的经历,是否和在流利说这样的 AI 创业公司的工作内容很不一样?合作模式与团队思路上有何异同?


张潇君:前两家研究机构都是吃皇粮、搞研究的地方。做的事情都超前,但是对产品化没有压力,好比之前我在 MSRA 参与了构建基于大量用户数据的问答系统,更多的是从算法和数据本身解决一些开放问题,最后这个研究工作本身做得还不错,最后被 Bing 用上了。 德国人工智能研究中心也比较偏研究,当时参与过 EuroMatrixPlus 项目,做欧洲多个语言的翻译系统,显然离产品化比较远,更多的是对学术的探索。


相比之前,流利说的算法团队非常产品导向,如果不能产品化,我们认为这些工作就没有意义。所以在流利说,更多的是用成熟的技术为教育产品赋能。 相比之前总是和研究员、工程师有交集,在流利说我们和产品经理、教研、内容、数据、运营甚至客服团队都有非常密切的合作。


TGO 鲲鹏会:在谷歌和在流利说,作为技术人您感受到哪些比较大的差异?可以举例说明吗?


张潇君:谷歌在大范围解决问题,因为掌握世界上体量最大、地域跨度最广的流量,所以处理的工程和算法问题的思路和方法都比较大格局,在某一个点上解决比较细致的问题,能获得很大的收益。流利说是把针对中国人的教英语做到极致的地方,所以相对垂直。


TGO 鲲鹏会:除了技术,对于将 Google 这样的世界级软件企业的工作思路、工作模式引入国内,有哪些心得?这些方法取得了哪些成果?


张潇君:因为几位创始人也是 Ex-googler, 所以我们的工程和算法团队基本照搬了之前的模式,比如 Bazel Build, 自动化 CI/CD、微服务化、K8S 部署。工程实践上我们有严格的 code review,上线遵从严格的规范。算法实践上我们遵从数据驱动的原则,从真实的用户数据出发,建立 benchmark,迭代模型,再收集数据回馈,并形成闭环。工作模式上我们从上到下实施 OKR,每天都有非常明确的目标,和之前不一样的是,流利说的变化比谷歌要大很多,所以我们也常常拥抱变化,在实施期间做动态的调整。成果是长期的,虽然可能比其他公司“快糙猛”的方式相比,当下消耗更多时间,但是长期来看,对项目迭代和业务发展都有很好的支撑。




TGO鲲鹏会,是极客邦科技旗下高端技术人聚集和交流的组织,旨在组建全球最具影响力的科技领导者社交网络,线上线下相结合,为会员提供专享服务。目前,TGO 鲲鹏会已在北京、上海、杭州、广州、深圳、成都、硅谷、台湾、南京、厦门、武汉、苏州十二个城市设立分会。现在全球拥有在册会员 800+ 名,60% 为 CTO、技术 VP、技术合伙人。


会员覆盖了 BATJ 等互联网巨头公司技术领导者,同时,阿里巴巴王坚博士、同程艺龙技术委员会主任张海龙、苏宁易购 IT 总部执行副总裁乔新亮已经受邀,成为 TGO 鲲鹏会荣誉导师。


2019-04-17 08:003320

评论

发布
暂无评论
发现更多内容

LoadRunner测试中遇见的不可思议的问题及其解决方法

陈磊@Criss

电子产品中EMC隔离设计的方法

不脱发的程序猿

二月春节不断更 电路设计 EMC 电子产品

架构设计篇之微服务实战笔记(一)

小诚信驿站

架构师 刘晓成 小诚信驿站 28天写作 架构师成长笔记

可能是Java 8 Optional最佳实践

ES_her0

28天写作

《经济学人》2021年2月20日刊精彩文章导读及资源下载

wbliu85

IDEA 敏捷开发技巧——后缀完成

程序员小航

Java 后端 IDEA

Elasticsearch踩坑记之深度分页

topsion

大数据 elasticsearch 深度分页

面试官:Java性能调优你会多少?一个问题就把我问的哑口无言,哭了!

996小迁

架构 面试 Java性能调优

技术资讯 | BML CodeLab发布重磅更新!!

百度开发者中心

AI 工具软件 #百度#

读书总结2020

IT民工大叔

#读书

如何 0 改造,让单体/微服务应用成为Serverless Application

阿里巴巴云原生

Docker Serverless 容器 微服务 云原生

某某大龄程序员被字节面试官怒喷“废物”,他得知真相之后都懵了

Java架构之路

Java 程序员 架构 面试 编程语言

Java实体映射利器---MapStruct

是小毛吖

Java MapStruct

大小厂必问Java后端面试题(含答案)

yes

Java 面试 后端

MySQL事务浅析|由浅入深

MySQL 编程 架构

环信助力中国游戏社交类APP出“东南亚”记!

环信

【LeetCode】数组的度Java题解

Albert

算法 LeetCode 28天写作 2月春节不断更

你的面试专属!JVM G1GC的算法+实现,90张图+33段代码

Java架构追梦

Java 架构 JVM 调优 G1GC

APM(应用性能监控) 行业认知系列 - 一

东风微鸣

APM Trace 可观察性

APM 行业认知系列 - 三

东风微鸣

APM Trace 可观察性

全网最新、最全面蚂蚁金服面经分享:简历模板/面试题库/Java核心技术笔记

比伯

Java 编程 程序员 面试 技术宅

APM 行业认知系列 - 二

东风微鸣

APM Trace 可观察性

Angular性能优化实践——巧用第三方组件和懒加载技术

葡萄城技术团队

angular SpreadJS

神级!字节2-4大牛出品:分布式技术笔记,让你在分布式的路上如履平地!

Java架构之路

Java 程序员 架构 面试 编程语言

产品训练营--第四期作业

曦语

产品训练营

EMC设计中电缆屏蔽使用方法

不脱发的程序猿

二月春节不断更 电路设计 EMC 电子产品 电缆屏蔽

APM 行业认知系列 - 四

东风微鸣

APM Trace 可观察性

滚雪球学 Python 番外系列,自动化测试是个啥?

梦想橡皮擦

Python 28天写作 2月春节不断更

2020回顾,2021学习目标

叫练

学习 2021年展望 2020年度总结

2021版最新!字节跳动3面+腾讯6面一次过,谈谈我的大厂面经

Java架构之路

Java 程序员 架构 面试 编程语言

SpringBoot之自定义启动异常堆栈信息打印

false℃

流利说张潇君:引入谷歌工程实践,让流利说在人效上更接近硅谷_AI&大模型_Echo Tang_InfoQ精选文章