lightonai/next-plaid

NextPlaid, ColGREP: Multi-vector search, from database to coding agents.

해결하는 문제

NextPlaid와 ColGREP는 표준 벡터 검색이 전체 문서를 단일 임베딩으로 압축하는 한계를 해결합니다. 이 '손실 있는' 접근 방식은 파라미터, 문서 문자열, 제어 흐름과 같은 중요한 세부 정보가 손실되는 소스 코드와 같은 복잡한 데이터에서는 종종 실패합니다. NextPlaid는 이러한 세부 정보를 유지하는 고성능 다중 벡터 데이터베이스를 제공하며, ColGREP는 이 기술을 활용해 개발자와 AI 에이전트를 위한 로컬 의미적 코드 검색 도구를 구축합니다.

작동 방식

NextPlaid는 ColBERT와 유사한 다중 벡터 접근 방식을 사용하여, 문서를 하나의 임베딩이 아닌 여러 개의 임베딩으로 표현합니다. 이를 확장 가능하게 하기 위해 2비트 또는 4비트 압축을 사용하는 제품 양자화(product quantization)와 메모리 매핑 인덱스를 사용하여 RAM 사용량을 낮춥니다. 서버 측 인코딩을 위해 내장된 ONNX Runtime을 사용하고, 메타데이터 사전 필터링에는 SQLite를 활용합니다.

ColGREP는 NextPlaid를 사용하여 코드베이스를 인덱싱합니다. Tree-sitter를 사용해 코드를 구조화된 표현(서명, 호출, 문서 문자열 추출)으로 파싱한 후, ColBERT 스타일 모델로 임베딩합니다. 이를 통해 사용자는 의미적 검색과 정규식 필터링을 결합한 검색을 CPU에서 로컬로 실행할 수 있습니다.

대상 사용자

  • 개발자: 코드베이스를 빠르고 로컬, 개인정보 보호 가능한 방식으로 의미적으로 검색하고 싶은 분.
  • AI 에이전트 제작자: Claude Code와 같은 코딩 에이전트에 고정밀 검색 도구를 제공하고 싶은 분.
  • ML 엔지니어: 검색 작업용으로 사용 가능한 일반적인 로컬 우선 다중 벡터 데이터베이스를 찾는 분.

주요 특징

  • 로컬 우선 실행: ColGREP는 단일 Rust 바이너리이며, 코드는 기계를 떠나지 않습니다.
  • 다중 벡터 정밀도: 문서당 여러 개의 임베딩을 유지하여 정보 손실을 방지합니다.
  • 하이브리드 검색: 의미적 순위와 정규식 필터링을 결합합니다.
  • 효율적인 저장: 제품 양자화와 메모리 매핑을 사용해 수백만 개의 문서를 메모리에 맞춥니다.
  • 에이전트 준비 완료: Claude Code, OpenCode, Codex와 같은 에이전트용 내장 설치 훅 제공.
  • CPU 최적화: CPU에서 높은 성능을 발휘하도록 설계되었으며, CUDA 지원도 옵션으로 제공됩니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트