TL;DR
Run LLM/Embedding on Android: https://github.com/unit-mesh/android-semantic-search-kit
Inference SDK:https://github.com/unit-mesh/inference
正文:
在过去的一年时间里,国内外大中型公司都在探索、引入了 GenAI / AIGC(生成式 AI),并在 2024 年将持续探索更多的可能性。因此自 10 月起,我们(Thoughtworks)与不同公司的团队持续交流了如何规划 2024 的 AIGC,从在软件研发中应用到产品设计,再到一些新的趋势探索。
关于软件研发部分,可以参考我过去写的文章,或者我们将发布的 2024 规划 AIGC + 工程交通新文章里。
引子 :AIGC + 智能硬件 = 随身智能
在 2024 年的规划的内容里,其中最吸引人的部分是关于新交互、新体验。在这一周里,我们也看到了人们对于 Humane 这一类直接集成 ChatGPT 的产品。而作为一个工程师、架构师,我会更关注于如何去建设这样的基础设施,以便于支撑未来的产品演进。
假设 AIGC 要引来体验上的变革,必须要引入新的 XR 设备,来提供这种能力。因此,作为探索计划的一部分,我们开始探索和构建运行在嵌入式设备的 PoC,诸如运行于 Android、iOS 上的本地搜索增强,运行于 Raspberry Pi 上的智能 AI 中枢。
端侧的智能趋势:浅析交互体验变革
从现在的各种技术趋势来说,出现了更多的新可能性和新机会,等待着有缘人去引领这个时代。
多感官融合:多模态融合
从最初的 AI 聊天,逐渐演进到语音交互,甚至可以通过简单的语音指令生成出色的效果图,这预示着未来有更为广泛的可能性。AI 的涌现使得从文本生成到图像、语音、视频的交互变得愈加便捷。这种多模态的处理能力在一定程度上成为人类工作的强有力助手。
本地化智能:更强的本地 AI 运行能力
从运行在经典 Android 系统上的 LLaMA.cpp,到运行在小米手机的 1.3 B 端侧模型,再到天玑 9300 这一类可以在移动端运行大模型的芯片。当移动端拥有了更好的 GPU、AI 芯片时,Native SDK 更加完善时,移动设备将具备更多的智能能力。
专有模型:更小的模型体积
尽管,微软的《CODEFUSION: A Pre-trained Diffusion Model for Code Generation》指出的 20B 大小的 ChatGPT 3.5 Turbo 真假难辨。因此,毫无疑问:模型可以蒸馏等手段缩小到更小的模型,而更小的模型则更适合在本地运行。
XR 技术:拓展虚拟与现实的融合
尽管 Meta 的元宇宙计划和 PICO 的裁员情况,以及我目前闲置的 Oculus,似乎暗示了 XR 领域的一些波动。然而,与此同时,越来越多的 AIGC(增强与智能融合计算)设备纷纷登场,它们不仅继承了 XR 的强大能力,更为现实世界注入了新的活力。随着 AIGC 技术的不断增强,我们或许将迎来一个充满生机、数字人物云集的虚拟宇宙,取代了过去的荒无人烟。
PS:对于趋势分析来说,只要你猜想得够多,总有一个能对的。
智能化端侧的浮现:连接 “智障设备” 的智能中枢
人机交互(HCI,Human-Computer Interaction):是指人与计算机之间使用某种对话语言,以一定的交互方式,为完成确定任务的人与计算机之间的信息交换过程。而过程中,就涉及到了硬件、软件、以及用户界面设计等多个方面,旨在提供用户友好的、高效的、以及令人满意的交互体验。
在消费者市场里,比较流行的两类设备是:可穿戴设备和智能家居设计。与添加新的设备相比,在已有的这些设备里添加 AIGC 能力,显然会带来更多的智能,改善现有的智障。
可穿戴设备的中枢
10 年前,穿戴设备的入门款智能手环是没有屏幕,而 10 年后的今天,他们都有一个非常大的屏幕及低的功耗,如小米手环 8 Pro。而在现有的可穿戴设备里,大部分是增强人类能力的,诸如于采用神经网络的翻译机、没有啥智能的智能手表、智障般的随身智能智能眼镜助理等等。
而由于这些设备的能力所限,都会依托于 “手机” 作为配置端或展示端。也因此在这些设备里,手机依旧会作为一个中转型中枢所在 —— 除非,我们更愿意一天一充。
PS:不过,我的 499 小米手环与华为手表的用途几乎一致,消息提醒 + 久坐提醒。
智能家居设备的中枢
在我的家里,围绕于“智能音箱” + 30+ 左右的所谓智能设备,构建了一个智障的控制体系。而一切的根源则是由于:音箱语音解析能力的不足。
而在以智能音箱为控制核心的家居设备体系里,尽管依然依赖于手机来添加新的设备。但是随着 AIGC 能力的引入,添加新设备将变得更加简单,解析用户的指令转换成特定的数据结构。只是,这一类设备的解析是交由与服务端模型交互。
而在诸如于 Apple TV 这一类具备更强计算能力的设备里,则可以使得本地化模型具备更多的可能性。
端侧的基础设施构建规划
最后,让我们回到主题上来,其实对于这一类端侧设备来说,主要分为三类:
运行在类 Unix/Linux 操作系统的中枢设备。拥有比较强的 CPU、GPU、AI 能力,典型的设备是经典的 Android 家族操作系统、iOS 家族操作系统以及 HarmonyOS、HyperOS 等类 Android 的国产操作系统。
其它嵌入式 Linux 操作系统设备。与我们熟知的 Android 不同的是,如今有大量的设备运行在 Linux 系统之上,诸如路由器运行在 OpenWrt 系统之上。
低功耗与超低功耗嵌入式设备。这些设备通常计算资源受限,计算能力稍强的可以运行 RT-Thread、FreeRTOS 等操作系统,计算能力弱则是通过一个 main-for(;;) 来完成。
对于低功耗设备而言,它依旧是与中枢设备进行交互,所以并不会有太大的变化。唯一需要思考的是,到底要将具备什么能力?而对于类 Unix 设备来说,我们则需要构建对应的运行 AI 模型能力,至于是否需要更大的模型能力,则需要根据不同场景规划。
由于考虑到开发速度的影响,可以看到大量的设备是以 Android、iOS 系统为基础的,所以可以先以此为场景分析和构建。
典型场景所需能力分析
根据我们过往的 PC、Server 端应用开发经验,我们设计的四个 PoC 场景来构建移动端、嵌入式端的基础设施能力。诸如于:
AIGC 应用:IM/协同办公。只需要简单地接入 LLM 能力,构建对应的 SDK。
搜索增强:本地语义化搜索。在本地拥有 embedding 能力,以在本地进行语义化搜索。
端侧辅助:本地自动补全。在本地具备运行模型的能力。
指令解析:智能中枢。具备一定的模型微调能力,并面向嵌入式设备优化。
而根据不同的业务领域,如金融、制造等,还会出现不同的差异化。
构建基础设施能力
考虑到跨设备能力与加密等问题,采用原生开发(诸如 Android 端采用的 C++)技术,更适合运行于在移动端,并且还拥有大量的人才能实现这一类工作。而在我们构建 SDK 的 PoC 时,以 Android + Rust 作为胶水语言来封装 C++ 库,以借助 Rust 优秀的语言能力与交叉编译(cross-compilation 能力)。
在这里,你可以看到我们构建 Android 语义化搜索的示例:https://github.com/unit-mesh/android-semantic-search-kit,包含了如何运行 Tokenizer、OnnxRuntime,以及对应的模型转换和处理。
随后,基于上述的 PoC,我们开始设计原生 SDK,并开始为 Flutter 等封装基础设施,即:https://github.com/unit-mesh/inference 。
总结
最后,由 ChatGPT 编写这篇文章的总结:
2024年,全球企业将不断探索生成式人工智能(GenAI / AIGC),展望未来,AIGC与智能硬件的结合将推动新的交互和体验。多感官融合、本地智能、小型模型和XR技术将改变人机交互,使设备更智能。在端侧设备方面,类Unix/Linux中枢、嵌入式Linux设备和低功耗设备都面临挑战。2024年,AIGC 和智能硬件融合将引领人机互动和智能设备发展的新时代。