探索Ubuntu Core 26:构建本地AI推理设备
本文介绍了如何使用Multipass在虚拟机中运行Ubuntu Core 26,并通过安装gemma4 snap将其转变为本地AI推理设备。文章详细说明了从启动虚拟机、安装AI推理snap、配置服务、访问WebUI到理解生产部署流程的全过程。Ubuntu Core提供安全、最小化的操作系统,AI工作负载通过snap交付,便于更新与管理。
欢迎来到本系列博客,该系列旨在探索Ubuntu Core的创新应用。在此系列中,Canonical的工程师将展示如何利用Core 26版本构建各种系统,并重点介绍可用的功能与工具。
在第一篇博客中,Canonical工业团队工程经理Farshid Tavakolizadeh将演示如何通过Multipass在虚拟机中尝试Ubuntu Core 26,并将其转变为本地AI推理设备。在虚拟机中运行Ubuntu Core是开发者转向专用硬件前进行实验的理想起点。您可以探索Ubuntu Core环境、安装snap、将服务暴露给宿主机,并测试设备式体验在生产中的运作方式。
通过本博客,您将学会如何使用Multipass启动Ubuntu Core 26、安装本地AI推理snap、从宿主机访问其WebUI,并理解此工作流程如何映射到生产环境的Ubuntu Core镜像。
为何从虚拟机中的Ubuntu Core开始?
Ubuntu Core专为生产设备设计:包括家电、网关、机器人、信息亭、工业系统和边缘AI产品。在实际部署中,通常会构建包含所需snap、配置、权限和更新策略的自定义Ubuntu Core镜像。
虚拟机提供了一种快速探索系统的方法。您可以在笔记本电脑上启动Ubuntu Core,安装应用snap,测试服务,并在投入板卡或生产镜像之前了解各组件如何协同工作。
Multipass为此提供了简单路径。它集成了对Ubuntu Core镜像的支持,并可用一条命令启动Ubuntu Core虚拟机,非常适合实验、演示和本地开发。
将虚拟机转变为本地AI设备
我们将使用Ubuntu Core创建本地AI推理设备。核心思路很简单:Ubuntu Core提供安全、最小化、类设备的操作系统,而AI工作负载以snap形式交付。
本例中,我们使用gemma4推理snap。
由于AI推理需要比最小化shell测试更多的资源,我们启动一个具有额外CPU、内存和磁盘的虚拟机:
multipass launch core26 -n aibox --cpus 4 --memory 10GB --disk 16GB然后进入实例:
multipass shell aiboxUbuntu Core实例在首次启动后可能自动更新并重启,这是Ubuntu Core的一部分:基础系统和snapd被管理、更新并保持可靠。
现在安装AI推理snap:
sudo snap install gemma4这将为机器安装最合适的运行时和模型。
检查推理端点
安装后,gemma4作为托管snap服务运行。可使用以下命令检查状态:
gemma4 status输出包括活动引擎、服务和端点:
engine: cpu
services:
server: active
server-webui: active
endpoints:
openai: http://localhost:8336/v1
webui: http://localhost:8337/此时,推理服务器和WebUI在Ubuntu Core实例内运行。
但请注意,这里的localhost指的是Ubuntu Core虚拟机,而非宿主机。因此,虽然服务已激活,但笔记本电脑上的浏览器尚无法直接访问。
为使推理服务器和WebUI可从宿主机访问,需配置服务监听VM的网络接口:
sudo gemma4 set http.host=0.0.0.0 webui.http.host=0.0.0.0 --assume-yes然后,从宿主机查找VM的IP地址:
multipass info aibox输出包含IPv4地址:
Name: aibox
State: Running
Snapshots: 0
IPv4: 10.100.120.150
Release: Ubuntu Core 26使用IPv4地址访问推理服务器和WebUI,本例中为10.100.120.150。
推理服务器的API可在 http://<IP>:8336/v1 访问,这是一个兼容OpenAI的API,可与多种客户端配合使用。您可以使用cURL等HTTP客户端发送提示:
curl http://10.100.120.150:8336/chat/completions -H "Content-Type: application/json" -d '{
"messages": [{"role": "user", "content": "What is the meaning of ubuntu?"}],
"max_completion_tokens": 100
}'当然,在终端中通过OpenAI API进行实验并不有趣。gemma4 snap提供的WebUI是更好的入口。在浏览器中打开 http://10.100.120.150:8337 即可尝试。
您还可以将API与Open WebUI或OpenCode等工具集成以进行更多操作。
现在,您已拥有了一个运行在Ubuntu Core中的AI推理界面。
这证明什么?
此示例虽在虚拟机中运行,但其架构与实际设备的模式相同。
Ubuntu Core基础系统与应用工作负载保持分离。AI服务器以snap形式交付。WebUI作为托管服务交付。推理端点在Ubuntu Core环境内运行。配置通过snap选项应用,而非手动编辑系统文件。
换言之,您不仅仅是在安装一个软件包,而是在组装一个设备的基础。
这很重要,因为生产设备很少通过一次一条命令来管理。成品需要可预测的启动体验、受控的服务、可靠的更新以及操作系统与应用层之间的清晰界限。
Ubuntu Core提供了这一界限。
从本地实验到生产镜像
手动安装gemma4对开发有用,但通常不是产品交付的方式。
在生产部署中,AI snap及其配置通常应包含在自定义的Ubuntu Core镜像中。该镜像由模型断言描述,定义构成设备镜像的snap,包括必需或可选的应用snap。
采用这种方法,设备启动后直接进入您设计的体验。
用户无需手动安装snap,无需登录Core实例,也无需了解推理端点如何配置。产品启动时即具备正确的snap、服务、权限和默认设置。
这正是Ubuntu Core的强大之处:您在虚拟机中测试的同一工作流程可以演变为用于硬件、生产线、演示、客户试点或车队部署的可重复产品镜像。
长期管理设备
设备部署后,工作并未结束。
您可能需要更新AI模型、修复推理服务器中的CVE、调整配置或向不同客户部署具有不同工作负载的同一镜像。
Ubuntu Core专为此生命周期设计。应用snap可独立于基础系统更新。更新是事务性的。如果出现问题,系统可回滚到已知良好状态。
对于大规模部署,snap也可通过车队管理进行安装、配置和管理。Landscape为Ubuntu部署(包括IoT设备)提供集中管理。
这为开发者提供了灵活路径:从第一天起将体验构建到镜像中,或稍后在整个车队中管理和演进应用snap。
下一步?
通过Multipass,您可以在几分钟内启动Core虚拟机。通过snap,您可以安装和管理真实工作负载。通过gemma4,您可以将该虚拟机转变为本地AI推理设备,同时暴露API端点和Web服务器。
这是一个小示例,但它展示了更大的模式。
您可以将应用与基础系统分离,以托管方式运行服务,配置产品体验。当准备就绪时,您可以从预构建的VM镜像转向由您自己的模型断言定义的自定义Ubuntu Core镜像。
以下是一些进一步阅读的有用链接:
- [发现推理snaps](https://ubuntu.com/blog/ubuntu-core-26-ai-box#)
- [在Ubuntu Core上开始使用AWS IoT Greengrass](https://ubuntu.com/engage/iot-greengrass-ubuntu-core)
- [在Ubuntu Core上开始使用Azure IoT Edge](https://ubuntu.com/engage/iot-edge-ubuntu-core)
开源是我们的使命
我们相信开源软件的力量。除了推动Ubuntu等项目,我们还为更多项目贡献人员、代码和资金。
阅读我们支持的项目 ›