В 14 раз быстрее: как мы ускорили генерацию эмбеддингов в Manticore через ONNX

Когда мы выпустили Auto Embeddings — функцию автоматического преобразования текстов в векторные представления — без развёртывания отдельного сервиса для работы с ML-моделью, — главный запрос пользователей касался скорости работы. Ранее для генерации эмбеддингов использовался только стек SentenceTransformers поверх Candle (Rust-рантайм Hugging Face для ML-инференса), и ресурсы CPU использовались далеко не полностью: в большинстве сценариев нагрузки показатель QPS держался на уровне нескольких десятков документов в секунду независимо от способа подачи данных, а параллельные запросы обрабатывались последовательно в рамках одной сессии модели. Поэтому мы в течение нескольких недель оптимизировали механизм запуска ONNX-моделей в Manticore. Новый бэкенд ONNX Runtime доступен начиная с Manticore Search 27.1.5 . ONNX (Open Neural Network Exchange) — переносимый формат моделей, в котором уже публикуется большинство популярных open-source моделей для эмбеддингов: MiniLM, BGE, E5 и другие. В результате получилось решение, которое в среднем в 14 раз быстрее прежней реализации SentenceTransformers/Candle на том же оборудовании (обычный недорогой сервер с 16 ядрами / 32 потоками), с той же моделью и теми же весами, если усреднить по всей матрице замеров threads × batch , — и это преимущество сохраняется как при одном клиентском потоке, так и при тридцати двух. Предыдущая реализация во всём диапазоне нагрузок показывала 5–11 документов/с; новая реализация работает в диапазоне 70–230 документов/с.

https://habr.com/ru/articles/1051864/

#onnx #onnx_runtime #onnxruntime #embeddings #эмбеддинги #инференс #векторный_поиск #vector_search

В 14 раз быстрее: как мы ускорили генерацию эмбеддингов в Manticore через ONNX

Когда мы выпустили  Auto Embeddings  — функцию автоматического преобразования текстов в векторные представления — без развёртывания отдельного сервиса для работы с ML-моделью, — главный...

Хабр

Ruby에서 이미지 벡터 검색 구현: LLM을 넘어선 AI 활용

기존 태그 기반 이미지 검색의 한계를 지적하고, LLM 기반 설명 생성의 비효율성을 넘어선 이미지 벡터 검색의 필요성을 강조합니다.

🔗 원문 보기

Ruby에서 이미지 벡터 검색 구현: LLM을 넘어선 AI 활용

기존 태그 기반 이미지 검색의 한계를 지적하고, LLM 기반 설명 생성의 비효율성을 넘어선 이미지 벡터 검색의 필요성을 강조합니다.

Ruby-News

Удаляем фон и замазываем лица прямо в браузере: ONNX Runtime, MediaPipe и грабли Service Worker

TL;DR. Две нейросетевые задачи — удаление фона (ONNX Runtime Web + модель silueta) и замазывание лиц (MediaPipe Tasks Vision + BlazeFace) — запущены полностью на клиенте: ни один пиксель не уходит на сервер. Ниже — почему «в браузере», какие модели выбраны и почему, как тянуть 43-мегабайтную модель с прогресс-баром, почему лица лучше пикселизировать, чем размывать, и подробный разбор бага, на который я убил вечер: Service Worker, кэширующий .mjs / .wasm , ломает dynamic import() с ошибкой «Failed to fetch dynamically imported module».

https://habr.com/ru/articles/1042598/

#ONNX_Runtime #MediaPipe #WebAssembly #нейросети_в_браузере #удаление_фона #замазывание_лиц #Service_Worker #privacy #обработка_изображений_на_клиенте #dynamic_import

Удаляем фон и замазываем лица прямо в браузере: ONNX Runtime, MediaPipe и грабли Service Worker

TL;DR. Две нейросетевые задачи — удаление фона (ONNX Runtime Web + модель silueta) и замазывание лиц (MediaPipe Tasks Vision + BlazeFace) — запущены полностью на клиенте: ни один пиксель не уходит на...

Хабр