LLM 애플리케이션을 위해 구축된 AI 네이티브 데이터베이스로, 고밀도 임베딩(dense embedding), 희소 임베딩(sparse embedding), 텐서(tensor) 및 전체 텍스트(full-text)의 초고속 하이브리드 검색을 제공합니다.
Infinity는 고밀도 벡터(dense vector), 희소 벡터(sparse vector), 텐서, 전체 텍스트, 구조화된 데이터를 포함한 풍부한 데이터 유형에 광범위한 검색 기능을 제공하는 최첨단 AI 네이티브 데이터베이스입니다. 이는 검색, 추천 시스템(recommenders), 질의응답(question-answering), 대화형 AI(conversational AI), 코파일럿(copilot), 콘텐츠 생성 등 수많은 RAG (Retrieval-augmented Generation) 애플리케이션을 포함하여 다양한 LLM 애플리케이션에 강력한 지원을 제공합니다.
Infinity는 차세대 AI 애플리케이션이 직면한 과제를 해결하도록 설계된 높은 성능, 유연성, 사용 편의성 및 다수의 기능을 갖추고 있습니다:
- 수백만 규모의 벡터 데이터셋에서 0.1 밀리초의 쿼리 지연 시간과 15K+ QPS를 달성합니다.
- 33M 문서에 대한 전체 텍스트 검색에서 1밀리초의 지연 시간과 12K+ QPS를 달성합니다.
자세한 정보는 벤치마크 보고서(Benchmark report)를 참조하십시오.
- 필터링 외에도 고밀도 임베딩, 희소 임베딩, 텐서 및 전체 텍스트에 대한 하이브리드 검색을 지원합니다.
- RRF, 가중 합계(weighted sum), ColBERT를 포함한 여러 유형의 리랭커(rerankers)를 지원합니다.
문자열(strings), 숫자형(numerics), 벡터 등 광범위한 데이터 유형을 지원합니다.
- 직관적인 Python API. Python API를 참조하십시오.
- 종속성이 없는 단일 바이너리 아키텍처로 배포가 매우 쉽습니다.
- 모듈 형태로 Python에 내장되어 있어 AI 개발자에게 친화적입니다.
이 섹션에서는 클라이언트와 서버를 별도의 프로세스로 사용하는 Docker를 이용한 Infinity 데이터베이스 배포 방법을 안내합니다.
-
CPU: AVX2 지원 x86_64.
-
OS:
- Linux (glibc 2.17+).
- Windows 10+ (WSL/WSL2).
- MacOS
-
Python: Python 3.11+.
sudo mkdir -p /var/infinity && sudo chown -R $USER /var/infinity
docker pull infiniflow/infinity:nightly
docker run -d --name infinity -v /var/infinity/:/var/infinity --ulimit nofile=500000:500000 --network=host infiniflow/infinity:nightly
Windows 10 이상을 사용한다면, Docker를 사용하여 Infinity를 배포하려면 WSL 또는 WSL2를 활성화해야 합니다. WSL2에 Ubuntu를 설치했다고 가정해 보겠습니다:
WSL2 내에서 systemd를 활성화하려면 다음을 따르세요.
여기 있는 지침에 따라 docker-ce를 설치하세요.
Windows용 Docker Desktop 버전 4.29 이상을 설치한 경우:
**설정(Settings)****>****개발 중 기능(Features in development)**에서 **호스트 네트워킹 활성화(Enable host networking)**를 선택하세요. -
Docker 이미지를 가져와 Infinity를 시작합니다:
sudo mkdir -p /var/infinity && sudo chown -R $USER /var/infinity docker pull infiniflow/infinity:nightly docker run -d --name infinity -v /var/infinity/:/var/infinity --ulimit nofile=500000:500000 --network=host infiniflow/infinity:nightly
pip install infinity-sdk==0.7.4
import infinity
infinity_obj = infinity.connect(infinity.NetworkAddress("<서버 IP 주소>", 23817))
db_object = infinity_object.get_database("default_db")
...
만약 서버와 클라이언트를 별도의 프로세스로 사용하여 Infinity를 배포하려면, 'Deploy infinity using binary' 가이드를 참조하세요.
'Build from Source' 가이드를 참조하세요.
'Infinity Roadmap 2025'를 참조하세요.