Одна модель на все модальности. Реально ли это в 2026 году?
До недавнего времени идея одного векторного пространства для текста, звука и изображений казалась фантастикой. Ну серьезно, как можно сравнить фотографию кота с аудиозаписью мурлыканья и текстом "пушистый друг"?
LCO Embedding v2.1 (актуальная версия на март 2026) пытается решить эту задачу. Разработчики из Shanghai AI Laboratory запихнули три модальности в одну модель с общим пространством эмбеддингов размерностью 768.
Важный нюанс: LCO не генерирует контент. Это не аналог GPT-4 Vision или MOVA. Её задача — превращать любой ввод (текст, картинку, аудио) в вектор для поиска и сравнения.
Что внутри и как это работает
Архитектура — гибридная. Для текста используется доработанный BERT, для изображений — Vision Transformer (ViT), для аудио — фичи из Wav2Vec 2.0. Все три потока сходятся в общем слое, который выплевывает вектор.
Самое интересное — модель обучена на выровненных триплетах. Например, на фотографии кот, в аудио — мурлыканье, в тексте — описание породы. В теории это должно давать когерентные эмбеддинги.
1 Установка — проще, чем кажется
Через pip все элементарно. Главное — поставить свежие версии библиотек:
pip install lco-embedding>=2.1.0 torch>=2.4.0 transformers>=4.45.0
Модель весит ~1.2 ГБ в формате PyTorch. Если хочется сэкономить память, есть GGUF-квантования на Hugging Face (об этом ниже).
2 Базовый код: три модальности за три минуты
Вот как выглядит работа с моделью в 2026 году:
from lco_embedding import LCOEmbedder
import torch
# Инициализация (автоматически загружает модель с HF)
model = LCOEmbedder.from_pretrained("ShanghaiAI/LCO-Embedding-v2.1")
# Текст
text_embedding = model.encode_text("Красная машина едет по шоссе")
print(f"Текстовый вектор: {text_embedding.shape}") # torch.Size([768])
# Изображение
from PIL import Image
img = Image.open("car.jpg")
img_embedding = model.encode_image(img)
# Аудио (поддерживает WAV, MP3, длина до 10 секунд)
import librosa
audio, sr = librosa.load("engine.wav", sr=16000)
audio_embedding = model.encode_audio(audio)
# Сравнение через косинусное сходство
similarity = torch.cosine_similarity(
text_embedding.unsqueeze(0),
img_embedding.unsqueeze(0)
)
print(f"Сходство текст-изображение: {similarity.item():.3f}")
Если код кажется слишком простым — это обманчиво. Под капотом происходит предобработка для каждой модальности: токенизация, нормализация, augmentation для аудио.
Зачем вам GGUF-версия (и когда она не нужна)
GGUF — формат для llama.cpp. LCO в GGUF весит ~450 МБ вместо 1.2 ГБ. Идеально для встраивания в мобильные приложения или браузерные проекты.
# Загрузка GGUF через llama-cpp-python >=0.2.90
from llama_cpp import Llama
embedder = Llama(
model_path="LCO-Embedding-v2.1-Q4_K_M.gguf",
embedding=True,
n_gpu_layers=-1 # Все слои на GPU, если есть
)
# Работает ТОЛЬКО с текстом! Изображения и аудио — только в полной версии.
text_vector = embedder.create_embedding("Пример текста")
Да, главный недостаток GGUF — потеря мультимодальности. Изображения и аудио не поддерживаются. Только текст. (Разработчики обещают исправить в v3.0, но её еще нет на март 2026).
Практический совет: используйте полную PyTorch-версию для мультимодальных проектов, GGUF — для текстового RAG на слабом железе или вместе с llama.cpp.
LCO против других: таблица без прикрас
| Модель | Модальности | Размерность | Особенность 2026 |
|---|---|---|---|
| LCO Embedding v2.1 | Текст, изображение, аудио | 768 | Единое пространство, есть GGUF |
| OpenAI Embeddings v4 | Текст, изображение | 1536 | Только облако, платно |
| CLIP (ViT-L/14) | Текст, изображение | 768 | Нет аудио, старовата архитектура |
| Nomic Embed v1.5 | Текст | 768 | Только текст, но часто встроена в LM Studio |
| ImageBind (Meta) | 6 модальностей | 1024 | Сложнее в развертывании, больше память |
Главное преимущество LCO — баланс. Не самая большая размерность, не все модальности мира, но работает здесь и сейчас. И локально.
Кому и зачем это нужно (реальные кейсы)
- Мультимодальный RAG. Ищете не только по документам, но и по скриншотам, записям встреч? LCO создаст единый индекс. Подробнее про Multi-modal RAG.
- Модерация контента. Одно дело — текст с угрозами, другое — аудио с криком и фото оружия. Модель найдет связи.
- Образовательные платформы. Поиск по видео-лекциям, где важно и сказанное, и показанное на слайдах.
- Архивы музеев. Оцифрованные картины, их описания и аудиогиды в одном поиске.
Где спрятаны подводные камни
1. Англоцентричность. Модель обучалась в основном на английских данных. Русские тексты и особенно аудио работают хуже. Для нишевых задач нужно дообучение.
2. Длина аудио. Официально — до 10 секунд. На практике можно скользящим окном разбивать длинные записи, но это костыль.
3. Требует GPU для скорости. На CPU инференс изображений тормозит (2-3 секунды на картинку). Для продакшена без видеокарты — боль.
4. Нет 3D и видео. Только статические кадры. Для видео нужно извлекать кадры и эмбеддить по отдельности.
Что дальше? (Прогноз на 2026-2027)
Сообщество ждет LCO v3.0 с обещанной поддержкой видео-эмбеддингов и размерностью 1024. Но релиз постоянно откладывается — последний коммит в репозитории от января 2026.
Параллельно развиваются специализированные аудио-модели, которые дают более качественные эмбеддинги для звука. Возможно, будущее за комбинацией экспертов, а не за одним универсальным солдатом.
Пока что LCO Embedding — самый простой способ запихнуть разнородные данные в одну векторную базу. Кривой, но работающий. И главное — полностью локальный, без отправки ваших скриншотов и записей в облака.
Итоговый вердикт: берите LCO для прототипов мультимодального поиска. Для продакшена готовьтесь к дообучению и оптимизации. И следите за релизом v3.0 — если он вообще выйдет.