Repolode
michaelfeil

michaelfeil/infinity

REST API로 임베딩, 리랭킹, 분류, 타입 지정 의사결정을 제공하는 Rust/LibTorch 서빙 엔진입니다.

스타
2,984
포크
220
열린 이슈
153
마지막 커밋
12시간 전

어떤 프로젝트인가요?

Infinity는 텍스트 임베딩, 리랭킹, 분류 및 관련 모델을 위한 모델 서빙 엔진입니다. v3 서버는 Rust로 작성되었으며, PyTorch의 C++ 인터페이스인 LibTorch를 통해 추론을 실행합니다. 클라이언트는 HTTP로 서버를 호출하며, 밀집 벡터용 /v1/embeddings, 리랭킹용 /rerank, 시퀀스 분류 및 보상 점수 산출용 /v1/classify, SPLADE 희소 임베딩용 /embed_sparse 등의 엔드포인트를 사용할 수 있습니다.

서버는 Docker 이미지에서 실행되며, NVIDIA Container Toolkit과 컴퓨트 능력이 SM80(Ampere) 이상인 NVIDIA GPU가 필요합니다. 기본적으로 감지되는 모든 CUDA GPU를 사용하고, 각 GPU에 전체 모델 복제본을 유지하며, 체크포인트 메타데이터에 따라 풀링 방식을 선택합니다. /health 엔드포인트는 모델 로딩과 워밍업이 끝나면 준비 상태를 보고하고, 실행 중인 서버는 /docs에서 대화형 API 페이지를 제공합니다.

프로젝트에서 지원하는 모델 카탈로그에는 밀집 및 멀티모달 임베딩, 지연 상호작용 검색을 위한 토큰 벡터 임베딩, 토큰 분류와 개체명 인식, 타입 지정 의사결정이 포함됩니다. 이전 Python 기반 릴리스(v2, infinity-emb로 설치)는 같은 저장소에 남아 있습니다.

핵심 기능

  • 01REST API로 임베딩, 리랭킹, 분류, 타입 지정 의사결정을 제공합니다.
  • 02Rust 서버에서 LibTorch를 사용해 추론을 실행합니다.
  • 03기본적으로 감지되는 모든 CUDA GPU를 사용하고, 각 GPU에 전체 모델 복제본을 둡니다.
  • 04SPLADE 희소 임베딩과 지연 상호작용 검색용 토큰 벡터 임베딩을 제공합니다.
  • 05모델 로딩과 워밍업이 완료된 뒤 /health를 통해 준비 상태를 보고합니다.

활용 사례

  • NVIDIA GPU에서 시맨틱 검색이나 검색 증강 생성용 임베딩 엔드포인트를 호스팅합니다.
  • HTTP API 뒤에 리랭킹 단계를 검색 파이프라인에 추가합니다.
  • 개체명 인식 또는 시퀀스 분류 모델을 서비스로 실행합니다.
  • 재현 가능한 GPU 추론을 위해 버전을 고정한 컨테이너 이미지를 배포합니다.

빠른 시작

  1. 1

    Docker에서 Infinity v3 서버를 실행합니다(NVIDIA GPU, 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 빠른 시작을 사용하려면 컴퓨팅 성능이 SM80 이상인 NVIDIA GPU가 필요합니다.
  • MoE 체크포인트의 경우 각 GPU가 모든 전문가를 포함한 모델 전체를 수용할 수 있어야 합니다.

포함된 컬렉션

토픽

자주 묻는 질문

infinity은(는) 무엇인가요?
REST API로 임베딩, 리랭킹, 분류, 타입 지정 의사결정을 제공하는 Rust/LibTorch 서빙 엔진입니다. Infinity는 텍스트 임베딩, 리랭킹, 분류 및 관련 모델을 위한 모델 서빙 엔진입니다. v3 서버는 Rust로 작성되었으며, PyTorch의 C++ 인터페이스인 LibTorch를 통해 추론을 실행합니다. 클라이언트는 HTTP로 서버를 호출하며, 밀집 벡터용 /v1/embeddings, 리랭킹용 /rerank, 시퀀스 분류 및 보상 점수 산출용 /v1/classify, SPLADE 희소 임베딩용 /embed_sparse 등의 엔드포인트를 사용할 수 있습니다.
infinity은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
infinity은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
infinity은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. infinity의 마지막 커밋은 2026년 11월 7일입니다.
infinity은(는) 어디에 사용할 수 있나요?
NVIDIA GPU에서 시맨틱 검색이나 검색 증강 생성용 임베딩 엔드포인트를 호스팅합니다. HTTP API 뒤에 리랭킹 단계를 검색 파이프라인에 추가합니다. 개체명 인식 또는 시퀀스 분류 모델을 서비스로 실행합니다. 재현 가능한 GPU 추론을 위해 버전을 고정한 컨테이너 이미지를 배포합니다.
infinity는 어떻게 설치하나요?
Docker에서 Infinity v3 서버를 실행합니다(NVIDIA GPU, 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를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트