既然不想买高价显卡,我就在代码里榨干 M4 芯片的每一个 NPU 核心。今天跑通了第一个全流程:用 GPT-4 Vision API 打验证码。不是那种简单的 OCR,是那种扭曲变形、加了干扰线、背景噪点、还他妈有粘连字符的图片验证码。以前搞这个,得自己收集样本、标注、训练模型,调参调到死,对抗样本一来就全废。现在?我写了不到五十行 Python。
核心就三句:把图片 base64 编码,塞进 messages 里,role 是 user,content 里写一句“请直接返回图片中的验证码文字,不要任何解释”。发过去,等两秒,结果就吐出来了。准确率?我测了三百张,错了两张。那两张还是因为图片本身损坏了。我盯着返回的 JSON 数据看了半天,感觉过去五年在图像识别上花的功夫像个笑话。
以前怎么干的?Selenium 抓图,PIL 预处理,二值化,降噪,分割字符,每个字符切出来单独送进自己训的 CNN 模型里跑。光是为了应对字体变化,训练集就得准备上万张。服务器上还得部署 TensorFlow 服务,内存占用吓死人。现在呢?API 调用,按次计费,一张图几分钱。成本结构彻底变了。对抗升级的逻辑也变了,以前是和反爬工程师拼算法细节,拼计算资源;现在是在和 OpenAI 的研发预算拼。这怎么拼?
我甚至试了更变态的:滑块验证码。不是让 AI 识别缺口位置,那太低级。我直接把完整背景图和带缺口的滑块图一起喂给 GPT-4V,prompt 是“计算滑块需要水平移动多少像素才能对齐缺口”。它真能算出来,返回一个数字。我把这个数字乘上网页的缩放比例,用 Playwright 控制鼠标拖过去,一次过。那种感觉,不是“赢了”,是“规则被颠覆了”。传统的爬虫技术,从模拟浏览器、破解 JS 加密到图像识别,一整条技术栈都在被快速降维。
当然有坑。API 有频率限制,贵。批量处理得做队列,做缓存,做错误重试。但这些都是工程问题,不是算法黑盒。最大的冲击是思维上的:我不再需要成为一个计算机视觉专家了。我需要的是理解大模型的“语义”能力边界,然后用最直白的语言去“问”它。技术对抗,变成了语义沟通。
这让我想起 2018 年死磕某电商网站的时候,为了过一个验证码,我租了三台 GPU 服务器跑了一星期训练模型。现在,那套代码还躺在硬盘里,已经三年没打开过了。不是它不能用了,是维护它的心智成本,已经高于直接调用 API 的金钱成本。当工具智能到一定程度,持有工具本身就成了负债。
夜深了,脚本还在后台跑着,稳定地、沉默地处理着成千上万的图片。M4 芯片的 NPU 利用率被我压到了 98%,温度有点烫手。但我关心的不再是散热,而是下一个可以“语义化”的爬虫难题在哪里。传统的爬虫技术手册,真的可以扔进博物馆了,连当展品都嫌占地方。因为未来的对抗,很可能不再是代码对代码,而是 prompt 对 prompt。得重新学说话了。














