벡터 데이터베이스
벡터 데이터베이스는 항목의 벡터 표현을 저장하고, 선택한 유사도 또는 거리 척도로 가까운 벡터를 검색할 수 있게 합니다. 텍스트의 경우 이러한 벡터는 일반적으로 임베딩 모델이 생성합니다. 검색은 질의 표현과 관련된 후보 레코드를 반환합니다. 해당 내용이 사실임을 증명하거나 질문에 답하는 것은 아닙니다.
작성: Ai Flowi · 게시일
벡터는 검색용 표현이며, 연결된 레코드는 구절, 문서 식별자와 메타데이터 같은 유용한 자료를 담습니다. 이 연결을 유지하는 것이 필수입니다. 원본 내용 없이 가까운 숫자만 나열한 목록은 문서 기반 질의응답 애플리케이션의 근거 자료로 사용할 수 없습니다.
벡터 저장과 일반 레코드 저장은 어떻게 다른가요?
일반적인 레코드 조회는 정확한 식별자로 정책을 찾을 수 있습니다. 벡터 질의는 문서가 다른 표현을 사용하더라도 “장비를 사업장 밖으로 가져가도 되나요?” 같은 문구와 관련된 구절을 찾을 수 있습니다. 두 작업은 서로 다른 질문에 답하며 같은 애플리케이션 안에서 함께 사용할 수 있습니다.
정확한 식별자, 접근 권한과 현재 문서 버전은 여전히 명시적으로 처리해야 합니다. 의미상 관련된 다른 부서의 정책이 반드시 적용 가능한 것은 아닙니다. 벡터 데이터베이스를 사용해도 일반적인 필터링이나 권위 있는 원본 레코드 선택은 필요합니다.
텍스트 임베딩 항목은 텍스트가 표현으로 변환되는 과정을 설명합니다. 시맨틱 검색은 관련성 문제를 다룹니다. 이 항목은 이러한 표현을 저장하고 연결된 레코드를 검색하는 데 초점을 맞춥니다.
수집, 인덱싱과 질의
수집 단계에서 애플리케이션은 원본 자료를 선택하고 저장할 항목을 준비한 뒤 임베딩 모델에서 벡터를 얻습니다. 각 벡터와 원본 레코드의 대응 관계를 유지합니다. 인덱스는 모든 질의를 정확한 텍스트 조회로 처리하지 않고 후보를 찾기 위한 데이터베이스의 검색 구조입니다.
질의 시점에 애플리케이션은 질문을 호환되는 임베딩 공간에서 표현하고 저장소에 가까운 레코드를 요청합니다. 가까움을 평가하는 방식은 선택한 척도에 따라 달라집니다. 검색 결과에는 다음 단계에서 관련성을 판단할 수 있도록 충분한 연결 콘텐츠와 출처 정보가 포함되어야 합니다.
일부 시스템은 검색 작업을 줄이기 위해 근사 최근접 이웃 기법을 사용합니다. 다른 시스템은 정확한 비교나 여러 인덱스 선택 항목을 지원합니다. 여기의 카탈로그에는 특정 인덱스 알고리즘, 정확도 절충점 또는 규모 한계가 명시되어 있지 않습니다. “벡터 저장소”라는 일반적인 명칭만으로 이러한 특성을 추론하지 않습니다.
문서를 업데이트할 때는 저장된 표현과 원본 연결의 일관성을 유지해야 합니다. 그렇지 않으면 검색은 이전 텍스트에서 만든 벡터를 반환하면서 애플리케이션은 더 새로운 레코드를 표시할 수 있습니다. 모델을 바꾸면 저장된 벡터를 다시 생성해야 할 수도 있습니다. 차원이 호환된다는 사실만으로 의미도 호환된다고 볼 수는 없습니다.
관련 자료: MongoDB Atlas 벡터 검색 연동.
작은 문서 검색 예제
최초 펌프 지침, 개정 지침과 철회된 문제 해결 메모로 이루어진 가상 유지보수 자료 모음을 생각해 봅니다. 저장 측면의 질문은 반환된 구절을 해당 벡터를 생성한 버전까지 추적하는 방법입니다. 디스크에 최신 파일이 있다고 해서 검색 가능한 모든 레코드에 그 내용이 반영되었다고 볼 수는 없습니다.
| 저장 항목 | 연결 정보 | 검색 점검 |
|---|---|---|
| 최초 펌프 지침 | 구절 식별자와 최초 개정 버전. | 개정 이후 이 레코드의 사용이 중단되었나요? |
| 개정된 펌프 지침 | 업데이트된 텍스트와 개정 버전 연결. | 반환된 구절이 개정된 원본과 일치하나요? |
| 철회된 문제 해결 메모 | 원본 식별자와 철회 기록. | 활성 검색 대상 집합에서 제외되었나요? |
이 예제는 원본의 수명주기를 점검하는 예제이며, 데이터베이스 작업이나 순위를 측정하지 않았습니다. 개정 지침을 찾는 것은 하나의 점검에 불과합니다. 최초 레코드와 철회된 레코드도 확인해야 합니다. 검색에서 새 구절이 먼저 반환되어도 오래된 구절이 다른 질의에서 검색될 수 있습니다.
AI Flowi Workflow 카탈로그의 Chroma DB
Chroma DB의 수집, 검색, 영속 저장, 연결 필드와 결과 포트는 Chroma 연동 참조 문서를 사용합니다.
표현에 관한 설명은 생성된 벡터와 임베딩 모델 연결을 구분합니다.
저장 시에는 검색 가능한 각 항목을 만들 때 사용한 문서 식별 정보, 구절 식별 정보와 개정 버전을 담은 원본 연결 기록을 유지합니다. 이는 제안하는 관리용 필드이며, Chroma의 스키마라고 주장하는 것이 아닙니다. 구절이 바뀌면 이 기록으로 교체해야 할 표현을 식별할 수 있습니다. 이 기록이 없으면 최신 원본 파일과 오래된 인덱스 구절이 함께 존재해도 불일치를 추적할 명확한 방법이 없을 수 있습니다.
재구축을 점검할 때는 의도한 원본 목록과 알려진 항목에 대해 컬렉션이 실제로 반환하는 내용을 비교해야 합니다. 질의만으로 오래된 항목의 삭제를 증명할 수는 없습니다. 설정한 저장소의 문서화된 점검 방법으로 삭제를 확인합니다. 카탈로그는 그 방법을 제공하거나 원자적 교체를 약속하지 않습니다. 새 컬렉션을 점검할 때까지 기존 원본 목록을 보존합니다.
카탈로그에 문서화되어 있으며, Ai Flowi가 운영 환경에서 테스트하지 않았습니다
구성 요소 카탈로그에서 Chroma DB를 찾습니다. 배포 설정은 연동 참조 문서가 다루며, 모델 연결은 본인의 임베딩 제공업체 계정/API 키와 별도 임베딩 요금을 다룹니다.
펌프 자료 모음의 사용 중단과 재구축 결정
최초 펌프 지침, 대체 지침과 철회된 문제 해결 메모에는 각각 다른 수명주기 결정이 필요합니다. 최초 지침의 사용을 중단하면 현재 검색에 참여하지 못하게 하면서 원본 이력에는 식별 정보를 보존해야 합니다. 대체 지침은 수정된 텍스트를 가리켜야 합니다. 철회된 문제 해결 메모는 대체 메모가 없어도 검색 가능한 집합에서 제거해야 합니다.
저장 상태 점검과 함께 의도한 목록을 유지합니다. 활성 자료 모음에 속하는 원본 개정 버전, 대체된 버전과 철회된 버전을 명시합니다. 이는 제안하는 검토 기록이며, 카탈로그에서 정의한 데이터베이스 스키마가 아닙니다. 재구축 시 재현할 구체적인 대상을 제공합니다. 저장 항목 수만 비교하면 오래된 지침이 무관한 구절로 바뀐 경우를 놓칠 수 있습니다.
부분적으로 재구축된 자료 모음에는 개정 펌프 지침이 있으면서도 해당 원본에서 필요한 다른 구절은 빠져 있을 수 있습니다. 원본 포함 범위와 개정 버전 연결을 함께 확인합니다. 반대로 모든 구절이 있어도 잘못된 개정 버전에 연결되어 있다면 일관성이 없습니다. 수정된 문단 하나를 성공적으로 검색했다고 어느 문제도 해결되지는 않습니다.
임베딩 모델 변경으로 재구축한다면 저장된 벡터와 질의 표현을 서로 짝을 이루는 집합으로 취급합니다. 대체 집합의 검토가 끝날 때까지 이전 집합을 식별할 수 있게 유지합니다. 그렇지 않으면 변경 실패 시 복원할 컬렉션을 명확히 알 수 없게 됩니다. 원본 목록은 재구축 입력을 제공하고, 임베딩 설정은 그 입력이 검색 가능한 표현으로 바뀐 방법을 설명합니다.
한 번의 결과 목록에 없다는 이유로 삭제를 추론하지 말고, 설정한 저장소의 점검 기능으로 사용 중단된 펌프 자료가 더 이상 검색 대상이 아닌지 확인합니다. 수명주기를 점검한 뒤 관련성을 평가하려면 RAG 평가를 참고합니다.
흔한 실수와 관련 자료
벡터의 가까움을 사실 확인으로, 컬렉션 이름을 사용자 권한으로, 영속 저장 설정을 백업 정책으로 간주하지 않습니다. 실제 작업이 정확한 식별자 조회라면 정확한 레코드 질의를 사용합니다. 검색 기반 문서 지원에는 설명을 생성하기 전에 관련성 검토가 필요합니다.
지식 기반 가이드는 이러한 저장 개념이 아닌 기존 제품 설정을 다룹니다. 컨텍스트 엔지니어링으로 검색 구절을 선택하고 프롬프트 엔지니어링으로 답변 작업을 구성합니다. Agent 계약과 사용 사례는 다른 애플리케이션 계층을 설명합니다. 벡터 데이터베이스 자체는 응답을 생성하지 않습니다.