Repolode
michaelfeil

michaelfeil/infinity

Сервисный движок на Rust и LibTorch для эмбеддингов, реранкинга, классификации и типизированных решений через REST API.

Звёзды
2,984
Форки
220
Открытые issues
153
Последний коммит
13 часов назад

Что это?

Infinity — движок для обслуживания моделей эмбеддингов текста, реранкинга, классификации и смежных задач. Сервер v3 написан на Rust и выполняет инференс через LibTorch — интерфейс PyTorch на C++. Клиенты обращаются к нему по HTTP через такие эндпоинты, как /v1/embeddings для плотных векторов, /rerank для реранкинга, /v1/classify для классификации последовательностей и оценки вознаграждения, а также /embed_sparse для разреженных эмбеддингов SPLADE.

Сервер запускается из Docker-образа и требует NVIDIA GPU с вычислительными возможностями SM80 (Ampere) или выше, а также NVIDIA Container Toolkit. По умолчанию он использует все доступные CUDA GPU, размещая на каждой полную копию модели, и выбирает pooling по метаданным чекпойнта. Эндпоинт /health сообщает о готовности после загрузки и прогрева модели, а на работающем сервере доступна интерактивная страница API по адресу /docs.

В поддерживаемый каталог моделей входят плотные и мультимодальные эмбеддинги, векторные представления токенов для поиска с поздним взаимодействием, классификация токенов и распознавание именованных сущностей, а также типизированные решения. Более ранние выпуски на Python (v2, устанавливаемые как infinity-emb) по-прежнему находятся в том же репозитории.

Ключевые возможности

  • 01Предоставляет эмбеддинги, реранкинг, классификацию и типизированные решения через REST API.
  • 02Выполняет инференс с помощью LibTorch на сервере, написанном на Rust.
  • 03По умолчанию использует все доступные CUDA GPU, размещая на каждой полную копию модели.
  • 04Предоставляет разреженные эмбеддинги SPLADE и векторные представления токенов для поиска с поздним взаимодействием.
  • 05Сообщает о готовности после загрузки и прогрева модели через /health.

Сценарии использования

  • Развертывание эндпоинта эмбеддингов для семантического поиска или генерации с дополнением поиском на NVIDIA GPU.
  • Добавление этапа реранкинга в поисковый конвейер с доступом через HTTP API.
  • Запуск моделей распознавания именованных сущностей или классификации последовательностей в виде сервиса.
  • Развертывание закрепленного образа контейнера для воспроизводимого инференса на GPU.

Быстрый старт

  1. 1

    Запустите сервер Infinity v3 в Docker (требуется GPU NVIDIA с архитектурой SM80 или новее и NVIDIA Container Toolkit).

    docker run --rm --gpus all -p 8000:8000 -v infinity-cache:/data ghcr.io/michaelfeil/infinity_v3:nvidia-3.0.0 --model-id sentence-transformers/all-MiniLM-L6-v2 --torch-device cuda --dtype bfloat16 --hostname 0.0.0.0 --port 8000
  2. 2

    Отправьте запрос на получение эмбеддингов работающему серверу.

    curl http://localhost:8000/v1/embeddings -H 'Content-Type: application/json' -d '{"model":"sentence-transformers/all-MiniLM-L6-v2","input":["A document about semantic search."]}'

Что важно знать

  • Сервер v3 использует специальную лицензию с доступным исходным кодом (Infinity Restricted MIT License 1.0), а не стандартную лицензию с открытым исходным кодом.
  • Для описанного в документации быстрого запуска Docker требуется GPU NVIDIA с вычислительными возможностями SM80 или новее.
  • Каждая GPU должна вмещать модель целиком, включая всех экспертов для контрольных точек MoE.

В подборках

Темы

Частые вопросы

Что такое infinity?
Сервисный движок на Rust и LibTorch для эмбеддингов, реранкинга, классификации и типизированных решений через REST API. Infinity — движок для обслуживания моделей эмбеддингов текста, реранкинга, классификации и смежных задач. Сервер v3 написан на Rust и выполняет инференс через LibTorch — интерфейс PyTorch на C++. Клиенты обращаются к нему по HTTP через такие эндпоинты, как /v1/embeddings для плотных векторов, /rerank для реранкинга, /v1/classify для классификации последовательностей и оценки вознаграждения, а также /embed_sparse для разреженных эмбеддингов SPLADE.
infinity можно использовать бесплатно? Какая у него лицензия?
infinity распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
infinity всё ещё поддерживается?
Активно поддерживается. Последний коммит в infinity — 7 нояб. 2026 г..
Для чего можно использовать infinity?
Развертывание эндпоинта эмбеддингов для семантического поиска или генерации с дополнением поиском на NVIDIA GPU. Добавление этапа реранкинга в поисковый конвейер с доступом через HTTP API. Запуск моделей распознавания именованных сущностей или классификации последовательностей в виде сервиса. Развертывание закрепленного образа контейнера для воспроизводимого инференса на GPU.
Как установить infinity?
Запустите сервер Infinity v3 в Docker (требуется GPU NVIDIA с архитектурой SM80 или новее и NVIDIA Container Toolkit).: docker run --rm --gpus all -p 8000:8000 -v infinity-cache:/data ghcr.io/michaelfeil/infinity_v3:nvidia-3.0.0 --model-id sentence-transformers/all-MiniLM-L6-v2 --torch-device cuda --dtype bfloat16 --hostname 0.0.0.0 --port 8000 Отправьте запрос на получение эмбеддингов работающему серверу.: curl http://localhost:8000/v1/embeddings -H 'Content-Type: application/json' -d '{"model":"sentence-transformers/all-MiniLM-L6-v2","input":["A document about semantic search."]}'
Где скачать infinity?
Исходный код и инструкции по установке — на GitHub: https://github.com/michaelfeil/infinity

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Локальный inference-сервер, который через OpenAI-совместимый API обслуживает модели эмбеддингов, reranking, OCR, извлечения данных, безопасности и LLM из одного кластера.

3,5 тыс.+19 за неделю333PythonApache-2.0Активно поддерживаетсяОбновлён 5 часов назад

Инструмент для разработчиков, который запускает AI-модели локально в OCI-контейнерах, автоматически подбирает образы для GPU и предоставляет модели через REST API или чат-бота.

3,1 тыс.+14 за неделю389PythonMITОбновлён 23 часа назад