关于前端与机器学习的疑惑,听 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] Google AI负责人:机器学习是解释AI的最好方法

目录
相关文章
|
3月前
|
前端开发 机器人 API
前端大模型入门(一):用 js+langchain 构建基于 LLM 的应用
本文介绍了大语言模型(LLM)的HTTP API流式调用机制及其在前端的实现方法。通过流式调用,服务器可以逐步发送生成的文本内容,前端则实时处理并展示这些数据块,从而提升用户体验和实时性。文章详细讲解了如何使用`fetch`发起流式请求、处理响应流数据、逐步更新界面、处理中断和错误,以及优化用户交互。流式调用特别适用于聊天机器人、搜索建议等应用场景,能够显著减少用户的等待时间,增强交互性。
683 2
|
2月前
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
|
3月前
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
59 0
|
2月前
|
JavaScript 前端开发 Java
springboot解决js前端跨域问题,javascript跨域问题解决
本文介绍了如何在Spring Boot项目中编写Filter过滤器以处理跨域问题,并通过一个示例展示了使用JavaScript进行跨域请求的方法。首先,在Spring Boot应用中添加一个实现了`Filter`接口的类,设置响应头允许所有来源的跨域请求。接着,通过一个简单的HTML页面和jQuery发送AJAX请求到指定URL,验证跨域请求是否成功。文中还提供了请求成功的响应数据样例及请求效果截图。
springboot解决js前端跨域问题,javascript跨域问题解决
|
3月前
|
JavaScript 前端开发 API
Vue.js:现代前端开发的强大框架
【10月更文挑战第11天】Vue.js:现代前端开发的强大框架
94 41
|
2月前
|
JSON 前端开发 JavaScript
聊聊 Go 语言中的 JSON 序列化与 js 前端交互类型失真问题
在Web开发中,后端与前端的数据交换常使用JSON格式,但JavaScript的数字类型仅能安全处理-2^53到2^53间的整数,超出此范围会导致精度丢失。本文通过Go语言的`encoding/json`包,介绍如何通过将大整数以字符串形式序列化和反序列化,有效解决这一问题,确保前后端数据交换的准确性。
57 4
|
2月前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
185 1
|
2月前
|
JavaScript 前端开发 开发者
前端框架对比:Vue.js与Angular的优劣分析与选择建议
【10月更文挑战第27天】在前端开发领域,Vue.js和Angular是两个备受瞩目的框架。本文对比了两者的优劣,Vue.js以轻量级和易上手著称,适合快速开发小型到中型项目;Angular则由Google支持,功能全面,适合大型企业级应用。选择时需考虑项目需求、团队熟悉度和长期维护等因素。
63 1
|
2月前
|
JavaScript 前端开发 API
前端框架对比:Vue.js与Angular的优劣分析与选择建议
【10月更文挑战第26天】前端技术的飞速发展让开发者在构建用户界面时有了更多选择。本文对比了Vue.js和Angular两大框架,介绍了它们的特点和优劣,并给出了在实际项目中如何选择的建议。Vue.js轻量级、易上手,适合小型项目;Angular结构化、功能强大,适合大型项目。
51 1
|
2月前
|
前端开发 JavaScript UED
"前端小技巧大揭秘:JS如何将后台时间戳秒变亲切小时前、分钟前,让用户秒懂,提升互动体验!"
【10月更文挑战第23天】在Web开发中,将后台返回的时间戳转换为“小时前”、“分钟前”、“刚刚”等友好的时间描述是常见需求。本文介绍如何用JavaScript实现这一功能,通过计算当前时间和时间戳的差值,返回相应的描述,提升用户体验。
46 1