AI推论框架LlamaEdge用Wasm技术,来封装10亿参数Llama 2模型的推论执行环境,部署档案只有30MB,冷启动速度超快。
生成式AI应用从2024年开始百花齐放,加速了新一代云原生技术WebAssembly的普及,将在2025年成为封装和部署云原生应用的新主流。
在2024年底Kubecon北美场大会中,网页组合语言技术WebAssembly(简称Wasm),这项发展了十年的网页开发技术,成了K8s生态圈2024年大会中最热门的话题。包括美国高盛金融集团、德国制造大厂博世Bosch集团、工厂自动化设备大厂西门子等,都现身分享使用经验。
这项技术大受欢迎的其中一项关键原因,就是可以用来解决生成式AI推论启动速度太慢的问题。Wasm平台新创Fermyon技术长Radu Matei曾指出,容器技术是许多AI开发者爱用的AI推论应用部署技术,就是为了用更快速度来产生模型推论结果。但是,「容器化AI冷启动最大的挑战是,数GB的容器映像档和LLM模型资料。」
Wasm打包的AI应用档案仅数十MB,冷启动超快
想要在装置端用GPU执行一只AI推论应用,除了这只应用的程式码之外,还需要对应模型和模型执行环境,但是,光是Nvidia的CUDA runtime,加上主流的AI技术框架,如PyTorch函式库,这只本地端AI推论应用的容器映像档,至少要4.8GB大小,若AI推论所用的LLM模型档案大小多达10GB。要用容器技术部署一只AI推论应用,至少要15GB,冷启动的时间,往往长达数十秒,甚至好几分钟。想要让LLM快速回应使用者的提示指令,得占用装置端有限的记忆体,预先启动载入一只AI推论服务来待命,才能提供及时的生成结果,这就大大局限了AI推论可部署和执行的模式。
Radu Matei强调,改用Wasm技术来封装同样的AI推论应用程式码,只需要数MB档案大小,远低于数GB大小的容器映像档。冷启动速度甚至能大幅缩短到只要几毫秒,也就千分之几秒,可以切割出短暂的GPU算力,来提供「刚好即时(Just in time)」的AI推论回应。「不需要将GPU绑定到特定容器来待命,可以简化和更善用GPU基础架构的算力。」这正是Wasm大受生成式AI开发者青睐的关键,根据CNCF组织在2023年的Wasm大调查,当时已有3成Wasm开发者用于AI应用的开发。
现在也有专门用Wasm打包的AI推论框架LlamaEdge,提供一个10亿参数量的Llama 2模型的推论执行环境,用这项技术封装后的部署档案大小只有30MB,可以在Docker和Kubernetes丛集中,提供GPU原生应用的执行速度,而且可以通吃不同处理器平台,包括x86阵营的Intel、AMD处理器,或是arm阵营处理器。
目前已有超过40种语言支援Wasm,包括Rust、C、C++、JavaScript和GO语言。不只桌机和伺服器环境,还可以在边缘装置,甚至是IoT设备上执行Wasm程式。Docker引擎也开始支援Wasm,可以直接在容器执行环境中,执行Wasm的二进位元件档。微软也在2023年发表了,可以在Hypervisor上直接执行Wasm应用的技术专案Hyperlight,让虚拟机器、容器和Wasm在同一个Hypervisor环境中并存,1秒钟就可以启动1千个执行Wasm应用的微型VM。
不过,从CNCF在2023年底公布的Wasm大调查,可以看到,Wasm开发工具链的发展还不够完备,Wasm开发者也需要克服封装后的Wasm除错困难、不同Wasm Runtime的效能和开发体验差异很大等课题,想要上手Wasm的学习门槛不小。
主流开发工具VS Code开始支援Wasm
在2024年,主流开发工具开始支援Wasm的开发。微软在2024年5月,发布了VS Code的WebAssembly执行引擎外挂,可以将C/C++或Rust开发的程式码,编译成WebAssembly档案,直接在VS Code中执行这些程式。微软这款外挂,让开发者更容易撰写、除错和部署Wasm应用,也能与其他人协同开发。
Wasm开源专案WASI最新的0.2版,正在发展一个全新的元件模式,可以让不同开发语言所编译的Wasm程式,透过一套标准的输入输出方式互相沟通。例如用Go语言写的Wasm元件,和用Rust语言写的Wasm元件,可以像用同一种语言开发的元件互相沟通,甚至在一只更大的Wasm程式中混用。
VS Code也开始支援这个元件模式,可以让JavaScript或TypeScript程式码,直接使用其他语言开发的Wasm元件。
Wasm新元件模式,更易混用多代理AI元件
随著科技巨头,诸如Meta、Google、微软、AWS等,纷纷开源释出了可落地部署用的LLM模型或SLM小模型,WebAssembly技术可以成为打包这些地端模型的封装技术,大幅减少AI推论应用的档案大小,也加快冷启动速度。
甚至,WASI新的元件模式,可以让不同模型的Wasm元件,更容易直接沟通,甚至在同一只大型应用中混用,例如将擅长特定语言翻译LLM,与擅长规画的LLM,以Wasm元件形式封装后来沟通。甚至,可以将擅长不同功能的AI代理程式,封装成Wasm元件,放入到一只本地端软体中来协同作业。也有助于建立一套统一的套件管理方式,来管理由不同第三方、不同技术所开发的AI代理程式。
AI代理开发工具在2024年开始成熟,结合Wasm,可以封装出档案超小的AI代理程式,更容易部署到本地端,提供及时反应、离线可用的多AI代理型协作应用。生成式AI应用百花齐放的2025年,庞大AI推论需求,将加速云原生明日之星Wasm加速普及,成为企业IT必须熟悉的开发主流之一。