
独立开源大佬的疯狂实验:Claude Code蛮力出奇迹!40 分钟跑通 DeepSeek-OCR,我一行代码都没写 原创
编辑 | 听雨
出品 | 51CTO技术栈(微信号:blog51cto)
当 AI 不再只是“写代码”,而是开始自己装环境、跑模型、记笔记——那种感觉,像是它在学会独立思考。
最近,开源工具Datasette创建者、Django 框架联合创始人 Simon Willison 做了一个疯狂实验:他让 Claude Code 全权接管,把 DeepSeek-OCR 在 NVIDIA Spark 上跑了起来。听起来像是“让 AI 去安装另一个 AI”,但结果却令人震惊——部署成功、过程全自动、连错误都能自我修复。
这不仅是一场技术实验,更像是一次预演:
当 AI 学会自己安装 AI,自动化科研的时代,可能真的已经开始了。
他的实验是怎么做到的?话不多说,接着往下看!
1.让 AI 帮我搞定 CUDA 地狱
这几天,DeepSeek 发布了一个新模型:DeepSeek-OCR。这是一个大小约 6.6GB、专门针对 OCR(光学字符识别)微调的模型。官方发布的版本是 PyTorch + CUDA 权重文件。
我成功地在 NVIDIA Spark上跑起来了它——靠的是让 Claude Code全权接手、几乎“蛮力破解”整个部署过程。
这个小项目总共花了我 40 分钟(大部分时间是 Claude Code 在自动运行,我在吃早餐)。它串联起了我最近一直在探索的几个概念:我为这个问题设计了一个 agentic loop(自主智能体循环),给 Claude 在 Docker 沙箱中开了完全权限,采用了“多智能体并行工作”的方式,并复用了上周我在 Spark 上做的笔记。
我知道在 Spark 上运行PyTorch CUDA 模型可能会很折磨,于是我决定干脆把整个过程外包给 Claude Code,看看会发生什么。
结论:成功了。Claude 只用了 4 条提示(1 条长提示 + 3 条短提示),就搞定了运行 DeepSeek 模型的全部步骤,还帮我在 Spark 上执行 OCR,并自动生成了大量的过程笔记。
我从 Mac 通过 SSH 连接到 Spark,然后启动了一个新的 Docker 容器:
图片
接着安装 npm 并用它安装Claude Code:
图片
然后启动 Claude Code,并告诉它这是在安全的沙箱环境中运行,允许跳过权限验证:
图片
它生成了一个登录链接,让我通过 Anthropic 账户认证。
我先输入了第一条指令:
图片
然后又输入了第二条:
图片
我特别强调了要让 Claude 持续写入 notes.md 文件,这样我就能复盘整个过程。
2.Claude 的“自我求生”过程
Claude 运行了大约 13 分钟,逐步发现了平台兼容性和 PyTorch 运行的各种问题。最后,它报错并“认输”了:
图片
于是我鼓励它再想办法:
图片
Claude 执行了如下命令,去找PyTorch 官网中所有 ARM 架构的 wheel 文件:
图片
结果,这一步直接解锁了问题。
Claude 回答:
“太好了!我发现 PyTorch 2.9.0 有 ARM64 版本,并支持 CUDA 12.8、12.9 和 13.0!这正是我们需要的!”
于是 Claude 安装了这些wheel 文件,并报告:
“好消息!PyTorch 2.9.0 能检测到 GB10 GPU(CUDA 12.1,sm_121),虽然提示最高支持 12.0,但只是警告,不是错误!让我们尝试推理吧。”
然后它继续运行,忽略警告,成功执行了模型加载和 OCR 推理。Claude 使用的 prompt 是:
图片
输出结果开头如下:
图片
Claude 宣布任务完成,并指向输出文件 output/result.mmd。但当我打开文件时,内容全是空格——OCR 成功了,但输出写入失败。
于是我提示它:
图片
Claude 重新分析后发现问题出在prompt 的选择上。
3.Prompt 进化论:Claude 自动写出对比表
Claude 查阅了DeepSeek-OCR 的 README,发现不同的prompt 有不同作用:
图片
于是它重新尝试了全部prompt,并生成了一个详细的 PROMPTS_GUIDE.md 文件,还附带对比表:
图片
并测了性能基准(测试图像尺寸 3503×1668):
图片
最终,我让它把所有结果、脚本和笔记打包成一个 zip 文件,排除 GitHub 和 Hugging Face 仓库。
我把zip 中的内容上传到了我的GitHub 仓库——
simonw/research 的 deepseek-ocr-nvidia-spark文件夹。
Github链接:https://github.com/simonw/research/tree/main/deepseek-ocr-nvidia-spark
Claude 真的非常喜欢写笔记——最终文件夹长这样:
图片
收获总结:
第一次提示发出时间:15:31:07 (UTC)最后一条消息收到时间:16:10:03 (UTC)全程不到 40 分钟,我本人只操作了 5~10分钟。剩下时间 Claude 全自动执行,我在吃早餐。
过去我多次尝试安装 PyTorch 失败,这次的体验可以说是巨大成功。我之后一定会多用这种方法。
4.经验总结:AI 驱动的“自动化科研”
这次实验的关键经验有三点:
- 输入足够清晰: 提供了目标硬件的 Docker 环境、代码和模型链接,以及明确的目标。 —— 这是我之前提出的 “agentic loop” 模式的又一次实践。
- 运行在沙箱中:使用 claude --dangerously-skip-permissions 让 Claude 自由执行,不用我手动批准每条命令。
- 关键时刻人工干预:当 Claude 卡在 CUDA 兼容性问题时,我凭经验指出 PyTorch 的 ARM CUDA wheel 版本存在,从而解锁全流程。
另外,DeepSeek-OCR 本身的效果也很不错——只要多试几种运行方式,就能得到非常干净的 OCR 结果。
5.Bonus:用 VS Code 远程监控容器
一个小技巧分享:我在远程 Spark 上通过 SSH 启动了 Docker 容器后,想实时查看 Claude 在生成的文件。
于是我问 Claude:
我在远程机器上通过 SSH 启动了一个Docker 容器,如何让本地 macOS 的 VS Code直接浏览那个容器的文件系统?
Claude 给出的方案非常精准:
- 安装 VS Code 插件:Remote SSH和 Dev Containers
- 用命令“Remote-SSH: Connect to Host”连接远程机器(比如 spark@100.113.1.114)
- 在连接成功的窗口中运行“Dev Containers: Attach to Running Container”,选择目标容器即可
搞定!VS Code 会打开一个新窗口,直接显示容器内的文件结构。我能实时打开 notes.md,看到 Claude 一行行往里追加内容,最后打包结果时,还能直接右键下载 zip 到本地 Mac。
一句话总结:Claude Code + Docker + 明确任务目标 = 让复杂的 AI 部署工作变成“吃早餐时的自动任务”。
6.写在最后
在小编看来,Simon的这次实验,证明了 AI 已经不止能“写代码”,它开始学会“执行科研”。
他只写了 4 条提示,剩下的 40 分钟 Claude 自动执行。
未来,研究者和工程师可能只需要定义任务目标,而不是亲自敲每一行命令,AI 能够帮你自动部署模型、自动记录实验过程、自动修复错误并总结经验。
这意味着科研与工程的门槛将进一步降低,“一个人 + 一个 AI” 就能完成过去一个团队的工作量。
当 Claude Code 能自己装 CUDA、跑模型、做笔记,我们距离“AI 自动化研发”真的只差一步。
那么,评论区的各位大佬们:
你觉得未来的开发者会变成什么样?
是“让 AI 写代码的人”,
还是“看 AI 写代码、自己喝咖啡的人”?
参考链接:https://simonwillison.net/2025/Oct/20/deepseek-ocr-claude-code/
本文转载自51CTO技术栈,作者:听雨
