Servidor de inferência autogerenciado que oferece modelos de embeddings, reranking, OCR, extração, segurança e LLM em um único cluster por uma API compatível com OpenAI.
michaelfeil/infinity
Um mecanismo de serving em Rust/LibTorch que oferece embeddings, reranking, classificação e decisões tipadas por uma REST API.
- Estrelas
- 2,984
- Forks
- 220
- Issues abertas
- 153
- Último commit
- há 13 horas
O que é?
Infinity é um mecanismo de serving de modelos para embeddings de texto, reranking, classificação e modelos relacionados. Seu servidor v3 é escrito em Rust e executa inferências pelo LibTorch, a interface C++ do PyTorch. Os clientes fazem chamadas por HTTP usando endpoints como /v1/embeddings para vetores densos, /rerank para reranking, /v1/classify para classificação de sequências e pontuação de recompensa, e /embed_sparse para embeddings esparsos SPLADE.
O servidor é iniciado a partir de uma imagem Docker que exige uma GPU NVIDIA com compute capability SM80 (Ampere) ou superior e o NVIDIA Container Toolkit. Por padrão, ele usa todas as GPUs CUDA visíveis e mantém uma réplica completa do modelo em cada uma; a estratégia de pooling é selecionada com base nos metadados do checkpoint. O endpoint /health informa quando o servidor está pronto, após o carregamento e o warmup, e o servidor em execução disponibiliza uma página interativa da API em /docs.
O catálogo de modelos compatíveis com o projeto abrange embeddings densos e multimodais, embeddings de vetores de tokens para recuperação por late interaction, classificação de tokens e reconhecimento de entidades nomeadas, além de decisões tipadas. As versões anteriores baseadas em Python (v2, instaladas como infinity-emb) continuam no mesmo repositório.
Recursos principais
- 01Oferece embeddings, reranking, classificação e decisões tipadas por uma REST API.
- 02Executa inferências com LibTorch em um servidor Rust.
- 03Usa todas as GPUs CUDA visíveis por padrão, com uma réplica completa do modelo em cada uma.
- 04Oferece embeddings esparsos SPLADE e embeddings de vetores de tokens para recuperação por late interaction.
- 05Informa que está pronto após o carregamento do modelo e o warmup, por meio de /health.
Casos de uso
- Hospedar um endpoint de embeddings para busca semântica ou geração aumentada por recuperação em GPUs NVIDIA.
- Adicionar uma etapa de reranking a um pipeline de busca por trás de uma API HTTP.
- Executar modelos de reconhecimento de entidades nomeadas ou classificação de sequências como serviço.
- Implantar uma imagem de container com versão fixada para obter inferências reproduzíveis em GPU.
Início rápido
- 1
Execute o servidor Infinity v3 no Docker (requer uma GPU NVIDIA, SM80 ou mais recente, e o 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
Envie uma solicitação de embedding para o servidor em execução.
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 usar
- O servidor v3 usa uma licença personalizada com código-fonte disponível (Infinity Restricted MIT License 1.0), não uma licença padrão de código aberto.
- O início rápido do Docker documentado requer uma GPU NVIDIA com capacidade de computação SM80 ou superior.
- Cada GPU precisa comportar o modelo completo, incluindo todos os experts nos checkpoints MoE.
Em coleções
Tópicos
Perguntas frequentes
- O que é infinity?
- Um mecanismo de serving em Rust/LibTorch que oferece embeddings, reranking, classificação e decisões tipadas por uma REST API. Infinity é um mecanismo de serving de modelos para embeddings de texto, reranking, classificação e modelos relacionados. Seu servidor v3 é escrito em Rust e executa inferências pelo LibTorch, a interface C++ do PyTorch. Os clientes fazem chamadas por HTTP usando endpoints como /v1/embeddings para vetores densos, /rerank para reranking, /v1/classify para classificação de sequências e pontuação de recompensa, e /embed_sparse para embeddings esparsos SPLADE.
- infinity é gratuito? Qual é a licença?
- infinity é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- infinity ainda é mantido?
- Manutenção ativa. O último commit de infinity foi em 7 de nov. de 2026.
- Para que posso usar infinity?
- Hospedar um endpoint de embeddings para busca semântica ou geração aumentada por recuperação em GPUs NVIDIA. Adicionar uma etapa de reranking a um pipeline de busca por trás de uma API HTTP. Executar modelos de reconhecimento de entidades nomeadas ou classificação de sequências como serviço. Implantar uma imagem de container com versão fixada para obter inferências reproduzíveis em GPU.
- Como instalar infinity?
- Execute o servidor Infinity v3 no Docker (requer uma GPU NVIDIA, SM80 ou mais recente, e o 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 Envie uma solicitação de embedding para o servidor em execução.: 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."]}'
- Onde consigo infinity?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/michaelfeil/infinity
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Servidor de deep learning, pacote Python wheel e CLI para treinar e executar modelos com imagens, textos, dados tabulares e séries temporais por meio de uma API REST.
Pacote de provider que conecta o Vercel AI SDK ao OpenRouter e dá acesso a centenas de LLMs por uma única API.
Biblioteca Go para busca exata de vetores por similaridade de cosseno, com embeddings locais opcionais via llama.cpp e GGUF ou embeddings na nuvem por APIs compatíveis com OpenAI.
Ferramenta para desenvolvedores que executa modelos de IA localmente em containers OCI, baixa automaticamente imagens específicas para a GPU e disponibiliza os modelos por REST API ou chatbot.
CLI e toolkit Python para empacotar e implantar modelos de ML como servidores de modelos em produção na Baseten ou na sua própria infraestrutura.