피지 벡터서치의 프리즘 색인 소개

이 기사는 데이터베이스 관리 프로그램인 포스트그레에스큐엘 환경에서 인공지능이 글이나 이미지 같은 비정형 데이터를 숫자로 변환한 벡터를 고성능으로 검색하도록 지원하는 확장 프로그램인 피지 벡터서치와 그 핵심 색인 기술인 프리즘을 소개합니다. 프로그램의 핵심인 프리즘 색인은 유사성 매칭을 위한 분할 경로 색인의 약자로, 포스트그레에스큐엘에 기본 탑재된 기능처럼 원활하게 연동되도록 씨 언어로 구현되었습니다.

기존에 널리 사용되던 그래프 기반 검색 방식인 에이치엔에스더블유와 비교했을 때, 1억 개의 벡터로 구성된 대규모 데이터셋에서 사분의 일 수준의 적은 메모리를 사용하면서도 동일한 정확도에서 더 빠른 검색과 색인 생성 성능을 보여주기 때문에 주목받고 있습니다.

피지 벡터서치는 포스트그레에스큐엘 데이터베이스에서 고성능 근사치 가장 가까운 이웃 검색을 수행하기 위한 알파 버전의 확장 프로그램입니다. 여기서 근사치 가장 가까운 이웃 검색이란 방대한 데이터 속에서 완벽하게 일치하지는 않더라도 매우 높은 확률로 가장 비슷한 항목들을 빠르게 찾아내는 기술을 뜻합니다. 프리즘 색인은 대규모 데이터셋을 효율적으로 처리하기 위해 계층적인 중심점 나무 구조를 사용하여 벡터들을 여러 그룹으로 나누고, 데이터베이스의 임시 기억 공간인 버퍼 캐시에 해당 구조를 유지하여 빠르게 접근합니다. 또한 이론적 오차 범위가 보장되는 래빗큐 양자화 기술을 적용하여 2단계 검색을 수행합니다. 여기서 양자화란 복잡한 숫자 데이터를 컴퓨터가 처리하기 쉬운 형태로 압축하면서도 계산 결과가 원래 값에서 크게 벗어나지 않도록 오차를 관리하는 기술을 뜻합니다. 이 압축 방식에는 오차 범위가 포함되어 있어서 애초에 가장 가까운 이웃이 될 수 없는 벡터들을 검색 과정에서 미리 배제하므로, 테이블에 저장된 원래 정밀도의 벡터들과 일일이 비교해야 하는 횟수가 크게 줄어듭니다. 아울러 컴퓨터 프로세서의 동시 연산 기능을 최적화하여 거리 계산 속도를 높이는 기술을 지원합니다. 사용법은 두 가지로 나뉩니다. 첫째는 새로 시작하거나 기존 도구를 쓰지 않는 경우 프로그램 자체의 32비트 실수형이나 16비트 실수형 열에 벡터를 직접 저장하는 방식입니다. 둘째는 이미 기존 피지벡터 확장 프로그램의 벡터나 하프벡 열을 가지고 있는 경우, 그 옆에 피지 벡터서치를 설치한 뒤 기존 열 위에 그대로 프리즘 색인을 생성하는 방식입니다. 기존 테이블이나 검색 질문을 전혀 바꾸지 않고도 그대로 쓸 수 있으며, 두 도구는 데이터 형식이 호환되므로 같은 데이터베이스 안에서 함께 설치해 쓸 수 있습니다. 다만 새로운 데이터가 들어올 때마다 인덱스 안의 저장 위치에 차곡차곡 쌓이므로 데이터가 늘어날수록 목록도 함께 커지며 스스로 쪼개지지는 않습니다. 전체를 처음부터 다시 정리하는 방식 외에도 너무 커진 목록을 그 자리에서 알맞게 나누어 주는 프리즘 리밸런스 절차 기능을 활용할 수 있습니다. 프로그램을 컴퓨터에 설치하고 사용하려면 포스트그레에스큐엘 버전 18 이상과 개발 헤더 파일, 지엔유 씨11 컴파일러, 메손 빌드 시스템이 필요하며, 선택 사항으로 수학 연산 라이브러리를 함께 쓸 수 있습니다.

개발자나 데이터베이스 관리자 관점에서 이 기술은 대규모 인공지능 검색 기능을 구축할 때 소모되는 메모리 자원과 처리 시간을 크게 줄여 주는 대안이 될 수 있습니다. 다만 이 프로그램은 현재 초기 단계인 알파 버전이므로 실제 서비스를 안정적으로 운영하는 환경보다는 테스트 용도로만 사용하는 것이 안전하며, 미리보기 버전 간에 업그레이드가 지원되지 않아 확장 프로그램과 인덱스를 삭제했다가 다시 만들어야 할 수도 있습니다. 일반 사용자에게는 직접적인 영향이 없지만, 이 기술을 도입한 응답 속도가 중요한 검색 시스템에서 더 빠르고 효율적인 인공지능 기반 검색 기능을 경험할 수 있는 토대가 됩니다.