LFM2.5-编码器:用于CPU上快速长上下文推理

Hugging Face Blog 模型

摘要

Liquid AI发布LFM2.5-编码器(230M和350M),这是为CPU上长上下文推理优化的高效编码器模型,在基准测试中匹配或超越更大编码器,相比ModernBERT-base实现3.7倍加速。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/07/28 18:24

LFM2.5-编码器:在CPU上实现快速长上下文推理

来源:https://huggingface.co/blog/LiquidAI/lfm2-5-encoders 返回文章列表 (https://huggingface.co/blog)

今天,我们在Hugging Face上发布了两款新的编码器模型:LFM2.5-Encoder-230M (https://huggingface.co/LiquidAI/LFM2.5-Encoder-230M) 和 LFM2.5-Encoder-350M (https://huggingface.co/LiquidAI/LFM2.5-Encoder-350M)。它们在质量上媲美更大的模型,同时在输入变长时依然保持快速。这意味着你可以在现有硬件(甚至CPU)上运行文档级任务。

以下是主要特性:

  • 小巧但强大: 在GLUE、SuperGLUE和多语言任务上达到或超越更大的编码器。
  • 8192 token上下文,延迟随输入增长缓慢增加。
  • CPU上运行快速:在长上下文场景下比ModernBERT-base快约3.7倍。

利用这些模型,你可以构建全天候低成本运行的意图路由、策略检查、PII检测和文本分类器。请参见下方的在线演示。

我们为何构建通用编码器

上个月我们发布了专为多语言搜索构建的LFM2.5-Retrievers (https://www.liquid.ai/blog/lfm2-5-retrievers)。LFM2.5-编码器来自同一系列,但用途更广泛。它们使用掩码语言目标进行预训练,因此你可以微调它们用于分类、token级任务和搜索。搜索只是编码器诸多能力之一。正因如此,我们构建的是通用模型,而非直接复用检索器。

编码器驱动着许多现代生产级NLP应用:分类器、意图路由、安全过滤器。这些任务全天候运行,通常部署在CPU上,处理着越来越长的输入。BERT (https://huggingface.co/papers/1810.04805) 确立了这类模型,而近期ModernBERT (https://huggingface.co/papers/2412.13663) 进一步提升了其准确性、速度和上下文长度。LFM2.5-编码器基于LFM2架构迈出了下一步,使得成本随输入增长而缓慢上升。

编码器的构建方式

我们从各自的LFM2解码器骨干开始初始化编码器:LFM2.5-230M (https://huggingface.co/LiquidAI/LFM2.5-230M) 和 LFM2.5-350M (https://huggingface.co/LiquidAI/LFM2.5-350M)。然后,通过几处改动将因果解码器转变为双向编码器:

  1. 双向注意力掩码: 每个token现在可以看到两侧的token,而不仅仅是之前的token。
  2. 非因果短卷积: 我们对称地填充它们,使得每个token的卷积能混合其两侧的邻居。
  3. 掩码语言建模: 训练时掩码30%的token。

双向补丁示意图 (https://cdn-uploads.huggingface.co/production/uploads/644249b08443bce4c9890a0f/KRRbHEsNCFy1fiaBwWge_.png)

我们分两个阶段训练这两个模型:

  1. 通用语言能力: 在大型网络语料库上使用1024 token上下文的短上下文掩码语言目标。
  2. 长上下文适应: 将上下文扩展到8192 token,覆盖完整数据混合,增强事实、法律和多语言能力。

基准测试结果

我们对每个模型在每个任务上进行全参数微调,并报告最终得分。整个表格包含了来自GLUE、SuperGLUE和多语言分类的17个任务上的14个模型。

我们报告了五次不同随机种子的平均值,因此数字在不同运行间稳定。完整框架和原始结果已开源 (https://github.com/Liquid4All/encoder_eval)。

基准排名图 (https://cdn-uploads.huggingface.co/production/uploads/644249b08443bce4c9890a0f/ytoXi9Z9ht9P2JHfkWDG4.png)

LFM2.5-Encoder-350M在14个模型中排名第4。排在前面的三个模型都更大,包括一个几乎10倍大小的3.5B模型。LFM2.5-Encoder-230M击败了ModernBERT-base (https://huggingface.co/answerdotai/ModernBERT-base) 和所有EuroBERT (https://huggingface.co/collections/EuroBERT/eurobert) 模型,同时比其中大多数都要小。这两个模型的得分也远高于我们自己的LFM2.5-Retrievers。

CPU与GPU推理速度

我们的编码器继承了LFM2骨干的快速推理能力。由于我们的编码器和ModernBERT都支持8192 token上下文,我们测量了全范围的推理速度。

CPU性能图 (https://cdn-uploads.huggingface.co/production/uploads/644249b08443bce4c9890a0f/NK2qOmfzkFc_Yc82LhgSj.png)

我们的编码器在CPU上展现出最大的优势。这里,LFM2.5-Encoder-230M在所有序列长度下都是最快的(甚至在短输入上比更小的ModernBERT-base还快)。随着输入长度增加,ModernBERT的吞吐量急剧下降,而我们的LFM2.5-编码器在进入平稳期前会上升到中等水平。在8192 token时,ModernBERT-base每次前向传播需要超过一分半钟,而LFM2.5-Encoder-230M仅需约28秒。这大约是3.7倍的加速。对于开发者来说,这意味着你可以在笔记本电脑的CPU上,在30秒内扫描或分类一份完整的合同、转录稿或长支持工单。

GPU性能图 (https://cdn-uploads.huggingface.co/production/uploads/644249b08443bce4c9890a0f/B6anebHpeRtmR50PHnuzq.png)

在GPU上,类似模式但差距较小:在Apple GPU上,ModernBERT-base在约1K token以下领先。我们的编码器从约2K token开始领先。这表明对于长输入,LFM2.5-编码器是更快的选择,如果你在CPU上运行,则优势更为显著。

LFM2.5-编码器演示

我们使用微调后的LFM2.5-编码器构建了以下演示。每个演示都在仅限CPU的Hugging Face空间中运行:

  • 零样本提示路由 (https://huggingface.co/spaces/LiquidAI/prompt-routing):将你自己的路由通道定义为自由文本。模型一次性对整个提示与每条通道进行评分。
  • 零样本策略检查 (https://huggingface.co/spaces/LiquidAI/policy-linting):根据公司的规则(以自由文本形式编写)检查文本。它一次性对每个token与每条规则进行评分。
  • 拼写检查 (https://huggingface.co/spaces/LiquidAI/spellchecker):逐token纠正拼写错误。
  • PII检测 (https://huggingface.co/spaces/LiquidAI/pii-detection):检测并移除16种语言中的40种个人信息。
  • 掩码扩散文本生成 (https://huggingface.co/spaces/LiquidAI/masked-diffusion)(附加):将编码器当作聊天机器人运行,通过迭代去掩码(而非从左到右)生成文本。

如何使用和微调LFM2.5-编码器

当你有一个高容量的理解任务(如分类、路由、提取或评分),并且需要持续运行且保持低成本、低延迟时,请使用LFM2.5-编码器。对于这类任务,微调后的编码器比生成式LLM更小、更快、运行成本更低,并且可以部署在你已有的CPU上。

在两个编码器大小之间选择:

  • LFM2.5-Encoder-350M:当准确性最为关键时选择。
  • LFM2.5-Encoder-230M:当硬件限制更严格或需要更高吞吐量时选择。

你可以在几行代码内开始使用。使用 transformers 加载模型。然后直接用于掩码token预测,或者添加你自己的头部并针对任务进行微调。

加载并运行模型

安装最新版本的 transformers:

pip install -U transformers

运行掩码token预测:

from transformers import AutoModelForMaskedLM, AutoTokenizer
import torch

model_id = "LiquidAI/LFM2.5-Encoder-230M"  # 或 "LiquidAI/LFM2.5-Encoder-350M"
tok = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
mlm = AutoModelForMaskedLM.from_pretrained(model_id, trust_remote_code=True)

text = f"The capital of France is {tok.mask_token}."
enc = tok(text, return_tensors="pt")
with torch.no_grad():
    logits = mlm(**enc).logits
pos = (enc["input_ids"][0] == tok.mask_token_id).nonzero()[0].item()
print([tok.decode([t]).strip() for t in logits[0, pos].topk(5).indices.tolist()])
# -> ['Paris', 'Strasbourg', 'Paris', 'Lyon', 'Versailles']

对于下游任务,加载编码器主体并添加你自己的头部(分类、token分类、回归、检索):

from transformers import AutoModel

body = AutoModel.from_pretrained(model_id, trust_remote_code=True)

如果你的GPU支持,可以使用Flash Attention 2以获得最高效率:

pip install flash-attn

针对任务微调

基础编码器提供通用表示,而非任务输出。因此你需要针对每个任务进行微调。我们的微调教程 (https://github.com/Liquid4All/cookbook/tree/main/examples/lfm-encoder-classification) 详细介绍了如何在8k上下文的长法律文档上进行微调。

开始使用LFM2.5-编码器

两个编码器均以开放权重发布,并已在Hugging Face上可用:

  • 下载: LFM2.5-Encoder-230M (https://huggingface.co/LiquidAI/LFM2.5-Encoder-230M) 和 LFM2.5-Encoder-350M (https://huggingface.co/LiquidAI/LFM2.5-Encoder-350M) 在Hugging Face上。
  • 体验: 在浏览器中运行上述演示,无需任何设置。
  • 微调: 通过我们的微调教程 (https://github.com/Liquid4All/cookbook/tree/main/examples/lfm-encoder-classification) 将编码器适配到你的任务。

我们期待看到你构建的作品。

引用

如果使用本工作,请引用发布博文:

@article{liquidAI2026Encoders,
  author = {Liquid AI},
  title = {LFM2.5-Encoders: Fast at Long Context, Even on CPU},
  journal = {Liquid AI Blog},
  year = {2026},
  note = {www.liquid.ai/blog/lfm2-5-encoders},
}

相似文章

LiquidAI/LFM2.5-Encoder-350M

Hugging Face Models Trending

Liquid AI releases LFM2.5-Encoder-350M, a multilingual bidirectional encoder built on the LFM2 architecture, offering strong quality for its size, 8k context, and efficient on-device performance across 15 languages.

LiquidAI/LFM2.5-ColBERT-350M

Hugging Face Models Trending

LiquidAI 发布 LFM2.5-ColBERT-350M,这是一种后期交互多语言检索模型,同时还有一个密集双编码器变体,两者均基于 LFM2.5-350M-Base,支持 11 种语言,并设计为 RAG 管道的即插即用替代品。

LiquidAI/LFM2.5-Embedding-350M

Hugging Face Models Trending

Liquid AI 发布了 LFM2.5-Embedding-350M,这是一种密集双编码器,用于多语言检索,支持11种语言,可作为 RAG 流水线的直接替代方案。