揭秘lift-oQ6:Apple Silicon上免费开源的PDF/图像结构化提取AI模型
【免费下载链接】lift-oQ6项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/lift-oQ6
想把手里的PDF发票、合同、扫描件一键变成干净的JSON数据?今天要揭秘的lift-oQ6,就是一款可以在Apple Silicon(M系列芯片)Mac上免费本地运行的PDF/图像结构化提取AI模型。它能把图片、PDF中的文字和表格内容,直接转换成符合你指定结构的 JSON 数据,全程离线、无需联网、不花一分钱。
什么是lift-oQ6:为结构化提取而生的视觉语言模型
lift-oQ6 是 9B 参数qwen3_5视觉语言模型lift的 MLX 版本转换,专门用于结构化数据提取:输入一张发票图片或 PDF 页面,输出结构严谨的 JSON。它是社区对 Datalab 开放权重做的量化版(oQ6 代表数据驱动的逐层混合精度量化,约 6 bits/权重),通过 mlx-vlm 与 tokenizer_config.json。
为什么PDF/图像提取这么难?传统方案太痛苦
过去处理票据、单据,通常靠 OCR 工具或人工录入:
- 🧩 扫描件排版混乱,OCR 输出东拼西凑
- 📄 不同供应商发票格式千差万别
- ✍️ 手写、印章、低分辨率图片识别困难
- 💸 云端 API 按次收费,数据还要上传第三方
lift-oQ6 用视觉语言模型一步到位:模型"看"图 → 理解版面 → 输出结构化 JSON,跳过传统 OCR 管线,准确率大幅提升。
核心亮点:量化压缩后依旧能打
原版 FP16 的 lift 模型(9B)在 Datalab 225 份文档基准测试中,字段级准确率达90.2%。oQ6 量化版在保持质量的同时,把体积和显存需求大幅压缩:
| 对比项 | lift-bf16 | lift-oQ6 | lift-oQ3 |
|---|---|---|---|
| 量化方式 | 完整 bf16 | oQ 混合精度 | oQ 极致压缩 |
| 约 bits/权重 | 16 | ≈6 | ≈3.5 |
| 模型体积 | 18 GB | 7.7 GB | 4.6 GB |
| 峰值内存 | 19.9 GB | 9.4 GB | 6.2 GB |
| 生成速度 | 31 t/s | 73 t/s | 119 t/s |
注:以上速度与内存数据,是开发者在 M5 Max 128GB 的 MacBook Pro 上对单张发票提取场景的实测,仅供参考。权重文件拆分为两个 safetensors 分片(见 model.safetensors.index.json),总量约 7.7GB。
快速上手:三步在Mac上跑起来
前提:一台 Apple Silicon Mac(M1/M2/M3/M4 均可),装好 Python 环境。
第一步:命令行直接生成(最简)
无需下载任何额外仓库,用 uvx 一条命令即可:
uvx --from mlx-vlm mlx_vlm.generate \ --model mlx-community/lift-oQ6 \ --image invoice.png \ --prompt "Extract the invoice as JSON." \ --max-tokens 800把invoice.png换成你的 PDF 截图或图片,模型就会输出对应的 JSON 文本。首次运行会自动下载权重,之后完全离线使用。
第二步:启动OpenAI兼容服务(推荐)
想接入自己的程序?启动本地服务,它会自动加载模型:
uvx --from mlx-vlm mlx_vlm.server --model mlx-community/lift-oQ6 --port 8080第三步:用JSON Schema约束输出格式
这是 lift 系列的杀手锏——Schema 约束解码。服务端通过llguidance在解码阶段强制校验 JSON Schema,保证输出一定是合法、类型正确的 JSON:
import base64, json from openai import OpenAI client = OpenAI(base_url="http://127.0.0.1:8080/v1", api_key="local") img = base64.b64encode(open("invoice.png", "rb").read()).decode() schema = { "type": "object", "properties": { "invoice_number": {"type": "string"}, "total": {"type": "number"}, "line_items": {"type": "array", "items": {"type": "object", "properties": { "description": {"type": "string"}, "amount": {"type": "number"}}}}, }, "required": ["invoice_number", "total"], } resp = client.chat.completions.create( model="mlx-community/lift-oQ6", messages=[{"role": "user", "content": [ {"type": "text", "text": "Extract this invoice."}, {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{img}"}}, ]}], response_format={"type": "json_schema", "json_schema": {"name": "invoice", "schema": schema}}, temperature=0.0, max_tokens=800, ) print(json.loads(resp.choices[0].message.content))只要定义了 Schema,模型就绝不会"跑偏"——字段缺失、类型错误、格式混乱都不会出现,这正是发票信息提取、合同解析等场景最需要的可靠性。完整示例可参考仓库的 README.md。
实用小贴士:避开两个常见坑
- 停止符修复:本仓库的 generation_config.json 已将
eos_token_id设为[248044, 248046]。原版上游只设置了248044,而对话轮次以<|im_end|>(即248046)结尾,若不修复,MLX 服务读取配置后会一直生成停不下来。这个坑官方已帮你填好,直接使用即可。 - 图片预处理:模型使用 Qwen2VL 的图像处理器(见 preprocessor_config.json),支持超长图文输入(最长边支持到 16777216 像素),复杂长文档也能完整"看"清。
许可与使用边界
代码采用 Apache-2.0 协议,权重采用修改版 OpenRAIL-M:免费用于研究、个人使用以及营收低于 500 万美元的初创公司,但不允许用于与 Datalab 官方 API 直接竞争的商业场景。个人学习、内部工具开发完全无压力。
总结
lift-oQ6 用约7.7GB的体积和9.4GB的峰值内存,在 Mac 上实现了接近原版 90% 字段准确率的PDF/图像结构化提取能力,还自带 JSON Schema 约束输出。无论你是想搭一个本地发票识别工具,还是研究视觉语言模型的量化部署,它都是极佳的开源选择。想下载完整权重本地使用,也可以直接 clone 仓库:git clone https://gitcode.com/hf_mirrors/mlx-community/lift-oQ6。💡 快去你的 Mac 上试试吧!
【免费下载链接】lift-oQ6项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/lift-oQ6
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考