Repolode
nmslib

nmslib/hnswlib

HNSW 그래프 알고리즘을 사용해 빠른 근사 최근접 이웃 검색을 수행하는 Python 바인딩 포함 헤더 전용 C++ 라이브러리입니다.

스타
5,364
포크
862
열린 이슈
311
마지막 커밋
2개월 전

어떤 프로젝트인가요?

Hnswlib는 근사 최근접 이웃 검색을 위한 Hierarchical Navigable Small World(HNSW) 그래프의 헤더 전용 C++ 구현입니다. 고차원 벡터를 인덱싱해 쿼리 벡터와 가장 가까운 항목을 무차별 대입 방식보다 훨씬 빠르게 찾습니다. 대신 검색 결과는 정확한 최근접 항목이 아니라 근사치입니다.

라이브러리에는 NumPy 배열을 지원하고 L2, 내적, 코사인 거리를 사용할 수 있는 Python 바인딩이 포함되어 있습니다. 인덱스를 점진적으로 구축하고, 레이블을 다시 삽입해 갱신하고, 삭제 표시를 하며, 디스크에 저장하거나 디스크에서 불러올 수 있습니다. Python 인덱스는 pickle로 직렬화할 수도 있습니다. C++에서는 사용자 정의 거리 함수를 지정할 수 있습니다.

C++ 핵심 라이브러리는 C++11 외에 별도의 의존성이 없습니다. 최신 버전에는 스트림 기반 저장 및 불러오기 기능과, -fno-exceptions로 컴파일한 빌드에서 사용할 수 있는 선택적 예외 비활성화 API가 추가되었습니다.

핵심 기능

  • 01C++11 외에 별도 의존성이 없는 헤더 전용 C++ 구현입니다.
  • 02L2, 내적, 코사인 거리를 지원하는 NumPy 배열용 Python 바인딩입니다.
  • 03점진적 삽입, 기존 레이블 갱신, 삭제 표시를 지원합니다.
  • 04인덱스를 디스크에 저장하고 불러올 수 있으며, Python에서는 pickle도 지원합니다.
  • 05불리언 함수로 검색 결과를 필터링하고 C++에서 사용자 정의 거리를 지정할 수 있습니다.

활용 사례

  • 임베딩 벡터를 기반으로 시맨틱 검색 또는 추천 백엔드를 구축합니다.
  • 특징 벡터를 사용해 유사한 이미지나 제품을 찾습니다.
  • 대규모 의존성을 추가하지 않고 C++ 애플리케이션에 빠른 최근접 이웃 인덱스를 추가합니다.
  • 항목을 자주 추가하거나 갱신하거나 삭제하는 벡터 인덱스를 관리합니다.

사용 전 알아둘 점

  • README에 설명된 버전은 0.10.0rc2로, 릴리스 후보 버전이므로 안정 버전으로 간주해서는 안 됩니다.
  • Python의 필터 검색은 GIL의 제약을 받으며 멀티스레드 모드에서 느리게 실행됩니다.

포함된 컬렉션

토픽

자주 묻는 질문

hnswlib은(는) 무엇인가요?
HNSW 그래프 알고리즘을 사용해 빠른 근사 최근접 이웃 검색을 수행하는 Python 바인딩 포함 헤더 전용 C++ 라이브러리입니다. Hnswlib는 근사 최근접 이웃 검색을 위한 Hierarchical Navigable Small World(HNSW) 그래프의 헤더 전용 C++ 구현입니다. 고차원 벡터를 인덱싱해 쿼리 벡터와 가장 가까운 항목을 무차별 대입 방식보다 훨씬 빠르게 찾습니다. 대신 검색 결과는 정확한 최근접 항목이 아니라 근사치입니다.
hnswlib은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
hnswlib은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
hnswlib은(는) 아직 유지보수되고 있나요?
6개월 이내 업데이트. hnswlib의 마지막 커밋은 2026년 9월 15일입니다.
hnswlib은(는) 어디에 사용할 수 있나요?
임베딩 벡터를 기반으로 시맨틱 검색 또는 추천 백엔드를 구축합니다. 특징 벡터를 사용해 유사한 이미지나 제품을 찾습니다. 대규모 의존성을 추가하지 않고 C++ 애플리케이션에 빠른 최근접 이웃 인덱스를 추가합니다. 항목을 자주 추가하거나 갱신하거나 삭제하는 벡터 인덱스를 관리합니다.
hnswlib은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/nmslib/hnswlib

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트