这是我参与「第四届青训营 」笔记创作活动的第8天
因为本人在本科期间是研究AI方向的相关内容的,因此我会在端智能这个小问题上写一些我自己的看法。
什么是端智能?
端智能(On-Device Machine Learning)是指把机器学习的应用放在端侧做。这里的“端侧”,是相对于云服务而言的。它可以是手机,也可以是 IOT 设备等。而端侧所做的机器学习,不仅包括模型的推理,也包括了模型的训练。
我们都知道,传统的机器学习,由于模型大小、机器算力的问题,很多是放在服务端做的。而随着以手机为代表的端侧设备算力的提高,以及模型设计本身的演进,大小更小、能力更强的模型逐渐能够部署到端上运行。
有这样的说法,端智能可以说是业界从 Mobile First 走向 AI First 的过程中必然会出现的产物。
为什么要发展端智能
首先,我们可以先给出一个结论:机器学习、深度学习的核心就在于数据。有许多研究表明,有了足够的数据,模型结构再简单,也能获得很好的结果;而高质量的数据更是会极大地增强ML or DL Model的效果。
然而,随着隐私保护逐渐受到人们重视,我们发现很多厂商甚至是研究人员在获取用户数据时越来越困难了。(这里包括各种法律法规和协议的限制)
而端智能可以做到数据不离端而进行推理甚至模型训练,相比于云端机器学习有天然的隐私性优势。因此,端智能逐渐受到重视。
举个例子,由 Google 推动的 Federated Learning能够让大量的端侧设备使用各自的数据协同训练出一个全部模型,并且保证训练数据不离端,这样可以使得用户的隐私得到足够的保护。
当然,大量的端设备和某些使用场景对端智能的必要性,同样导致了端智能的发展。
端智能的方法
端智能和传统的服务器上的人工智能相比,目前主要通过端设备协作、模型蒸馏等方式进行工作,如果读者是人工智能领域的研究者的话,应该对大多数端智能设计的概念感到非常熟悉,而端智能并不是目前人工智能这个领域的主流研究,想必新概念也没有多少,想要尽快入门应该还是非常容易的。
端智能的挑战
端智能的挑战主要有:速度、设备碎片化、引擎大小、模型大小、内存占用。 以上挑战仅从字面就能有比较好的理解,在此就不多赘述了。
个人的一些展望
端智能领域应该是人工智能领域发展的一个必然趋势,我相信未来端智能会越来越壮大,因为无论是端智能所面临的问题还是端智能可以预见的发展,都是比较触及人工智能领域中比较HARD的一些问题,应该会在未来的应用之中给人工智能带来新的发展。如果说本次青训营之后有小伙伴想要从事端智能的相关工作,我个人认为是比较好、比较值得推荐的。
欢迎大家批评指正和友善交流。