kakao/n2

대규모 벡터 데이터셋에서 빠른 근사 최근접 이웃 검색을 위한 C++ 기반 경량 라이브러리

개발 재료맘대로 써도 됨 · Apache-2.0LLM 도구·RAGJupyter Notebook난이도
581+0이번 주0
70포크14이슈

중간맛 분석

Python/Go 바인딩을 제공하는 C++ 기반 라이브러리로, HNSW(Hierarchical Navigable Small World) 알고리즘을 구현했습니다. 인덱스 생성 시간, 검색 속도, 메모리 사용량 모두 최적화되어 있으며, 멀티코어 CPU와 메모리맵(mmap) 기능을 지원합니다. 즉시 사용 가능하며, pip로 설치 후 몇 줄의 Python 코드로 벡터 인덱싱과 검색을 수행할 수 있습니다.

이런 레포예요

이럴 때 쓰면 좋아요

  • 추천 시스템에서 사용자와 유사한 아이템 또는 사용자 찾기
  • 이미지 검색 또는 얼굴 인식에서 유사한 이미지 검색
  • 대규모 임베딩 데이터셋에서 의미론적 검색 수행

핵심 기능

HNSW 알고리즘 기반의 빠른 근사 검색Python/Go 바인딩 및 멀티코어 인덱스 빌드Angular/L2/Dot 3가지 거리 메트릭과 mmap 지원

대안 대비 차별점

Annoy, NMSLIB 대비 더 우수한 인덱스 빌드 속도와 메모리 효율성을 갖춘 프로덕션급 ANN 라이브러리로, 대규모 벡터 파일 처리를 위해 기본적으로 메모리맵을 지원합니다.

바로 시작하기

  1. pip로 N2를 설치합니다.
pip install n2
  1. NumPy 배열로 벡터 데이터를 준비하고 인덱스를 생성합니다.
python3 << 'EOF'
import numpy as np
from n2 import HnswIndex

N, dim = 10240, 20
samples = np.arange(N * dim).reshape(N, dim)

index = HnswIndex(dim)
for sample in samples:
    index.add_data(sample)
index.build(m=5, n_threads=4)
print(index.search_by_id(0, 10))
EOF
  1. 검색 결과로 ID 0번 벡터와 가장 가까운 10개 벡터의 ID가 출력됩니다.

별 추이 · 7일

581+0 / 7일

활용성 · 따라 만들기 좋은가

따라 하기 좋음샘플 점수 54/100
  • 관대한 라이선스
  • 테스트 있음
  • 예제 디렉토리
  • 최근 활동
  • AGENTS.md
  • llms.txt
  • 템플릿

⚪ 최근 활동 정보 없음 · 2017년 생성

이 레포에 깃밥 배지 달기

[![깃밥](https://www.gitbap.com/badge/kakao/n2.svg)](https://www.gitbap.com/r/kakao/n2)

🔌 클로드에서 바로 써보기

깃밥을 클로드에 연결하면 이런 레포를 클로드·커서·Codex에서 바로 찾고 체험할 수 있어요.

방법 ① 커넥터 URL

클로드 설정 → 커넥터에 이 주소를 붙여넣기.

https://www.gitbap.com/api/mcp
방법 ② 플러그인 (체험까지)

플러그인을 설치하면 /gitbap-trending·/gitbap-try 슬래시 커맨드로 레포를 그 자리에서 체험. Claude Code에서 아래 두 줄을 차례로 실행하세요.

/plugin marketplace add jakeparkcolde/gitbap-cowork
/plugin install gitbap-cowork@gitbap
연결 방법 자세히 →

AI가 README 기반으로 요약했습니다 · 원문 보기