Ladies and gentlemen, welcome to the October 2025 video walkthrough of AI and Machine Learning Monthly, a textbased newsletter I send out at the start of every month, which covers the latest and greatest in machine learning, not always the latest, and has a particular focus on open-source. And this month, we've got some exciting updates, including a paradigm shift for OCR, a 200page LLM training

book, and an excellent case study on how to segment, detect, and classify players in a basketball game using computer vision. Let's get started. October 2025, that means Christmas is basically here. Let's start it off. I've got my work here, and I've got two quite big announcements for this month's machine learning monthly. Well, my next course, HuggingFace Boot Camp, is now live on the Zero to

Mastery website. Machine learning with HuggingFace Boot Camp. I use Hugging Face basically every day, but I'm not going to talk through everything that's on here cuz I'll let you click through that. There's a lot of material on there already. I'm going to run the promo video. Feel free to skip that if that's not your thing. But here it is. Daniel Burke here, machine learning engineer, and I'm

really excited about this one. Welcome to the machine learning with hugging face boot camp. A hands-on projectbased course that will teach you new machine learning skills using hugging face. What's this face hugging thing you ask? Well, hugging face is one of the most important ecosystems of the world and modern machine learning and AI. You can think of hugging face as the homepage of all things

AI. Companies such as OpenAI, Google, and Apple all share their open source models here. And individuals like you and me can create their own profiles and begin building their AI portfolios. And it doesn't stop there. Hugging Face makes working with state-of-the-art AI and machine learning [music] models surprisingly easy for beginners while still allowing extreme versatility [music] for more

advanced users. You'll learn about and utilize the full hugging face ecosystem, including the power of hugging face transformers for customizing machine learning models [music] in text, vision, audio, even a mixture of all of them with multimodal [music] models for both inference and training. The hugging face data sets library to easily access, create, and share AI data sets for audio, vision,

and natural language processing tasks. And finally, the HuggingFace Hub, an online platform [music] that allows people to easily collaborate, build, and share their machine learning projects. We'll cover plenty of ground in this course, including writing lots and lots of code together. Because that's the best way to learn, right? To dive in and get your hands [music] dirty. That's why the skills

and information in this course are taught through realworld projects where we'll customize real machine learning models with hugging [music] face as the base including text classification models, object detection models, large and small language [music] models, vision language models, and more. I'll see you inside. Now, if I sounded a little nasely in that promo video, it's because I had a cold at

the time of recording. So, this is what my voice usually sounds like, what you're hearing now. and that will be throughout all the video lectures in there. So very excited to have the hugging face course uh live and ready to go. If you want to learn how to build with the beautiful hugging face ecosystem, go and check that out. Otherwise, I have a note for next month's November 2025 machine

learning/oi monthly. I'm going to be skipping it because I'm getting married at the end of November 25th in about 17 days from now. I'm very excited. So, I do love writing these articles and making videos and reading about machine learning and whatnot, but I'm going to spend a couple of weeks with my beautiful new wife. So, if you don't see me next month, it's because I'm getting married. I'm very

excited. Anyway, that's enough about me. Let's get into the latest and greatest from the world of machine learning. We have from the internet. Now, there's a textbook here. This is I I haven't seen much of this. It's like you get papers which are like six to seven pages maybe 12 15 pages if it's a longer one but this is 200 plus pages on building worldclass LLMs. Now I haven't been through all of

it confession because as you'll see it's a 200page textbook and it's basically the zero to one of training worldclass large language models from Hugging Face. There we go. We got people like Tom Wolf, which is the co-founder of HuggingFace. And we've got why, what, how, hugging face heat map. I found this really cool. I want to see this on its own. You know, look at this. Hugging face heat map.

Open models, data sets, and apps from popular AI labs in the last year. Who's winning? AI 2. Yeah, one of my favorite people to release things. Uh, Nvidia, Meta Lama, Hugging Face themselves. Quen, which is we've seen plenty of models of theirs in uh previous machine learning monthlies. Google, of course. What do we got? And is open AI there. Apple. Open AAI is right back down at the bottom there.

Mistral. I would say they should be higher. Maybe on just raw numbers. They're not up high, but from downloads potentially. I wonder if you redid this on downloads. Anyway, we're getting distracted. That's a very cool graphic. They should put this on all people's repos on Hugging Face. Every big model starts with a small ablation. That's another word for ablation. Sorry. Experiment. That's what I

teach in my courses is experiment, experiment, experiment. Start small and scale up when you found out what doesn't work. Designing the model architecture, what goes into that? Data curation, the training marathon. Once you've got the architecture, once you've got the data, how do you curate or how do you coordinate? Sorry. For small LM3, we trained on 384 H100 GPUs, 48 nodes, excuse me, 48 nodes

for nearly a month, processing 11 trillion tokens. So, can you imagine that? I run a model overnight and I get a little anxious processing 11 trillion tokens for a month. So, this section walks you through what actually happens during a long training run. The pre-flight checks, the inevitable surprises, and how we kept things stable. You'll see firsthand why both solid ablation practices and

reliable infrastructure matter. We cover the technical infrastructure of GPU hardware storage systems and optimizing throughputs in the final chapter. So then there's a training module beyond base models post training in 2025 what do you do? So you have a base model which has a good representation of what tokens should come then you supervised fine-tune and then you run some kind of reinforcement

学习过程。因此,一旦预训练完成,我们预计一天内就能获得监督微调(SFT)基线。哇,真是乐观的LLM专家啊。好的,所以正如你所见,如果我们继续滚动页面,看右边的滚动条有多小就知道了。这是一篇非常长的文章。现在,如果你在圣诞节期间有一些空闲时间……呃,如果你想从陪伴家人的时光中抽身出来,别那么做。还是花时间和家人在一起吧。你可能想看看那份“小型训练手册”,其实它并不小。所以,我要特别感谢Hugging Face。谢谢你们创建了如此棒的学习资源,你可以从那里下载PDF文件。而且,我真心希望他们能将其发布为模板,以便人们可以直接使用。

接下来是Small LM3,这是他们在文中提到的模型。我们在之前的ML月刊中已经见过这个模型,它是针对30亿参数规模的一款优秀模型。好了,让我们继续往下看。这里有两个比较快速的内容:Hugging Face Hub 1.0版本发布。这是经过5年开发的结果。我记得当Hugging Face Hub刚开始起步的时候,我在那个机器学习乃至AI领域里肯定是个“恐龙”般的存在。哦,我得关注这些人了。我喜欢接收来自Hugging Face的更新信息。

经过5年的开发,Hugging Face Hub终于达到了1.0版本。这是一个里程碑式的事件,标志着该库作为Python包已经成熟,它支撑着20万个依赖它的库,并为访问超过200万个公共模型、50万个公共数据集和100万个公共空间提供了核心功能。所以对我来说,Hugging Face作为开发者而言就是AI的主页。这也是为什么我的下一门课程将围绕它展开,因为我每天都会去Hugging Face查看模型、研究论文等等。Hugging Face就是我的AI家园。

我有一个在美国的客户,而我身在澳大利亚,我们所有的合作工作都通过Hugging Face Hub进行。上传模型、上传演示……呃,或者不是数据集,抱歉,因为我需要为此使用AWS服务。但如果我不必非要用AWS的话,我会直接使用Hugging Face的数据集功能。所以,Hugging Face Hub达到1.0版本确实令人兴奋。这是一篇很好的文章,回顾了其中的一些选择以及它的进展历程。顺便提一下,最近的一个大亮点是引入了Zet(压缩格式),用于存储优化,我们在之前的机器学习月刊中也提到过这一点,它基本上让存储变得更加高效。

说到存储,这就引出了流式数据集(Streaming Datasets)的概念。这是另一篇文章:Hugging Face升级了流式数据集功能。如果你不确定什么是流式数据集,简单来说,假设我有一台本地电脑,如果我想下载一个像305GB这样的大型数据集,我就需要硬件上有足够的物理空间来存储它。而使用流式数据集时,你只需告诉模型“在这个数据集上进行训练并流式传输数据”。这意味着就像观看Netflix或YouTube视频一样,不需要下载整个视频文件,而是需要什么就加载什么。

因此,这次对流式数据集的更新意味着:假设你有一个包含100个样本的批次,它可以直接加载这些样本来进行训练,然后移除它们;接着加载下一批100个样本继续训练并移除……以此类推。所以,我们只需将代码中的 load_dataset 参数设置为 streaming=True。这就是加载流式数据集的简便之处,无需下载即可通过一行代码实现。我刚才有点跑题了。我们可以立即开始在TB级(太字节)的数据集上进行训练,无需复杂的设置、不需要下载占用磁盘空间,也不会出现429请求错误。速度超快,甚至超过了我们本地的SSD固态硬盘。这太不可思议了,流式传输数据集比本地SSD还要快!我必须亲自尝试一下。

在配备64块H100显卡并使用256个工作进程下载数据时,我们改进了流式传输功能,使请求数量减少了100倍(原文为“100 100x fewer requests”,推测意为大幅减少),数据解析速度快了10倍,每秒处理的样本数提高了2倍,并且在250个并发工作进程下实现了零崩溃。这真是令人惊叹。现在回顾一下我们刚才看过的“小型LLM训练手册”,他们发现一旦你拥有了数据和模型,剩下的很多工作就变成了基础设施问题。那么,如何让GPU同步协作以在一个月内训练如此庞大的模型呢?

特别是在TB级别加载数据时,这是任何机器学习工作流程中的一大痛点。我们在训练Small LM3时就深受其害。有一次,在每次运行之前,我们不得不等待3个小时来下载足够的数据。所以,假设你每天只有8到10小时的有效工作时间,而其中3个小时(即30%)都在等待数据下载,那么你几乎把一天中可以进行实验的时间砍半了。虽然数据集库一直支持流式传输,但使用海量数据进行大规模训练仍然是一个挑战。

今天的更新(配有一个火焰表情符号)意味着我们花了几个月时间改进后端,专注于使流式数据集更快、更高效。具体做了哪些改动呢?如果你想了解流式传输是如何改进的,当然也可以在自己的样本上尝试。我知道我之所以停止运行实验,纯粹是因为Hugging Face上的开源数据集对我来说太大了,无法下载到本地。例如,之前有一个名为“FineVision”的数据集(我刚才口误说成了fine images),这是一个5TB的图像数据集。我很想下载它,但本地存储空间不足。因此,流式传输我需要的部分数据可能会对我有所帮助。

再次感谢Hugging Face对Hub和流式数据集的更新。接下来我们要看的是Exo Sharing(分布式共享)。这是一篇非常有趣的博文。他们将一台NVIDIA DGX Spark(本质上是一台小型深度学习计算机)与Mac Studio M3 Ultra连接起来,以改善延迟。让我们深入了解一下这篇博文的内容。我喜欢这篇文章里的配图。这里展示了两台电脑。现在,如果你想达到在本地运行超大型LLM的阶段,目前你通常需要相当先进的硬件设备,普通人家里很难具备这种条件。

我的电脑里有一块RTX 4090显卡,它很棒,大概能支撑运行8B(十亿参数)甚至20B参数的模型(如果是INT4量化格式)。但如果你想运行更大的模型,可能就需要更专用的先进硬件了。即使是RTX 4090对于普通用户来说也是一张相当高级的显卡。我知道使用LM Studio,我可以很好地在我的Mac(就在下面指的位置)上本地运行非常优秀的LLM模型,而且效果随着时间的推移越来越好。我认为这就是我们未来的发展方向,我们将……

我们将能够在本地设备上运行非常优秀的LLM,如果需要最先进的模型,则调用API。最近我们获得了两台Nvidia DGX Spark设备的访问权限。Nvidia称其为“世界上最小的AI超级计算机”,它拥有100 TFLOPS的FP16浮点性能,以及120 GB CPU与GPU相干内存。这相当可观,对吧?也就是128 GB的显存。此前我们一直在Apple Max Studio集群上运行LM,配备M3 Ultra芯片。Mac Studio拥有512 GB统一内存,带宽为819 GB/秒,几乎是DGX Spark的4倍。但其GPU仅有26 TFLOPS的FP16性能(原文误说成FP6)。

如果对比两者,DGX Spark的计算能力是Max Studio的4倍,而Max Studio的内存带宽是其3倍。那么它们各自在何处发挥作用?什么决定了LLM的性能?你看到的现象是:我们在聊天窗口输入内容,从发送提示到出现第一个token的时间(TTFT),即延迟。随后是每秒生成的token数,即第一个token出现后后续token的生成节奏。系统的所有优化都旨在提升这两个指标,因为通常越快越好。

它们难以同时优化的原因是因为它们由同一请求的两个不同阶段控制:预填充(prefill)和解码(decode)。从用户视角看请求的生命周期:我们发送提示,等待,此时处于预填充阶段,它决定了首token时间(TTFT)。当第一个token出现后,随后的流式输出属于解码阶段,它决定了每秒生成的token数。

那么这两个阶段的底层机制为何表现不同?预填充阶段处理提示并构建KV缓存(键值对)。在注意力机制中,我们需要为每个Transformer层计算Key和Value矩阵。KV缓存包含提示中每个token对应的向量,这些向量在预填充阶段计算并存储,以便解码时无需重新计算。对于长上下文,计算量随提示长度呈二次方增长(O(S^2))。

虽然使用Flash Attention等现代技术可使数据传输量随提示长度线性增长(O(S)),但计算与传输数据的比率即算术强度,仍随提示长度线性增加。这意味着提示越长,所需的计算量越大(而非平方级增长)。这使得长上下文预填充成为计算密集型任务。DGX Spark拥有100 TFLOPS算力,更适合预填充;而Mac Studio带宽更高。

解码阶段是内存密集型任务。它是自回归循环:基于前五个token生成第六个,再基于前六个生成第七个。每一步都通过关注已构建的整个KV缓存来生成一个token。解码过程中的向量矩阵乘法具有较低的算术强度,因此受限于内存带宽而非算力。

既然两者特性不同,结合两台机器是明智之举:预填充使用高计算设备(DGX Spark),解码使用高内存带宽设备(M3 Ultra)。如果在不同设备上运行预填充和解码,必须通过网络传输KV缓存。朴素的方法是线性执行:完成预填充、传输KV缓存、再开始解码,但这会使传输成为瓶颈。

他们采用的策略是将通信与计算重叠。KV缓存不必作为整体在最后到达,而是可以逐层传输。一旦第一层的预填充完成,两件事同时发生:第一层的KV缓存开始传输到M3 Ultra,同时在DGX Spark上开始第二层的预填充。每一层的通信都与后续层的计算重叠,从而流式传输KV缓存值到Mac Studio。

那么结果如何?我们进行了一些算术计算,但最有趣的是基准测试结果。使用Llama 3.18模型在家运行效果不错。DGX Spark与Max Studio作为基线(2.3秒总时间)相比,实现了2.8倍的速度提升。这非常酷。你只需要一台M3 Ultra和一台DGX Spark,虽然我没有这些设备,但看到本地硬件能实现这种可能性令人振奋。

随着时间推移,情况会越来越好。M3 Ultra曾是一款突破性的芯片,现在Apple可能已经发布了M5系列(推测),看来Apple正在真正

将他们的原生芯片针对人工智能进行优化。因此,我们确实开始进入这样一个时代:是的,当然可以在本地运行一个20B参数的LLM(大型语言模型),它直接内置在操作系统中。我想在一两年内我们就会达到那个阶段,也许吧。当然,我可能会联系英伟达(Nvidia),看看他们是否愿意寄给我一块这样的芯片让我进行测试。但这确实是一篇很酷的文章,如果你感兴趣的话,可以去了解一下关于预填充(prefill)和解码阶段计算细节的硬核内容。

接下来是Heditry的文章,如果我发音有误请见谅。Ed Daniels通过一些精美的可视化图表拆解了视觉语言模型(VLM)的工作原理,并详细剖析了一个现代的、小型的2.56亿参数指令微调VLM。让我们深入这篇文章,我的网络刚才有点小故障。现在我们正在可视化VLM是如何工作的。如果我们浏览这里的内容,视觉语言模型是自回归AI模型,即一个接一个、一个标记(token)接着一个标记地处理文本和图像作为输入。在这篇文章中,我们将更深入地了解像ID Effects 3和小VLM这样的模型在底层是如何运作的,探索它们如何融合视觉和文本信息以生成连贯的输出。

如果我们向下滚动浏览这里的内容,会发现有几个不同的部分。我喜欢这类文章的一点是它们就像食谱一样。我们有一个图像处理器:如果你想把一张图片分解成它包含的内容,LLM需要的是标记(tokens),所以你需要对图像进行分词。你是通过将图片分割成补丁(patches)来实现这一点的,然后稍后我们会提到一个技巧。这里有一个窍门可以让图像的标记更少。接着是一个文本处理器,它处理文本并将其转换为标记,并确保将图像放在正确的位置。然后是数据准备:你的输入将成为一系列标记序列。记住LLM是“标记进,标记出”,你需要准备好什么是你的输入以及什么是输出。这与所有其他机器学习模型非常相似。

这里是你的输入标记,那里是你的输出标记。在这种情况下,你的输入标记将是文本和图像标记的组合。模型架构方面,我们有一个嵌入层(embedding layer),这是标记进入的地方——或者说文本标记。通常我们会在这里结合两个不同的模型:我们将视觉模型(可能是SigLIP或CLIP模型)放入其中,它将图像编码到文本和语言空间中。然后我们有一个令牌编码器(token encoder),它接收文本,可能是一个嵌入式的Gemma模型或类似的东西。我们将它们与输入合并器(inputs merger)结合,然后我们有一个解码模型,类似于GPT。

如果我们继续往下看,对于视觉模型你可以选择你想要的2D卷积位置编码器。这里有很多术语,但我快速浏览这篇文章是因为我想到达这个图表部分,因为这是一个很好的整体概览。我们有图像输入,我们将其分割成标记或补丁。然后我们使用视觉Transformer(Vision Transformer)或其他类似的东西对这些进行编码。实际上我在我的PyTorch课程中教过如何从头构建视觉Transformer。然后这里有一些魔法操作,进行像素洗牌(pixel shuffle),这会压缩信息但减少标记数量。正如苹果通过快速VLM所展示的那样,你可以大幅压缩视觉标记并获得更快的首字生成时间(time to first token),这完全关乎用户体验。

然后我们有一个线性层,将其转换为语言空间或文本输入被分词的标记器空间。这样你现在就可以将视觉输入和文本输入结合起来,并将其传递给现有的LLM(在这种情况下是一个解码器)。解码器的意思是它可以逐个地解码到Small LM2的Hugging Face表情符号。哇哦!所以这是一篇非常酷的博文,还有像素洗牌的神奇之处:在这里做一些魔法操作,通过置换和应用维度变化来减少维度,但仍保持相同水平的信息量。输入合并器、解码器。好了。最后的结论:这里是每个阶段的快速回顾。处理器,视觉模块(我做了两个)。连接器、输入合并器和解码器。所以这是一篇很棒的博文,非常很好地概述了VLM的工作原理。

当然,如果你想亲眼看看这些内容在现实中的应用,我强烈建议你前往Nanov(NanoVLM)。如果你想亲眼目睹其运作方式,去检查一下NanoVLM吧,这是一个练习从头构建自己VLM的好方法。看这里:SigLIP B和Hugging Face TinyLLM Small LM2,这就是他们结合这两个模型的方式。这是来自Google SigLIP的视觉编码器,这是一个小型语言模型(也是语言模型)。所以NanoVLM是一个很棒的项目,你甚至可能花一个月的时间逐行复现它。让我们回到文章。接下来是Peter Sadowski,他是计算机视觉领域我最喜欢的作家之一,当然也是技术方面的专家。

如果我们向下滚动这里的内容,这是Peter用篮球构建的东西。这有多酷呢?这里有几件事在进行中:我们有球员分割(player segmentation),有两支不同的队伍。我不确定他们是谁,也许是迈阿密热火队?我不知道。也许是凯尔特人队?那是他们的颜色吗?所以绿色是白色球衣,蓝色可能是黑色或蓝色的球衣。但我们还有球员号码。现在它是如何跟随他们移动的?好吧,所以必须有一个检测机制在追踪25号球员。我可以看到球衣上的号码,那一定是某种检测算法的结果。

如果我们仅仅通过图表来思考这个问题:这里运行着哪些模型?我们有一个分割模型,一个检测模型(我猜这是识别号码的算法),还有一些某种特征匹配机制,它在说嘿,那些更接近黑色的将被归类为蓝色,而那些接近白色的将是绿色。然后我们可能有一个分类器在每个球员或其号码上运行——既然我已经读过这篇文章,这对我来说有点剧透了。但Peter确实构建了一个很酷的系统,他堆叠了一系列不同的开源模型来完成这项任务:Rooflow数据(一种最先进的目标检测模型),它既快速又准确。我们使用它来检测球员球衣、球衣号码以及篮球物体如球和篮筐。

所以球也被分割了:Segment Anything 2(SAM 2),这是一个用于对象分割和跟踪的统一模型。所以SAM 2也可以进行跟踪,这非常酷。你用点或框提示SAM 2来选择对象,然后它会对该对象进行跟踪和分割。

贯穿视频帧的对象。因此,小型 VLM2 是一个专注于图像转文本任务的紧凑型视觉语言模型。我们依赖它来对裁剪后的球衣号码进行光学字符识别(OCR)。好的,ResNet。很高兴见到你。嗯,久经考验的 ResNet 登场了。这是一种众所周知的卷积神经网络,我们对其进行微调以分类裁剪后的球衣号码片段。SigLIP 是一种类似于 CLIP 的视觉语言模型,针对图像文本对齐进行了优化。我们使用 SigLip 生成捕捉视觉相似性的嵌入向量,从而实现稳健的球队聚类。这就是他们将两支球队聚集在一起的地方。嘿,最像白色的像素是一队,最像黑色的像素是另一队。当然还有 K 均值聚类算法。这是一种简单但极其有效的聚类算法,K 均值将数据点划分为预定义数量的簇。因为你知道在篮球比赛中总是会有两支球队,你可以直接说嘿,把人群聚成两类。我们将它应用于根据 SigLip 嵌入将球员分为两队。这真的很酷,你可能想尝试一下这个。一个史诗级的项目是为你的最爱运动复制这个过程。也许你为足球或赛马做这件事。所以如果你想在这里浏览,它分解了如何做到这一点的内容。

但我特别发现他们用了 ResNet 吗?所以这是今天不要忽视小模型的地方,因为这里训练了小型 VLM2。是的,用于号码 OCR。这意味着嘿,这些图像并不完美对吧?你在裁剪它们,但我能读出来,你也能读出来,但我们必须训练一个模型来读取它们。所以看那个,那是 41,我会说那也是 41 对吧?所以他们做的是号码 OCR 使用了小型 VLM2。让我们读一下这段内容:我们首先尝试了小型 VLM2,这是一个紧凑型视觉语言模型,以其小巧的体积著称。小型 VLM2 强大且快速,这使得该模型成为我们管道中光学字符识别(OCR)的有吸引力的选择。所以我们试图给定一张球衣裁剪照片,它是什么号码?这样我们就可以将其与球队字典进行匹配。小型 VLM2 主要在文档 OCR 上进行预训练,但它意外地很好地迁移到了篮球球衣号码上。开箱即用,它在我们的测试集上达到了 56% 的准确率。好的,所以这可能不太理想,只有 56% 的准确率。

这还不够高吗?是的,对于可靠的球员识别来说还不够高。该模型有时还会产生在篮球背景下不切实际的预测,例如 011 或 3000。为了提高性能,我们在一个自定义数据集上微调了小型 VLM2,该数据集包含从 2025 年 NBA 季后赛收集的球衣裁剪号码。数据集中包含了 3600 张图像。所以在微调之后,准确率从多少提升到了哪里?86% 的准确率。所以永远不要忽视微调,女士们先生们。这是一个巨大的飞跃对吧?错误率减少了一半以上。但问题是,他们选择了一种更简单的方法,即使用分类模型。所以在相同的数据集上训练了一个 ResNet32,其参数可能远少于 SmallVLM2。该数据集从 JSONL 重新格式化为目录结构的数据集,用于典型的图像分类。是的,图像分类你只需要一个文件夹集合,嘿这些是 42 的图像,这些是 43 的图像,这些是 44 的图像在多个不同的文件夹中,然后训练模型只是说嘿给定文件夹名称预测这张图片属于哪个。ResNet 达到了 93% 的准确率。

所以再次强调,错误率减半。如果这是 14% 的错误率,我是说 100 减去 86 等于 14%。然后 ResNet 达到了 93% 的准确率。我们从 14% 的错误率降低到 7%。ResNet 模型优于小型 VLM2。这表明专门针对数字分类训练的轻量级 CNN 可能比通用视觉语言模型更有效,即使是像小型 VLM2 这样强大的模型。这有多酷?所以不要忽视小模型。我让你自己阅读这个案例研究的其余部分,但我发现这是一种将几个不同的开源计算机视觉模型串联起来的绝佳方式。所以我认为这个管道的下一步,我会说这有点像一个工作原型对吧?但你可能希望它更快。所以效率就在这里发挥作用了。在 Nvidia T4 上,它的运行速度约为每秒 1 到 2 帧(FPS),所以你现在不能让它实时运行,但在未来嗯你可能会训练更专门的模型,这些模型在该硬件上比通用模型运行得更快。我不确定,但这将是一个比嘿我想尝试追踪篮球球员更长期的项目。

来自 Peter 的这个案例研究真的很酷,代码也在 Google Collab 上可用。接下来是 Thinking Machines 的一篇博客文章。Thinking Machines 运行一系列实验,看看 LoRA(低秩自适应)何时能匹配全模型微调的性能。LoRA 是 PEFT 的一种形式,即参数高效微调。这里有很多首字母缩写词,天哪。这是一种技术,通过训练较少数量的模型参数来使基础模型适应特定任务,而不是训练整个模型。所以如果你有一个拥有 70 亿参数的全模型,要训练所有这 70 亿参数在计算上是非常昂贵的。所以你可能使用 LoRA 训练一个侧模块,这可能只是额外的 5000 万参数。在推理时,你取那个侧模块基本上将 70 亿中的所有内容乘以该侧模块以使其朝向你的特定任务。

核心问题是:我应该训练全模型,这将专门将我的更改构建到整个基础模型中吗?还是只使用这个小侧模块就足够了?所以他们做了一篇相当深入的论文。你可以说这是一篇博客文章,但它的质量堪比论文。对我来说写得比论文更友好一些。他们的博客非常出色。嗯他们可能在那里还有另一篇文章。无论如何,让我们来看看这个。他们发现了什么?所以 LoRA 可能在后处理、培训后的成本和速度方面提供优势,并且还有一些操作原因使其优于全微调。因此称为全微调(Full FT)。那么多租户服务为什么要这样做呢?因为 LoRA 训练一个适配器,即 A 和 B 矩阵。所以适配器只是侧面的一个小模块同时保持原始权重不变。是的你可以从 Hugging Face 下载一个全新的 7B 模型并在这里有一个 LoRA 适配器,5000 万参数并将其应用于该模型。单个推理服务器可以保持许多不同的适配器、不同模型和版本在

以批处理方式同时从内存中采样。现代推理引擎如 VLM、VLM 和 SG lang 实现了这一功能,听起来很酷。你可以使用一个对你来说表现良好的基础模型,然后为各种用例配置一组六个不同的 LoRA。当用户进入你的应用时,他们通过路径一,你可能会选择将 LoRA 1 应用到语言模型;如果走路径二则是 LoRA 2,以此类推。与其为六个不同的用例更新基础模型,你只需针对这六个不同用例训练较小的 LoRA 即可。

全量微调时,优化器状态需要与原始权重一起存储,通常以更高精度保存。因此,全量微调所需的加速器数量通常是相同模型采样时的一个数量级更多,从而需要不同的布局。由于 LoRA 训练的权重少得多且使用更少的内存,它可以在仅比采样所用布局稍大的情况下进行训练。这使得训练更加普及且通常更高效,同时也便于加载和传输,因为需要存储的权重更少。

LoRA 适配器设置或跨机器转移快速且简单,我想展示一个完美的例子:Apple 基础模型适配器框架。最近 Apple 随新的 iOS 26 设备端基础模型发布了一个框架,这是我第一次看到有人发布用于适配器训练的实际框架。如果你有一部 iPhone,它内置了 Apple 基础模型,无论你对它的能力有何看法,对于应用中的小任务来说,这可能比调用 API 更足够。

通过基础模型适配器训练,你可以教设备端语言模型特定于你应用的新技能,方法是训练自定义适配器(如 LoRA 适配器)。该工具包包含 Python 训练工作流程和实用程序,用于打包供基础模型框架使用的适配器。如果我们在这里查找 LoRA,这正是 Apple Intelligence 适配器训练中使用的技术。

自适应训练比微调整个大型语言模型更快且内存占用更少,因为系统模型使用称为 LoRA(低秩适应)的参数高效微调方法。在 LoRA 中,原始模型权重被冻结,小型可训练权重矩阵(称为适配器)嵌入到网络中。在训练过程中,仅更新适配器权重,显著减少了需要训练的参数量。这种方法允许基础系统模型在多种不同用例和应用中共享,每个应用拥有专用适配器。

他们提供了基于你自己数据集训练适配器的代码示例,这是 LoRA 实际应用于 Apple Intelligence 的例子,后者可能已在超过一亿台设备上运行。接下来看结果:这是一个巨大的阅读材料,我不会全部展开,但看看低秩部分。我们在 Tulu 3 数据集和 Open Thoughts 3 数据集的子集上训练了一个 epoch。对于每个数据集和模型大小,我们扫描了 LoRA 秩和学习率。

对我来说,LoRA 秩就是矩阵的大小,即你训练的适配器有多大。在下方的图表中,我们为每个秩绘制一条彩色线,该线是通过在每个训练步骤对所有学习率取逐点最小值获得的。全量微调中,秩 1 显然最小,而 512 接近全量微调。即使在 Tulu 3 数据集上针对 Llama 3.2,这里的绿色线(秩 512)对我来说比全量微调更好。

如果你不想做全量微调,可能会寻找“金发姑娘”区域(适中值),也许根据设置选择 256 或 128。我希望在这里看到 LoRA 适配器的确切推理时间或训练时间,但如果我们向下滚动,他们展示了两个不同的观点。如果我没很快找到它们的话……讨论结果:我们要超越经验结果,讨论与 LoRA 性能和应用适用性相关的更广泛考量。

这对研究人员和构建者都感兴趣,天哪,我被那个词卡住了。首先更深入地检查我们的主要结果,即 LoRA 表现类似于微调的两个条件:LoRA 应用于网络的所有层,特别是容纳大多数参数的 MLP(多层感知机)和混合专家层。你可以选择将适配器应用于模型的所有参数或仅子集,他们默认将其应用于网络的所有层。

这是 LoRA 表现类似于全量微调的条件之一:将 LoRA 应用于网络中的所有层,而不仅仅是注意力层等。第二点,LoRA 在不受容量限制时效果良好。即可训练参数的数量超过要学习的信息量,这可以根据数据集大小来估计。当满足条件一时,我们在训练初期获得与全量微调相似的学习动态;然后如条件二所述,在达到容量限制之前,LoRA 看起来像全量微调。

当然这因问题而异,但我发现容量限制的问题并非直接与 LoRA 相关。这意味着什么?如果你的网络有比如五千万参数,我们之前用过这个数字,并且你有五千个样本。无论上采样率是多少,5000 乘以……是 10,000?对,5000 乘五千万是一万。LoRA 可能对此有效。但如果你的数据集大小比那大十倍,即五万个样本,LoRA 可能没有足够的学习能力来处理所有这些样本。

这说得通吗?或者是五十万个样本,那大概高出两个数量级。这就是你需要更大的 LoRA 的地方。如果你有五千个样本,五千万可能足够;但如果你要从五十万个样本中学习,你可能需要一个一亿参数的 LoRA 才能等同于全量微调。虽然我没有直接在 LoRA 中发现这一点,但我是在计算机视觉中找到的。

我最近为一个客户工作,使用一个小模型因为它必须部署在移动设备上……

我选用的模型太小了,尽管样本数量充足,但模型并没有学到我想要的内容。然而,当我增加模型的容量时,学习效果呈指数级增长。这里的“容量”指的是参数量,因为更多的参数意味着更强的学习能力。虽然这可能与理论上的定义不完全一致,但我只是基于自己实际构建和部署的经验来类比说明。

这里有一篇来自 Thinking Machines 的非常棒的博客文章。如果你想微调自己的大语言模型(LLM),我目前正在做一个与 Hugging Face 合作的项目来实现这一点,但现在你可以通过 LoRA(低秩适应)或全量微调来完成。LoRA without regret,感谢 Thinking Machines 团队。我在文章中留了一个拼写错误,正如你在这里看到的那样直到这里。更多资源……这就是你知道这篇文章不是由 AI 生成的方式,因为这是我写的,我故意留下了拼写错误。

接下来进入 Daniel 的开源 AI 月度推荐环节。首先是什么?Rooflow,紧接在年初发布的 RF-Data(射频数据)之后,那是一款最先进的目标检测模型。现在它有了 RF-DATA SEG,即分割任务。看看这里的飞跃和边界提升,简直令人惊叹。我认为这可能是因为使用了 Dino V3 主干网络,或者是 Dino V2?好吧,Dino V2。我不太确定 RF-DATA SEG 具体使用的主干网络是什么,但如果你需要一个高性能的分割模型,我们有 RF-DATA SEG 预览版。

其测量延迟仅为 3.3 毫秒,非常快。测量的 mAP(平均精度均值)为 39.3。当然,随着你增加尺寸,也就是使用的像素数量增多,你会在这里获得更好的结果。更多的像素意味着有更多的计算数据,虽然会牺牲一点推理速度,但我们在 RF-DATA SEG 上以 432 像素获得了最佳结果。相比之下,YOLO11x-SEG 的 mAP 上限约为 40%,但延迟为 13.7 毫秒,虽然这也很快,但不如 RF-DATA 快。因此,如果你需要一个非常快速的分割模型,这里有一个示例供你参考,去查看 RF-DATA SEG 吧。当然,你也可以在自己的数据集上微调它。

接下来是 Modern V-BERT,这是一个 2.5 亿参数的模型。除了性能之外,最吸引人的部分是它的体积非常合理,是一个视觉语言检索器。你有一个嵌入模型,可以嵌入文档中的所有文本并进行检索。但如果你想嵌入文档的图像呢?这样你就可以捕捉到图片、图表等内容。因此,如果你需要视觉检索模型,可以看看 Modern V-BERT。它处于帕累托前沿(Pareto frontier),意味着性能向上、体积向左,这是个好位置。

这里有一个通用的 SigLIP 2 Large,这是一个非常棒的模型,我尝试过很多次。但在这个基准测试中(我需要侧着身子才能看清),在视频检索方面,我认为 Modern V-BERT 表现非常好。虽然不如 CLIP-Quen 2.5 高,但它小了 10 倍以上。因此它在现代 GPU 上运行会非常快。如果你需要视觉检索模型,去查看 Modern V-BERT 吧。

他们在这里做了一个很棒的研究,探讨双向还是单向的问题。“Bidirectional”(双向)BERT 记得代表“Bidirectional Encoder Representation from Transformers”。我是对的吗?如果我搞错了 BERT 的分解,请纠正我。双向意味着它从左到右读取序列,然后从右到左读取。他们发现多向量(即双向)仍然优于单向量。这是一个值得注意的酷点,训练带来了差异。我相信数据是开源的吗?是的,没错。完全开源。所有模型检查点、训练数据集和训练配方均在 MIT 许可证下发布。Modern V-BERT,去查看一下吧。感谢发布该模型的团队。

哦,它也是基于 ETIN 架构构建的。这是我们上个月机器学习月刊中介绍过的用于语言的新编码器和解码器集合。看到 ETIN 架构已经投入使用真的很酷。接下来是 Rex Omni,这是一个 VLM(视觉语言模型)或 MLM(多模态大语言模型),它将目标检测、对象指代、视觉提示、指点、OCR 以及我认为总共 10 个视觉任务转化为下一个词元预测问题。

Rex Omni 是从 Quen 2.5 VL3B 微调而来的,它将 10 个计算机视觉任务合并到一个模型中,并能够与专门针对特定任务训练的专用计算机视觉模型表现相当。这意味着那些专门为某项任务训练过的模型。这个模型(这里又有一个拼写错误,所以你知道这是人类写的)可以处理基于文本或视觉的输入以进行多种检测任务。值得注意的是其两阶段训练流程:第一阶段是监督微调(SFT),让模型习惯于预测下一个词元,如检测坐标;第二阶段是通过 GPRO 进行强化学习,让模型遵循几何上正确的输出。

例如,如果模型预测了正确数量的框,它就会得到奖励。这里有一个演示,你可以在自己的图像上尝试。我们开始吧……我已经做过这个了,所以我们直接复制粘贴。好了。我在这里输入的是前几天我和父亲一起吃早餐的照片。如果我在文本类别中输入:贝果、杏仁酱、加奶咖啡、黄油、维吉麦(Vegemite,在澳大利亚非常重要),看看它会预测什么。它在这里预测了框。这是一个可视化展示。

我们可以去这里看吗?好了。这里的框很小,但这就是为什么我们需要放大查看的原因。它在这里表现得非常出色。看啊:加奶咖啡、杏仁酱、贝果、黄油、贝果。我可能挡住了,对吧?移动我的头……把我移到这边来:加奶咖啡。然后它还可以进行指点(pointing)。所以指点的功能也变得非常好了:贝果、杏仁酱、加奶咖啡、黄油、维吉麦。Rex Omni 是一个非常酷的模型,我喜欢这篇论文。

如果我们回到这里看看论文……我把头移回原来的位置。好了。如果我们要深入进去,它有一些很好的例子展示他们是如何做到的。他们的做法是重塑了预测空间,或者说使用了一千个不同的词元来告诉模型:当它预测边界框坐标时……因为模型非常擅长下一个词元预测,他们将坐标转换成了词元。如果我们向下看数据样本是什么样的……是的,好了。所以这是当前检测器和 MLM 的示例:Grounding DINO、红苹果……

一个红苹果。嗯,Quinn 2.5VL。它能识别出苹果,也能识别出一组苹果。然后是检测器与多模态语言模型(MLMs)之间的优化难度差异。对于 MLMs 来说,预测框的损失是分类损失;而在检测器中,则是回归损失。因此,在回归任务中,这个框的损失会很低;但在分类任务中,它基本上所有的坐标都错了。尽管那个框本身只是稍微有点偏差。如果我们必须将这些分类为标记,32 和 34 是错的;但在回归中,它只差了两位。在分类任务中,66 不是 69;但在回归中,它只差了三位。这说得通吗?所以分类是完全错误的(01),而回归只是差了一点,因此很难针对该任务进行优化。

但往下看,这就是他们所做的:Rex Omni 的设计哲学用于坐标预测。这说明了我们要采用的方法:a) 采用直接坐标预测策略;b) 使用由特殊标记表示的量化相对坐标格式,以实现高效且稳健的空间编码。所以在他们的相对坐标中带有特殊标记时,他们使用一个框对应四个标记。而且他们使用的是直接预测。所以任务形式包括一千个类别。好的,我们开始吧。“文本提示:请检测这张图片中的鸽子、人、卡车和雪。以框格式返回输出。”这是视觉提示(抱歉)。你不仅可以做文本提示,还可以做视觉提示。所以你可以说:“嘿,这里有一个示例框。请给我返回图片中与这个示例框相似的项目或框。”这真的很酷。

输出格式是短语和坐标。好的,这里有一个用于输出边界框的任务示例。这是对象参考起始点。所以参考任务项或参考目标项“人”,框将从这些标记开始,然后你可以直接将其解码为实际的图像坐标。但这些是模型中已被替换的特殊标记。具体来说,是词汇表的最后 1000 个标记,用于表示边界框坐标。这真的很酷。好的,我们来看看 Rex Omni 模型架构的概述。Rex Omni 是基于 Quinn 2.5 VL3B 骨干网络构建的,架构修改极小。值得注意的是,原始词汇表的最后 1000 个标记被重新利用作为专用特殊标记,代表从 0 到 999 的量化坐标值。

我们有一张图片,通过原生分辨率的 ViT(视觉转换器)进行处理。然后将其与文本标记化器一起传递给 Quinn 2.53B,它将输出专用标记。这些标记替换了原始词汇表的最后 1000 个标记,然后我们得到输出。这是一个非常酷的发布版本。我喜欢视觉和语言模型现在真正融合的方式。本质上,似乎任何可以表述为下一个预测或下一个标记预测任务的事情都被转化为了这种形式。接下来,OCR 将迎来绝对的范式转移。就像上个月对 OCR 来说简直是圣诞节一样。实际上现在几乎也是圣诞节,但在过去几个月里(应该是复数),我们继续受益于高质量开源 OCR 模型的涌现。

这是我开始注意到的趋势:我们使用合成数据来创建人工文档,这允许模型在拥有完美真实标签的情况下进行学习。OCR 数据的一般难点在于,获取旧文档并准确写出上面的内容相当困难。所以现在模型作为基线模型已经相当不错了,你可以拿一堆现有文档并构建它们的合成版本,这些版本拥有完美的真实标签。我的意思是这样:我们看这篇关于注意力机制的论文,看看 Alma 在这里做的一个例子。我们将这篇文章传递给像 Claude、ChibiBT(可能是 ChatGPT)、Quinn 或 Gemini 这样的模型,并说:“嘿,分解这个页面的结构。”

它可能会回答:顶部有一个标题,有一些作者姓名,侧面有一段文字,还有一个摘要。实际上信息本身并不是太重要,因为我们希望对任何类型的文档都这样做。然后我们说:“嘿,为我们生成这个文档的 HTML 结构,但使用不同的文本或类似的内容。”所以它会创建另一个文档,看起来有点像这样但不完全相同。但美妙之处在于我们可以大规模地做到这一点。然后我们可以通过 Google Chrome 将该 HTML 文档导出为 PDF。但我们现在有什么?我们有一张图片,一个由 Google Chrome 导出的 PDF,但我们也拥有该文档被创建时使用的确切文本和 HTML 代码。

因此,我们现在可以通过以下方式引导我们的模型:“嘿,这里有一些带有完美信息的合成数据示例。”然后我们可以将该基线模型在实际文档上进行微调。这就是 MM OCR2 所做的。如果我们查看论文,稍后我们会看到它出来。MM OCR Bench 是一个基准测试。但在我们进行之前,另一个趋势是我们将布局检测和识别构建到同一个管道中。例如,标题在哪里以及阅读顺序是什么?因为如果我们看这份文档,这对它来说什么重要吗?你必须先读那个吗?不,你不一定需要。必须先读这个吗?不,也不一定。

但对于许多文档来说,假设有两栏,那么通常有一个阅读顺序,对吧?你先读左栏再读右栏。我想知道这里是否如此。不,这个没有两栏。所以这相当直接:你可以以线性方式阅读它。但如果你有包含三栏的文档,你通常按顺序读第 1、2、3 栏。所以在模型中,你要构建这样的逻辑:这是一个标题(你将其检测为标题),这是侧边注(你检测到它是侧边注),这是页脚,这是头部,这是副标题,这是一个段落。如果你明白我的意思的话,你检测页面的所有不同元素。然后你还可以预测阅读顺序。

所以你可能说:这是 0,这可能是 1、2、3;这些可能都是 3,也许是 4、5、6、7。阅读顺序。所以现在当你复制你的文档或将其转换为纯 Markdown 文本时,你拥有章节检测功能。然后你可以对图片或复选框等做同样的事情。

你拥有了阅读顺序的信息。因此,不再只是获得一大团混乱的文本,你现在还可以对文本进行排序。这就是第二个趋势。而第三个趋势是:你采用现有的视觉语言模型(VLM),就像我们在 Rex Omni 中看到的那样,使用 Quinn 2.5 VL3B。该模型已在涵盖互联网规模的文本和图像上进行了训练,因此它拥有良好的视觉与语言表征(希望如此),然后你可以直接针对光学字符识别(OCR)任务对其进行微调。正如之前篮球运动员的案例研究所展示的那样,当直接针对特定任务对模型进行微调时,错误率通常会大幅下降。

哇,这话可真长。嗯,这里大约有五个模型,我不会逐一介绍它们,因为它们都遵循类似的范式,这也是我在这里展示的内容。不过我会提供所有相关链接供你查阅或欣赏——抱歉,我太激动了都在打嗝。让我们看看论文页面……档案页面?哦不,是 PDF 文件,这才是我们想要的。(轻笑声)如果我们查看这些模型的开放程度:发布日期为2025年10月,都是最新鲜的内容。所有模型权重、训练数据、训练代码和推理代码均为开源,模型许可证也各不相同(尽管其中一些具有优秀的开放许可)。这几乎可能是最开放的,他们甚至制作了基准测试。

你可以争辩说:“我们是否应该信任制作基准的人得出的结果?”不过,我始终会在你自己的数据上测试这些模型。那么他们做了什么?他们创建了单元测试。这对强化学习来说非常酷。在 OCR Bench 中,我们通过为每份文档定义一组单元测试用例来衡量 OCR系统的性能。这些测试用例可以检查以下任何属性:文本存在性(确保短语精确出现在文档中)、文本缺失性(确保某些标题、页脚或页码未出现)、自然阅读顺序(检查句子的阅读顺序是否正确)以及表格准确性(检查表中特定值的单元格相对位置)。

这是一个关键点:表格准确性。我知道过去 OCR 模型在表格处理上表现糟糕,但现在它们进步很大。数学公式准确性检查给定的数学公式是否以相同的方式渲染;基线鲁棒性检查确保长重复的 n-gram 或非目标语言字符不会出现。这些就是他们单元测试的例子。如果我们看原始方程,OCR模型读取这个数学公式时,模型A可能会有较高的编辑距离(Edit Distance)。抱歉,是编辑距离。如果我们纯逐个标记地比较文本与文本,它的编辑距离很高。

在传统系统中,你可能会说高编辑距离意味着性能差,但当渲染出来时,它的效果可能比那些编辑距离较低的结果更好。我知道这听起来可能不太合乎逻辑,但当你深入挖掘时,你在优化什么?你是想优化精确的编辑距离,还是想让文档看起来更美观?这是你在构建系统时需要考虑的问题。如果我们继续向下滚动,是的,这是我们之前讨论过的 HTML 生成管道趋势。

这里引用的是 GPT-40 论文(或者我不确定出自哪篇),他们生成了该文档的 HTML 版本。如果我们看图三“我们的 ALM OCR2 合成数据管道中的 HTML 页面生成”:我们从真实文档左侧采样一页,并提示通用 VLM 生成一个高度相似的 HTML 页面。看,我们得到了一份真实文档(这仍然是真实数据),然后在右侧生成了完美的地面真值。渲染后的 HTML 页面图像与原始 HTML 配对,作为我们专门用于 OCR 的 VLM 的监督信号。

他们进行了扩展:来源不同的 PDF,进行 PDF 到 HTML 的转换。这是一个循环过程,包括布局分析、内容渲染和输出优化。他们似乎反复进行了几次:进行布局分析并渲染内容,然后说:“嘿,鉴于这个渲染后的内容,请另一个 VLM 确保 HTML 得到改进,能否进一步改善?”为此他们使用了 Claude,每页文档的成本约为12美分。接着我们看到这是他们的开源数据混合体以及训练过程。

如果我们往下看结果,哦对了,这就是单元测试:检查标题缺失、模型优于 GPT-4 Turbo 以及表格检查结果。在 OCR Bench 中,有哪些不同类型的文档?档案文件(也就是我们目前正在阅读的内容)、旧版数学扫描、表格、一般的旧扫描件、页眉和页脚、多栏布局以及极小文本。我不确定“base”在那里指什么,但如果我们看第一次发布版本,我们会发现相比首次发布有显著改进。

首次发布的总体得分为68.2,而最新版本(即本模型 OMA OCRV2)达到了82.4。他们这里有演示吗?我想知道演示运行的是 V2 版本吗。“我的 OCR2 演示”。好的,让我们用我们最喜欢的测试:Attention论文。抱歉,我要用“Machine Learning Monthly”来做测试吧?这很难读,或者说对 OCR 来说可能很有挑战性。我只是截个图好了。

这是一篇很棒的 LinkedIn 帖子,那个人是谁?看起来很酷。我们来测试一下演示效果吧。第一页。天哪,真快!哦,这里还有页面元数据。让我们检查一下……正确了,完全正确。它甚至捕捉到了……哦不,它把戒指表情符号换成了庆祝的表情符号。可能词汇表里没有那个特定的图标。“Zero to Mastery”新课程,“New Course”。它链接到 LinkedIn 了吗?哦,在那里有链接。链接有效吗?确实有效。太酷了。“观看视频”,“启动以学习”。然后在底部,“学习 Hugging Face”……好吧,这相当不错。

当然,你可以在自己的文档上试试,但这确实是 OCR 技术。还有几个遵循类似模式的模型。让我们跳回这里:我们有 Light on OCR 1B,它专注于端到端管道,该模型在单个 H100 GPU 上每秒可处理5.71页,即每天约50万页,或者每千页不到1美分。这是一个如果你有很多页面需要 OCR 时非常有用的模型。PaddleOCR-VL 则结合了……

Nanet 原生分辨率视觉变换器搭配轻量级 Ernie So 3.5 语言解码器,支持109种不同语言。因此,如果你需要处理多种语言,不妨看看 Paddle OCRVL 及其架构。Chandra 与 OCR2 非常相似,支持40多种语言,拥有90亿参数模型,这比我们要看的那些要大得多。或者实际上它与 CR2 相当,我相信这是一个70亿参数的模型。

如果我们往下看,Nanet 的 OCR23B 稍小一些,但这款模型支持图像标签、签名检测、水印检测和流程图。对于流程图,它甚至能输出为 Mermaid 代码,大家可以去查一下。如果你需要带有大量勾选标记和签名的功能,不妨看看 Nanet 的方案。

接着我们有 Deep Seek OCR。顺便说一句,San Wit 甚至有一段关于该论文的精彩视频解读。他们实际上发现这不仅仅是 OCR,还发现可以将视觉用作文本令牌的压缩方式。Deep Seek 的研究人员发现,即使压缩比为10倍,即视觉令牌比纯文本少10倍,也能达到97%的恢复率。

即使压缩率达到20倍,即将视觉令牌空间压缩20倍——从1,000降到多少呢?50。OCR 准确率仍约为60%。这并不完美,但也说明并非糟糕透顶。因此你可以做到10倍压缩。也许在未来,长上下文模型会将令牌压缩到视觉空间中,这听起来很有道理。

我记得苹果最近有一篇论文,他们在视觉空间中使用数据增强来增加大语言模型的令牌词汇量。不过这与当前话题无关。如果你需要一个出色的 OCR 模型,我们现在的选择非常丰富。去试试这些模型,看看哪一个最适合你的用例。

现在我们要介绍一些开源视觉语言模型(VLM)的重大升级。Apriel 1.5B Thinker,或者说是1.515B Thinker,在 Artificial Analysis 指数上看来与 Gemini 2.5 Flash 相当。它位于这里的魔力象限中,这是纯文本模型,我相信是这样。

我喜欢这个是因为我认为它仅进行了中期训练(mid-training)。他们从 Pixel 12b 基础模型开始,这非常有趣。该模型于去年年底或大约一年前(2024年9月)由 Mistral 发布,他们通过深度缩放将模型扩展到150亿参数。大家可以去查看论文了解更多详情。

Quen VL 系列扩展了。上个月我们提到发布了大模型,即235B以及我认为的带有活跃30亿参数的30B版本。但现在我们有 Quinn,简直太棒了。看看这个:8B thinking、8B instruct、FB8 4B、2B,还有32B和2B的 GGUF 版本。我们拥有整个套件,这真是一次令人难以置信的发布。

根据我的经验,我一直在本地尝试运行8B模型,效果非常棒。因此 Quinn 系列模型有了重大升级。如果你需要较小版本以便在本地运行——因为上个月发布的是较大版本,请去查看这些模型。它们现在可用了。

说到开源模型,Lava 1 Vision 1.5 是一组开放权重和开放数据的集合。他们结合了 ImageNet-21k、Lion CN、Data Comp 1B(包含10亿张图像)和 Coyo-700M(包含7亿张图像)。SA 1B 是 SAM,即 Segment Anything。这是开放训练的 VLMs。

8B模型与 Quinn 2.5 VL 7B 相当或更优,这已经是一个非常强大的开源 VLM。你可以在 GitHub 上获取代码、阅读论文并尝试演示。数据集——我上次检查时正在上传,现在可能已经全部上传完毕。这里有指令数据、中期训练数据和模型权重。

看到这一切都开源真的很酷。我之前从未见过的是端到端训练成本也被公布出来了,为16,000美元。如果你不是大型公司或研究团队,这仍然相当昂贵,在 A100 GPU 上约为每小时60美分。

接着我们有 B8B SFT,它也提供了一些开放数据,但请检查许可证,因为其中一些是非商业的。Bite Dance 还发布了 SA2VA 的更新版本,我们在年初的机器学习月刊中曾见过。它将 SAM 2 与大语言模型结合起来,因此你可以仅通过文本分割物体。

这个模型有一个演示吗?也许在 GitHub 上会有。你可以输入一些文本,例如“分割街上戴墨镜的人”,然后模型会返回分割掩码。由于它纯粹与 SAM 2 结合,生成速度很快,因为它不生成令牌,我认为只是解码掩码输出。这是一个很酷的模型,如果你需要大规模分割掩码进行数据标注,可能会用到它。

说到 SAM 2,Sansa 模型发布了,允许你在图像上涂鸦以适应 SAM 2 进行语义标注。你可以说“我要葡萄”,然后它会标记葡萄;接着你可以在橙子上画个框,它就会处理这些图像中的橙子。在这种情况下,你可能会说“伞”,然后它会识别出雨伞。

假设你有一个大型数据集,例如在 Neutrify 我们有很多食物图像。你可以标记10张苹果图片,然后使用这10个标签大规模标注其余的苹果。因为一旦你标记了少量样本,Sansa 模型——通过训练适配器模块适应 SAM 2 进行语义标注——就能做到这一点。一旦有了几个样本,它就可以大规模运行其余的相似示例。

是的,这是那艘船,我们得到了船只的结果。这是一个非常酷的发布。你可以在自己的图像上尝试一下,那里有一个不错的演示。我们退出这些界面。很好,IBM Granite 发布了一些很棒的中小型大语言模型(LLM)。我们有3B、7B和32B,甚至在更小的范围内还有1B和3.5亿参数,全部采用 Apache 2.0 许可证。

我喜欢这一点是因为 Gemma 3,我一直在使用该模型进行大语言模型的微调任务,表现非常出色。但现在有 Granite 4.0 3亿参数(或者可能是我搞错了,是3.5亿?也许只有3亿。那里可能有另一个拼写错误)。抱歉,让我看看我是否记对了?是3.5亿。

是的,我以为我弄对了。总之,那个图表是错的。顺便说一句,那不是我做的图。不过,该模型的平均准确率略高于Gemma 3 270M,实际上几乎是其两倍的性能。这是Andre Karpathy在演讲中提到的内容,我们稍后会讲到这一点(就在下面)。既然提到了,我们现在就顺便覆盖一下。Andre Karpathy参加了Darkh播客节目,谈论了从AGI到自动驾驶汽车、未来教学的样子(因为他是一位优秀的老师。我钦佩他的教学方式),以及AI观点等话题。他提出了一个很好的观点:让我们来看看这个,如何将LLM的知识与一般的令牌处理能力区分开来?

我的意思是这样的,因为我一直在针对非常特定的结构化数据提取任务微调Gemma 3 270M。现在,你并不一定需要大量的世界知识来做这件事,或者你是否只需要令牌处理能力?我不确定。所以当你查看一个拥有更多知识的模型基准测试时,如果有一个纯粹令牌处理能力的基准测试会很有趣。我可能措辞不太准确,但意思是:知识是必需的吗?你能将世界知识与处理令牌的能力解耦吗?我的意思是,如果你有一篇博客文章全文,我对LLM说:“嘿,把这个转换成包含标题和段落的JSON格式”,我们需要世界知识来知道什么是“标题”吗?还是仅仅依靠令牌处理即可?我不确定。

这是一个有趣的问题:在保留最小可行知识的前提下,模型可以小到什么程度以仅具备令牌处理能力?所以我现在还不确定如何准确表述这一点。但我发现,在经过专门微调后,Gemma 3 270M在结构化数据任务上表现非常出色。如果我尝试一下,也许Granite 4.0 300M的表现会更好。总之,这里有一些小型LLM是开源的(Apache 2.0许可证)。Facebook发布了MobileLM Pro,但它使用的是非商业许可。不过它支持INT4量化,我注意到这变得越来越普遍。OpenAI在他们的GPT OSS模型中也采用了这种做法。

这使得模型变得非常小,而且因为这些模型见过如此多的数据,与基础模型相比性能损失几乎可以忽略不计。当然,如果你想要最佳性能,请使用全精度;但如果你想获得更快的速度,通常是一种权衡。量化可能是你的朋友。我们还有几个很酷的内容要结束本期回顾。Open Code是Claude Code的一个版本,但允许你使用任何模型,且代码当然是开源的。所以去看看吧:100%开源,不与任何提供商绑定。这在未来的发展中非常重要。你并不一定只想被束缚在Anthropic和Claude上,你还希望能够使用Hugging Face上的任何新模型。也许你不会这么做,但Open Code为你提供了这种选择(handy.computer)。

我很喜欢看到那些为非常特定任务构建的小型应用。该应用的代码也在GitHub上提供。那么Handy是做什么的呢?它允许你在任何文本字段中输入语音。这是一个免费且开源的语音转文字应用。它允许你本地运行Whisper,并且是开源的,所以你可以分叉并根据需要进行调整。也许你会为特定类型的文本构建特定的功能。这是一个非常酷的例子,展示了如何使用开源AI模型的小型应用:Handy。GitHub上是开源的,给它点个星吧。

Emu 3.5是一个开源图像生成模型,即将在Hugging Face上发布。它在许多图像编辑任务中与Nano Banana、Gemini和Quen ImageEdit以及GPT-4o持平。这是一个非常酷的发布成果。我们现在处于这样一个阶段:前沿模型发布后3到4个月,或者3到6个月内,就会出现其开源版本。是的,它有340亿参数。你可能无法在你的本地硬件上运行它,但看到它是开源的还是很酷的。OpenAI发布了他们OSS模型的两个版本,用于提示防护(prompt guarding)。你可以使用这些模型。它们比原始版本要好得多,专门针对基于你提供的安全策略的分类文本内容执行一系列基础安全任务。

你可以用这些模型做什么呢?如果你有一个LLM系统,并且不希望某些提示词进入其中(因为它们会对你的系统产生不利影响),你可以使用这些模型来标记10,00个样本之类的数据。训练一个较小的模型来判断“安全”或“不安全”,将提示词传入,然后据此进行处理。这是一个非常酷的发布成果。是的,有20B和120B版本,但它们当然都采用了INT4量化。所以在运行它们时要记住这一点。

接下来是Rice Vit,即区域感知聚类判别(Region Aware Cluster Discrimination)。这是一篇很棒的论文,旨在将特定于区域的信息以及OCR嵌入到图像编码器中。所以不仅仅是文本,还有区域信息。例如,不是直接进行目标检测,但它知道“嘿,这里有一把伞”以及这里的OCR内容。所以这是将信息直接嵌入到编码器中。我觉得这是一种很酷的方式,即将信息嵌入到编码器中。然后他们将那个视觉塔(即Rice Vit)与LLM结合,并在OCR和视觉理解的不同基准测试中看到了显著的提升,相比于使用像SigLIP v2这样的模型(这目前是开源VLM的黄金标准)。这是来自Deep Glint AI团队在视觉编码方面非常酷的方法。

最后我们以SAM 3的研究论文结束本期回顾。当然,这里有一个注意事项:尚不能完全确认这是SAM 3的论文,因为它仍然是匿名的。所以如果我们查看PDF文件,“Segment SAM 3:使用概念进行分割”。这非常令人兴奋。SAM 3当然我们不知道它是否是Meta研究人员发布的真正的SAM 3。可能是,也可能不是。看起来有点像Meta的论文风格。但由于它仍然是匿名的,我们暂时假设它是SAM 3。SAM 3改进了SAM 2在点击提示下的视觉分割能力。所以,左边:你可以说“嘿,点这个加号”,“点击那个减号”。分割加号部分,不分割减号部分,同时推进提示词。这是可提示的概念分割功能。

现在你可以进行基于文本的分割,这是SAM 3的主要更新之一。你目前可以使用几个开源模型来实现这一点,比如我们之前从ByteDance看到的SA2VA。

这是一种交互方式,所有用户都可以使用简短的名词短语、图像示例或两者的组合来分割指定的视觉概念的所有实例。例如,输入“条纹猫”就能得到相应的结果,“袋鼠”也是如此。你可以结合圆形细胞加上一个正面示例来进行操作。我稍微滚动一下这里,选择一个小窗口,然后戴上安全帽(hard hat)。

系统会识别出两种不同的安全帽。因此,SAM 3 可能会有一个非常令人兴奋的新版本发布出来。希望它仍然是开源的。我相当确定 Meta 刚刚调整了他们的开源部门,但我们拭目以待。如果是开源的话,将在未来的机器学习月刊中进行介绍。

那么我们可以做什么呢?我们可以使用基于视觉或基于文本的输入提示来获取分割掩码。我非常喜欢这个训练循环,它涉及使用 SAM 2 进行大量的自动标注,然后进入 AI 和人工验证阶段。你可以问一个 AI 模型:“这是一个好的掩码吗?”如果它认为可能需要人工修正,就会进入循环。同样地,对于人类也是如此:“这是一个好的掩码吗?”如果是的话,就回到循环中继续运行。

以上就是 2025 年 10 月的机器学习月刊内容了。最后,当然还有那场演讲。我们之前大致讨论过这个话题。我不会播放这段视频,但安德烈(Andre)和达克赫(Darkh)的整个播客中有一些绝对精彩的片段。安德烈是我在 AI 领域最喜欢的声音之一,如果你感兴趣的话,不妨去听听看。

我在几次散步时听了这个播客,觉得非常引人入胜。所以朋友们,这就是 2025 年 10 月的机器学习月刊内容了。如果你想学习 Hugging Face,我有一门新课程上线了,你可以点击这里的链接查看。

但正如我在开头所说,2025 年 11 月的机器学习月刊将不会由我来主持。我要结婚了,所以我打算花些时间陪伴我美丽的妻子。我们在下一个视频中见。祝机器学习愉快。