대규모 벡터를 지원하는 최초 클라우드 스토리지
Amazon S3 Vectors 소개: 대규모 벡터를 지원하는 최초 클라우드 스토리지 (미리 보기) | Amazon Web Service
오늘 AWS는 벡터 업로드, 저장 및 쿼리에 드는 총 비용을 최대 90% 절감할 수 있고 내구성이 뛰어난 목적별 벡터 스토리지 솔루션인 Amazon S3 Vectors의 평가판을 발표합니다. Amazon S3 Vectors는 대규모
aws.amazon.com
Vector Index란?
1. Vector Embedding은 텍스트, 이미지, 오디오와 같은 비정형 데이터를 컴퓨터가 이해할 수 있는 수치형 벡터로 변환하는 기술임.
2. Embedding Vector는 단순히 단어 자체가 아니라, 단어의 의미적 맥락을 담게 됨. "따듯한 아메리카노" 나 "따스한 커피 한 잔" 같은 의미적으로 유사한 문장은 서로 매우 가까운 위치에 있는 벡터로 표현됨.
3. 수많은 데이터를 임베딩해서 벡터로 저장하면, 특정 질문에 가장 유사한 벡터를 찾아야 함. 이때, 인덱스가 없다면, 모든 벡터를 하나씩 비교해야 함. (brute force = 매우 비효율적)
4. Vector Index는 수많은 고차원 벡터들을 효율적인 검색이 가능한 구조로 재구성하는 것을 말함.
5. 주요 Vector Indexing 기법
현재는 그래프 기반 인덱싱이 널리 쓰이고 있음
Vector Dimension이란?
차원이 늘어날수록 벡터 공간은 기하급수적으로 커집니다. 이로 인해 벡터들 간의 거리가 점점 멀어지게 되고, 데이터가 공간 전체에 희박하게(sparse) 분포하게 됩니다.
차원을 무작정 줄이면 벡터가 데이터를 표현하는 **능력(표현력)**이 현저히 떨어집니다.
- 정보 손실: 복잡하고 미묘한 의미 차이를 담을 공간이 부족해집니다. 예를 들어, "고양이가 귀엽다"와 "고양이가 사랑스럽다"는 미묘하게 다르지만, 차원이 너무 낮으면 두 문장이 동일한 벡터로 표현될 수 있습니다.
- 분별력 감소: 의미적으로 다른 벡터들이 서로 뭉쳐서 구분이 어려워집니다. 이로 인해 유사도 검색을 할 때 엉뚱한 결과가 섞여 나올 가능성이 높아져서 **정확도(Recall)**가 크게 떨어집니다.
"적정한" 차원은 정해진 답이 없습니다. 서비스의 요구사항과 제약 조건을 종합적으로 고려하여 결정해야 합니다. AWS 전문가의 관점에서 다음과 같은 요인들을 고려해볼 수 있습니다.
적정한 차원을 산정하는 방법
"적정한" 차원은 정해진 답이 없습니다. 서비스의 요구사항과 제약 조건을 종합적으로 고려하여 결정해야 합니다. AWS 전문가의 관점에서 다음과 같은 요인들을 고려해볼 수 있습니다.
1. 데이터의 복잡성
- 높은 차원이 필요한 경우: 긴 문서, 복잡한 이미지, 의학 정보 등 풍부한 의미적 맥락을 담아야 하는 데이터는 더 높은 차원이 필요합니다.
- 낮은 차원으로 충분한 경우: 짧은 문장(예: 상품평 한 줄), 단순한 객체 등 상대적으로 의미가 단순한 데이터는 낮은 차원으로도 충분한 표현력을 가질 수 있습니다.
2. 비즈니스 목표와 중요성 (정확도 vs. 속도/비용)
- 정확도가 최우선인 경우: 고객 추천 시스템이나 질문-답변(Q&A) 시스템처럼 정확한 검색 결과가 비즈니스 성공에 직결되는 경우, 어느 정도의 비용과 성능 저하를 감수하고라도 높은 차원을 선택해야 합니다.
- 속도나 비용이 더 중요한 경우: 대규모 데이터에 대한 실시간 검색, 단순한 카테고리 분류 등 정확도 손실을 어느 정도 용인할 수 있는 경우, 낮은 차원을 선택하여 비용과 속도를 최적화할 수 있습니다.
3. AWS 서비스의 제약 조건
- 메모리: Amazon OpenSearch Service나 Amazon Aurora와 같은 AWS 서비스의 인스턴스 타입마다 메모리 용량이 제한적입니다. 차원이 높을수록 더 큰 인스턴스가 필요하고, 이는 곧 비용 증가로 이어집니다.
- 네트워크 대역폭: 데이터 크기가 커지면 인스턴스 간의 통신 부하도 커질 수 있습니다.
4. 경험적 분석 및 실험 (가장 중요한 부분)
이론적인 접근 외에 실제 데이터를 가지고 실험하는 것이 가장 정확합니다.
- 단계별 접근: 예를 들어, 512차원, 768차원, 1024차원 등 몇 가지 후보 차원을 정합니다.
- 성능 지표 측정: 각 차원에서 실제 데이터를 대상으로 검색을 수행해 **정확도(Recall@K)**와 **응답 속도(Latency)**를 측정합니다.
- 최적점 찾기: 정확도가 일정 수준 이상으로 오르지 않는 지점이나, 응답 속도가 급격히 느려지기 시작하는 지점을 찾습니다. 이 두 지표가 균형을 이루는 지점이 바로 최적의 차원입니다.
디테일한 대답 : https://g.co/gemini/share/9872b9bd25ac
다른 서비스와 통합 역시 가능함 :
S3 Vectors를 다른 AWS 서비스와 통합
S3 Vectors는 Amazon Bedrock, Amazon SageMaker, Amazon OpenSearch Service 등의 다른 AWS 서비스와 통합되어 벡터 처리 기능을 강화하고 AI 워크로드를 위한 포괄적인 솔루션을 제공합니다.
S3 벡터 데이터를 Amazon OpenSearch Service로 내보내기
장기간에 걸친 벡터 데이터를 Amazon S3에 비용 효율적으로 저장하고 실시간 쿼리 성능을 높이기 위해 우선순위가 높은 벡터를 OpenSearch로 내보내는 계층형 전략을 적용하여 비용과 성능의 균형을 이룰 수 있습니다.
기존 서비스와의 비교
https://gemini.google.com/app/9076cc67a98d27f7
'CLOUD > AWS Cloud' 카테고리의 다른 글
Amazon Bedrock AgentCore란 무엇일까? (0) | 2025.07.21 |
---|---|
[Baseline] S3 (0) | 2023.10.15 |
s3 event notification (0) | 2023.10.08 |
SCP와 IAM의 차이 (0) | 2023.10.08 |
resource lifecycle hook이란? (0) | 2023.10.07 |