Press "Enter" to skip to content

闲鱼如何玩转TensorFlow

在未来的某一天,当人们回顾人工智能这项技术的发展历程时,除了会想起1956年8月1日科学家们首次聚在一起讨论人工智能的达特茅斯会议、1997年5月11日“深蓝”战胜卡斯帕罗夫、2016年3月15日AlphaGo战胜李世石等万众瞩目的时刻外,也一定不会忘记2015年11月9日这一天。

 

这一天,Google 首次对外开源了它的机器学习框架 TensorFlow,尽管它在当时并没掀起巨大波澜,但在它发布后至今的3年多的时光里,它已经逐渐发展成为完整的端到端的机器学习生态系统 —— 下载次数超过4100万次、代码更新的提交次数超过5万次,而且这些数据还在高速增长。

 

它被不同体量不同领域的各种公司应用在各式各样的场景中,帮助人们与“AI触手可及”的状态越来越近。

3月6日 TensorFlow 2019年开发者大会举办,发布 TensorFlow 2.0 Alpha版

在许多我们日常生活必备的手机应用背后,其实都有基于 TensorFlow 框架开发的 AI 功能的身影。

 

TensorFlow降低了AI开发的门槛

 

“TensorFlow 最大的意义在于降低了深度学习的门槛。”闲鱼技术负责人、阿里巴巴资深技术专家酒丐对PingWest品玩说。这款GMV已经超过1000亿的二手闲置交易社区,正在尝试利用 TensorFlow 来解决各种业务场景中遇到的问题。据中国互联网经济研究院去年九月的数据显示,我国闲置物品交易规模已经达到5000亿元,在这样的交易规模下,对技术上的需求也是越来越复杂。

 

“闲鱼其实是一个非常难做的业务,因为每个人拿着自己的东西来这里出售的时候,他们拿的都是独特的东西,不是标准品。”闲鱼互动技术团队leader上叶说。“因此,在交易过程中整个链路会非常复杂,技术的作用就十分重要。”

 

闲鱼的技术团队发现,其中很多问题其实最适合用深度学习的方法来解决。于是,闲鱼互动技术团队使用TensorFlow框架在很多业务场景做了很多有益的尝试。“TensorFlow 的完整性、易用性等非常符合闲鱼技术团队的需求。Google 提供了很多的 API。你想在上面做什幺都能找到方法来支撑。这是很棒的一件事。因为对于程序员来说,其实我们最怕的就是你给我一个黑盒。”上叶说。

 

这样一只“小而美”的团队,从2017年底第一次接触 TensorFlow 到使用它开发出能够识别出视频中的小汽车的AI模型,只花了不到3天时间。这之后,他们开发了越来越多的功能,其中包括大量原创功能。这很好的印证了酒丐关于人工智能“门槛降低”的说法。

 

据酒丐介绍,过去,一个希望利用机器学习技术完成某些开发的公司,首先需要先招募一批具备深度学习知识的算法工程师。而随着像 TensorFlow 这样的机器学习开源框架诞生和流行,开发者不再需要花大量时间在研究底层技术上。

 

“TensorFlow 的底层就已经提供了很多深度学习最基础的元素,比如卷积等。在此之上,在顶层还提供了大量封装好的 API。对于那些‘新手’工程师们来说,你不再需要太过关心底层技术,只需要使用顶层的东西就可以完成相关工作,并可以花更多时间在创新上。而当你对整个背景很了解,你又可以使用 TensorFlow 提供的这些原料来搭建自定义的功能。”闲鱼工程师、UI2Code项目成员深宇对PingWest品玩介绍。

 

TensorFlow 的这种简单和容易上手的特征,是他吸引开发者之处。作为一个开源框架,TensorFlow 还提供了简洁直观的可视化操作界面 TensorBoard。另外,在效率上,它还支持多GPU训练,有助于提升训练效率。

TensorBoard 页面

TensorFlow Lite 打通AI到端上的路径

 

而且,在 TensorFlow 的基础上,Google 还推出了更加适合移动端的 TensorFlow Lite,实现了更轻的体验。“以前这种模型还是太大了,放到端上会受不了。当时都是放到服务端,做一个API再进行调用。”酒丐说。“而 Lite 推出后就可以直接打通了到端上的这条路。”

 

在不断的熟悉之后,闲鱼将许多基于 TensorFlow Lite 开发的功能推出到生产环境。“TensorFlow 的低门槛和易用性以及相对可靠和稳定的优点,让我们能够快速在实际场景中来实现和检测我们的一个想法,也可以快速完成试错。”酒丐说。

 

比如,当你打开闲鱼搜索信息时,你看到的那些描述产品的文字标签,有许多就是靠基于 TensorFlow 的技术生成。“当想要出租房屋的用户上传了一张房间的照片,或者视频,我们就可以应用 TensorFlow 提供的最基本的模型来获得这个房间里面的相关的信息。”上叶介绍。“我们可以获得房间是否有电视机、沙发、电器等一些相关信息,借此来补充我们这个商品的内容信息。”

 

同时,对于这些用户上传的视频,闲鱼也使用机器学习技术来对他们进行质量评价。“我们选取了几个维度,会通过机器学习来自动评判他们的客观度等。”酒丐说。

 

这样的应用还是 TensorFlow 的较常见使用案例,闲鱼团队在越来越了解TensorFlow之后,开始不断创新,“脑洞大开”设计出许多自创的新功能。

 

在去年的 Google 开发者大会上,上叶就分享了一项原创性十足的黑科技:UI2Code。这个项目可以让开发者仅仅从一张图片,就直接生成对应的UI代码。

闲鱼团队在Google开发者大会上做展示

“图片可以是设计师的视觉产出,也可以是手机上随便打开一个软件然后截图得到。”上叶在当时的活动上分享。据他介绍,UI2Code 关注的是1比1像素级别的精确还原,目的是为了节省开发人员重复机械的视觉还原工作,将没有创造性的重复性工作交给机器,这样开发人员就可以去关注更重要的逻辑性问题。生成的UI代码是“接近”生产可用的,开发人员只要做一些数据绑定或者细微的调整即可。

 

在开发 UI2Code 这个复杂的工作流程过程中,闲鱼团队正是使用了TensorFlow Lite 来完成其中的深度学习任务。

 

此外,闲鱼团队还使用TensorFlow 设计出一个通过识别视频中的音频,来为视频进行分类的模型。团队使用深度学习模型,将视频中提取出的音频进行向量化处理,生成图片,之后对这些矢量图进行分析比对,从而判断出音频是男声、女声或是其他声音,据此完成分类。

 

“整个过程我们只用了3周时间。”上叶介绍说。“目前我们的识别率已经达到86%。这已经是蛮高的水平了。”

 

机器学习技术发展的关键在开源

 

据 Google 对 PingWest品玩介绍,在中国像闲鱼这样的 TensorFlow 开发者正在变得越来越多,到去年9月,TensorFlow在中国已有200万的下载次数。

 

而像闲鱼这样的开发者们,也开始积极参加到推进整个TensorFlow 以及机器学习开源技术的生态建设中去。据闲鱼介绍,他们计划将UI2Code 开源给更多的开发者,因为深度学习最重要的还是海量的训练数据,开源后可以吸引更多的参与者来一同推进这项技术的进步,提高它从不同图像转换成代码的精确度。

 

“机器学习如今有些进入一个瓶颈期。”闲鱼AI团队的一名成员对PingWest品玩表示。“一方面是由于近几年没有新的网络出现,大家还是依靠过去那几种。另一方面,更主要的则是因为数据水平的问题。要推进深度学习技术的进步,就必须靠开源来吸引更多的开发者参与进来。”

 

所以,如果你也有自己的 TensorFlow 使用案例,非常欢迎你点击以下链接与我们分享,让世界看见你的创新: https://services.google.com/fb/forms/TFCS/?channel=partner

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注