GPT-4V 测试:复杂问题和专业问题
date
slug
status
summary
type
tags
实验
[2309.17421] The Dawn of LMMs: Preliminary Explorations with GPT-4V(ision) 中做了大量 GPT-4V 的测试,包含从日常到工业、商业领域的各种可能的图文组合输入问题,覆盖不同难度。
此外,First Impressions with GPT-4V(ision) 一文也做了不少测试,包括不少对图中物体的认知、推理问题。
这里再做几个涉及各种领域的复杂实验,给 GPT-4V 上点压力。
OCR 提取普通文本
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F9127a52b-8af4-4e36-87b8-476104a735db%2Fff535ee6-2331-4df3-8390-c601d1dc4045%2F2023-10-13-IndianredGardensnake.png?table=block&id=e1706631-829b-4f4d-ace2-9e4e7318a479&t=e1706631-829b-4f4d-ace2-9e4e7318a479)
一首布劳提根的诗,就当是热热身了。
OCR 提取复杂文本
这次尝试来提取论文中的表格数据:
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F9127a52b-8af4-4e36-87b8-476104a735db%2F998d3ee8-3ced-45a9-968a-1360183a57a6%2F2023-10-13-RoughHydatidtapeworm.png?table=block&id=b60f472d-76e5-4432-9aa4-85d70934deef&t=b60f472d-76e5-4432-9aa4-85d70934deef)
表格本身的提取非常准确。然而在读取数据点的时候,GPT-4V 的表现就很不好了:
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F9127a52b-8af4-4e36-87b8-476104a735db%2F3024059f-a9f0-431a-b075-59c34a487fe5%2F2023-10-13-SatisfiedSquirrel.png?table=block&id=fd4d23a9-da15-4854-8c88-58f9aa5558e6&t=fd4d23a9-da15-4854-8c88-58f9aa5558e6)
它好像能认出蓝色数据点是
o
符号,但是只读到了 X 轴上有标记的点,而且值都是错的。OCR 提取书页照片
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F9127a52b-8af4-4e36-87b8-476104a735db%2F35dd7f00-b39a-42f5-a302-555ba82dbadc%2F20231016140448.jpg?table=block&id=088cb102-1f65-48a7-ab93-8db348674da7&t=088cb102-1f65-48a7-ab93-8db348674da7)
仍然是文本提取,但这次是随手拍摄的书页照片(《疼痛部》)
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F9127a52b-8af4-4e36-87b8-476104a735db%2Ff7b5de46-1a6f-477d-8631-75be8c22ce3b%2FIMG_8513.jpeg?table=block&id=420d51ff-7794-43f5-9d1d-dd61b1532d13&t=420d51ff-7794-43f5-9d1d-dd61b1532d13)
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F9127a52b-8af4-4e36-87b8-476104a735db%2Fc2676550-3495-497a-b58e-60704f42104f%2FUntitled.png?table=block&id=a886c553-dddd-44f8-bae9-a46c07f5b806&t=a886c553-dddd-44f8-bae9-a46c07f5b806)
无论是移动端还是网页端,GPT-4V 都能成功识别前几个字符,然后开始乱说一气。这种模式还会重复,每过一段它总能正确识别开头几个字,然后继续胡说。
工程图纸读取
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F9127a52b-8af4-4e36-87b8-476104a735db%2Ff0d8fc61-6dec-44ba-9f59-bfeb8402806b%2F2023-10-13-KeenAsianwaterbuffalo.png?table=block&id=1c156103-6421-4839-bc43-716beed83a6b&t=1c156103-6421-4839-bc43-716beed83a6b)
就这个读取结果来说,基本标注的识别还算可以,比不少专门的 OCR 模型效果都要好(因为完全没做过符号相关的调优训练)。此外也能自动推断一下标注所属的类型,可惜这块推断得不是很准确,猜测在 prompt 里介绍一下背景知识或许能提升一些。
因为单独只识别出文本没法利用,尝试再上一点压力:要求 GPT-4V 同时输出标注的矩形框坐标(等于要求它执行一个 OCR 检测 + 识别模型的任务)。这个要求是有道理的,因为如果 GPT-4V 现在能准确输出矩形框坐标的文本,那么将来接入插件以后,它就可以把这段坐标文本转述给 Python 解释器 ,直接导进 Python 里。
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F9127a52b-8af4-4e36-87b8-476104a735db%2Fc1e078ef-d9f0-4fd2-b7d8-37fbece40a24%2F2023-10-13-SpringgreenAsianlion.png?table=block&id=6e586bcc-1fe1-4d3c-af12-50c3cfb7b386&t=6e586bcc-1fe1-4d3c-af12-50c3cfb7b386)
单看输出的坐标值,感觉基本上都是错的。处于严谨起见我们还是可视化一下:
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F9127a52b-8af4-4e36-87b8-476104a735db%2Fce9988e5-e0ea-465b-9402-7bc310023f24%2Fc5b611d4-a977-4093-ad12-6403f2b312bd.png?table=block&id=e3c8ba18-ca61-4d43-90f8-04b4252f5efb&t=e3c8ba18-ca61-4d43-90f8-04b4252f5efb)
确实都是错的,完全是在瞎编坐标。不过至少图片分辨率为 693 x 1490 像素这一点是准确的。从这个实验结合上面的目测坐标值来看,GPT-4V 还是没法准确提取物体在图中的坐标位置,只能简单理解一些相对位置和空间关系。对输入图像的分辨率认知不知道是怎么引进的。
奇怪的是,在 First Impressions with GPT-4V(ision) 里我也看到了一些相反的例子——GPT-4V 能给出还算准确的坐标值、以及给出错误的图片分辨率。
视觉大发现
小时候看的《视觉大发现》系列:
测试用的原图:
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F9127a52b-8af4-4e36-87b8-476104a735db%2F7fc71c60-b5da-41db-af41-c12d30aecd1a%2F%25E5%25BE%25AE%25E4%25BF%25A1%25E5%259B%25BE%25E7%2589%2587_20231013235522.jpg?table=block&id=050ffa16-f781-419d-a954-f0852deab8a5&t=050ffa16-f781-419d-a954-f0852deab8a5)
来试一下 GPT-4V 能不能在充斥着细节的画面里找到要求的东西。既然我们知道它没法给出准确坐标了,这次只要求用描述性的相对方位来叙述找到的东西的位置。首先来试一下让它自己读文本来找:
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F9127a52b-8af4-4e36-87b8-476104a735db%2Fca77f3f1-e6d0-4c89-96f1-944ea26a0313%2F2023-10-14-ThoughtfulCurassow.png?table=block&id=e8efcc1e-e5fc-4c23-8706-78372a00a579&t=e8efcc1e-e5fc-4c23-8706-78372a00a579)
完全不知道自己在干什么。再来试试指明文本的方式:
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F9127a52b-8af4-4e36-87b8-476104a735db%2F45498d7b-376b-4a91-9c8e-34fccc52fd73%2F2023-10-14-PalegreenHoverfly.png?table=block&id=eb738956-6f55-48e5-8cff-91d125c671fe&t=eb738956-6f55-48e5-8cff-91d125c671fe)
检查了一下,还是完全不知道自己在干什么。它找的完全是错的,把顶针理解为了针,还试图在说明文本里找梦幻城。
剽窃 HTMX 设计
GPT-4 刚出的时候,我经常让它帮我写各种各样的 Flask 服务器用在其它项目里。那时候每次要花很多时间给它描述页面长什么样。
这次来尝试一下直接剽窃截图里的 HTMX 设计!先来个设计比较复杂的:
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F9127a52b-8af4-4e36-87b8-476104a735db%2F611c6496-8c22-4a2a-bf96-fef551b6a68a%2F2023-10-14-DarkblueLamprey.png?table=block&id=4e5e94e9-149e-40ec-9293-6f0cab241e36&t=4e5e94e9-149e-40ec-9293-6f0cab241e36)
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F9127a52b-8af4-4e36-87b8-476104a735db%2F8f7a4738-3dd1-4ca3-baa5-37f062d31553%2F2023-10-14-DimwittedJaguarundi.png?table=block&id=4a3603c4-0bfb-4de4-a128-e050130e4cae&t=4a3603c4-0bfb-4de4-a128-e050130e4cae)
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F9127a52b-8af4-4e36-87b8-476104a735db%2F78b10dc4-108d-4fe5-b64e-be96f26ae320%2F2023-10-14-AbsoluteQuinquespinosus.png?table=block&id=50e22af7-75b1-4d53-bb5b-5fde2094f067&t=50e22af7-75b1-4d53-bb5b-5fde2094f067)
一方面受限于无法准确认知位置关系,另一方面,即使没有视觉功能的时候,GPT-4也无法在一次 prompt 下处理这样具有一定复杂性的问题。因此结果质量并不是很好。