Bộ mã hóa LFM2.5-Encoders hỗ trợ suy luận ngữ cảnh dài tốc độ cao trên CPU
Giới thiệu LFM2.5-Encoders giúp tối ưu hóa suy luận ngữ cảnh dài nhanh chóng trên CPU.
- 8 min read
LFM2.5-Encoders: Tăng tốc suy luận ngữ cảnh dài trên CPU
Hôm nay, chúng tôi ra mắt hai mô hình Encoder mới trên Hugging Face: LFM2.5-Encoder-230M và LFM2.5-Encoder-350M. Chúng đạt chất lượng tương đương với các mô hình lớn hơn nhưng vẫn duy trì tốc độ nhanh khi đầu vào dài ra. Điều này có nghĩa là bạn có thể thực hiện các tác vụ quy mô tài liệu trên phần cứng hiện có của mình, ngay cả trên CPU.
Dưới đây là những điểm nổi bật:
- Mạnh mẽ so với kích thước: Đạt hoặc vượt qua các encoder lớn hơn trên các tác vụ GLUE, SuperGLUE và đa ngôn ngữ.
- Ngữ cảnh 8.192 token với độ trễ tăng chậm khi đầu vào dài hơn.
- Chạy nhanh trên CPU: Nhanh hơn khoảng 3,7 lần so với ModernBERT-base ở ngữ cảnh dài.
Với những mô hình này, bạn có thể xây dựng bộ định tuyến ý định (intent router), bộ lọc quy tắc (policy linter), trình phát hiện PII và bộ phân loại văn bản chạy mượt mà với chi phí thấp suốt cả ngày. Xem các bản demo trực tiếp bên dưới.
Tại sao chúng tôi xây dựng một encoder đa mục đích
Tháng trước, chúng tôi đã phát hành LFM2.5-Retrievers, được xây dựng để tìm kiếm đa ngôn ngữ. LFM2.5-Encoders xuất phát từ cùng một họ mô hình nhưng phục vụ mục đích rộng hơn. Chúng được huấn luyện trước với mục tiêu ngôn ngữ mặt nạ (masked-language), vì vậy bạn có thể tinh chỉnh chúng cho việc phân loại, các tác vụ ở cấp độ token và cả tìm kiếm. Tìm kiếm chỉ là một trong số những việc mà encoder làm được. Đó là lý do tại sao chúng tôi xây dựng một mô hình đa mục đích thay vì tái sử dụng các mô hình retriever.
Encoder cung cấp năng lượng cho nhiều ứng dụng NLP hiện đại trong sản xuất: bộ phân loại, bộ định tuyến ý định, bộ lọc an toàn. Các công việc này chạy suốt cả ngày, thường là trên CPU, với đầu vào ngày càng dài. BERT đã đặt nền móng cho lớp mô hình này, và gần đây ModernBERT đã đẩy độ chính xác, tốc độ và ngữ cảnh của nó tiến xa hơn. LFM2.5-Encoders tiến thêm một bước nữa dựa trên kiến trúc LFM2, nơi chi phí tăng trưởng chậm khi đầu vào dài ra.
Cách xây dựng các encoder
Chúng tôi khởi tạo các encoder từ các phần xương sống (backbone) decoder LFM2 tương ứng: LFM2.5-230M và LFM2.5-350M. Sau đó, chúng tôi biến mỗi decoder nhân quả (causal) thành một encoder hai chiều (bidirectional) với một vài thay đổi:
- Mặt nạ chú ý hai chiều (Bidirectional attention mask): mỗi token giờ đây có thể nhìn thấy các token ở cả hai bên, chứ không chỉ các token đứng trước nó.
- Convolution ngắn phi nhân quả (Non-causal short convolutions): chúng tôi đệm chúng một cách đối xứng để phép convolution của mỗi token trộn lẫn với các láng giềng ở cả hai phía.
- Mô hình hóa ngôn ngữ mặt nạ (Masked language modeling): chúng tôi làm mờ (mask) 30% số token trong quá trình huấn luyện.
Chúng tôi huấn luyện cả hai mô hình qua hai giai đoạn:
- Năng lực ngôn ngữ tổng quát: Mục tiêu ngôn ngữ mặt nạ với ngữ cảnh ngắn trên một tập dữ liệu web lớn ở ngữ cảnh 1.024 token.
- Thích ứng ngữ cảnh dài: Mở rộng ngữ cảnh lên 8.192 token trên toàn bộ hỗn hợp dữ liệu, củng cố năng lực về thông tin thực tế, pháp lý và đa ngôn ngữ.
Kết quả Benchmark
Chúng tôi tinh chỉnh toàn diện từng mô hình trên mọi tác vụ và ghi lại điểm số thu được. Tổng cộng có 14 mô hình trên 17 tác vụ được lấy từ GLUE, SuperGLUE và phân loại đa ngôn ngữ.
Chúng tôi báo cáo giá trị trung bình trên năm seed khác nhau, vì vậy các con số rất ổn định qua các lần chạy. Toàn bộ framework và kết quả thô được mã nguồn mở.
LFM2.5-Encoder-350M xếp thứ tư trong số 14 mô hình. Ba mô hình đứng trước nó đều lớn hơn, bao gồm một mô hình 3.5B lớn gấp gần 10 lần. LFM2.5-Encoder-230M đánh bại ModernBERT-base và mọi mô hình EuroBERT, trong khi có kích thước nhỏ hơn hầu hết chúng. Cả hai cũng đạt điểm số cao hơn đáng kể so với LFM2.5-Retrievers của chính chúng tôi.
Tốc độ suy luận trên CPU và GPU
Các encoder của chúng tôi kế thừa tốc độ suy luận nhanh từ phần xương sống LFM2. Vì cả encoder của chúng tôi và ModernBERT đều hỗ trợ ngữ cảnh 8.192 token, chúng tôi đo lường tốc độ trên toàn bộ dải này.
Các encoder của chúng tôi thể hiện lợi thế lớn nhất trên CPU. Tại đây, LFM2.5-Encoder-230M là mô hình nhanh nhất ở mọi độ dài chuỗi (thậm chí nhanh hơn cả ModernBERT-base nhỏ hơn đối với các đầu vào ngắn). Khi độ dài đầu vào tăng lên, thông lượng (throughput) của ModernBERT giảm mạnh, trong khi LFM2.5-Encoders tăng lên mức trung bình trước khi giảm dần. Ở mức 8.192 token, ModernBERT-base mất hơn một phút rưỡi cho mỗi lần chạy forward so với khoảng 28 giây của LFM2.5-Encoder-230M. Tốc độ này nhanh hơn khoảng 3,7 lần. Đối với các nhà phát triển, điều đó có nghĩa là bạn có thể quét hoặc phân loại một hợp đồng đầy đủ, bản ghi âm hoặc chuỗi hỗ trợ dài trong chưa đầy 30 giây trên CPU máy tính xách tay.
Trên GPU, xu hướng tương tự diễn ra với biên độ nhỏ hơn: ModernBERT-base dẫn đầu dưới ~1K token trên Apple GPU. Các encoder của chúng tôi vượt lên dẫn trước từ khoảng 2K token. Điều này cho thấy đối với đầu vào dài, LFM2.5-Encoders là lựa chọn nhanh hơn, và nếu bạn chạy trên CPU, sự chênh lệch là cực kỳ lớn.
Các bản demo LFM2.5-Encoder
Chúng tôi đã xây dựng các bản demo bên dưới từ các LFM2.5-Encoders đã được tinh chỉnh. Mỗi bản demo chạy trong một Hugging Face Space chỉ dùng CPU:
- Định tuyến prompt Zero-shot: xác định các làn định tuyến của riêng bạn dưới dạng văn bản tự do. Mô hình chấm điểm toàn bộ prompt đối với mọi làn trong một lần chạy duy nhất.
- Kiểm tra quy tắc chính sách Zero-shot: kiểm tra văn bản theo các quy tắc của công ty bạn, được viết bằng văn bản tự do. Nó chấm điểm từng token đối với mọi quy tắc trong một lần chạy.
- Kiểm tra chính tả: sửa lỗi chính tả từng token một.
- Phát hiện PII: phát hiện và xóa 40 loại thông tin cá nhân trên 16 ngôn ngữ.
- Tạo văn bản khuếch tán mặt nạ (Masked-diffusion) (phụ lục): chạy encoder như một chatbot tạo văn bản bằng cách lặp đi lặp lại việc gỡ mặt nạ thay vì đi từ trái sang phải.
Cách sử dụng và tinh chỉnh LFM2.5-Encoders
Hãy tìm đến LFM2.5-Encoder khi bạn có một tác vụ hiểu ngôn ngữ có khối lượng lớn, chẳng hạn như phân loại, định tuyến, trích xuất hoặc chấm điểm, chạy liên tục và cần duy trì tốc độ nhanh, chi phí rẻ. Đối với những công việc như thế này, một encoder được tinh chỉnh sẽ nhỏ hơn, nhanh hơn và rẻ hơn rất nhiều so với một LLM tạo sinh, và nó hoàn toàn phù hợp với các CPU bạn đang có sẵn.
Giữa hai kích thước encoder:
- LFM2.5-Encoder-350M: chọn khi độ chính xác là ưu tiên hàng đầu.
- LFM2.5-Encoder-230M: chọn khi phần cứng hạn chế hơn hoặc cần thông lượng cao hơn.
Bạn có thể bắt đầu chỉ với vài dòng lệnh. Tải mô hình bằng thư viện transformers. Sau đó chạy trực tiếp để dự đoán token bị che khuất (masked-token), hoặc gắn phần đầu (head) của riêng bạn và tinh chỉnh cho tác vụ của mình.
Tải và chạy mô hình
Cài đặt phiên bản mới nhất của transformers:
pip install -U transformers
Chạy dự đoán token bị che khuất:
from transformers import AutoModelForMaskedLM, AutoTokenizer
import torch
model_id = "LiquidAI/LFM2.5-Encoder-230M" # hoặc "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']
Đối với các tác vụ hạ nguồn (downstream tasks), hãy tải phần thân (body) của encoder và gắn phần đầu của riêng bạn (phân loại, phân loại token, hồi quy, truy xuất):
from transformers import AutoModel
body = AutoModel.from_pretrained(model_id, trust_remote_code=True)
Nếu GPU của bạn hỗ trợ, hãy sử dụng Flash Attention 2 để đạt hiệu suất cao nhất:
pip install flash-attn
Tinh chỉnh cho tác vụ của bạn
Một encoder cơ sở cung cấp cho bạn các biểu diễn đa mục đích, chứ không phải đầu ra của tác vụ cụ thể. Vì vậy, bạn cần tinh chỉnh nó cho từng tác vụ. Hướng dẫn tinh chỉnh của chúng tôi sẽ hướng dẫn chi tiết cách tinh chỉnh trên các tài liệu pháp lý dài với ngữ cảnh 8k.
Bắt đầu với LFM2.5-Encoders
Cả hai encoder đều mở trọng số (open-weight) và có sẵn trên Hugging Face ngay hôm nay:
- Tải xuống: LFM2.5-Encoder-230M và LFM2.5-Encoder-350M trên Hugging Face.
- Trải nghiệm: Chạy các demo ở trên trực tiếp trong trình duyệt của bạn, không cần cài đặt gì.
- Tinh chỉnh: Thích ứng encoder với tác vụ của bạn bằng hướng dẫn tinh chỉnh của chúng tôi.
Chúng tôi rất nóng lòng muốn xem những gì bạn sẽ xây dựng.
Trích dẫn
Nếu bạn sử dụng công trình này, vui lòng trích dẫn bài viết blog phát hành:
@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},
}
Link bài viết gốc
- Tags:
- Ai
- 28 Tháng 7, 2026
- Huggingface.co