从文本到图像:Ornith-1.0-35B-OptiQ-6bit多模态能力实战教程(附Python代码示例)
从文本到图像:Ornith-1.0-35B-OptiQ-6bit多模态能力实战教程(附Python代码示例)
【免费下载链接】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量化技术,将原本70.2 GB的bf16权重压缩至仅27 GB,同时保留了图像输入能力,是在Apple Silicon设备上本地运行多模态大模型的理想选择。
🚀 模型核心特性解析
突破性的量化技术
Ornith-1.0-35B-OptiQ-6bit采用了创新的混合精度量化方案,敏感层保持8位精度,而稳健层则使用4位精度,在性能与效率间取得完美平衡:
| 特性 | 数值 |
|---|---|
| 主要精度 | 6-bit |
| 8位敏感层数量 | 448 |
| 4位稳健层数量 | 63 |
| 总量化层数 | 511 |
| 分组大小 | 64 |
| 专家数量 | 256个路由,40层 |
| 视觉塔 | bf16精度,333个张量(存储于optiq/optiq_vision.safetensors) |
| 磁盘大小 | 27 GB(原始bf16模型为70.2 GB) |
强大的多模态能力
模型保留了完整的视觉理解能力,视觉塔以bf16精度单独存储,能够同时处理文本和图像输入,实现跨模态理解与生成。这使得Ornith不仅能进行文本对话,还能分析图片内容、生成图像描述等复杂任务。
💻 快速开始:环境准备
硬件要求
- 推荐配置:36 GB内存的Mac设备(可舒适运行)
- 最低配置:支持SSD专家流的设备(通过将部分专家从磁盘动态加载实现运行)
安装必要工具
根据使用场景选择以下安装命令:
基础文本生成
pip install mlx-lm多模态支持(含图像输入)
pip install mlx-optiq📝 文本生成实战
简单文本对话
使用mlx-lm库加载模型并进行文本生成:
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": "解释TCP和UDP的区别。"}], add_generation_prompt=True, tokenize=False ) # 生成响应(注意:这是推理模型,建议设置足够的max_tokens) response = generate(model, tokenizer, prompt=prompt, max_tokens=512) print(response)对话模板说明
模型使用的对话模板定义在chat_template.jinja文件中,确保按照模板格式构造对话历史,以获得最佳交互效果。
🖼️ 图像理解实战
要使用Ornith的图像理解能力,需要通过mlx-optiq启动服务端点,然后发送包含图像的请求:
启动服务
optiq serve --model mlx-community/Ornith-1.0-35B-OptiQ-6bit --stream-experts发送图像请求
import base64 import json import urllib.request # 读取并编码图像文件 with open("photo.jpg", "rb") as image_file: b64_image = base64.b64encode(image_file.read()).decode() # 构造请求体 request_body = { "model": "x", "max_tokens": 512, "messages": [ { "role": "user", "content": [ {"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{b64_image}"}}, {"type": "text", "text": "这张图片里有什么?"} ] } ] } # 发送请求到本地服务 req = urllib.request.Request( "http://127.0.0.1:8080/v1/chat/completions", data=json.dumps(request_body).encode(), headers={"Content-Type": "application/json"} ) # 获取并打印响应 response = json.load(urllib.request.urlopen(req)) print(response["choices"][0]["message"]["content"])⚙️ 高级配置选项
生成参数调整
模型的默认生成配置存储在generation_config.json中,主要参数包括:
temperature: 控制输出随机性(默认1.0)top_k: 采样候选词数量(默认20)top_p: 核采样概率阈值(默认0.95)
在代码中可以通过generate函数的参数覆盖这些配置:
generate( model, tokenizer, prompt=prompt, max_tokens=512, temperature=0.7, # 降低随机性,使输出更确定 top_p=0.9 # 调整核采样阈值 )专家流模式
对于内存有限的设备,可以强制启用专家流模式,仅将注意力机制、路由和嵌入层保留在内存中,根据路由动态从磁盘加载专家:
optiq serve --model mlx-community/Ornith-1.0-35B-OptiQ-6bit --stream-experts📚 模型结构与文件说明
Ornith-1.0-35B-OptiQ-6bit的文件结构设计清晰,所有OptiQ特定文件都存放在optiq/子文件夹中:
- 模型权重:以分片形式存储(model-00001-of-00006.safetensors至model-00006-of-00006.safetensors)
- 量化配置:config.json包含详细的量化参数和模型架构信息
- 视觉塔权重:optiq/optiq_vision.safetensors存储图像理解相关参数
- 分词器文件:tokenizer.json和tokenizer_config.json用于文本处理
🔍 模型验证与质量保障
发布前已对文本推理、算术推理和图像理解能力进行了全面测试。量化过程不会改变基础模型的行为或对齐特性,使用时请遵守与原始模型deepreinforce-ai/Ornith-1.0-35B相同的使用条款。
如需了解基础架构的性能指标,可参考Qwen3.5-35B-A3B OptiQ卡片。
📦 获取模型
通过以下命令克隆完整仓库:
git clone https://gitcode.com/hf_mirrors/mlx-community/Ornith-1.0-35B-OptiQ-6bitOrnith-1.0-35B-OptiQ-6bit凭借其高效的量化技术和强大的多模态能力,为Apple Silicon用户提供了在本地运行大型语言模型的绝佳选择。无论是文本生成、图像理解还是复杂推理任务,都能以高效的方式完成,无需依赖云服务。
祝您好运,探索AI的无限可能!✨
【免费下载链接】Ornith-1.0-35B-OptiQ-6bit项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/Ornith-1.0-35B-OptiQ-6bit
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考