大家好,欢迎收看今天的节目。我们要体验的是 ZimaBoard 2(Zima Board Deux number two),这是一台微型电脑。在这个视频中,我们将主要测试它在人工智能方面的表现如何。我们将在本地运行一些模型,并向大家展示其性能。顺便一提,我们还将对比 Ollama 和 Llama.cpp,看看哪一个表现更好。剧透一下:以字母“O”开头的那个(指 Ollama)表现并不太理想。
但请看这里,它有一个 PCIe 插槽,所以如果你愿意,实际上可以插入一张显卡。哇哦!你不仅拥有一个以太网口,而是拥有两个。还有 USB-C 接口,以及类似显示器输出的端口。在这一侧这里,你甚至拥有 SATA 接口,所以实际上你可以组建 RAID(磁盘阵列)。它附带一个硬盘笼,你确实可以将其组装起来并在里面放入硬盘,以及所有这类疯狂的功能。
甚至,看看这里,有一个风扇插口,所以你可以实际安装它。它是为 DIY 爱好者和折腾者设计的。你确实可以拧开螺丝,安装风扇。你知道什么吗?我打算先直接裸机运行它,看看它能做到多好,是否会过热,会出现什么情况。是否有降频?仅从规格来看,看这里,“高性能单板服务器”,比上一代快三倍。
它拥有 16GB 的内存(memorandios,此处应为 memory)。所以这对我们来说很好。LPDDR4 4800 MHz。我们将看看能从中获得什么样的性能。基本上,我现在就要把它插上去,然后我们要看这家伙启动有多快。所以,HDMI 2 已经可用了。我们将在那里启动它。
然后它会显示我的 IP 地址。所以,如果你担心需要为这个配备专用显示器,你不需要为此担忧。这主要是一个基于 Web UI 的情况。所以,我们将进入这里,这就是你得到的界面。你会看到活动监控正好在中间位置。
有一个应用商店,里面有大量可安装的应用程序。它们主要都是基于 Docker 的,所以全部都在其自己的小目录中虚拟化运行。你不必担心数据溢出之类的事情。保护你的资源,所以你有 Wallabag、Tailscale(twin gate 应为 Tailscale)、Thread Thing(可能指某种线程同步工具或误译,保留原意)、Sync 功能、Plex、Pi-hole,是的。
带有 Nvidia GPU 的 Ollama,带有 Nvidia GPU 的 Ollama(重复提及),OpenHands,所以你将所有这些代理式 AI 应用程序都内置在这个操作系统中,并且一切都可以被使用。
所以,我想我们应该开始使用的第一个应用程序是 Ollama。现在,你可以点击这里的“通过 Ollama 安装”,那将安装一个非常旧版本的 Ollama,而对于大多数最新的模型,它会说:“我不能支持这个。”但是,你也可以使用 Docker 直接安装最新版本的 Ollama。
所以我想我现在要做的是跳入深水区,向你展示使用最新版 Ollama 和 Llama.cpp 所能获得的性能。然后如果你在看视频结尾时喜欢它,我会实际向你展示如何安装以及所有这类东西。
所以我要去这里的设置中,然后滚动到底部并选择开发者模式。为了做到这一点,因为你需要启用 SSH 访问,这允许你使用终端远程登录,并为此运行 Docker 命令。
这里也有一个用于此的 Web UI。你可以按加号,安装自定义应用,并填写它。我更喜欢稍微去终端操作一下,这样我就确切知道我在做什么。但是是的,你只需要提供 Docker 镜像、标签 latest(最新)、应用名称 Ollama,以及所有这类东西。
所以我只是要通过 SSH 登录。但请记住,如果你不使用 SSH,请尝试禁用它,因为如果你能登录,那就意味着其他人也能登录,以及所有这类情况。
所以,当你确实启用了 SSH 时,它的一个酷之处在于它有一个基于 Web 的终端。所以如果你的系统不支持通过 SSH 登录,你可以直接使用网页进行 SSH。
为了安装 Ollama,有这条命令:sudo docker run -d -v ollama。这是最新版本。所以如果我去我的 IP 地址,你可以看到 Ollama 正在运行。
使用 Ollama 的方式主要是发起 curl(请求)调用。所以,如果我想获取 Llama 3.2 1b 的基础版本,我会使用 curl 直接下载它。我给出我的 IP 地址和 API pull(拉取),然后我给出模型,即 Llama 3.2 1b。
确保我已经下载了它,然后为了发起某种推理的 API 请求,你只需执行一个 API chat(聊天)请求。这个用户说“你好”,这是一个 API 调用,如果我们进入 Zima OS,我们应该看到看 CPU 开始做一些工作。
RAM(内存)在 14%,因为我们将模型加载到了内存中。看那个,我们实际上得到了一个响应。现在,如果我们禁用流式传输(streaming),对我们来说会整洁得多,这样我们实际上可以看到发生了什么。
所以我会输入 stream 并将它设为 false(假)。这样我们将直接呈现答案。现在就像即时结果一样,瞬时响应。所以 Llama 3.2 1b 超级快。
我们可以做的是执行一个更高级的 curl 请求。这个会输入到 JQ(JSON 处理器)中,这样它做一些小计算。它告诉我们每秒的 token 数,砰!我们可以以 Llama 3.2 1b 获得每秒 17.5 个 token。
现在,这是一个非常小的模型,一种可以在手机上运行的那种模型。所以它只是让我们得到一个预计时间(ETA)。我们现在想切换并尝试做稍微高级一点的事情。
所以我要切换到 Gemma 4,那个 40 亿参数的模型。所以我要拉取它,Gemma 4 e4b(此处可能指 Gemma 2B/7B 等,保留原文发音)。所以那一个实际上是一个更大得多的模型。它是 4b(十亿参数)的。
有一个 2b(二十亿参数)的版本,那一个运行快得多。我要做的是先说“你好”,以确保它是活动的,并看看它有多慢。
所以我们可以看到这里左边我们的 CPU 正在攀升,我们的 RAM(内存)在这里也在攀升,因为它正在将模型加载到内存中。这将占用相当多资源。
顺便说一下,这是 Llama(指 Ollama 运行的后端)。我们很快就会切换到 llama.cpp。它将是一个更漂亮的界面,快得多等等。但我只是我们在做 Llama(Ollama)和 llama.cpp 之间的比较,而默认情况下,Llama(Ollama)似乎是应用商店中可用的应用程序。
所以值得去做这个命令行界面或安装自定义容器,因为那样你可以获得好得多的性能。但我只是向你展示开箱即用的情况:如果你想做,不想太多折腾的话,这就是你要做的。
所以它仍在花费时间。就像我们已经有 77% 的 RAM(内存)在使用中。所以模型基本上已经加载到内存中了。我们可以看到我们的 CPU 跳升到了 99%。
一切加载完毕,推理正在进行中。我将流式输出设置为完整模式,因此它应该会直接给出包含“你好”等内容的回复。最终我们收到了响应,生成速度为每秒七个令牌。但要知道,从开始到实际生成令牌的状态,可能花费了好几分钟时间。目前模型仍驻留在内存中,占用率达到77%。如果再次运行该命令,要得到响应依然需要几分钟时间。我不清楚Ollama中的“O”具体在做什么,但它的工作表现并不理想。
虽然Ollama有一个优点是可以进行图像推理,尤其是使用Gemma 4时,但其他推理应用做得更好。这里我正在获取一张名为cat.jpeg的图片文件,通过curl命令输入该JPEG文件的Base64编码版本。执行后需要等待很长时间。如果你正在考察ZimaBoard 2,并认为它因速度过慢而无法运行本地AI,那可能正是你在使用Ollama时的感受。因此我决定停止这种无用的操作,并演示如何卸载它。
首先执行sudo docker stop Ollama停止容器,接着用sudo docker rm Ollama删除它,然后移除Ollama的卷数据。我确认其不再运行后,系统中已不存在名为Ollama的容器及相关图标,环境变得整洁。然而进入文件应用时你会发现,尽管已移除Ollama,但它下载的大量模型仍占用存储空间。由于Ollama将模型打包为一堆SHA256哈希值,你无法直接识别具体是哪个模型。
为了解决存储问题,你需要进入文件管理器并将这些残留数据移至回收站以释放空间。现在我们要转向更强大的llama.cpp工具,从Llama 3.21B模型开始。这是其Docker启动命令,随后我们登录了Web界面,加载过程几乎瞬间完成。我输入“写一个故事”的提示词,确保MCP服务器处于禁用状态后点击运行。
结果非常迅速,生成速度达到每秒30个令牌,这确实是有用的良好成果。尽管我们仍在使用较小的Llama 3.21B模型,但CPU负载很高,触摸设备时感觉非常温暖,不过并未烫手。内存方面仅占用了16GB总容量的9%。网络监控图表显示正常,Web界面持续输出令牌,目前已超过700个令牌,速度稳定在每秒25个左右。
故事终于完成了,内容关于威洛克里克的一家旧书店,描写推开吱呀作响的木门的情景。这是一个不错的故事,但该基础模型无法为你编写代码。因此我们将切换到更高级的模型。我已在下载文件夹中从Hugging Face获取了多个GGUF格式的文件,包括Gemma 4E4B。在Hugging Face上我下载的是Unsloth版本的Gemma 4E4B,你需要选择想要的量化版本。
我运行的是Q4_KN标准量化版,这是人们普遍喜欢的选择。此外,如果你想进行视觉推理,尽管过程复杂,但你还需要下载MMProj文件之一。我选择了BF16格式的MMProj文件。虽然过程复杂,但我们要深入探索以展示具体操作细节。除了Gemma 4,我们还将运行带有GPT-OSS的版本,后者仅为GGUF格式且不支持视觉推理。
为了切换模型,我们需要回到终端窗口重新运行llama.cpp。首先执行sudo docker rm llama cpp关闭当前的推理服务,然后再次启动但这次使用Gemma 4及其视觉接口文件。刷新页面后显示正在加载模型,进入Zima OS可以看到内存占用开始飙升,因为系统正从存储将数据载入RAM。
注意该设备内置存储仅为48GB,目前已使用42GB。我需要进入文件管理器清空回收站以释放空间,目前有一吉字节的数据被移至垃圾桶并删除。你不希望在原生操作系统上下载过多模型以免拖慢速度,建议添加SSD或利用端口扩展存储。刷新页面后Gemma 4加载完成,再次输入“写一个故事”提示词并开始处理。
屏幕上开始显示令牌,速度为每秒7.6个。虽然与Llama的初始生成速度相同,但Gemma 4在提示词处理或加载阶段表现更好,无需等待几分钟即可开始生成。这只“小马”还有一个绝活:我们可以启用MCP服务器,添加图片文件并输入“描述该图像”。由于需要将较大的JPEG转换为数据,提示词处理速度会稍慢。
系统显示预计耗时28秒,此时CPU负载达到100%。触摸设备时温度仍为温热状态,并未过热烫手。监测数据显示温度为56至60摄氏度,功耗仅为11瓦特。随后屏幕上开始输出令牌,速度为每秒6.3个,内容是对一张高质量戏剧性猫照片的描述。这表明我们确实成功实现了图像推理功能。
在这里点击停止,因为我们已经得到了每秒6.2个token的生成速度。我们可以在芯片上运行一些图像推理任务,目前一切都工作正常。还有一个模型是GPT-OSS,这是ChatGPT的开发者OpenAI开源发布的版本,它发布快一年了。这仍然是一个优秀的模型,比如如果你看120p版本在法律咨询方面的表现,它依然位居前十名。我不是说你要用它来寻求法律建议,但它在这些场景中得分确实很高。
我们将启动它。Instant run开始自动运行了。所以我刷新页面并点击“新建”,应该会显示正在加载模型。如果我们进入这边的屏幕,可以看到内存开始缓慢增加。就温度而言,我仍然用手握着它。也许这里不是最热的时候?毕竟我们在澳大利亚,现在是冬天中间,外面天黑了。所以温度可能比平常低一些,但如果你是在夏天使用,肯定建议安装这个风扇,以确保它运行凉爽且不会过热。
如果温度过高,就会导致热节流现象。现在看这个模型的文件情况,我们可以看到它的大小是11GB。这就是为什么加载速度稍慢的原因,但你可以看到内存已经加载完毕,我们只使用了65%的内存。所以尽管这是一个巨大的模型——对于16GB容量来说,GPT-OSS 20B确实很大——我们仍然有40%的空间可以使用。这意味着你可以运行其他Docker容器和应用本身,我会展示给你看它运行的样子。
我先确保MCP服务器是关闭的,因为这会影响我们的提示处理速度。我输入“写一个故事”,然后开始处理了。我们可以看到ZimaOS的CPU使用率在上升,内存占用为68%。如果我们看这里,速度大约在每秒8.7到8.8个token左右。虽然它比Gemma 4模型更大,但实际上运行得更快,因为它拥有的活跃参数更少。这是它的一个优点。
这个模型具有推理能力。所以它会说“我想写一个故事”,然后思考要发生什么内容。我知道在某些版本的llama.cpp中,你可以选择禁用推理功能,但在这个最新版本中没有这个选项。llama.cpp一直在变化,你可能会遇到有回归问题的错误版本,有时候也能得到好的版本。但这就是目前的情况。
你可以看到这里我们正以每秒7个以上的token速度运行GPT-OSS,它正在处理并回答情况。现在我要去操作系统看看是否注意到任何卡顿现象。我刷新这个页面,进入图库、下载、文档、媒体和备份部分。这一切似乎都在正常工作。我刷新页面,进入应用程序,然后点击这里的图像查看图片。
正如你所见,尽管我们使用了99%的CPU进行推理,但我没有注意到任何减速现象。不得不说这相当不错。Peer drop允许你为任何设备拖放文件,所以它有点像我们这个小系统中的私人云存储。当然,你还可以随时升级它。例如,你可以获得这种笼子配件,它可以插入两个硬盘驱动器。我可以像这样随意拧动它吗?也许这实际上是好的,因为这可能有助于散热。
所以这可能确实是一个有用的配件。那么大家觉得ZimaBoard 2怎么样?它更优雅、更强大,实际上可以在本地运行Gemma 4(至少是E4B版本)和GPT-OSS 20B模型。希望你们觉得这个视频有用,并享受了这次展示。