三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

从文本到图像:Ornith-1.0-35B-OptiQ-6bit多模态能力实战教程(附Python代码示例)

从文本到图像: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-6bit

Ornith-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),仅供参考

← 返回列表