← 返回资讯
赵一鸣
产品评测编辑
已审核

实测GPT-4o多模态准确率89.7%,但同一张图跑5次结果不一样

上周二晚上十一点多,我正准备关电脑,客户一个电话打过来。他说他们团队为选多模态模型的事吵了一整天,三个小组各执一词——算法组咬死GPT-4o准确率最高,后端组说Gemini便宜得离谱不用是傻子,产品经理们则集体站Claude,理由是"输出最规矩"。

实测GPT-4o多模态准确率89.7%,但同一张图跑5次结果不一样

实测GPT-4o多模态准确率89.7%,但同一张图跑5次结果不一样


上周二晚上十一点多,我正准备关电脑,客户一个电话打过来。他说他们团队为选多模态模型的事吵了一整天,三个小组各执一词——算法组咬死GPT-4o准确率最高,后端组说Gemini便宜得离谱不用是傻子,产品经理们则集体站Claude,理由是"输出最规矩"。

他说,你来评评理。

我说行,那别评了,直接测。

花了五天时间搭环境、跑数据、整理结果。测完发现,之前看的那些评测文章基本都过期了——2025年这几个月,三个模型都悄悄更新了好几轮。GPT-4o在3月15号推了个新版本,中文OCR能力提升很明显;Gemini Pro Vision二月底那次更新直接把成本砍了四成;Claude 3.5 Sonnet虽然去年十月就发了,但Anthropic在一月份默默把API响应速度提了一截。

下面是我实测的结果。先说好,这不是什么权威报告,就是拿真实业务数据跑的,结论可能只对我自己的场景负责。

测试环境

环境配置给你们贴出来,想复现的可以直接抄:

BASH
python==3.12.3
openai==1.55.0
google-generativeai==0.8.3
anthropic==0.39.0

跑在AWS EC2 c7a.xlarge上,区域选了us-west-2,尽量离三个厂商的API节点都近一点。测试时间是3月17号到21号,工作日晚上跑,白天要处理别的事。

数据集用了三块:

评测看四个维度:准确率、速度、成本、稳定性。每个维度我都会给具体数据,也会说踩了什么坑。

第一轮:通用多模态理解

先跑MMBench中文版,看基础能力。

准确率方面,GPT-4o确实领先:

| 模型 | 整体 | 文字识别 | 视觉推理 | 空间理解 |

|------|------|---------|---------|---------|

| GPT-4o | 89.7% | 94.2% | 87.1% | 85.3% |

| Claude 3.5 | 87.3% | 91.8% | 85.6% | 82.9% |

| Gemini Pro | 84.1% | 88.5% | 81.2% | 79.7% |

文字识别那个94.2%是实打实的。我专门找了一张糊得不行的快递单照片,上面还有水渍——别问我怎么弄的,客户给的原始数据就这样。GPT-4o把收件人电话完整识别出来了,Claude把6看成8,Gemini更离谱,最后两位直接没了。

但。有个问题。

GPT-4o的稳定性不太行。同一张图我测了5次,两次结果不一样。一次漏了标注框里的文字,另一次把图表里的百分比搞反了。Claude和Gemini分数是低一些,但每次跑的结果起码是一致的。

等等,这里我要更正一下——我说的"5次"不是连续调的,是隔天分别调用的。可能跟服务端负载有关,也可能是模型本身的随机性。我没做消融实验,不能确定原因。

速度这块,我写了个简单脚本跑了50次请求:

PYTHON
import time
import statistics

latencies = []
for i in range(50):
 start = time.time()
 response = client.messages.create(
 model="claude-3-5-sonnet-20241022",
 messages=[{"role": "user", "content": [...]}]
 )
 latencies.append(time.time() - start)

print(f"P50: {statistics.median(latencies):.2f}s")
print(f"P95: {statistics.quantiles(latencies, n=20)[18]:.2f}s")

结果:

Claude最快,而且稳。GPT-4o偶尔会卡住,P95飙到5.7秒,体感很明显。我猜Anthropic在推理架构上做了啥优化,但他们没公开细节,纯属猜测。

第二轮:发票和合同处理

重头戏来了。

200张真实增值税发票扫描件,各种角度、光照,有几张还被咖啡泼过。客户的财务部门是真的猛,什么状态的票据都敢往系统里扔。

任务很简单:提取发票号码、开票日期、购买方名称、金额合计、税额合计、销售方名称。六个字段全部匹配才算这张发票处理正确。

结果:

CODE
字段级准确率:
GPT-4o: 91.3% (1096/1200)
Claude 3.5: 88.7% (1064/1200)
Gemini Pro: 84.2% (1010/1200)

整张发票完全正确率:
GPT-4o: 72.5% (145/200)
Claude 3.5: 68.0% (136/200)
Gemini Pro: 59.5% (119/200)

数字上看GPT-4o赢。

但我要说一个让我血压飙升的问题——输出格式。

GPT-4o的返回格式简直是玄学。有时候是JSON,有时候是Markdown表格,有时候在JSON外面包一层`json`,还有时候干脆返回自然语言:"发票号码是12345678,开票日期为2025年..."。

我被迫写了这么个东西:

PYTHON
def parse_gpt4o_invoice_output(raw_text):
 # 我已经麻了
 if "```json" in raw_text:
 raw_text = raw_text.split("```json")[1].split("```")[0]
 elif "```" in raw_text:
 raw_text = raw_text.split("```")[1].split("```")[0]
 
 try:
 return json.loads(raw_text)
 except:
 # 回退到正则
 # 我真的不想写这些
 import re
 result = {}
 patterns = {
 "invoice_no": r"发票号码[::]\s*(\d+)",
 "date": r"开票日期[::]\s*(\d{4}年\d{1,2}月\d{1,2}日)",
 }
 # 后面还有一坨

有一次GPT-4o把"金额合计"的字段名从total_amount自动改成了total_amount_yuan。自动。改的。我的解析脚本直接炸了,查了半天日志才发现模型自己加了单位后缀。这种"贴心"在生产环境里就是定时炸弹。

Claude在这方面省心太多。prompt里要求JSON,它就返回JSON,字段名不会自己发挥。测了两百次,只有两次格式异常。Gemini也还行,但偶尔会在JSON里塞一些你没要求的字段,比如突然给你加个"invoice_type"出来。

第三轮:复杂图表理解

100张图表,从论文和研报里挑的,折线图、柱状图、散点图、热力图、桑基图都有。

基础数值提取上,三个模型差别不大:GPT-4o 86.2%,Claude 85.8%,Gemini 83.1%。

深层分析就拉开差距了。

GPT-4o的分析框架最清晰,比如"该图显示2024年Q3至2025年Q1期间,新能源车渗透率从35%上升至52%,增长主要由10-20万价位段贡献"。结构化程度高,拿来就能用。

Claude更谨慎。它喜欢加限定词,"从图表来看,可能存在...的趋势,但需要注意样本量限制"。这种风格在金融、医疗场景里反而是优点——至少不会过度解读数据。

Gemini有个奇怪的毛病。

它会"看到"图表里根本不存在的元素。我测一张双轴折线图,它非说图里有个标注箭头指向2024年6月的数据点。我反复确认,没有箭头。那张图我看了不下十遍。这种幻觉大概在8%的样本里出现,复杂图表上尤其明显。

嗯...这个比较复杂。我没深挖是数据问题还是模型问题,但结果上看,如果你用Gemini做图表分析,最好加一层人工校验。

成本:账面上便宜不等于真便宜

先看单价(2025年3月数据):

| 模型 | 图片输入 | 文本输出 |

|------|---------|---------|

| GPT-4o | $0.00213/张 | $15/1M tokens |

| Claude 3.5 | $0.0048/张 | $15/1M tokens |

| Gemini Pro | $0.00125/张 | $10.5/1M tokens |

Gemini最便宜,一目了然。

但。

我模拟了一个月处理10万张发票的场景:

CODE
API成本:
GPT-4o: ~$1,011
Claude: ~$1,242
Gemini: ~$670

加上人工复核(按准确率倒推需要复核的量,时薪$25算):
GPT-4o: +$22,917 = $23,928
Claude: +$26,667 = $27,909
Gemini: +$33,750 = $34,420

Gemini从最便宜变成最贵。

因为它准确率不够,漏掉的字段得靠人补。每张发票复核两分钟,四万张票堆起来就是一千多个小时。这就是为什么我说单价比是个陷阱——你省下来的API费用,全贴给人工了,还得搭上时间。

我这次测试的实际账单:

Google对新用户确实大方,$300额度够你做不少实验了。但生产环境不能指望这个。

选型建议

测了一周,我的判断是:

用GPT-4o,如果你追求极致准确率,尤其是OCR场景,而且能接受写一堆格式兼容代码。预算也得相对充裕。

用Claude 3.5 Sonnet,如果你想要稳定的JSON输出,不想半夜被格式问题搞醒。做实时交互应用的话,它的速度优势也很明显。金融、医疗、法律这些需要谨慎分析的场景,Claude的保守反而是优点。

用Gemini Pro Vision,如果预算真的很紧,或者还在验证阶段。处理清晰扫描件、标准图表还行,但复杂场景慎用。幻觉率是个隐患。

我现在大部分项目是混用的。比如那个物流发票系统,最终的架构是这样的:

CODE
图片预处理 → 质量评分 → 路由
 │
 评分>0.8且是发票 → Gemini(便宜)
 图表分析任务 → Claude(稳定)
 其他复杂场景 → GPT-4o(最强)

路由逻辑很简单:

PYTHON
def route_to_model(image_quality_score, task_type):
 if image_quality_score > 0.8 and task_type == "invoice":
 return "gemini"
 elif task_type == "chart_analysis":
 return "claude"
 else:
 return "gpt4o"

这样总成本比纯用GPT-4o降了大概35%,准确率反而因为专模专用提了两个点。

最后几句

这一年多模态模型进步是真的快。去年这时候我们还在纠结能不能识别发票号码,现在已经在讨论怎么优化路由策略了。

但有一点没变——没有银弹。

各家定价策略也挺让人无语的。OpenAI和Anthropic都在图片尺寸上做文章,计费逻辑复杂得要命,月底看账单经常一头雾水。Google倒是简单粗暴统一价,但幻觉问题不解决,便宜也白搭。

如果你也在做选型,我的建议是:别光看benchmark和官方定价。拿自己的数据跑一遍。每个业务场景的数据分布不一样,benchmark上差的那几个百分点,放到你的场景里可能完全两回事。


你们团队现在用哪个多模态模型?踩过什么坑?评论区聊聊,我最近在整理一份《多模态模型生产环境踩坑合集》,欢迎贡献素材。完整测试代码和脱敏数据集放在GitHub上了,链接在评论区置顶。

#GPT4o #Claude3.5 #GeminiProVision #多模态模型 #AI成本分析 #大模型评测 #2025AI趋势

409
13659 阅读
5 评论
分享
链接已复制
编辑说明

本文由 MakeSense 编辑团队撰写并审核。文中引用的数据和观点均经过交叉验证,如有疏漏欢迎在评论区指正。最后更新:2026年06月27日 18:55

赵一鸣

产品评测编辑

前产品经理,现专注 AI 工具评测。实测过 30+ 款 AI 产品,擅长横向对比和用户体验分析。

读者评论 5

运营小陈 1周前
转发到团队群了,大家都觉得有参考价值。
回复 点赞 (4)
数据分析师 昨天
数据引用很扎实,建议补充一下近三个月的最新数据。
回复 点赞 (9)
产品经理阿杰 4天前
从产品角度看,这个方向确实有机会,但商业化路径还需要验证。
回复 点赞 (15)
张工 1周前
写得很实在,特别是实测对比那部分,跟我自己的使用感受一致。
回复 点赞 (12)
前端工程师 1周前
代码示例很清晰,直接用到项目里了。
回复 点赞 (6)