Servidor de inferencia autohospedado que sirve modelos de embeddings, reranking, OCR, extracción, seguridad y LLM desde un solo clúster mediante una API compatible con OpenAI.
michaelfeil/infinity
Un motor de inferencia en Rust/LibTorch que ofrece embeddings, reranking, clasificación y decisiones tipadas mediante una API REST.
- Estrellas
- 2,984
- Forks
- 220
- Issues abiertos
- 153
- Último commit
- anteayer
¿Qué es?
Infinity es un motor para servir modelos de embeddings de texto, reranking, clasificación y otros relacionados. Su servidor v3 está escrito en Rust y ejecuta inferencias mediante LibTorch, la interfaz de C++ de PyTorch. Los clientes se conectan por HTTP a endpoints como /v1/embeddings para obtener vectores densos, /rerank para reranking, /v1/classify para clasificación de secuencias y puntuación de recompensas, y /embed_sparse para embeddings dispersos de SPLADE.
El servidor se inicia desde una imagen de Docker y requiere una GPU NVIDIA con capacidad de cómputo SM80 (Ampere) o superior, además de NVIDIA Container Toolkit. De forma predeterminada, utiliza todas las GPU CUDA visibles y mantiene una réplica completa del modelo en cada una. También selecciona el pooling a partir de los metadatos del checkpoint. El endpoint /health indica que el servidor está listo después de cargar el modelo y completar el calentamiento, y el servidor en ejecución ofrece una página interactiva de la API en /docs.
El catálogo de modelos compatibles del proyecto incluye embeddings densos y multimodales, embeddings de vectores por token para recuperación con interacción tardía, clasificación de tokens y reconocimiento de entidades nombradas, y decisiones tipadas. Las versiones anteriores basadas en Python (v2, instaladas como infinity-emb) siguen en el mismo repositorio.
Funciones clave
- 01Ofrece embeddings, reranking, clasificación y decisiones tipadas mediante una API REST.
- 02Ejecuta inferencias con LibTorch en un servidor escrito en Rust.
- 03De forma predeterminada, utiliza todas las GPU CUDA visibles y mantiene una réplica completa del modelo en cada una.
- 04Ofrece embeddings dispersos de SPLADE y embeddings de vectores por token para recuperación con interacción tardía.
- 05Indica que el servidor está listo después de cargar el modelo y completar el calentamiento mediante /health.
Casos de uso
- Alojar un endpoint de embeddings para búsqueda semántica o generación aumentada por recuperación en GPU NVIDIA.
- Añadir una etapa de reranking a un pipeline de búsqueda mediante una API HTTP.
- Ejecutar modelos de reconocimiento de entidades nombradas o clasificación de secuencias como servicio.
- Implementar una imagen de contenedor fijada para obtener inferencias reproducibles en GPU.
Inicio rápido
- 1
Ejecuta el servidor de Infinity v3 en Docker (necesita una GPU NVIDIA, SM80 o posterior, y 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
Envía una solicitud de embeddings al servidor en ejecución.
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."]}'
Antes de usarlo
- El servidor v3 utiliza una licencia personalizada de código fuente disponible (Infinity Restricted MIT License 1.0), no una licencia estándar de código abierto.
- El inicio rápido de Docker documentado requiere una GPU NVIDIA con una capacidad de cómputo SM80 o posterior.
- Cada GPU debe poder alojar el modelo completo, incluidos todos los expertos en los checkpoints MoE.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es infinity?
- Un motor de inferencia en Rust/LibTorch que ofrece embeddings, reranking, clasificación y decisiones tipadas mediante una API REST. Infinity es un motor para servir modelos de embeddings de texto, reranking, clasificación y otros relacionados. Su servidor v3 está escrito en Rust y ejecuta inferencias mediante LibTorch, la interfaz de C++ de PyTorch. Los clientes se conectan por HTTP a endpoints como /v1/embeddings para obtener vectores densos, /rerank para reranking, /v1/classify para clasificación de secuencias y puntuación de recompensas, y /embed_sparse para embeddings dispersos de SPLADE.
- ¿infinity es gratuito? ¿Qué licencia tiene?
- infinity es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿infinity sigue mantenido?
- Mantenimiento activo. El último commit de infinity fue el 4 nov 2026.
- ¿Para qué puedo usar infinity?
- Alojar un endpoint de embeddings para búsqueda semántica o generación aumentada por recuperación en GPU NVIDIA. Añadir una etapa de reranking a un pipeline de búsqueda mediante una API HTTP. Ejecutar modelos de reconocimiento de entidades nombradas o clasificación de secuencias como servicio. Implementar una imagen de contenedor fijada para obtener inferencias reproducibles en GPU.
- ¿Cómo se instala infinity?
- Ejecuta el servidor de Infinity v3 en Docker (necesita una GPU NVIDIA, SM80 o posterior, y 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 Envía una solicitud de embeddings al servidor en ejecución.: 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."]}'
- ¿Dónde consigo infinity?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/michaelfeil/infinity
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Servidor de deep learning, paquete wheel de Python y CLI para entrenar y ejecutar modelos con imágenes, texto, datos tabulares y series temporales mediante una REST API.
Paquete provider que conecta Vercel AI SDK con OpenRouter y permite acceder a cientos de LLM mediante una sola API.
Biblioteca de Go para buscar vectores por similitud coseno exacta, con embeddings GGUF locales opcionales vía llama.cpp y embeddings en la nube mediante API compatibles con OpenAI.
Herramienta para desarrolladores que ejecuta modelos de IA localmente en contenedores OCI, descarga automáticamente imágenes para la GPU y ofrece los modelos mediante una API REST o un chatbot.
CLI y toolkit de Python para empaquetar y desplegar modelos de ML en Baseten o en infraestructura propia como servidores de modelos listos para producción.