Что представляют собой новые модели LFM2.5 от Liquid AI?
На прошлой неделе компания Liquid AI анонсировала две новых модели для поиска: LFM2.5-ColBERT-350M и LFM2.5-Embedding-350M. Обе модели относятся к семейству LFM2.5, имеют 350 млн параметров и впервые используют двунаправленную архитектуру. Их главный козырь — быстрый мульти‑язычный и кросс‑лингвальный поиск по 11 языкам, а небольшой «footprint» позволяет запускать их даже на обычных ноутбуках.
Какой тип модели выбрать?
Модели построены на едином бэкбоне, но различаются способом представления текста.
- LFM2.5-Embedding-350M — плотный би‑энкодер. Каждый документ превращается в один 1024‑мерный вектор. Это самый быстрый и экономичный вариант: индекс занимает минимум места, а запросы обрабатываются за миллисекунды.
- LFM2.5-ColBERT-350M — модель позднего взаимодействия (late‑interaction). Каждый токен получает свой 128‑мерный вектор, а сходство считается по‑токенно‑по‑токенному MaxSim. Точность выше, но требуется более крупный индекс и чуть больше времени на обработку.
Почему важна смена с causal на bidirectional?
Исходный LFM2 был «causal»‑декодером: каждый токен «видит» только предыдущие. Для генерации текста это удобно, но для поиска — не совсем. В новой версии маска внимания заменена на двунаправленную, а короткие свёртки стали недирективными. В результате каждый токен учитывает контекст слева и справа, что позволяет построить более качественное представление для сравнения запросов и документов.
Трёхэтапный процесс обучения
- Этап 1 — контрастивное предобучение на англоязычных данных.
- Этап 2 — мульти‑языковая дистилляция от сильного учителя на 11 целевых языках.
- Этап 3 — финальная доработка на сложных негативных примерах.
Для Embedding‑модели использовано немного больше кросс‑лингвальных пар, тогда как ColBERT более эффективно извлекает кросс‑язычные соответствия благодаря своей токен‑ориентированной структуре.
Бенчмарки: как модели себя показывают?
Оценка проводилась на двух наборах: NanoBEIR (мульти‑язычный поиск) и MKQA‑11 (кросс‑лингвальный QA). Ниже средние результаты по всем 11 языкам.
- LFM2.5-ColBERT-350M — NanoBEIR NDCG@10 = 0.605, MKQA‑11 Recall@20 = 0.694.
- LFM2.5-Embedding-350M — NanoBEIR NDCG@10 = 0.577, MKQA‑11 Recall@20 = 0.691.
Обе модели опережают более крупные аналоги (например, Qwen3‑Embedding‑0.6B) и демонстрируют стабильный рост по сравнению с предыдущим LFM2‑ColBERT‑350M.
Скорость и работа на edge‑устройствах
Для лёгкого развёртывания доступны GGUF‑версии, совместимые с llama.cpp. На ноутбуке MacBook Pro M4 Max (FP16) получены такие цифры:
- LFM2.5‑Embedding‑350M — запрос ≈ 7 мс (при предварительно закешированных векторах).
- LFM2.5‑ColBERT‑350M — запрос ≈ 8 мс (только вектор запроса) и ≈ 34 мс, если документы также нужно кодировать.
Внутри корпоративных GPU‑кластеров (H100, FP16) латентность падает до 1‑2 мс, что делает модели пригодными для реального времени.
Практические сценарии применения
- Э‑коммерция: один общий индекс для каталога товаров, позволяющий искать на корейском и находить результаты на английском.
- FAQ и база знаний: кросс‑язычное сопоставление вопросов и ответов без дублирования индексов.
- Поиск на устройстве: локальный семантический поиск по файлам, письмам и заметкам без передачи данных в облако.
- Корпоративные помощники: высокоточная индексация юридических и финансовых документов, где важна точность (ColBERT) и поддержка множества языков.
Как быстро начать работу?
Для Embedding‑модели достаточно sentence‑transformers и правильных промптов (query: и document:).
from sentence_transformers import SentenceTransformer
model = SentenceTransformer(
"LiquidAI/LFM2.5-Embedding-350M",
trust_remote_code=True,
)
queries = ["What is the capital of France?"]
documents = ["Paris is the capital and largest city of France."]
q_emb = model.encode(queries, prompt_name="query", normalize_embeddings=True)
d_emb = model.encode(documents, prompt_name="document", normalize_embeddings=True)
scores = q_emb @ d_emb.T
Для ColBERT‑модели используется библиотека PyLate и индекс PLAID.
from pylate import indexes, models, retrieve
model = models.ColBERT(
model_name_or_path="LiquidAI/LFM2.5-ColBERT-350M",
trust_remote_code=True,
)
model.tokenizer.pad_token = model.tokenizer.eos_token
index = indexes.PLAID(index_folder="pylate-index", index_name="index", override=True)
docs_emb = model.encode(["document 1 text", "document 2 text"], is_query=False)
index.add_documents(documents_ids=["1", "2"], documents_embeddings=docs_emb)
retriever = retrieve.ColBERT(index=index)
q_emb = model.encode(["a search query"], is_query=True)
scores = retriever.retrieve(queries_embeddings=q_emb, k=10)
Обе модели поддерживают дообучение на ваших данных: в карточках моделей на Hugging Face уже есть готовые сниппеты с MultipleNegativesRankingLoss и sentence‑transformers.
Ключевые выводы
- Новые LFM2.5‑ColBERT‑350M и LFM2.5‑Embedding‑350M — первые двунаправленные модели в семействе LFM, оптимизированные под 11 языков.
- Они лидируют в своих классах на NanoBEIR и MKQA‑11, опережая более крупные конкуренты.
- Embedding‑вариант дает минимальный размер индекса, а ColBERT — лучшую точность за счёт токен‑уровневого взаимодействия.
- GGUF‑билды позволяют запускать модели на CPU, ноутбуке и даже на edge‑устройствах, удерживая p50‑запросы в пределах <10 мс.
- Подключение к существующим RAG‑конвейерам происходит через
sentence‑transformersи PyLate без лишних хлопот.





















