Hugging Face 在人工智能模型库的新版本中加入了文档文字识别、语音合成和文本生成模型支持。开发文档处理或语音服务的开发者,可以通过库提供的方式衔接输入准备与结果生成。发布说明

1. 新增 MiniCPM-OCR,用于文档图像识别

OpenBMB 的 MiniCPM-OCR 可读取扫描文档、屏幕截图、收据和表格等文字密集的图像。其结构将从图像提取的视觉信息传给语言模型,可用于请求文字识别及将页面转换为 Markdown。模型文档

默认对话模板会让模型先输出解读页面的思考过程。如果只需要识别结果,可以在准备输入时关闭思考过程输出。使用示例

视觉信息的下采样有 4 倍和 16 倍两种模式。默认的 4 倍模式保留更多文档及屏幕文字识别所需的视觉令牌。16 倍模式针对自然图像进行更强的下采样,以减少令牌并加快推理。文档示例的同一页面在 4 倍模式下使用 1260 个令牌,16 倍模式下使用 315 个。相较于 4 倍模式,视觉令牌减少了 75%,但这不是实际处理时间或内存减少 75% 的测量结果。配置需同时传给处理器和生成调用。下采样模式与代码原文

inputs = processor.apply_chat_template(
    messages, add_generation_prompt=True, tokenize=True,
    return_dict=True, return_tensors="pt",
    processor_kwargs={"downsample_mode": "4x"},
).to(model.device, dtype=model.dtype)

output = model.generate(**inputs, max_new_tokens=512, downsample_mode="4x")
print((inputs["input_ids"] == model.config.image_token_id).sum().item())
# 1260 visual tokens; the same page in `"16x"` mode is 315 instead

表:同一文档页面在不同下采样模式下的视觉令牌数

条件:MiniCPM-OCR-1.0,同一文档页面 1 张,在处理器和生成调用中同时指定下采样模式的文档示例

单位:视觉令牌数

新增 MiniCPM-OCR,用于文档图像识别
下采样模式视觉令牌数
4 倍(默认值及基准值)1260
16 倍315

图表:同一页面的视觉令牌数(以 0 个为起点,以 4 倍模式的 1260 个为比较基准)

4倍  ████████████████████ 1260
16倍 █████                315

表格与图表原文

也可以选择是否放大小图像。以下是处理同一张收据的文档示例:默认方式会放大至训练时的尺寸,保留原始尺寸的方式则只将图像对齐到由小块组成的图像块网格。小图像处理示例

表:小尺寸收据图像在不同放大方式下的处理网格

条件:MiniCPM-OCR-1.0 处理器,将原始收据图像调整为 224×224 的输入,文档示例输出

单位:图像块数

新增 MiniCPM-OCR,用于文档图像识别
放大方式网格单边长度
始终放大(默认)32
保留原始尺寸16
根据文字密度决定32

自适应方式也判断这张收据的文字较为密集,因此进行了放大。处理小尺寸屏幕截图时,也值得考虑保留原始分辨率的选项。小图像处理示例

2. 从录音和已保存的声音开始语音合成

Kyutai 的 Pocket TTS 是一个拥有 1 亿参数的语音合成模型。根据 Hugging Face 的介绍,它在 CPU 上生成结果所需的时间短于语音播放时长。模型概述

模型每秒生成 12.5 次表示压缩声音的潜在值,处理器再将其还原为 24kHz 语音波形。语音转换结构

声音可通过克隆录音、预先计算的潜在值,或处理语音提示后保存的缓存来指定。内置声音也保存在缓存中,无需每次重新编码。如果服务需要用同一种声音朗读多个句子,就可以利用这条复用路径。声音指定方式

长句可通过处理器拆分处理。默认生成长度预算由文本长度决定,模型判断话语结束时便会停止生成。使用提示

3. Flint 为每次输入选择部分专家

Recursive 的 Flint 是一种混合专家语言模型,会为每次输入选择部分专家模块参与计算。每个选择专家的层都会使用 256 个专家中的 6 个以及共享专家。模型结构

多数层关注当前令牌及之前的 512 个令牌,其余层则关注整个输入,模型将这两种方式结合使用。注意力范围

发布说明中的公司公告比较了以 BF16 和 NVFP4 两种数值格式保存 Flint 权重的检查点。检查点是保存模型权重、供运行使用的文件。评估代码修改能力的 SWE-bench Pro v2 中,BF16 得分为 89.7%,NVFP4 为 88.5%,相较 BF16 相差 1.2 个百分点。这是评测分差,并非处理时间改善或内存节省的实测值。公司比较了在相近硬件上运行的模型,并将该评测项目标为内部测量。基准测试原文

同一评测中,Qwen 3.8 为 94.9%,Qwen 3.6 为 73.8%。Flint 的两种格式在这次比较中均低于 Qwen 3.8,高于 Qwen 3.6。对比图

表:SWE-bench Pro v2 中各模型及权重格式的得分

条件:公司发布的图片,比较在相近硬件上运行的模型,该评测标注为内部测量(†)

单位:得分(%,越高越好)

Flint 为每次输入选择部分专家
模型及格式得分
Flint BF16(格式比较基准值)89.7
Flint NVFP488.5
Qwen 3.894.9
Qwen 3.673.8

图表:SWE-bench Pro v2 得分(以 0% 为起点,0~100% 范围的近似条形图)

Flint BF16  ██████████████████  89.7%
Flint NVFP4 ██████████████████  88.5%
Qwen 3.8    ███████████████████ 94.9%
Qwen 3.6    ███████████████     73.8%

表格与图表原文

默认运行会纳入注意力汇聚项,即用于确定注意力分布基准的学习校正值,并以 32 位浮点数计算分数。注意力计算实现 SDPA 无法处理该汇聚项,因此文档建议对长输入使用支持汇聚项的专用注意力内核。运行注意事项

4. 设备分片变更与用户需检查的事项

将模型计算分配到多个设备的张量并行,现在也默认对将输入转换为向量的嵌入进行分片。此次新增了专用方式,即使宽度不能被并行规模整除也能支持。此前将基于列或行的方式用于嵌入的自定义方案,需要迁移到新方式。并行方案变更

混合专家模型的并行方案也改为按设备划分专家。各设备不再重复保存全部专家,从而减少内存浪费,但自定义方案也必须纳入专家分片。并行处理的默认路径更加规范,而此前自行配置的团队则需要迁移配置。专家分片变更

准备升级环境时,还需确认 Python 的最低支持版本已提高到 3.11。支持版本变更

5.21.0 将 OCR、语音合成及混合专家模型扩展到标准 Transformers 路径,同时也要求检查现有并行配置。