AGI
ํ๋์ ์์ฑ์ AI ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฒกํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ญํ

대규모 생성적 AI 애플리케이션이 효과적으로 작동하려면 많은 데이터를 처리할 수 있는 좋은 시스템이 필요합니다. 이러한 시스템 중 하나는 벡터 데이터베이스입니다. 이 데이터베이스를 특별하게 만드는 것은 텍스트, 사운드, 이미지, 비디오와 같은 다양한 유형의 데이터를 숫자/벡터 형태로 처리할 수 있는 능력입니다.
벡터 데이터베이스란?
벡터 데이터베이스는 고차원 벡터를 효율적으로 처리하기 위한 전문 저장 시스템으로 설계되었습니다. 이러한 벡터는 다차원 공간의 점으로 생각할 수 있으며, 이미지, 텍스트 또는 사운드와 같은 더 복잡한 데이터의 임베딩 또는 압축된 표현을 나타낼 수 있습니다.
벡터 데이터베이스를 사용하면 이러한 벡터 간의 유사성 검색을 신속하게 수행할 수 있으며, 방대한 데이터 세트에서 가장 유사한 항목을 빠르게 검색할 수 있습니다.
전통적인 데이터베이스 대 벡터 데이터베이스
벡터 데이터베이스:
- 고차원 데이터 처리: 벡터 데이터베이스는 고차원 공간에서 데이터를 관리하고 저장하도록 설계되었습니다. 이는 이미지나 텍스트와 같은 데이터 포인트를 다차원 공간의 벡터로 표현할 수 있는 기계 학습과 같은 애플리케이션에서 특히 유용합니다.
- 유사성 검색 최적화: 벡터 데이터베이스의 두드러진 기능 중 하나는 유사성 검색을 수행할 수 있는 능력입니다. 정확한 일치를 기반으로 데이터를 쿼리하는 대신, 이러한 데이터베이스를 사용하면 “유사한” 데이터를 검색할 수 있으므로 이미지 또는 텍스트 검색과 같은 작업에 매우 귀중합니다.
- 대규모 데이터 세트에 대한 확장성: AI 및 기계 학습 애플리케이션이 계속 성장함에 따라 처리하는 데이터의 양도 증가합니다. 벡터 데이터베이스는 성능을 손상시키지 않으면서大量의 데이터를 처리하도록 설계되었습니다.
전통적인 데이터베이스:
- 구조화된 데이터 저장: 전통적인 데이터베이스(예: 관계형 데이터베이스)는 구조화된 데이터를 저장하도록 설계되었습니다. 이는 데이터가 사전 정의된 테이블, 행 및 열로 구성되어 있음을 의미하며, 데이터 무결성 및 일관성을 보장합니다.
- CRUD 작업 최적화: 전통적인 데이터베이스는 주로 CRUD 작업(생성, 읽기, 업데이트, 삭제)을 위해 최적화되었습니다. 이는 웹 서비스에서 기업 소프트웨어에 이르기까지 다양한 애플리케이션에 적합하도록 데이터 항목을 효율적으로 생성, 읽기, 업데이트 및 삭제하도록 설계되었습니다.
- 고정된 스키마: 많은 전통적인 데이터베이스의 특징 중 하나는 고정된 스키마입니다. 데이터베이스 구조가 정의되면 변경을 수행하는 것이 복잡하고 시간이 많이 걸릴 수 있습니다. 이러한剛性은 데이터 일관성을 보장하지만 일부 현대적인 데이터베이스의 스키마 없는 또는 동적 스키마 특성보다 덜 유연할 수 있습니다.
전통적인 데이터베이스는 임베딩의 복잡성을 처리하는 데 어려움을 겪는 반면, 벡터 데이터베이스는 이러한 문제를 쉽게 해결합니다.
벡터 표현
벡터 데이터베이스의 작동에 핵심적인 개념은 다양한 형태의 데이터를 수치 벡터를 사용하여 표현하는 것입니다. 예를 들어, 이미지의 경우 사용자에게는 단순히 고양이의 그림일 수 있지만, 기계는 이를 고유한 512차원 벡터로 변환할 수 있습니다.
[0.23, 0.54, 0.32, …, 0.12, 0.45, 0.90]
벡터 데이터베이스를 사용하면 생성적 AI 애플리케이션이 더 많은 작업을 수행할 수 있습니다. 의미를 기반으로 정보를 찾고 오랜 시간 동안 기억할 수 있습니다. 흥미롭게도, 이 방법은 이미지에만 제한되지 않습니다. 문맥 및 의미를 포함하는 텍스트 데이터도 벡터 형태로 변환할 수 있습니다.
생성적 AI와 벡터 데이터베이스의 필요성
생성적 AI는 종종 임베딩을 포함합니다. 예를 들어, 자연어 처리(NLP)에서 단어 임베딩을 생각해 볼 수 있습니다. 단어 또는 문장이 의미를 캡처하는 벡터로 변환됩니다. 인간과 같은 텍스트를 생성할 때 모델은 관련 임베딩을 신속하게 비교 및 검색해야 하므로 생성된 텍스트가 문맥을 유지할 수 있습니다.
이미지 또는 사운드 생성의 경우에도 임베딩은 패턴 및 특징을 인코딩하는 데 중요한 역할을 합니다. 이러한 모델이 최적의 성능을 발휘하려면 유사한 벡터를 즉시 검색할 수 있는 데이터베이스가 필요하므로 벡터 데이터베이스는 생성적 AI 퍼즐의 필수 구성 요소입니다.
자연어의 임베딩을 생성하는 데 일반적으로 사용되는 모델에는 다음이 포함됩니다:
- GPT-3 및 GPT-4: OpenAI의 GPT-3(Generative Pre-trained Transformer 3)는 NLP 커뮤니티에서 획기적인 모델로, 175억 개의 매개변수가 있습니다. 이후 GPT-4는 더 많은 매개변수를 사용하여 경계를 더욱 넓히고 있습니다. 이러한 모델은 다양한 데이터 세트에서 훈련되어 광범위한 언어적ニュアンス를 캡처하는 임베딩을 생성할 수 있습니다.
- BERT 및 그 변형: BERT(Bidirectional Encoder Representations from Transformers)는 Google에서 개발한 또 다른 중요한 모델로, RoBERTa 및 DistillBERT와 같은 다양한 업데이트와 반복을 거쳤습니다. BERT의 양방향 훈련은 텍스트를 양방향으로 읽는 것으로, 단어를 둘러싼 컨텍스트를 이해하는 데 특히 적합합니다.
- ELECTRA: 더 최근에 개발된 모델로, GPT-3 및 BERT와 같은 더 큰 모델과 비슷한 성능을 발휘하면서도 더 적은 컴퓨팅 리소스를 필요로 합니다. ELECTRA는 사전 훈련 중에 실제 및 가짜 데이터를 구별하여 더 정교한 임베딩을 생성하는 데 도움이 됩니다.
위의 프로세스를 이해하는 데:
임베딩 모델을 사용하여 원하는 콘텐츠를 벡터 임베딩으로 변환하는 것입니다. 한 번 생성되면 이러한 임베딩은 벡터 데이터베이스에 저장됩니다. 추적 가능성 및 관련성을 위해 이러한 저장된 임베딩은 원래 콘텐츠에서 파생된 링크 또는 참조를 유지합니다.
나중에 사용자 또는 시스템이 애플리케이션에 질문을 하면 동일한 임베딩 모델이 작동합니다. 쿼리를 해당 임베딩으로 변환합니다. 이러한 새로形成된 임베딩은 벡터 데이터베이스를 검색하여 유사한 벡터 표현을 찾습니다. 일치로 식별되는 임베딩은 직접적으로 원래 콘텐츠와 관련되어 있으므로 사용자의 쿼리가 관련성 있고 정확한 결과로ตอบ습니다.
신규 벡터 데이터베이스에 대한 자금 지원 증가
AI의 인기로 인해 많은 회사에서 벡터 데이터베이스에 더 많은 투자를 하여 알고리즘을 개선하고 속도를 높이고 있습니다. 이는 최근 Pinecone, Chroma DB, Weviate와 같은 벡터 데이터베이스 스타트업에 대한 투자에서 볼 수 있습니다.
대기업인 Microsoft도 자체 도구를 보유하고 있습니다. 예를 들어, Azure Cognitive Search를 사용하면 비즈니스에서 벡터 데이터베이스를 사용하여 AI 도구를 만들 수 있습니다.
Oracle은 최근 Database 23c의 새로운 기능을 발표했으며, 통합 벡터 데이터베이스를 도입했습니다. “AI Vector Search”라는 이름의 새로운 데이터 유형, 인덱스 및 검색 도구를 사용하여 문서 및 이미지와 같은 데이터를 벡터를 사용하여 저장 및 검색할 수 있습니다. Retrieval Augmented Generation (RAG)를 지원하며, 이는 대규모 언어 모델과 비즈니스 데이터를 결합하여 언어 질문에 대한 더 나은 답변을 제공합니다.
주요 고려 사항: 벡터 데이터베이스
거리 측정
유사성 검색의 효과는 선택한 거리 측정에 따라 다릅니다. 일반적인 측정 항목에는 유클리드 거리 및 코사인 유사도가 포함됩니다. 각 측정 항목은 서로 다른 유형의 벡터 분포에 적합합니다.
인덱싱
벡터의 고차원성으로 인해 전통적인 인덱싱 방법이 작동하지 않습니다. 벡터 데이터베이스는 Hierarchical Navigable Small World(HNSW) 그래프 또는 Annoy 트리와 같은 기술을 사용하여 벡터 공간을 효율적으로 분할하고 빠른 최근접 이웃 검색을 허용합니다.

Annoy tree (Source)
Annoy는 이진 검색 트리를 사용하는 방법입니다. 데이터 공간을 여러 번 분할하고 근접한 이웃을 찾기 위해 데이터 공간의 일부만 검사합니다.

Hierarchical Navigable Small World (HNSW) graphs (Source)
HNSW 그래프는 데이터 포인트를 특별한 방법으로 연결하여 검색을 더 빠르게 만듭니다. 이러한 그래프는 데이터의 근접한 포인트를 빠르게 찾는 데 도움이 됩니다.
확장성
데이터 세트가 성장함에 따라 검색 시간을 빠르게 유지하는 것이 어려워집니다. 분산 시스템, GPU 가속 및 최적화된 메모리 관리는 벡터 데이터베이스가 확장성 문제를 해결하는 몇 가지 방법입니다.
벡터 데이터베이스의 역할: 의미 및 기회
1. 최첨단 생성적 AI 모델의 훈련 데이터: 생성적 AI 모델, 즉 DALL-E 및 GPT-3과 같은 모델은大量의 데이터로 훈련됩니다. 이 데이터는 이미지, 텍스트, 코드 및 기타 도메인에서 추출된 벡터로 구성됩니다. 벡터 데이터베이스는 이러한 데이터 세트를 신중하게 관리하여 AI 모델이 세계의 지식을 분석하고 벡터 내에서 패턴 및 관계를 식별하여 학습할 수 있도록 합니다.
2. Few-Shot Learning의 발전: Few-Shot Learning은 모델이 제한된 데이터로 훈련되는 AI 훈련 기술입니다. 벡터 데이터베이스는 강력한 벡터 인덱스를 유지하여 이 접근 방식을 증폭합니다. 모델이 몇 개의 벡터(예: 몇 개의 이미지)에 노출되면 관련성 및 관계를 인식하여 더广い 개념을 빠르게 외삽할 수 있습니다.
3. 추천 시스템 개선: 추천 시스템은 사용자의 선호도와 일치하는 콘텐츠를 제안하기 위해 벡터 데이터베이스를 사용합니다. 사용자의 행동, 프로필 및 쿼리를 분석하여 관심을 나타내는 벡터를 추출합니다. 시스템은 그러면 벡터 데이터베이스를 검색하여 이러한 관심 벡터와 유사한 콘텐츠 벡터를 찾습니다. 이는 정확한 추천을 보장합니다.
4. 의미 정보 검색: 전통적인 검색 방법은 정확한 키워드 일치를 의존합니다. 그러나 벡터 데이터베이스는 시스템이 검색 쿼리의 의미를 이해하고 검색 쿼리와의 의미적 유사성을 기반으로 콘텐츠를 검색할 수 있도록 합니다. 이는 검색이 더 직관적이고 사용자 쿼리의 기본 의미에 초점을 맞추게 됩니다.
5. 멀티모달 검색: 멀티모달 검색은 텍스트, 이미지, 오디오, 비디오와 같은 다양한 소스의 데이터를 통합하는 기술입니다. 벡터 데이터베이스는 다양한 모달리티의 벡터를 결합하여 분석할 수 있으므로 이 접근 방식의 백본을 제공합니다. 이는 사용자가 단일 쿼리에 대한 정보를 다양한 소스에서 검색할 수 있으므로 더 풍부한 통찰력과 더 포괄적인 결과를 제공합니다.
결론
AI 세계는 빠르게 발전하고 있으며 많은 산업에 영향을 미치고 있습니다. 생성적 AI의 빠른 발전은 현대적 생성적 AI 애플리케이션에서 벡터 데이터베이스의 필수적인 역할을 강조합니다.
이 전문 저장 시스템은 이미지, 텍스트 또는 사운드와 같은 다양한 데이터 형식을 다차원 공간의 점으로 생각할 수 있는 벡터로 변환하여 생성적 AI 애플리케이션의 효과적인 작동에 핵심적인 역할을 합니다.
그들의 중요성은 이 분야에 대한 투자로 더욱 강조됩니다. Pinecone과 같은 스타트업 및 Microsoft와 같은 대기업이 적극적으로 기여하고 있습니다.















