Go로 구축된 분산 검색 엔진 Antfly, 멀티모달 검색과 그래프 탐색을 한 번에!

by DD
2개월 전
조회수 10

Antfly는 분산 시스템(Distributed System) 환경에서 멀티모달 검색(Multimodal Search), 벡터 검색(Vector Search), 그래프 탐색(Graph Traversal)을 지원하는 Go 기반 검색 엔진이다.

단일 바이너리 배포를 통해 로컬 개발(Local Development) 및 소규모 배포에 용이하며, 내장된 ML 추론 엔진 Termite를 통해 외부 API 호출 없이(Without External API Calls) 벡터 검색을 수행한다.

하이브리드 검색(Hybrid Search), 그래프 탐색 기능(Graph Traversal), Elasticsearch 마이그레이션(Elasticsearch Migration) 경로에 대한 커뮤니티의 질문이 이어졌다.

하이브리드 검색(Hybrid Search) 구현 방식

커뮤니티에서는 Antfly의 하이브리드 검색 구현 방식에 대한 질문이 제기되었다. 특히, 의미 기반 검색(Semantic Similarity), 전체 텍스트 검색(Full-text Search), 그래프 탐색(Graph Traversal)을 단일 쿼리로 통합하는 방식에 대한 궁금증이 컸다. 일반적으로 하이브리드 검색은 BM25 알고리즘(BM25 Algorithm)벡터 유사도(Vector Similarity)를 결합하여 검색 정확도를 높이는 방식으로 구현된다. Antfly는 이러한 기술들을 활용하여 다양한 데이터 유형에 대한 효율적인 검색을 제공한다.

그래프 탐색(Graph Traversal) 기능의 활용

사용자들은 Antfly의 그래프 탐색 기능이 실제 애플리케이션에서 어떻게 활용될 수 있는지에 대해 질문했다. 그래프 탐색은 데이터 간의 관계를 파악하고, 복잡한 쿼리를 수행하는 데 유용하다. 예를 들어, 지식 그래프(Knowledge Graph)를 구축하여 관계 기반 검색(Relationship-based Search)을 수행하거나, 추천 시스템(Recommendation System)에서 사용자 간의 연결을 분석하는 데 활용될 수 있다. Antfly는 이러한 기능을 통해 데이터 간의 연결성을 시각화하고, 보다 직관적인 검색 경험을 제공한다.

Elasticsearch에서 Antfly로의 마이그레이션

Elasticsearch 사용자들이 Antfly로 마이그레이션하는 경로에 대한 질문이 있었다. 일반적으로 Elasticsearch에서 Antfly로의 마이그레이션은 데이터 재색인(Reindexing)을 포함한다. Antfly는 S3 스토리지를 지원하여 대용량 데이터의 효율적인 관리를 돕는다. 또한, Antfly는 PostgreSQL 확장(PostgreSQL Extension)을 제공하여 기존 PostgreSQL 환경과의 통합을 용이하게 한다. 하지만, 마이그레이션 시에는 데이터 구조 및 쿼리 호환성을 고려해야 한다.

Termite를 활용한 ML 추론

Antfly는 내장된 Termite를 통해 ML 모델(ML Models)을 실행하여 임베딩(Embeddings), 청킹(Chunking), 재랭킹(Reranking) 등의 작업을 수행한다. 이는 외부 API 호출 없이 RAG(Retrieval-Augmented Generation) 시스템을 구축할 수 있게 해준다. Termite는 Ollama, OpenAI, Bedrock, Gemini 등 다양한 모델을 지원하며, 단일 바이너리 배포 환경에서 ML 기능을 활용할 수 있도록 돕는다. 특히, 단일 바이너리 배포(Single Binary Deployment)는 개발 및 운영의 편의성을 높이는 중요한 요소로 작용한다.

Show HN: Antfly: Distributed, Multimodal Search and Memory and Graphs in Go