Annoy PyPI 패키지 정보

Annoy PyPI 패키지 정보

Annoy 는 PyPI 를 통해 pip install annoy 로 설치할 수 있는 근사 최근접 이웃 라이브러리예요. 패키지 정보를 정리해볼게요.

설치

pip install annoy

C++ 확장이 함께 빌드되어 바인딩이 생성돼요.

배경

  • Spotify 의 Hack Week 에서 Erik Bernhardsson 이 며칠 만에 만든 프로젝트예요.
  • 음악 추천을 위해 행렬 분해로 만든 사용자/아이템 벡터의 유사 검색에 사용돼요.

특징 요약

  • 유클리드·코사인·맨해튼·해밍·내적(dot) 거리 지원.
  • 코사인 거리는 정규화된 벡터의 유클리드 거리와 동일해요(sqrt(2-2cos)).
  • 차원이 많지 않을 때(<100) 잘 동작하고, 1000차원까지도 준수하게 동작해요.
  • 정적 파일 인덱스: 인덱스를 파일로 만들어 여러 프로세스가 mmap 공유 가능.
  • 인덱스 생성과 로딩 분리: 한 번 만들고 파일 배포 가능.

주의점

  • 항목 id 는 정수만 허용돼요(0..n-1 가정, 메모리 할당).
  • 빌드 후에는 항목 추가가 불가능해요(불변 인덱스).

더 알아보기 (Learn more)

출처: Annoy PyPI