Qianfan-OCR!4B参数端到端文档智能模型部署全攻略
最近百度千帆开源了一个超强的文档智能模型——Qianfan-OCR,这个模型在OmniDocBench v1.5上拿了93.12分,直接登顶端到端模型榜首!🔥
最关键的是,这是一个4B参数的端到端模型,把文档解析、版面分析、文字识别、语义理解全部统一到一个架构里。不需要复杂的预处理流水线,图片进去,Markdown出来,简直不要太香!
今天就来分享一下这个模型的两种部署方式:在线API调用和本地私有化部署,全程干货,建议收藏!
✨ Qianfan-OCR 核心亮点
一、环境准备
先说说部署需要什么环境。如果你选择在线调用,要求很简单:能联网、有Python环境就行。但如果要本地私有化部署,那就得准备一下硬件了。
🖥️ 本地部署硬件配置要求
| 配置项 | 推荐配置 | 最低配置 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
💡 小贴士:如果显存不够,可以启用W8A8量化,能显著降低显存占用。模型权重大约8GB,记得预留足够的存储空间。
二、在线API调用(最简单!)
不想折腾硬件的童鞋,直接用千帆平台的在线API是最省事的。按照下面几步操作就行:
📝 获取API凭证
-
注册百度智能云账号并完成实名认证
-
进入千帆大模型平台控制台
-
点击”安全认证” → “API Key管理”
-
创建API Key,保存好API Key和Secret Key
拿到凭证后,就可以调用API了。下面是完整的Python代码:
Python# 在线API调用示例import requestsimport base64# API凭证配置API_KEY = "your_api_key"SECRET_KEY = "your_secret_key"def get_access_token():"""获取Access Token"""url = f"https://aip.baidubce.com/oauth/2.0/token"params = {"grant_type": "client_credentials","client_id": API_KEY,"client_secret": SECRET_KEY}response = requests.post(url, params=params)return response.json().get("access_token")def ocr_recognize(image_path):"""调用Qianfan-OCR进行识别"""# 读取图片并转为base64with open(image_path, "rb") as f:image_base64 = base64.b64encode(f.read()).decode()# 构建请求access_token = get_access_token()url = (f"https://aip.baidubce.com/rpc/2.0/ai_custom/v1"f"/wenxinworkshop/image2text/qianfan_ocr"f"?access_token={access_token}")payload = {"image": image_base64,"output_format": "markdown"}headers = {"Content-Type": "application/json"}response = requests.post(url, json=payload, headers=headers)return response.json()# 使用示例result = ocr_recognize("document.png")print(result)
三、本地私有化部署(数据安全首选)
如果你对数据安全有要求,或者需要离线运行,本地部署是更好的选择。下面一步步来:
🔧 步骤1:配置Python环境
Bash# 环境配置# 创建虚拟环境conda create -n qianfan_ocr python=3.10 -yconda activate qianfan_ocr# 安装PyTorch(CUDA 12.1版本)pip install torch torchvision torchaudio \--index-url https://download.pytorch.org/whl/cu121# 安装依赖库pip install transformers accelerate safetensorspip install vllm# 可选,生产环境推荐
📥 步骤2:下载模型权重
模型权重已在Hugging Face开源,大约8GB,可以用两种方式下载:
Bash# 下载模型# 方式一:使用huggingface-clipip install huggingface_hubhuggingface-cli download baidu/Qianfan-OCR \--local-dir ./Qianfan-OCR# 方式二:使用Python代码from huggingface_hub import snapshot_downloadmodel_path = snapshot_download(repo_id="baidu/Qianfan-OCR",local_dir="./Qianfan-OCR")
🚀 步骤3:加载模型推理
Python# Transformers加载from transformers import AutoModelForCausalLM, AutoTokenizerfrom PIL import Imageimport torch# 加载模型model_path = "./Qianfan-OCR"tokenizer = AutoTokenizer.from_pretrained(model_path)model = AutoModelForCausalLM.from_pretrained(model_path,torch_dtype=torch.float16,device_map="auto")# 图片识别image = Image.open("document.png")conversation = [{"role": "user","content": [{"type": "image"},{"type": "text", "text": "请识别图片中的文字内容"}]}]inputs = tokenizer.apply_chat_template(conversation, return_tensors="pt").to(model.device)outputs = model.generate(inputs, max_new_tokens=2048)result = tokenizer.decode(outputs[0], skip_special_tokens=True)print(result)
⚡ 步骤4:vLLM生产部署
生产环境推荐用vLLM,性能更好,还支持OpenAI兼容的API接口:
Bash# vLLM服务启动# 安装vLLMpip install vllm# 启动服务(全精度模式)vllm serve ./Qianfan-OCR \--host 0.0.0.0 \--port 8000 \--dtype float16# 启动服务(W8A8量化,省显存)vllm serve ./Qianfan-OCR \--host 0.0.0.0 \--port 8000 \--quantization awq \--dtype float16
四、应用场景一览
Qianfan-OCR能做的事情还挺多的,这里列举几个典型场景:
文档转Markdown
图片进去,Markdown出来,保留标题层级、表格、列表等格式
关键信息提取
发票金额、合同条款、证件号码等结构化数据提取
文档问答
上传合同图片,直接问”甲方是谁”、”签署日期是什么时候”
图表理解
识别表格、图表、流程图,理解语义并回答相关问题
五、常见问题速查
❓ 显存不足(OOM)怎么办?
启用W8A8量化,或升级到更大显存的GPU。40GB显存用量化模式足够跑起来。
❓ 模型下载太慢?
试试镜像站或代理,也可以从ModelScope下载。
❓ 识别效果不好?
调整Prompt,给出更明确的任务描述。比如”请提取发票中的金额、日期、发票号码”。
六、相关资源
-
官方论文:arxiv.org/abs/2603.13398
-
Hugging Face:huggingface.co/baidu/Qianfan-OCR
-
千帆平台:qianfan.cloud.baidu.com
觉得有帮助的话,记得点赞收藏哦!
有问题欢迎在评论区留言讨论 👇
夜雨聆风