解决Mac内存不足问题:Ornith-1.0-35B-OptiQ-6bit专家流技术让16GB设备也能流畅运行
【免费下载链接】Ornith-1.0-35B-OptiQ-6bit项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/Ornith-1.0-35B-OptiQ-6bit
Ornith-1.0-35B-OptiQ-6bit是一款基于Qwen3.5-35B-A3B架构构建的35B稀疏MoE模型的6位混合精度MLX量化版本,专为解决Mac设备内存不足问题而生,通过创新的专家流技术,让16GB设备也能流畅运行大语言模型。
为什么Mac运行大模型总是内存不足?
Mac设备尤其是16GB内存的机型,在运行大语言模型时常常面临内存不足的困境。传统大模型如35B参数的模型,其bf16权重通常需要70GB左右的内存空间,这对于内存有限的Mac来说几乎是不可能完成的任务。而Ornith-1.0-35B-OptiQ-6bit的出现,为这一问题带来了有效的解决方案。
Ornith-1.0-35B-OptiQ-6bit如何实现内存优化?
混合精度量化技术
Ornith-1.0-35B-OptiQ-6bit采用了先进的混合精度量化技术,将敏感层保持在8位,而将稳健层降低到4位。这种策略使得原本70.2GB的bf16权重压缩至仅27GB,大大降低了内存占用。其量化细节如下:
| Property | Value |
|---|---|
| Predominant precision | 6-bit |
| Layers at 8-bit (sensitive) | 448 |
| Layers at 4-bit (robust) | 63 |
| Total quantized layers | 511 |
| Group size | 64 |
| Experts | 256 routed, 40 layers |
| Vision tower | bf16, 333 tensors, inoptiq/optiq_vision.safetensors |
| Size on disk | 27 GB, from a 70.2 GB bf16 base |
创新的专家流技术
在27GB的大小下,该模型在36GB内存的Mac上运行舒适,对于内存更小的设备,则通过SSD专家流技术实现流畅运行。该技术将注意力、路由器和嵌入保留在内存中,当路由器选择专家时从磁盘读取路由的专家。当模型不适合RAM时,optiq serve会自动开启该功能,也可通过--stream-experts强制开启。
快速上手:在Mac上安装与使用Ornith-1.0-35B-OptiQ-6bit
准备工作
首先,确保你的Mac设备满足基本要求,然后通过以下命令克隆仓库:
git clone https://gitcode.com/hf_mirrors/mlx-community/Ornith-1.0-35B-OptiQ-6bit服务端部署
通过以下命令安装并启动服务,体验OpenAI兼容的端点,该端点接受图像内容部分,并具有混合精度KV缓存、工具调用修复和提示缓存功能:
pip install mlx-optiq optiq serve --model mlx-community/Ornith-1.0-35B-OptiQ-6bit --stream-experts文本生成
如果你只需要进行文本生成,可以使用mlx-lm,安装命令如下:
pip install mlx-lm然后使用以下Python代码进行文本生成:
from mlx_lm import load, generate model, tokenizer = load("mlx-community/Ornith-1.0-35B-OptiQ-6bit") prompt = tokenizer.apply_chat_template( [{"role": "user", "content": "Explain the difference between TCP and UDP."}], add_generation_prompt=True, tokenize=False) print(generate(model, tokenizer, prompt=prompt, max_tokens=512))这是一个推理模型,它会在回答前进行思考,因此请给它足够的max_tokens来完成回答。
图像理解
若要进行图像输入,需要安装mlx-optiq,它会加载bf16视觉侧车并将合并的嵌入提供给量化的语言塔。在大型MoE上,启动服务并发送图像内容部分:
import base64, json, urllib.request b64 = base64.b64encode(open("photo.jpg", "rb").read()).decode() body = {"model": "x", "max_tokens": 512, "messages": [{"role": "user", "content": [ {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64," + b64}}, {"type": "text", "text": "What is in this image?"}]}]} req = urllib.request.Request("http://127.0.0.1:8080/v1/chat/completions", data=json.dumps(body).encode(), headers={"Content-Type": "application/json"}) print(json.load(urllib.request.urlopen(req))["choices"][0]["message"])总结
Ornith-1.0-35B-OptiQ-6bit通过混合精度量化和专家流技术,成功解决了Mac设备运行大模型时的内存不足问题,让16GB设备也能流畅体验强大的AI能力。无论是文本生成还是图像理解,它都能提供出色的性能,是Mac用户的理想选择。
量化不会改变基础模型的行为或对齐方式,请在与原始模型相同的条款下使用它。
【免费下载链接】Ornith-1.0-35B-OptiQ-6bit项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/Ornith-1.0-35B-OptiQ-6bit
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考