Twio가 pgvector 대신 Vertex AI Search를 선택한 이유

Twio는 pgvector를 사용하여 첫 번째 RAG 시스템을 구축했습니다. 이는 빠른 선택이었습니다. 우리의 데이터는 PostgreSQL에 저장되어 있었고, 그곳에 임베딩을 추가하는 것은 쉬운 일이었습니다.

규모가 커짐에 따라 우리의 문제는 변화했습니다. 더 이상 벡터를 어떻게 저장할 것인가를 고민하지 않았습니다. 대신 수천 개의 복잡한 브로커 문서, 이메일, 첨부 파일을 어떻게 이해할 것인가를 고민하게 되었습니다.

Twio는 대출 브로커를 대상으로 서비스를 제공합니다. 단일 케이스에는 다음과 같은 내용이 포함됩니다: • 이메일 스레드 • 급여 명세서 및 은행 거래 내역서 • 대출 양식 및 대출 기관 규정 • 수기 메모

AI는 다음과 같은 질문에 답할 수 있어야 합니다: • 어떤 이메일에서 누락된 요구 사항을 언급했나요? • 이 은행 거래 내역서가 소득을 증빙하나요? • 이 차입자에 대한 모든 문서를 요약해 주세요.

검색(retrieval)이 약하면 답변도 부실해집니다. 파싱(parsing)이 잘못되면 모델은 잘못된 증거를 보게 됩니다. RAG는 우리 제품의 기억 장치와 같습니다.

pgvector는 첫 번째 버전에서 다음과 같은 이유로 잘 작동했습니다: • 새로운 인프라가 필요하지 않았습니다. • 비용이 저렴했습니다. • SQL 디버깅이 쉬웠습니다. • 빠르게 출시할 수 있었습니다.

하지만 pgvector는 RAG 파이프라인의 일부일 뿐입니다. 나머지 작업은 우리의 몫이었습니다: • 첨부 파일 다운로드. • OCR을 통한 PDF 및 스캔 문서의 텍스트 추출. • 문서 청킹(chunking) 및 임베딩 생성. • 메타데이터 및 검색 쿼리 설계. • 인덱스 및 랭킹 튜닝. • 데이터베이스 부하 모니터링.

깔끔한 PDF는 쉽습니다. 스캔된 은행 거래 내역서는 어렵습니다. 5개의 첨부 파일과 표가 포함된 이메일은 훨씬 더 어렵습니다. pgvector를 사용할 때는 이 파이프라인의 모든 약점을 직접 해결해야 했습니다.

비용은 클라우드 청구서에서 엔지니어링 시간으로 옮겨갔습니다. 엔지니어링 시간은 우리의 가장 제한된 자원이었습니다.

비교: • 스캔된 문서: pgvector를 사용하면 OCR을 직접 구축해야 합니다. Vertex는 대부분의 문서 처리를 대신 수행합니다. • 문서 관련 질문: pgvector를 사용하면 쿼리와 랭킹을 직접 설계해야 합니다. Vertex는 관리형 검색(managed search)을 제공합니다. • 첨부 파일 급증: pgvector를 사용하면 Postgres가 부하를 감당해야 합니다. Vertex는 부하를 메인 데이터베이스 외부에서 처리합니다. • 비용: pgvector는 서비스 비용이 낮습니다. Vertex는 엔지니어링 및 유지보수 비용이 낮습니다.

pgvector는 데이터베이스 확장 기능으로서 더 저렴합니다. Vertex는 제품 결정 관점에서 더 경제적입니다.

Vertex는 네 가지 방식으로 우리를 돕습니다: • 관리해야 할 인프라가 줄어듭니다. • 유지 관리해야 할 문서 처리 로직이 줄어듭니다. • Postgres는 비즈니스 트랜잭션에 집중할 수 있습니다. • 문서량이 늘어남에 따라 유연하게 확장됩니다.

Vertex가 무료는 아닙니다. 하지만 자체적으로 OCR, 인덱싱, 랭킹 시스템을 구축하는 데에도 비용이 듭니다. 우리는 그 비용을 엔지니어의 작업 시간으로 지불하고 있었습니다.

다음과 같은 경우 pgvector를 사용하세요: • 데이터 규모가 적당할 때. • 문서가 이미 깔끔한 텍스트 형태일 때. • 정밀한 SQL 필터링이 필요할 때. • 빠르고 저렴한 첫 번째 버전을 원할 때.

우리의 교훈은 간단합니다: 가장 빠르게 배울 수 있는 도구로 시작하세요. 그리고 가장 효율적으로 운영할 수 있는 도구로 넘어가세요.

Source: https://dev.to/twio_ai/why-twio-chose-vertex-ai-search-over-pgvector-for-production-rag-51jm

Optional learning community: https://t.me/GyaanSetuAi