Shimmy——4.8MB的轻量级本地大模型推理方案,100%兼容OpenAI API

说到本地跑大模型,很多人第一反应就是 Ollama。确实,Ollama 用起来方便,一键下载模型就能跑。但今天五哥要介绍一个更轻量的替代方案——Shimmy

Shimmy 是什么?一句话概括:一个 4.8MB 的单文件程序,提供 100% 兼容 OpenAI 的 API 接口,专门用来在本地跑 GGUF 格式的大模型。

为什么需要 Shimmy?

用云端大模型 API(比如 OpenAI、Claude)有两个问题:

  • 隐私风险:你的对话数据要上传到别人的服务器,企业敏感数据、个人隐私都不太放心
  • 费用累积:用得多了一笔一笔都是钱,尤其调试阶段反复调用,账单看着心疼

本地跑模型就没有这些问题,数据不出电脑,随便调用不花钱。而 Shimmy 的优势在于,它提供的是和 OpenAI 完全一致的 API 格式,你原来调用 OpenAI 的代码,只需要改一个地址就能切换到本地模型,一行代码都不用多写。

Shimmy vs Ollama,有啥区别?

很多人会问:我用 Ollama 不是挺好的吗?确实 Ollama 也不错,但两者的定位不太一样:

  • Ollama:自带模型库,一键拉取模型,有自己的 API 格式(虽然也兼容 OpenAI 格式),更像是一个"模型管理+推理"的一体化工具
  • Shimmy:不自带模型管理,专注做一件事——把本地 GGUF 模型包装成 OpenAI 兼容的 API 服务。体积更小(4.8MB vs Ollama 几百MB),启动更快(1-2秒),资源占用更低

而且,Shimmy 可以直接读取 Ollama 的模型目录(~/.ollama/models),两个工具可以配合使用。你用 Ollama 下载模型,用 Shimmy 提供 API 服务,完全没问题。

核心特性一览

  1. 超轻量:单文件 4.8MB,不需要 Python、Java 等运行时,下载就能用
  2. 100% OpenAI API 兼容:/v1/chat/completions、/v1/models 等接口完全对齐,支持流式响应
  3. 隐私优先:所有推理在本地完成,数据零上传
  4. 自动发现模型:启动时自动扫描 ~/.shimmy/models、~/.ollama/models、~/.cache/huggingface/hub 等目录
  5. 支持 GGUF 和 SafeTensors 格式:覆盖 90% 以上的开源模型(Llama、Mistral、Qwen、Phi 等)
  6. CPU/GPU 混合推理:支持 CUDA、Metal、OpenCL 硬件加速,没 GPU 也能跑小模型
  7. 内置工具:支持计算器、本地文件读取、HTTP 请求等工具调用
  8. 智能缓存:LRU+TTL 缓存重复查询,相同问题秒回

安装方法

方式一:下载预编译二进制(推荐)

从 GitHub Releases 页面下载对应系统的版本即可:

# Linux x86_64
curl -L https://github.com/Michael-A-Kuykendall/shimmy/releases/latest/download/shimmy-linux-x86_64 -o shimmy
chmod +x shimmy
sudo mv shimmy /usr/local/bin/

# macOS ARM64(Apple Silicon)
curl -L https://github.com/Michael-A-Kuykendall/shimmy/releases/latest/download/shimmy-macos-arm64 -o shimmy
chmod +x shimmy
sudo mv shimmy /usr/local/bin/

方式二:Cargo 安装

如果你装了 Rust 环境:

# 基础版
cargo install shimmy

# 完整版(支持 Hugging Face 缓存和工具链)
cargo install shimmy --features "huggingface tools"

方式三:Docker

docker pull michaelakuykendall/shimmy:latest
docker run -d -p 11435:11435 -v ~/my-models:/root/.shimmy/models shimmy serve

使用教程

1、准备模型

Shimmy 支持 GGUF 格式的模型文件。你可以从 Hugging Face 下载,比如:

# 创建模型目录
mkdir -p ~/.shimmy/models

# 下载一个小型模型试试(比如 Qwen2.5-1.5B-GGUF)
# 从 Hugging Face 下载 .gguf 文件放到 ~/.shimmy/models 目录即可

如果你已经在用 Ollama,Shimmy 会自动扫描 Ollama 的模型目录(~/.ollama/models),不需要重复下载。

2、启动服务

# 默认启动(端口 11435)
shimmy serve

# 自定义端口和模型目录
shimmy serve --port 8080 --model-dir /path/to/models

启动成功后,终端会显示可用模型列表和服务地址。

3、查看可用模型

# 命令行查看
shimmy list

# API 方式查看
curl http://127.0.0.1:11435/v1/models

4、调用 API

用 curl 测试:

curl -X POST http://127.0.0.1:11435/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen2.5-1.5b-instruct-q4_k_m.gguf",
    "messages": [{"role": "user", "content": "用一句话介绍一下自己"}],
    "max_tokens": 100,
    "temperature": 0.7
  }'

用 Python 调用(和 OpenAI SDK 完全一样):

from openai import OpenAI

# 只需要改 base_url,其他代码和调用 OpenAI 一模一样
client = OpenAI(
    api_key="随便填",
    base_url="http://127.0.0.1:11435/v1"
)

response = client.chat.completions.create(
    model="qwen2.5-1.5b-instruct-q4_k_m.gguf",
    messages=[{"role": "user", "content": "写一首关于编程的五言绝句"}]
)

print(response.choices[0].message.content)

性能优化技巧

  • 选对量化级别:Q4_K_M 是性价比最高的选择,精度和体积平衡得好
  • MOE 模型 CPU 卸载:跑 Mixtral 这类混合专家模型时,加 --moe-offload 参数可以省 30%-50% 显存
  • 开启缓存:重复提问场景下,缓存可以让响应速度快 10 倍以上
  • 多实例负载均衡:企业多人使用场景,可以启动多个 Shimmy 实例做负载均衡

适合什么人用?

  • 开发者:本地调试 LLM 应用,不用花钱调云端 API,改个 base_url 就能切回线上
  • 企业用户:敏感数据不能出内网,在内网服务器部署 Shimmy,员工用现有工具直接调用
  • 学生/研究者:低成本实验不同开源模型,对比效果,不花一分钱
  • 隐私党:就是不想让对话数据上传,本地跑本地用,安心

总结

Shimmy 不是要取代 Ollama,而是提供了一个更轻量、更专注的选择。如果你只需要一个 OpenAI 兼容的本地 API 服务,不想装一堆依赖,Shimmy 值得一试。

4.8MB 的体积,1-2 秒启动,100% OpenAI 兼容——这可能是目前最轻的本地大模型推理方案了。

项目地址:https://github.com/Michael-A-Kuykendall/shimmy

上一篇 GitHub 上的索引之王:awesome——帮你找到所有优质资源列表