kakao/n2
대규모 벡터 데이터셋에서 빠른 근사 최근접 이웃 검색을 위한 C++ 기반 경량 라이브러리
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 라이브러리로, 대규모 벡터 파일 처리를 위해 기본적으로 메모리맵을 지원합니다.
바로 시작하기
- pip로 N2를 설치합니다.
pip install n2
- 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
- 검색 결과로 ID 0번 벡터와 가장 가까운 10개 벡터의 ID가 출력됩니다.
별 추이 · 7일
581+0 / 7일
활용성 · 따라 만들기 좋은가
따라 하기 좋음샘플 점수 54/100
- 관대한 라이선스
- 테스트 있음
- 예제 디렉토리
- 최근 활동
- AGENTS.md
- llms.txt
- 템플릿
⚪ 최근 활동 정보 없음 · 2017년 생성
이 레포에 깃밥 배지 달기
[](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@gitbapAI가 README 기반으로 요약했습니다 · 원문 보기