共 0 条
最近在写本地 AI 应用,主要想解决云端 Token 消耗大和隐私泄露的问题。我的配置是 M1 Mac (16GB),目前对模型生成质量(如绝对准确性)要求不高。但有token消耗和隐私要求
通过 huggingface-cli 建立本地模型仓库。可以实现断点续传和精确的版本控制。
使用 Hugging Face CLI 可以更方便地从 huggingface.co(模型界的 GitHub)下载和管理模型。
bash# 安装工具 brew install huggingface-cli # 推荐在 .zshrc 配置镜像加速(解决国内连接问题) export HF_ENDPOINT="https://hf-mirror.com" # 仅下载 Q4_K_M 规格的 GGUF 文件(性价比最高的量化格式) hf download Qwen/Qwen2.5-7B-Instruct-GGUF \ --include "*q4_k_m.gguf" \ --local-dir ./models/qwen2.5-7b
开发者首选
bash# 安装与运行一键式体验 brew install llama.cpp # 启动网页版+OpenAI 兼容的 API 服务 llama-server -m qwen2.5-1.5b-instruct-q4_k_m.gguf --port 8080 # 极速推理:-ngl 99 将所有模型层挂载至 GPU 加速 llama-cli -m ./qwen2.5-1.5b-instruct-q4_k_m.gguf -ngl 99 -p "你是谁?"
bash➜ ~ curl http://localhost:8080/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "qwen2.5-1.5b-instruct-q4_k_m.gguf", "messages": [{"role": "user", "content": "你好"}] }' {"choices":[{"finish_reason":"stop","index":0,"message":{"role":"assistant","content":"你好!有什么问题我可以帮助你吗?"}}],"created":1770606395,"model":"qwen2.5-1.5b-instruct-q4_k_m.gguf","system_fingerprint":"b7960-db6adb3c8","object":"chat.completion","usage":{"completion_tokens":10,"prompt_tokens":30,"total_tokens":40},"id":"chatcmpl-FTJnPHHWp5Jj0tklEUkj4tDDLVYXcFWp","timings":{"cache_n":29,"prompt_n":1,"prompt_ms":68.001,"prompt_per_token_ms":68.001,"prompt_per_second":14.705666093145688,"predicted_n":10,"predicted_ms":121.87,"predicted_per_token_ms":12.187000000000001,"predicted_per_second":82.0546483958316}}%
零门槛体验,如果你偏好图形界面,LM Studio 是目前本地 LLM 客户端的“天花板”,支持一键搜索、下载并配置模型。
在 M1 + 16GB 的硬件限制下,盲目追求大参数只会带来漫长的等待。
4-bit 或 Q4_K_M 格式的模型。这能将模型大小压缩至 3-4GB,在精度损失极小的前提下,确保模型能在你的设备上流畅运行。
我下载了4个模型,具体还在体验中,不过吐字是非常快的。效果还在测评中。| 维度 | Python (MLX / PyTorch) | Rust (Candle / llama-cpp-rakane) |
|---|---|---|
| 优势 | 算法库生态无敌,原型开发极快。 | 内存安全、无运行时、二进制包极小。 |
| 适用场景 | 内部脚本、数据科学、快速验证。 | 需要分发的桌面端、轻量级 CLI 工具。 |
| 性能 | 依靠底层 C++/Metal,表现良好。 | 极致性能,极低的冷启动开销。 |
| 自部署模型一般是用来自己开发本机的项目,可以选择python或者rust,如果是应用推荐用python实现,如果需要分发软件包建议用rust |
rust的优势是可以打包成可直接运行,利于分发。模型则用户自己去下载。可以做一些有意思的应用,比如tarui cli都很有意思.
本地小模型在“实用上下文长度”上,与云端大模型存在本质差异。
| 特性 | 云端大模型 (Claude / Gemini) | 本地小模型 (M1 Mac) |
|---|---|---|
| 上下文上限 | 200k - 2M (海量记忆) | 实际 8k - 32k (短途记忆) |
| 性能波动 | 相对恒定 | 随 Token 长度指数级衰减 |
| KV Cache | 云端分布式存储 | 吞噬你的统一内存 |
根本瓶颈:
Q:为什么编译 llama.cpp 报错,或者找不到编译器?
A: macOS 升级(如从 14 升到 15)常会把 CommandLineTools 搞成“半残状态”。
bash
# 彻底删除旧工具
sudo rm -rf /Library/Developer/CommandLineTools
# 重新触发安装弹窗
xcode-select --install