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

简介: 本届 D2 前端技术论坛,我们十分荣幸地邀请到了 Google TensorFlow.js 团队的负责人 Ping Yu 作为「智能化」专场的嘉宾,为我们讲解 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的最好方法

目录
相关文章
|
19天前
|
前端开发 机器人 API
前端大模型入门(一):用 js+langchain 构建基于 LLM 的应用
本文介绍了大语言模型(LLM)的HTTP API流式调用机制及其在前端的实现方法。通过流式调用,服务器可以逐步发送生成的文本内容,前端则实时处理并展示这些数据块,从而提升用户体验和实时性。文章详细讲解了如何使用`fetch`发起流式请求、处理响应流数据、逐步更新界面、处理中断和错误,以及优化用户交互。流式调用特别适用于聊天机器人、搜索建议等应用场景,能够显著减少用户的等待时间,增强交互性。
131 2
|
19天前
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
33 0
|
3天前
|
机器学习/深度学习 TensorFlow API
机器学习实战:TensorFlow在图像识别中的应用探索
【10月更文挑战第28天】随着深度学习技术的发展,图像识别取得了显著进步。TensorFlow作为Google开源的机器学习框架,凭借其强大的功能和灵活的API,在图像识别任务中广泛应用。本文通过实战案例,探讨TensorFlow在图像识别中的优势与挑战,展示如何使用TensorFlow构建和训练卷积神经网络(CNN),并评估模型的性能。尽管面临学习曲线和资源消耗等挑战,TensorFlow仍展现出广阔的应用前景。
17 5
|
4天前
|
JavaScript 前端开发 开发者
前端框架对比:Vue.js与Angular的优劣分析与选择建议
【10月更文挑战第27天】在前端开发领域,Vue.js和Angular是两个备受瞩目的框架。本文对比了两者的优劣,Vue.js以轻量级和易上手著称,适合快速开发小型到中型项目;Angular则由Google支持,功能全面,适合大型企业级应用。选择时需考虑项目需求、团队熟悉度和长期维护等因素。
11 1
|
14天前
|
前端开发 JavaScript 安全
JavaScript前端开发技术
JavaScript(简称JS)是一种广泛使用的脚本语言,特别在前端开发领域,它几乎成为了网页开发的标配。从简单的表单验证到复杂的单页应用(SPA),JavaScript都扮演着不可或缺的角色。
17 3
|
5天前
|
JavaScript 前端开发 API
前端框架对比:Vue.js与Angular的优劣分析与选择建议
【10月更文挑战第26天】前端技术的飞速发展让开发者在构建用户界面时有了更多选择。本文对比了Vue.js和Angular两大框架,介绍了它们的特点和优劣,并给出了在实际项目中如何选择的建议。Vue.js轻量级、易上手,适合小型项目;Angular结构化、功能强大,适合大型项目。
11 0
|
8天前
|
前端开发 JavaScript UED
"前端小技巧大揭秘:JS如何将后台时间戳秒变亲切小时前、分钟前,让用户秒懂,提升互动体验!"
【10月更文挑战第23天】在Web开发中,将后台返回的时间戳转换为“小时前”、“分钟前”、“刚刚”等友好的时间描述是常见需求。本文介绍如何用JavaScript实现这一功能,通过计算当前时间和时间戳的差值,返回相应的描述,提升用户体验。
15 0
|
19天前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
93 0
|
19天前
|
前端开发 JavaScript 程序员
【从前端入门到全栈】Node.js 之核心概念
【从前端入门到全栈】Node.js 之核心概念
|
19天前
|
Web App开发 JavaScript 前端开发
前端Node.js面试题
前端Node.js面试题