Skip to content

Latest commit

 

History

History
212 lines (141 loc) · 8.94 KB

File metadata and controls

212 lines (141 loc) · 8.94 KB

Shimmy 中文文档中心

轻量级本地 AI 推理服务器 · 兼容 OpenAI API · 永久免费

简体中文 · 繁體中文 · English

GitHub Stars 💝 赞助项目


欢迎使用 Shimmy

Shimmy 是一个用纯 Rust 编写的本地 AI 推理服务器,兼容 OpenAI API,无需云端连接,无订阅费用,永久免费

它的核心引擎 Airframe 使用 WebGPU(WGSL 计算着色器)直接在您的 GPU 上运行推理——无需 CUDA、无需 Python、无需 C++ 工具链。只需一个二进制文件,30 秒内即可运行您的第一个本地模型。


� 支持 Shimmy 的发展

🚀 如果 Shimmy 对您有帮助,欢迎赞助支持——所有赞助款项 100% 用于保持项目永久免费。

  • $5/月:咖啡档 ☕ 永久感谢 + 赞助者徽章
  • $25/月:Bug 优先处理档 🐛 优先支持 + 名字收录于 SPONSORS.md
  • $100/月:企业支持档 🏢 Logo 展示 + 每月答疑
  • $500/月:基础设施合作档 🚀 直接支持 + 路线图参与

🎯 成为赞助者 | 查看赞助者名单 🙏


�📚 文档索引

入门指南

文档 说明
用户手册(完整版) 从安装到 API 的完整中文手册(19 个章节,1200+ 行)
快速入门 5 分钟跑起来(英文,简单直接)
从 v1.x 迁移 v1 升 v2 的变更与迁移指南(英文)

核心技术深度解析

以下文档深入讲解 Shimmy 和 Airframe 引擎的内部机制,适合开发者和高级用户:

文档 说明
量化格式详解 Q4_0、Q8_0、K-quant 的位级原理,GPU 着色器如何在矩阵乘法中实时反量化
扩展上下文窗口 YaRN RoPE 缩放原理,超长上下文的显存计算,各型号配置参考
故障排查指南 GPU 错误、模型加载失败、端口冲突、OOM 等问题的诊断与修复
对话模板参考 ChatML / Llama-3 / OpenChat 三大模板族,自动识别逻辑,停止 token 说明
GPU 推理管线 无绑定架构、预填充分块、KV 缓存布局、采样链路全解析

API 与集成

文档 说明
API 参考 完整的 HTTP 接口文档(英文)
OpenAI 兼容矩阵 哪些 OpenAI 参数已支持、哪些未支持(英文)
集成示例 LangChain、OpenAI SDK、VSCode 等集成方法(英文)

模型相关

文档 说明
模型扩展协议 如何为新模型架构添加支持(英文)
跨平台编译 为 ARM、Linux、Windows 交叉编译(英文)

⚡ 30 秒快速开始

# 1. 下载模型(以 TinyLlama 为例)
# 前往 https://huggingface.co/TheBloke/TinyLlama-1.1B-Chat-v1.0-GGUF
# 下载 TinyLlama-1.1B-Chat-v1.0.Q4_0.gguf

# 2. 启动服务器
SHIMMY_BASE_GGUF=/path/to/TinyLlama-1.1B-Chat-v1.0.Q4_0.gguf ./shimmy serve

# 3. 发送请求
curl http://127.0.0.1:11435/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "local",
    "messages": [{"role": "user", "content": "你好!请介绍一下你自己。"}],
    "max_tokens": 128
  }'

就这些。无需配置文件,无需数据库,无需 Docker。


⚡ TurboShimmy INT4 KV —— v2.1.0 新功能

TurboShimmy 是 Shimmy v2.1.0 带来的纯 GPU INT4 KV 缓存压缩系统。通过 WGSL 计算着色器,将 KV 缓存从 32 位浮点数压缩为逐头向量 4 位整数,全程在 GPU 上完成。一行指令,约 7 倍 KV 显存节省,输出品质不变。

# 启用 TurboShimmy
SHIMMY_KV_QUANT=int4 ./shimmy serve

# 或通过命令行参数
./shimmy serve --kv-quant int4

# Windows + 长提示:预防 GPU TDR 重置
./shimmy serve --kv-quant int4 --prefill-chunk 8

TurboShimmy 改变了消费级 GPU 的可用范围:

GPU 显存 未启用 TurboShimmy 启用后(--kv-quant int4
3 GB 仅能运行 Llama-3.2-1B Llama-3.2-3B 可运行 ✅
4 GB Llama-3.2-3B,ctx=2048(勉强) Llama-3.2-3B,ctx=8192 ✅
6 GB 3B 模型,短上下文 7B 模型,合理上下文 ✅

显存对比(Llama-3.2-3B,ctx=2048):

模式 KV 缓存 总显存 最低显存
默认(f32) ~512 MB ~2.4 GB 3 GB(勉强)
TurboShimmy(int4) ~72 MB ~2.0 GB 2.5 GB ✅

品质验证: 在 Llama-3.2-3B 上进行的“大海捕针”基准测试表明,ctx≤2048 时 INT4 对比 F32 检索准确率零退化(各测试深度 15%〈50%〈85% 均为 100%)。详细文档:TurboShimmy Wiki


🖥️ 已验证的 GPU 支持

平台 GPU 类型 后端
Windows NVIDIA / AMD / Intel Direct3D 12
Linux NVIDIA / AMD / Intel Vulkan
macOS Apple Silicon / AMD Metal
任意平台 独显/集显 软件回退(慢)

详见故障排查指南中的 GPU 专项章节。


🤖 支持的模型格式

Shimmy 加载 GGUF 格式模型,支持以下量化类型:

格式 每权重位数 质量 推荐
Q4_K_M 4.5 位 ★★★★☆ ✅ 首选
Q4_0 4 位 ★★★☆☆ ✅ 兼容性最好
Q8_0 8 位 ★★★★★ ✅ 最高质量
Q5_0 5 位 ★★★★☆ ✅ 新增支援(v0.2.10)
Q5_K_M 5.5 位 ★★★★☆ ✅ 质量/大小平衡

详见量化格式详解


💬 常见问题

Shimmy 和 Ollama 有什么区别? Shimmy 是纯 Rust 实现,无 Python 运行时,无 C++ 依赖,启动时间不到 100ms。Airframe 引擎通过 WebGPU 而非 CUDA 直接驱动 GPU。

如何选择模型量化格式? 日常使用首选 Q4_K_M——在文件大小和推理质量之间取得了最好的平衡。若追求最高质量且显存充足,选 Q8_0。详见量化格式详解

如何在 4 GB 显存的显卡上运行 3B 模型? 启用 TurboShimmy:SHIMMY_KV_QUANT=int4 ./shimmy serve。这将 KV 显存减少约 7 倍,使 Llama-3.2-3B 能在 2.5 GB 总显存下运行。详见上方 TurboShimmy 节

上下文长度不够怎么办? 设置 SHIMMY_MAX_CTX=8192(或更高)即可,Airframe 会自动应用 YaRN RoPE 缩放。注意超出模型原生上下文 2 倍以上时质量会有所下降。详见扩展上下文窗口

启动报 GPU 错误怎么办? 运行 shimmy gpu-info 查看 GPU 适配器状态,然后参考故障排查指南

模型生成内容在奇怪的地方截断? 可能是对话模板识别错误。参见对话模板参考了解如何手动指定模板。


💝 支持项目

Shimmy 将永久免费。 如果它对您有帮助,欢迎赞助,支持持续开发:

赞助层级 金额 权益
☕ 咖啡支持者 $5/月 永久感谢 + 赞助徽章
🐛 Bug 优先处理 $25/月 优先响应 + 名字列入 SPONSORS.md
🏢 企业支持者 $100/月 Logo 展示 + 每月答疑
🚀 基础设施合作伙伴 $500/月 直接支持 + roadmap 决策权

💝 成为赞助者 · 查看赞助者名单


🐛 问题反馈与社区

欢迎提交 Pull Request。贡献指南见 CONTRIBUTING.md


本文档与主仓库同步维护。发现问题或有改进建议,欢迎提交 Issue

繁體中文文檔中心 · English Documentation