
llamafile 是 Mozilla.ai 出品的开源项目,官方定位一句话:「llamafile lets you distribute and run LLMs with a single file」。它把 llama.cpp 推理引擎与 Cosmopolitan Libc 打包成一个跨平台可执行文件,下载后 chmod +x 就能跑,不需要 Python、不需要 CUDA Toolkit、不需要 Docker。本文基于官方 README 的 Quick Start 章节,带你在 macOS / Linux / Windows 上跑起第一个 llamafile。
一、项目介绍与适用场景
llamafile 是一个单文件本地推理运行时:一个 .llamafile 文件里同时包含推理引擎和模型权重,拷到任何电脑上双击/命令行执行即可。它底层基于 llama.cpp,但用 Cosmopolitan Libc 把编译产物做成了「fat binary」,同一份文件在 macOS、Linux、Windows、BSD 上都能跑。
典型场景:
- 给非技术朋友发模型:一个文件微信传过去,对方双击就能聊天。
- 离线环境演示:不装任何依赖的机器上跑模型。
- 跨平台分发:一份文件兼容 Windows / Mac / Linux。
- Whisperfile 语音转写:官方还提供单文件版 whisper.cpp,做音频转写。
二、核心功能逐条拆解
- 单文件分发:引擎 + 权重打包成一个文件,官方 README 强调「no installation」。
- 跨平台:macOS、Linux、Windows、BSD 同一二进制。
- 基于 llama.cpp:自动利用 CPU AVX2/AVX-512,macOS 上用 Metal。
- 内置 Web 服务器:启动后自动开浏览器提供 ChatGPT 风格界面。
- Whisperfile:同思路打包的单文件语音转写工具。
- v0.10 新构建系统:对齐最新 llama.cpp,支持更多新模型。
三、全套官方链接
| 类型 | 链接 |
|---|---|
| GitHub 仓库 | https://github.com/Mozilla-Ocho/llamafile |
| 官方文档 | https://docs.mozilla.ai/llamafile |
| 官方 Demo | 无(本地运行软件) |
| License | Apache-2.0(项目);对 llama.cpp/whisper.cpp 的改动为 MIT |
四、硬件与环境前置要求
官方 README 未列最低配置,实际:
- CPU:任何支持 x86_64 或 ARM64 的现代 CPU(官方靠 Cosmopolitan 跨架构)。
- 内存:跑 Qwen3.5-0.8B 约 1GB;7B Q4 模型约 5GB 内存。
- 磁盘:模型文件本身大小,0.8B Q8 约 1GB。
- 系统:macOS、Linux、Windows 均可。
- Windows 限制:官方 README 明确——Windows 上只能跑 4GB 以下的可执行文件;超过 4GB 的模型需下载独立 llamafile 二进制 + 外部 GGUF 权重。
五、多平台部署步骤
以下命令逐条来自官方 README Quick Start。
5.1 macOS / Linux 部署
官方 README 原文三步:
# Download an example model (Qwen3.5 0.8B)
curl -LO https://huggingface.co/mozilla-ai/llamafile_0.10/resolve/main/Qwen3.5-0.8B-Q8_0.llamafile
# Make it executable (macOS/Linux/BSD)
chmod +x Qwen3.5-0.8B-Q8_0.llamafile
# Run it
./Qwen3.5-0.8B-Q8_0.llamafile
逐段解释:curl -LO 从 Hugging Face 下载官方打包好的 Qwen3.5-0.8B Q8 量化 llamafile;chmod +x 给执行权限;./文件名 直接运行。启动后自动在终端打印本地 Web 地址,浏览器打开即可对话。
5.2 Windows 部署
官方 README 说明:Windows 用户需要把文件重命名加上 .exe 后缀再运行,即 Qwen3.5-0.8B-Q8_0.llamafile.exe。
官方同时指出:Windows 上单文件不能超过 4GB;超过时请下载独立 llamafile 二进制(GitHub Releases 页)+ 外部 GGUF 权重文件,通过命令行参数指定权重路径。
5.3 更大模型
官方 README 指引:硬件够的话到 https://docs.mozilla.ai/llamafile/getting-started/pre-built-llamafiles 选更大的预打包模型(如 Llama 3、Qwen2.5-7B 等),同样三步运行。
5.4 用独立 llamafile 二进制 + 外部 GGUF
官方文档 quickstart 提供该方式:下载 GitHub Releases 中的 llamafile 二进制,再单独下载任意 GGUF 权重,用命令行参数指定:
./llamafile -m my-model.gguf
官方未在 README 中给出完整参数列表,详见 docs.mozilla.ai/llamafile。
六、配置文件全部参数解释
llamafile 不依赖配置文件,参数全部通过命令行传入(继承 llama.cpp 参数)。常用参数(官方文档 quickstart):
| 参数 | 作用 | 默认值 | 示例 |
|---|---|---|---|
-m |
指定模型权重文件路径 | 文件内置权重 | -m my-model.gguf |
-p |
监听端口 | 8080 | -p 9000 |
--nobrowser |
启动后不自动打开浏览器 | 自动打开 | 加上即不打开 |
-ngl |
卸载到 GPU 的层数 | 自动 | -ngl 999 |
官方未在 README 中列出完整参数表,详细列表见 docs.mozilla.ai/llamafile。
七、启动、后台常驻与开机自启
7.1 启动
直接 ./xxx.llamafile 即启动。预期终端输出 llama_model_loader: ... 加载日志,最后显示 Listening on http://localhost:8080。
7.2 后台常驻
后台运行加 nohup:
nohup ./Qwen3.5-0.8B-Q8_0.llamafile --nobrowser -p 8080 > llamafile.log 2>&1 &
7.3 开机自启
Linux 写 systemd unit;macOS 写 LaunchAgent;Windows 用任务计划。官方未提供 unit 文件。
7.4 修改端口
启动加 -p 9000,访问 http://localhost:9000。
八、功能实操教程
第 1 步:按 5.1 三步下载并运行。
第 2 步:终端显示类似 Your llama.cpp server is running! 和 Local: http://localhost:8080。
第 3 步:浏览器自动打开(或手动访问)http://localhost:8080,看到 Web 聊天界面。
第 4 步:输入「你好」,模型流式回复。
第 5 步:下载更大模型。到官方 pre-built llamafiles 页面选一个 7B 模型,重复三步运行。
第 6 步(可选):用外部 GGUF。./llamafile -m qwen2.5-7b-instruct-q4_k_m.gguf 即可加载任意 GGUF 权重。
九、全套报错故障排查
-
报错原文:
permission denied原因分析:未 chmod +x。 解决方案:chmod +x xxx.llamafile。 -
报错原文:Windows 上双击没反应 原因分析:未加
.exe后缀,或文件超过 4GB。 解决方案:重命名为.llamafile.exe;超过 4GB 用独立二进制 + 外部 GGUF。 -
报错原文:启动后浏览器打不开 原因分析:端口被占用。 解决方案:
-p 9000换端口。 -
报错原文:模型加载极慢 / 内存不足 原因分析:模型太大。 解决方案:换更小量化模型(Q8 换 Q4)或 0.8B 版本。
-
报错原文:macOS 提示「无法打开,因为无法验证开发者」 原因分析:macOS Gatekeeper 拦截未签名二进制。 解决方案:系统设置 → 隐私与安全性 → 仍要打开。
十、升级、回滚与卸载
升级:下载新版 llamafile 二进制替换即可(官方 GitHub Releases 页)。
卸载:删除 .llamafile 文件即可,无残留。
十一、商用许可与合规风险提示
llamafile 项目代码采用 Apache-2.0,对 llama.cpp/whisper.cpp 的改动采用 MIT,均可商用。注意:打包在文件里的模型权重(Qwen、Llama 等)各自有独立 License,商用前需核对模型卡。
参考链接:
- llamafile GitHub README:https://github.com/Mozilla-Ocho/llamafile
- 官方文档:https://docs.mozilla.ai/llamafile
- 预打包模型:https://docs.mozilla.ai/llamafile/getting-started/pre-built-llamafiles