AI在碎片化中难突围 批量商品化无时间表
2019-08-29 10:08:19 来源:中关村在线
正如社区版的Linux像自来水无法直接饮用,必须要水厂加工后才能饮用、食用。原生的AI框架也是同样,但其加工(编程难度)、性能表现、接口支持却有着或多或少的碎片,因此AI需要在碎片化中难以突围,结果是Al批量商品化无时间表。
AI在碎片化中难突围 批量商品化无时间表
人工智能繁荣的背后是各大厂商暗战的开始,大家都在为了争抢开发者推出各自的深度学习开发框架,应用在不同场景下的关联性越来越强。为此,微软、谷歌、亚马逊等IT巨头都在围绕深度学习投资项目、开发框架工具,CNTK、TensorFlow、MXNet背后均有着这些企业的力挺。除此之外,Caffe、Torch、Theano也是比较流行的开发框架。
对于算法工程师来说,在进行AI训练时会有很多调节参数的工作,考虑到不同的调参会影响最后模型的收敛速度和精度,这一部分通常会给算法工程师制造大量的工作量。此时,算法叠在碎片框架上。如果有一个可以自动化调参的服务,就能把各个模型收敛所需的目标量降到降低的值,不仅减轻了工程师的调参工作量,还能让其快速找到最优参数。
除此之外,开发人员在使用这些框架时,所要用到的特性和功能也各有不同,应用场景也可能是算机视觉、语音识别、自然语言处理与生物信息学等等。以TensorFlow来说,使用者不再需要通过反向传播求解梯度,这点和Theano类似,而且在设计神经网络结构时,也不用耗费过多精力去写C++或者CUDA代码。
使用过程中,C++在线上部署的复杂度方面有所降低,而且让手机、平板、穿戴设备等对处理资源占用密集的终端可以运行复杂的模型,要知道相比之下Python的资源损耗还处在相对较高的水平。借此,开发者就能在硬件性能相对足够的机器中,即使是用Python也可以获得在低延迟状态下、嵌入式环境中使用C++的能力。当然TensorFlow也有其问题,比如异类设备之间的通信优化仍需完善。
还是拿TensorFlow来说,尽管当前其是主流的AI开发框架,但在前后端并没有提供丰富的工具集成,而实际开发过程中需要不断的迭代测试,要在大规模数据量的情况下完成快速开发上线,传统的办法耗时耗力。要是赶上数据集非常大的情况,单机训练下可能要跑十几个小时,这还要考虑到期间的开发过程。
对于开发者的痛苦远不止这些、老牌选手Theano虽然在单GPU方面执行效率方面有不错的表现,但其缺乏底层C++的接口,导致部署起来并不方便,在工业生产环境的应用几乎鲜有。因此,很多人都是将其视为研究工具,而不是最终的产品,在CPU上的低性能也有这方面的阻碍。这种框架更像是一个原始语言,如果直接用其设计神经网络,或者去读它的输出信息,对开发者是毕竟痛苦的事情。
此外,Caffe、Deeplearning4J等也有着各自的问题,由此也引申出了开发者到底该如何选择深度学习的开发平台?这里列出了几个考察点:首先,多数公司的AI架构不是从0起步,对既有编程平台的整合难度不能忽视;其次,对机器学习软件包和数据处理的难度也要寻求兼容;再有,二次开发能力同样关键,有了分布式、多GPU的优化能力,如何在其他平台上发挥作用,这是要思考的事情。
从生态的角度来看,各家的框架多少还存在着分战队的情况。开发者需要在各自的平台上做各自的开发,而且这些框架在更新时并不是统一的,也就是说开发者在一个框架上开发的神经网络模型,并不能直接在另一个框架上用。要想让二者实现兼容,开发者需要花费很大的精力去自行解决。
只有解决了开发碎片化的问题,AI才可能批量商品化,价格才可能降低为小微企业都能用的起。