벡터 인덱스에 벡터 삽입
참고
Amazon S3 Vectors는 Amazon Simple Storage Service의 미리 보기 릴리스이며 변경될 수 있습니다.
PutVectors API 작업을 사용하여 벡터 인덱스에 벡터를 추가할 수 있습니다. 각 벡터는 벡터 인덱스의 각 벡터를 고유하게 식별하는 키로 구성됩니다. 인덱스에 이미 있는 키로 벡터를 배치하면 기존 벡터를 완전히 덮어쓰므로 이전 벡터를 더 이상 검색할 수 없습니다. 쓰기 처리량을 극대화하려면 벡터를 PutVectors
에 대한 최대 배치 크기까지 대량 배치로 삽입하는 것이 좋습니다. PutVectors
API 직접 호출당 벡터의 제한인 PutVectors
의 최대 배치 크기에 대한 자세한 내용은 한계 및 제한 섹션을 참조하세요. 또한 메타데이터(예: 연도, 작성자, 장르, 위치)를 키-값 페어로 각 벡터에 연결할 수 있습니다. 기본적으로 벡터에 연결된 모든 메타데이터 키는 필터링이 가능하며, 유사성 쿼리에서 필터로 사용할 수 있습니다. 벡터 인덱스 만들기 중에 필터링 불가능한 것으로 지정된 메타데이터 키만 필터링에서 제외됩니다. S3 벡터 인덱스는 문자열, 숫자, 부울 및 목록 유형의 메타데이터를 지원합니다. 벡터당 총 메타데이터 크기 제한 및 벡터당 필터링 가능한 메타데이터 크기 제한에 대한 자세한 내용은 한계 및 제한 섹션을 참조하세요. 메타데이터 크기가 이러한 제한을 초과하면 PutVectors
API 작업에서 400 Bad Request
오류가 반환됩니다.
PutVectors
API 작업을 사용하여 벡터 인덱스에 벡터 데이터를 추가하기 전에 원시 데이터를 부동 소수점 숫자의 배열로 콘텐츠를 숫자로 표현한 벡터 임베딩으로 변환해야 합니다. 벡터 임베딩은 콘텐츠의 시맨틱 의미를 캡처하여 PutVectors
작업을 통해 벡터 인덱스에 저장된 유사성 검색을 가능하게 합니다. 데이터 유형 및 사용 사례에 따라 다양한 방법을 사용하여 벡터 임베딩을 생성할 수 있습니다. 이러한 방법에는 기계 학습 프레임워크, 특수 임베딩 라이브러리 또는 Amazon Bedrock과 같은 AWS 서비스 사용이 포함됩니다. 예를 들어 Amazon Bedrock을 사용하는 경우 InvokeModel API 작업 및 선호하는 임베딩 모델을 사용하여 임베딩을 생성할 수 있습니다.
또한 Amazon Bedrock 지식 기반은 Amazon Bedrock이 S3 데이터 소스에서 데이터를 자동으로 가져오고, 콘텐츠를 텍스트 블록으로 변환하고, 임베딩을 생성하고, 벡터 인덱스에 저장하는 포괄적인 완전관리형 RAG 워크플로를 제공합니다. 그런 다음 지식 기반을 쿼리하고 소스 데이터에서 검색된 청크를 기반으로 응답을 생성할 수 있습니다.
또한 오픈 소스 Amazon S3 Vectors Embed CLI 도구는 명령줄에서 임베딩을 생성하고 시맨틱 검색을 수행하는 간소화된 방법을 제공합니다. Amazon Bedrock 파운데이션 모델을 사용한 벡터 임베딩 생성과 S3 벡터 인덱스 내의 시맨틱 검색 작업을 모두 자동화하는 이 오픈 소스 도구에 대한 자세한 내용은 s3vectors-embed-cli를 사용하여 벡터 임베딩 생성 및 시맨틱 검색 수행 섹션을 참조하세요.
참고
벡터 데이터를 벡터 인덱스에 삽입할 때 벡터 데이터를 float32
(32비트 부동 소수점) 값으로 제공해야 합니다. 더 높은 정밀도 값을 AWS SDK에 전달하면 S3 Vectors는 값을 저장하기 전에 값을 32비트 부동 소수점으로 변환하고 GetVectors, ListVectors 및 QueryVectors 작업은 float32
값을 반환합니다. AWS SDKs마다 기본 숫자 유형이 다를 수 있으므로 사용 중인 SDK에 관계없이 벡터에 float32
형식이 올바르게 지정되었는지 확인합니다. 예를 들어 Python에서 numpy.float32
를 사용하거나 값을 명시적으로 캐스팅합니다.