10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

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

  • 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:003433

评论

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

浅谈JavaScript原型和原型链

大熊G

JavaScript 前端 6月月更

微软成为规模化敏捷组织的16个关键因素

ShineScrum

敏捷 谷歌 规模化敏捷

最全!即学即会 Serverless Devs 基础入门(上)

Serverless Devs

spring4.1.8初始化源码学习三部曲之一:AbstractApplicationContext构造方法

程序员欣宸

Java spring 6月月更

fomo3d区块链分红游戏系统开发(案例演示)

开发微hkkf5566

技术分享| 浅谈调度平台设计

anyRTC开发者

Web 音视频 指挥调度 调度 快对讲

C#入门系列(七) -- 循环语句

陈言必行

C# 6月月更

Web Service进阶(五)SOAPBinding方式讲解

No Silver Bullet

6月月更 SOAPBinding

建木持续集成平台v2.4.1发布

Jianmu

DevOps CI/CD 开源项目 gitops 自动化运维

java培训 @Autowired 的实现原理

@零度

JAVA开发

5G发牌三周年 云网融合加速 如何解决企业网络之忧?

郑州埃文科技

IP地址 网络空间安全 5G 企业上云 云网融合

spring-cloud-k8s 跨 NS 的坑

Damon

微服务架构 云原生 6月月更

企业竞争利器——知识管理

小炮

7 个 Flutter 开源项目,让你成为更好的 Flutter 开发者

坚果

6月月更

springboot,vue,es,activiti数字知识库管理系统

金陵老街

Vue springboot ES Activiti 知识库

WordPress 常规设置

海拥(haiyong.site)

WordPress 6月月更

性能优化手记下篇之【计费】

鲸品堂

性能优化 运维

中兴新支点加入龙蜥社区,共建操作系统开源新生态

OpenAnolis小助手

开源 龙蜥社区 合作 CLA 中兴新支点

SAP 云平台 ABAP 编程环境的前世今生

汪子熙

Cloud 云平台 SAP abap 6月月更

GIT 小白的指令合集

甜甜的白桃

git 版本管理 6月月更

重点亦难点?三个案例看数据分类分级如何有效有序进行

美创科技

数据分类 数据安全

直播回顾:隐私计算的关键技术以及行业应用技巧 | 龙蜥技术

OpenAnolis小助手

开源 直播 隐私计算 龙蜥社区 密码技术

Junit 测试中如何对异常进行断言

HoneyMoose

最全!即学即会 Serverless Devs 基础入门(下)

Serverless Devs

PHP开发者福音,支持CRUD代码生成且前后分离的tp6+Vue3后台管理系统开源啦!

妙码生花

php typescript Vue3 thinkphp Pinia

Linux驱动开发_视频广告机开发、Linux进程编程介绍

DS小龙哥

6月月更

探究Presto SQL引擎(3)-代码生成

vivo互联网技术

sql presto antlr4

【Python技能树共建】字符串方法

梦想橡皮擦

6月月更

知名巧克力全球召回,区块链帮你摆脱“甜蜜陷阱”

旺链科技

区块链 产业区块链 食品安全 食品溯源

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