写点什么

Karpathy 盛赞 DeepSeek-OCR“淘汰”tokenizer!开发者成功用 Claude Code 在 NVIDIA Spark 上跑新模型

  • 2025-10-21
    北京
  • 本文字数:3735 字

    阅读完需:约 12 分钟

大小:1.60M时长:09:20
Karpathy盛赞DeepSeek-OCR“淘汰”tokenizer!开发者成功用 Claude Code 在 NVIDIA Spark 上跑新模型

昨天,DeepSeek 发布了一个新模型 DeepSeek-OCR。

 

这是一个专门为 OCR(文字识别)微调的 6.6GB 模型,主要贡献在于首次量化 “视觉 - 文本 token 压缩比”,验证 10× 近无损压缩、20× 仍保有 60% 精度的可行性;提出 DeepEncoder,解决现有编码器 “高分辨率 - 低内存 - 少 token” 不可兼得的问题;开发 DeepSeek-OCR,在实用场景达 SOTA 且 token 消耗最少,兼具科研价值与产业落地能力。

 

开源地址及论文全文:

https://github.com/deepseek-ai/DeepSeek-OCR

 

这篇论文引发了不少人关注,其中 Karpathy 就直言:“我很喜欢这篇新的 DeepSeek-OCR 论文。”

 

它是一个不错的 OCR 模型(可能比 dots 稍微差一点),数据收集等方面也都做得不错,但这些其实都不是最让我感兴趣的部分。

 

我更在意的,是一个更根本的问题——对大语言模型(LLM)来说,像素是否比文本更好的输入形式?也就是说,文本 token 会不会其实是一种“浪费而糟糕”的输入方式?

 

或许,从逻辑上讲,所有输入都应该是图像。

 

即使原始内容是纯文本,也可以先渲染成图像再输入。为什么这么做有意义?

 

· 信息压缩更高效(论文中也提到了):图像输入能在更短的上下文窗口中包含更多信息,推理效率更高。

· 信息流更丰富:不仅能表示文字,还能自然包含加粗、颜色、格式、甚至任意插图等视觉要素。

· 输入可以天然地使用双向注意力(bidirectional attention),而不是像语言模型那样必须自回归(autoregressive)地逐步处理,这在结构表达上更强大。

· 最关键的一点:可以彻底摆脱 tokenizer(输入端)!我早就对 tokenizer 深恶痛绝。它既丑陋又割裂,让整个模型不再是端到端的流程;它继承了 Unicode、字节编码等一大堆历史包袱,还引入了安全和越狱风险(比如续字节攻击);它让两个看起来一模一样的字符在内部被编码成完全不同的 token;它让一个笑脸表情符号在模型眼里变成一个怪异的 token,而不是一个真实的“笑脸”——模型也因此失去了像素级迁移学习所带来的自然语义。

 

Tokenizer 必须被淘汰。

 

OCR 只是视觉 → 文本任务中的一个典型代表。实际上,许多文本 → 文本任务完全可以被重构为视觉 → 文本任务,但反过来却行不通。所以,也许未来用户的输入都是图像,而模型的输出(即助手的回应)仍然是文本。当然,要让模型生成像素级的输出仍然不太现实——或者说,暂时我们也没那么需要。

 

现在我得努力克制自己,不去立刻搞一个“只接受图像输入的 nanochat”实验项目……

 

Pleiasfr 联合创始人 Alexander Doria 更是直言:“DeepSeek-OCR 是一个里程碑式的工程成就,代表了轻量高效 OCR 模型的最佳范例。这不是终点,但可能是未来所有 OCR 系统的起点。”


他解释道,人们早就猜测,VLM/OCR 模型其实可以小得多。在多模态视觉语言模型(VLM)出现之前,业界领先的 Google Cloud OCR 模型规模其实也不过一亿参数左右。最近,一些参数相对较小的开源模型已经能与闭源产品正面竞争,其中最令人惊讶的是 dots.ocr ——在其内部和公开的多个基准测试中,它的 17 亿参数模型在准确率上普遍超过了 OpenAI、Anthropic,甚至在某些任务上优于 Gemini,而成本仅为后者的一小部分。

 

这背后的原因在于:OCR 本质上是一种“模式识别”任务,不需要太多推理或长程记忆,因此模型架构可以相对轻量。这也解释了为什么 DeepSeek-OCR 采用了仅 12 层的精简架构。

他认为,DeepSeek-OCR 在两个方面进一步创新:

  • 它进入了一个新兴的“小型专家混合(Mixture of Experts)”范式——虽然模型总规模较大,但每次推理时只有 5 亿个参数被激活,这让它能在一批次中处理大量数据;

  • 它采用了激进的编码策略(aggressive encoding),并结合了语义池化(semantic pooling)。DeepSeek-OCR 的编码器在输入阶段就做了大量“信号压缩”的工作,把低层视觉信号聚合成更高层的语义单元,再加上一些性能优化手段,这显著提升了处理速度。

 

不过,Alexander 并不认为这个模型会在 OCR 领域带来颠覆性的飞跃。“它的训练流水线包含了大量合成和仿真数据(尤其是图表类的渲染数据),但从官方样例来看,数据的多样性仍有限。”

 

但他表示,DeepSeek-OCR 的意义在于成为一个真正“基础型”的 OCR 模型:它几乎已经提前找到了推理效率与模型性能的最佳平衡点,奠定了工程基础,但若要在大规模真实业务中应用,还需要针对特定领域进行数据标注和定制化流程设计。

 

测试

 

DeepSeek-OCR 的发布也吸引了大量开发者尝试,目前官方只提供了基于 PyTorch + CUDA 的权重文件。

 

资深开发者 Simon Willison 表示自己花了大概 40 分钟就把这个模型成功跑在了 NVIDIA Spark 上,靠的是让 Claude Code 用“暴力破解”的方式一步步解决兼容问题。

 

“这个小实验其实把我最近在研究的一堆概念串在了一起:我为问题设计了一个 智能体循环(agentic loop),给 Claude 完整的 Docker 沙箱权限,用并行智能体的思路去做,同时复用了上周我在 Spark 上的环境配置笔记。”Simon 说道。

 

Simon 清楚,要在 Spark 这种 ARM 平台上跑 PyTorch CUDA 模型,过程一定会非常折腾。于是他干脆把整个流程外包给 Claude Code,看它能不能搞定。

 

结论是,它真的搞定了。只用了 4 次提示(1 次长指令 + 3 次短补充),Claude Code 完整地让 DeepSeek-OCR 在 NVIDIA Spark 上跑起来,实现了对一张图片的 OCR 识别,并留下了详尽的笔记。

 

环境搭建

Simon 从 Mac 用 SSH 连上 Spark,在那边启动了一个 Docker 容器:

docker run -it --gpus=all \  -v /usr/local/cuda:/usr/local/cuda:ro \  nvcr.io/nvidia/cuda:13.0.1-devel-ubuntu24.04 \  bash
复制代码

接着安装 npm,再通过 npm 安装 Claude Code:

apt-get updateDEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt-get install -y npmnpm install -g @anthropic-ai/claude-code
复制代码

启动 Claude Code,并告诉它可以在 sandbox 里以 root 身份运行:

IS_SANDBOX=1 claude --dangerously-skip-permissions
复制代码

之后会弹出一个 URL,点击登录 Anthropic 账号就行。

初始提示词

Simon 先让 Claude 在当前目录下新建一个文件夹:

Create a folder deepseek-ocr and do everything else in that folder
复制代码


然后 Simon 给了它 DeepSeek-OCR 的 GitHub 链接和 Hugging Face 模型地址,并说明要在 NVIDIA ARM 设备的 Docker 容器 里运行,还给它一张要做 OCR 的图片。

 

Simon 还特意要求它把所有过程写进一个 notes.md 文件里,只能“追加”新内容,这样最后能看到完整笔记。

Claude 的推理与故障排查


Claude 运行了 13 分钟,期间探索了各种平台兼容问题,最后崩溃报错:

CUDA error: no kernel image is available for execution on the deviceThe NVIDIA GB10 GPU has compute capability sm_121, which is too new for PyTorch 2.5.1
复制代码

也就是说,这个 GPU 太新,PyTorch 2.5.1 还不支持。

 

Simon 提醒它:

“能不能试下别的 PyTorch 版本?看看有没有支持 ARM CUDA 的 wheel 包?”

 

它就去爬取了 PyTorch 官网的下载目录,找到了 ARM 版本的 CUDA wheel:

curl -s https://download.pytorch.org/whl/torch/ | grep -o 'torch-[0-9.]*.*aarch64.whl' | sort -V | tail -20
复制代码

 

Claude 找到突破口后兴奋地回应:

“太好了!PyTorch 2.9.0 有 CUDA 13.0 的 ARM64 wheel!这正是我们需要的!”

 

安装完成后,Claude 报告说:

“PyTorch 2.9.0 可以识别 GB10 GPU,虽然会提示‘最高只支持 CUDA 12.0’,但现在只是警告,不是报错。让我们试着跑一下推理吧。”

 

于是它继续执行,并成功让模型加载、运行了 OCR。

 

Claude 发出指令:

<|grounding|>OCR this image.
复制代码

模型成功识别出文本与定位框,生成了检测结果。

 

不过输出文件 result.mmd 全是空白。

 

Simon 提示它:“结果是空的,试着让输出更完整。”

 

Claude 重新查看 DeepSeek-OCR 的 README,发现不同提示词的模式:

  • <|grounding|>Convert the document to markdown.(适合文档)

  • <|grounding|>OCR this image.(通用模式)

  • Free OCR.(不带布局)

 

它推测 “grounding” 模式偏重框检测,文本输出可能被忽略,于是重新试了多个 prompt,并生成了一个 PROMPTS_GUIDE.md,总结不同模式下的表现。示例如下:

 


最后,它把所有结果、脚本、笔记都打包成 zip 文件,Simon 解压后放到了 GitHub 仓库中。

最终结果与感想

 

从第一次提示(15:31:07 UTC)到 Claude 最后一条消息(16:10:03),不到 40 分钟。Simon 称只参与了不到 10 分钟,其余时间它自己在跑。

 

Simon 表示,“作为一个曾多次折腾 PyTorch 环境失败的人,这次我觉得是大胜利。以后我一定会更频繁地用这种方式。Claude 的笔记写得极其详细,我还没完全看完,可能也有错误,但关键是:它确实把模型跑通了,还留下了完整复现步骤。”

 

最后,Simon 总结了几个成功要点:

 

  1. 给了它充分的环境与目标。Docker 容器、明确的模型地址、清晰的任务定义。

  2. 沙箱模式让它完全自主执行,不用每步都点确认。

  3. 关键时刻用经验引导。当它卡住时,因为知道 ARM64 CUDA 版本肯定存在,只需提示它去找。

 

Simon 实践后表示,DeepSeek-OCR 本身的效果也不错,只要花点时间调整提示和运行方式,表现就非常出色。

 

参考链接:

https://x.com/Dorialexander/status/1980289147609776232

https://simonwillison.net/2025/Oct/20/deepseek-ocr-claude-code/

2025-10-21 10:204637

评论

发布
暂无评论

巧用Maya轴心操作小技巧,工作事半功倍!

3DCAT实时渲染

maya制作技巧 3D软件教程

面部表情识别在医疗领域的应用

数据堂

从推动到拉动:研发效能提升的第一性原理

CODING DevOps

ARTS 打卡第 1 周 鸿蒙入门开发教程:一文带你详解工具箱元服务的开发流程

坚果

ARTS 打卡计划 HarmonyOS OpenHarmony 元服务 ArkTS

【我和openGauss的故事】一文帮你理解openGauss的高可用方案

daydayup

面部表情识别技术的挑战与解决方案

数据堂

UE虚幻引擎游戏开发:游戏鼠标双击判定方法!

3DCAT实时渲染

UE虚幻引擎 UE教程 3D游戏制作教程

通义千问开源模型部署使用

WizInfo

通义千问

【我和openGauss的故事】Navicat连接openGauss_5.0.0 企业版数据库

daydayup

面部表情识别技术在安全领域的应用

数据堂

AIGC 浪潮下,鹅厂新一代前端人的真实工作感受

CODING DevOps

嵌入式软件开发为什么需要DevOps?

DevOps和数字孪生

DevOps 嵌入式软件

IoTDB 小白“踩坑”心得:入门安装部署篇

Apache IoTDB

可视化数据分析工具是什么?可以用来做什么?

巷子

电动汽车安全概述

DevOps和数字孪生

电动汽车 汽车安全

值得收藏!堪称神器的30个插件

Finovy Cloud

插件 渲染 建模 maya 3d建模

Dragonfly 发布 v2.1.0 版本!

SOFAStack

AI 算法 后端 基础设施 分发

【华秋干货铺】电源PCB设计汇总

华秋电子

甭提ChatGPT了,这个新的AI助手将永远改变人们的工作方式

互联网工科生

人工智能 AI 机器人

中国信通院高质量数字化转型产品及服务全景图发布,合合信息多项AI产品入选

合合技术团队

人工智能 数字化转型

PP-ChatOCR:基于文心大模型的通用图像关键信息抽取利器,开发提效 50%!

飞桨PaddlePaddle

人工智能 百度飞桨

大型集团公司如何打破“信息孤岛”问题?

优秀

打破信息孤岛 消除信息孤岛 信息孤岛

实现分布式事务:Java与MySQL的XA事务协调

树上有只程序猿

Java MySQL 数据库 分布式 XA

腾讯云大数据ES:结合AI大模型与向量检索的新一代云端检索分析引擎

腾讯云大数据

ES

以商业大数据技术助力数据合规流通体系建立,合合信息参编《数据经纪从业人员评价规范

合合技术团队

人工智能 大数据 商业化

【我和openGauss的故事】原生openGauss与Oracle数据库函数兼容性对比验证测试

daydayup

【我和openGauss的故事】在Kylin桌面版操作系统中配置openGauss的ODBC数据源

daydayup

Karpathy盛赞DeepSeek-OCR“淘汰”tokenizer!开发者成功用 Claude Code 在 NVIDIA Spark 上跑新模型_AI&大模型_褚杏娟_InfoQ精选文章