PostgreSQL Vector 검색

김윤수·2024년 11월 28일
0

laravel

목록 보기
14/15

GitHub - benbjurstrom/pgvector-scout: ✨ Pgvector driver for Laravel Scout

해당 패키지를 설치해보고 이해가 안가는 부분들이 생겨서 관련 내용을 정리해둡니다.

결론: 저장하는 벡터 값이나 질의하는 벡터 값은 openai의 같은 임베딩 모델로 처리하고 있다.

추가설명: NLP(자연어 처리)가 되어야 "식사"를 검색할때 "식사"와 관련된 글들이 나올테니까

쉽게 설명한 글

What is pgvector, and How Can It Help You?

이 글이 도움이 많이 됨. openai은 1536개의 차원이므로 스키마로 embedding vector(1536)

인덱스는 HNSW 인덱스가 효율이 좋음

유사도

  • ↔ : 유클리드 거리
  • <#> : 음의 내적
  • <=> : 코사인 거리

활용 분야

  • 콘텐츠 기반 필터링
  • 자연어 처리: 텍스트의 의미를 벡터로 변환하여 유사한 내용 검색1
  • 컴퓨터 비전: 이미지를 벡터로 변환하여 유사 이미지 검색 1
  • 추천 시스템: 사용자 행동이나 콘텐츠 유사도 기반 추천 2
  • 이상 탐지: 정상 패턴과 다른 벡터 탐지 1
  • AI 기반 유사도 검색 2

PostgreSQL pgvector 확장 설치법

# 설치되어 있는지
SELECT * FROM pg_extension WHERE extname = 'vector';
# 설치가능한 확장
SELECT * FROM pg_available_extensions WHERE name = 'vector';
# vector 확장 설치
CREATE EXTENSION vector;

점점 MySQL에서 갈아타야 할 시점이 다가오는 것 같다.

profile
안녕하세요

0개의 댓글