AI News HubLIVE
站内改写4 分钟阅读

探索Ubuntu Core 26:构建本地AI推理设备

本文介绍了如何使用Multipass在虚拟机中运行Ubuntu Core 26,并通过安装gemma4 snap将其转变为本地AI推理设备。文章详细说明了从启动虚拟机、安装AI推理snap、配置服务、访问WebUI到理解生产部署流程的全过程。Ubuntu Core提供安全、最小化的操作系统,AI工作负载通过snap交付,便于更新与管理。

来源Hacker News AI作者: jruohonen

欢迎来到本系列博客,该系列旨在探索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 aibox

Ubuntu 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等项目,我们还为更多项目贡献人员、代码和资金。

阅读我们支持的项目 ›