37

闲鱼如何玩转TensorFlow

 5 years ago
source link: http://www.pingwest.com/a/184563?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

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

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

QrqInem.jpg!web 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训练,有助于提升训练效率。

rQj6je6.png!web TensorBoard 页面

TensorFlow Lite 打通AI到端上的路径

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

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

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

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

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

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

zq2Evuu.png!web 闲鱼团队在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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK