llmfit 如何用 --force-runtime 在 Apple Silicon 上强制 llama.cpp 推荐替代自动 MLX?
2026/9/11 4:46:24 网站建设 项目流程

llmfit 如何用 --force-runtime 在 Apple Silicon 上强制 llama.cpp 推荐替代自动 MLX?

【免费下载链接】llmfitHundreds of models & providers. One command to find what runs on your hardware.项目地址: https://gitcode.com/GitHub_Trending/ll/llmfit

在 Apple Silicon 机器上运行 llmfit 做模型适配分析时,运行时选择是自动的:系统会优先给出 MLX 的推荐结果。如果你的目标是 llama.cpp——比如已经部署了 llama-server,或需要 GGUF 量化路线——就需要用--force-runtime覆盖这个自动选择,让 llmfit 按 llama.cpp 运行时重新出推荐列表。本文覆盖这个操作在 CLI 和 REST API 两条路径上的完整执行方式与验证方法。

--force-runtime覆盖的是什么

llmfit 在分析时会自动选择一个推理运行时,force_runtime的作用是“override automatic runtime selection during analysis”(覆盖分析过程中的自动运行时选择),文档给出的典型例子就是在 Apple Silicon 上拿到 llama.cpp 推荐而不是 MLX。取值范围为mlx|llamacpp|vllm(来源:docs/cli.md、API.md)。

核心逻辑在 llmfit-core/src/fit.rs 中:提供force_runtime时优先采用它,否则走自动选择。对 Apple Silicon 硬件本身,llmfit 通过system_profiler读取统一内存,VRAM 即系统 RAM(见 docs/how-it-works.md),所以强制切换运行时不会改变内存检测,只改变按哪条运行路径出推荐。

主路径:CLI 命令

前置条件只有已安装的 llmfit CLI。recommend子命令默认输出 JSON,直接执行:

# 强制 llama.cpp 运行时,获取推荐列表 llmfit recommend --force-runtime llamacpp

按使用场景收窄结果(均为 docs/cli.md 中的原始示例):

# 只看编码场景,限制返回 3 条 llmfit recommend --force-runtime llamacpp --use-case coding --limit 3

可组合的其他参数:

  • --use-case general|coding|reasoning|chat|multimodal|embedding:按用途过滤;
  • --limit(默认 5):返回条数;
  • --min-fit perfect|good|marginal(默认marginal):最低适配等级;
  • --runtime mlx|llamacpp|any:按运行时过滤推荐项,与--force-runtime分属两层——前者是结果过滤,后者是分析时覆盖自动选择。

注意区分:--runtime只是从结果里筛选运行时列,而--force-runtime改变的是分析阶段本身选用的运行时。标题场景(Apple Silicon 上自动选 MLX、你想要 llama.cpp)需要的是后者。

验证推荐结果

recommend默认输出 JSON,字段包含namefit_levelrun_modescoreestimated_tpsmemory_required_gbbest_quantruntime等(见 llmfit-tui/src/main.rs 中recommend的字段说明)。核对方法:

  1. 确认每条模型的runtime字段为llamacpp,而不是不加参数时在 Apple Silicon 上常见的mlx
  2. 对照fit_levelmemory_required_gb/memory_available_gb判断该模型在你的统一内存上是否可运行。

如果怀疑硬件检测本身有问题,可以另开一条命令查看检测到的系统规格:

llmfit system

可选路径:REST API 参数force_runtime

如果你在跑llmfit serve(节点级 REST API),同一个覆盖能力以查询参数形式提供,取值同样是mlx|llamacpp|vllm(API.md 的 Query parameters 一节):

# 启动服务(以本机 8787 端口为例) llmfit serve --host 0.0.0.0 --port 8787
# 强制 llama.cpp 运行时取 Top 5 可运行模型 curl "http://localhost:8787/api/v1/models/top?limit=5&force_runtime=llamacpp"

该参数同时作用于/api/v1/models/api/v1/models/top。传入非法值时服务端返回 HTTP 400,错误信息形如invalid force_runtime value: use mlx|llamacpp|vllm

限制与注意事项

  • 不能与--profile组合--profile(硬件画像)与--force-runtime目前不能同时使用,CLI 会直接报错--profile cannot be combined with --force-runtime yet(docs/cli.md 的 Limitations 一节与 llmfit-tui/src/main.rs 的报错文案)。serve 在--profile模式下运行时,请求里的force_runtime同样会被拒绝(见 llmfit-tui/src/serve_api.rs)。需要模拟别的机器时,只能二选一。
  • 版本:该 flag 在 v0.9.7 加入(CHANGELOG.md),如果你的安装版本更早,命令会提示未知参数,需升级 llmfit。
  • MLX 与 llama.cpp 的模型来源不同:MLX 路线的下载映射到 HuggingFace 上的mlx-community/*仓库,而 llama.cpp 路线面向 GGUF(见 docs/providers.md)。强制切换到llamacpp后,选模型和拉取模型都要按 GGUF 来源执行。

--force-runtime llamacpp只影响分析时的运行时选择,不改变硬件检测、评分维度和内存估算公式;拿到结果后,estimated_tpsestimate_confidence字段仍可用来判断该估算来自实测还是纯公式。

【免费下载链接】llmfitHundreds of models & providers. One command to find what runs on your hardware.项目地址: https://gitcode.com/GitHub_Trending/ll/llmfit

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询