開發與維運

关于前端与机器学习的疑惑,听 TensorFlow.js 负责人一一解答

本届 D2 前端技术论坛,我们十分荣幸地邀请到了 Google TensorFlow.js 团队的负责人 Ping Yu 作为「智能化」专场的嘉宾,为我们讲解 TensorFlow.js 生态系统,以及如何将现有的机器学习模型植入到前端。

PingYu, Google Brain 工程师,TensorFlow.js 项目负责人。致力于将机器学习平台带给 Web 以及 JavaScript 开发者。前 Google Attribution 平台的技术主管。Ping 拥有清华大学理学学士学位,马里兰大学帕克分校理学硕士学位。

PingYu.png

得益于人工、数据、计算成本的降低,人工智能(AI)在最近的一个十年得到了爆发式的发展,其中,要数「机器学习」流派首屈一指[1]。放眼全球,在 AI 这个赛道上,遥遥领先的领路人,非 Google 莫属,而 Google 又将机器学习作为其在 AI 领域的工作重心[2]。他们开发并维护着 TensorFlow, 旨在帮助他人解决重要问题[3]。

提起 TensorFlow, 很多人会觉得这是个十分遥远的、可望而不可及的东西,我从搞算法的朋友那里听来一句调侃——能在电脑上安装并运行 TensorFlow, 你已经跑赢了 80% 的算法工程师。虽然是句玩笑话,但也从侧面说明了 TensorFlow 的门槛之高——连算法工程师都不一定搞得定。那作为前端工程师的我们,是不是只能望其项背了呢?

答案是 No~ No~ No~

因为在 Google 有这么一群人,早已帮我们解决了这个问题。他们看准了前端在机器学习领域的潜力,研发出了 TensorFlow.js——专门服务于前端的机器学习平台。

为了让大家对演讲主题更好的理解, 我们特地安排了此次专访,一起来听听他对前端与机器学习的见解。


D2 小编: Hi, Ping Yu, 很荣幸能够邀请到您来 D2 演讲,可否向中国的朋友们介绍一下您和您目前的工作?

Ping Yu: 我在 Google 的 TensorFlow 团队中负责 TensorFlow.js 的开源项目。TensorFlow.js 是一个针对前端开发者机器学习平台,它不光提供建模,训练到推理的一套完整的 API, 还有一个结合实际应用场景的模型库。我们的目标是降低前端开发者使用机器学习的门槛,从而激发他们的创造力。

D2 小编: 我们知道,人工智能往往伴随着复杂的数据、模型和运算,而很多人认为 JavaScript 太弱了,不适合做人工智能,甚至说前端就不该趟 AI 这趟水,您怎么看待这个「老生常谈」的说法?

Ping Yu: 这个问题可以从两个方面去看。首先,JavaScript 作为一个解释执行的语言,确实缺乏纯计算能力,但语言本身的计算速度并不决定它是否适合机器学习。比如 Python 同样作为解释执行的语言,速度并不是它的强项,甚至它比 JavaScript 的 V8 引擎要慢多了,这并没有妨碍它成为当今最受欢迎的机器学习语言。因为它并不需要直接解决速度的问题,它可以利用其他更底层的语言来获得计算速度的提升。TensorFlow Python 就是利用 binding C library 提供 CPU 上的加速,通过 cuDNN 的绑定获得了 GPU 提速。这都是 Javascript 可以做的事情。比如说 TensorFlow.js 通过 WebGL 的 Fragment Shader 来获得 GPU 加速,通过 Web Assembly 来获得 CPU 的加速等等。

另外作为一个机器学习 API Level 的语言,易用性才是真正吸引用户的地方。Python 的崛起很大程度上得益于一个非常受欢迎的数值运算库 numpy. 其实 Javascript 在易用性上并不逊色于 Python, 十几年来,从网页到后台,再到 iOT 设备,Javascript 无处不在。它跨平台的特性能很好的解决模型部署的任务。

我和很多工业界还有研究部门的伙伴了解的时候发现,他们现在共同的困境就是,缺乏人才能够真正把 AI 研究结果很好的落地。我们相信这个离不开前端工程师,但是需要有一套完善的工程解决方案。TensorFlow.js 只是一个开始,希望有更多的前端开发者可以加入我们的行列。

D2 小编: 那请问 TensorFlow.js 目前都有哪些应用场景、效果如何?如果没有足够的数据量能接入吗?

Ping Yu: TensorFlow.js 支持许多 Javascript 可以运行的环境,前端的浏览器,无线端的小程序,React Native 平台,中后台的 Node.js 等等。

不同的运行环境,应用场景也不尽相同。无线端多以实时人机交互模型为主,不论是视频还是语音,对模型的大小和执行速度的要求都很高。最近欧莱雅使用 TensorFlow.js 在微信小程序里推出了实时试妆,模型执行速度达到 25FPS, 但模型只有 800K. 在浏览器中的 Web App, 它的 AI 应用场景多以图形或文字模型为主。在中后台,应用场景会更丰富一些。TensorFlow.js 在 Node.js 里的执行速度和 TensorFlow Python 旗鼓相当,让 server 端的模型推理可以融入到现有的 BFF 架构内。

另外TensorFlow.js 也支持模型训练,这意味着前端可以通过转移学习的方法为每个用户提供定制的模型。

D2 小编: 有人说,AI 技术的大进步,往往不是算法本身,而是源自人机交互的改进,您认同这个看法吗?目前(至少国内)已落地的人工智能大多是「人工人工智能」,请问国外面临这个窘境吗?您认为有何解法?

Ping Yu: 这个问题涉及面有点广,但看法我是基本认同的。我理解这句话原意是,人机交互界面的改进,为 AI 技术提供的场景和契机。AI 的基础是数据,而前端技术可以帮助研究者更快更好地理解数据。虽然现在 AI 发展日新月异,新模型、新架构层出不穷,但当模型落地时候,如果并没有和前端实现一个闭环,也就会出现「人工人工智能」的现象。谷歌推出的联邦学习和 TFX 机器学习的框架,通过 AI 和前端的结合,就能够做到连续的验证和调整模型。

D2 小编: 您认为前端智能化未来会往什么方向发展?对于想做人工智能的前端工程师有什么学习建议?

Ping Yu: 虽然前端有许多成功的框架,但总体来说还是有不少手工的工作。(我认为未来的考虑将是)如何将 AI 的能力融入到这些框架中,进一步减少前端工程师工作中低端的手工部分,从而进一步解放他们的创造力。

对于前端工程师而言,要对常用的模型和框架要有一定的认识,了解他们的特点和使用场景。要具备一定的 AI 工程方面的知识,比如模型加速和压缩,模型加密,端上和服务器上推理方案,这可以为模型落地提供切实可行的途径。

D2 小编: 请问参加您这次的分享需要准备什么前置知识?您将与国内开发者进行什么方面的交流?

Ping Yu: 这次分享(我将)通过一些实例来介绍 TensorFlow.js 平台的能力,进一步探讨 AI 在前端落地的场景。目标受众就是前端工程师,没有特殊的前置知识。


不知道本次专访有没有解答你对于前端与机器学习的疑惑呢?我是觉得,看完这次专访,机器学习对我来说终于不再云里雾里了,Ping Yu 浅显易懂的表达,使我对前端与机器学习、对 TensorFlow 有了更进一步的认识,也了解了该从哪些方面去学习 AI, 实在是太棒啦!

本届 D2 上,Ping Yu 还将与我们探讨 TensorFlow.js 进一步优化的方式,以及未来发展的方向。是不是好期待呢!

已经买了票的小可爱,当天记得带着可爱的自己准时来参加,就好啦~

还没买票的小可爱要注意咯!
由于大家购票热情太高,我们本次的早鸟票及早鸟拼团票已提前售罄,你可以选择购买普通票(559/张),一次性购买 3 张及以上,更可立减 100, 享受早鸟票价格 459/张哦!余票不多,心动不如赶快行动,我在 D2 智能化专场等你哦!

1571979957035-d7211b7e-c371-4195-92d9-68c4d4a6d8a4.png

附 1:D2 智能化专场介绍

机器学习和人工智能在前端领域如何应用?智能化将如何改变前端的工作方式?目前机器学习和人工智能在前端的应用成果有哪些?在工程和业务领域借助智能化创造技术价值?本届 D2 的前端智能化专场通过行业的应用案例和实践经验的风向,让大家对智能化改变前端有切实的感受,同时还邀请了谷歌 TensorFlow.js 等行业知名的前端智能化团队,带来前端智能化发展趋势的最新信息。让我们在机器学习改变行业的今天,携手弄潮于技术之巅。

附 2:好文推荐
初识前端智能化
一个前端智能化的实践

参考文章:
[1] 你真的了解人工智能吗?——聊聊AI的碰壁和冬天
[2] 谷歌确立AI first战略一年后成果如何? 这里有答案
[3] Google AI负责人:机器学习是解释AI的最好方法


Leave a Reply

Your email address will not be published. Required fields are marked *