벡터 임베딩과 벡터 데이터베이스란 무엇인가?
왜 Rememberizer는 단순한 데이터베이스나 키워드 검색 엔진 이상인지.
Last updated
왜 Rememberizer는 단순한 데이터베이스나 키워드 검색 엔진 이상인지.
Last updated
Rememberizer는 사용자 지식 소스 내에서 의미적 유사성을 검색할 수 있도록 벡터 데이터베이스에서 벡터 임베딩을 사용합니다. 이는 검색 엔진이나 데이터베이스를 통해 콘텐츠에서 키워드를 단순히 찾는 것보다 정보 검색의 근본적으로 더 발전되고 미묘한 형태입니다.
가장 발전된 형태(Rememberizer에서 사용되는)로서 벡터 임베딩은 OpenAI의 gpt 모델과 ChatGPT 서비스, Google(Gemini), Anthropic(Claude), Facebook(LLama 2) 및 기타 모델/서비스를 뒷받침하는 AI LLM(대형 언어 모델)과 유사한 아키텍처를 가진 언어 모델에 의해 생성됩니다. 이러한 이유로 벡터 임베딩을 사용하여 AI 모델 프롬프트의 맥락에 포함할 관련 지식을 발견하는 것이 자연스럽습니다. 이 기술들은 상호 보완적이며 다소 동등합니다. 이러한 이유로 LLM을 서비스로 제공하는 대부분의 공급자는 벡터 임베딩도 서비스로 제공할 것입니다(예: Together AI의 블로그 또는 OpenAI의 또 다른 블로그).
벡터 임베딩은 어떻게 생겼을까요? 2차원에서의 좌표(x,y)를 고려해 보세요. 이것이 원점에서 이 지점까지의 선을 나타낸다면, 우리는 이것을 방향이 있는 선, 즉 _2차원의 벡터_로 생각할 수 있습니다. 우리의 맥락에서 벡터 임베딩은 768차원 공간에서 벡터를 나타내는 768개의 숫자와 같은 목록이 될 것입니다. 궁극적으로 이 숫자 목록은 "하늘에서 번개가 치다"와 같은 구문에서 의미를 정의하는 Transformer 모델의 0과 1 사이의 가중치를 나타낼 수 있습니다. 이는 예를 들어 GPT-4에서 사용되는 의미의 기본적인 동일한 표현입니다. 결과적으로 우리는 좋은 벡터 임베딩이 현대 AI 언어 모델에서 보이는 뛰어난 이해력을 가능하게 할 것으로 기대할 수 있습니다.
벡터 임베딩은 텍스트뿐만 아니라 이미지나 소리와 같은 다른 유형의 데이터도 나타낼 수 있다는 점은 주목할 가치가 있습니다. 적절히 훈련된 모델을 사용하면 미디어 간 비교가 가능하므로, 텍스트 블록의 벡터 임베딩을 이미지와 비교하거나 _그 반대의 경우_도 가능합니다. 오늘날 Rememberizer는 사용자 문서와 지식의 텍스트 구성 요소 내에서 검색을 가능하게 합니다. 그러나 텍스트-이미지 및 이미지-텍스트 검색은 로드맵에 있습니다. Google은 벡터 임베딩을 사용하여 텍스트 검색(텍스트-텍스트)과 이미지 검색(텍스트-이미지)을 지원합니다 (reference). Facebook은 소셜 네트워크 검색에 임베딩을 사용하는 것을 고려했습니다 (reference). Snapchat은 적절한 사용자가 적절한 시간에 적절한 광고를 제공하기 위해 맥락을 이해하기 위해 벡터 임베딩을 사용합니다 (reference).
벡터 임베딩과 벡터 데이터베이스가 어떻게 작동하는지 깊이 이해하려면 Hugging Face의 개요부터 시작하세요. Pinecone(벡터 임베딩 데이터베이스 서비스)도 좋은 개요를 제공합니다.
벡터에서 검색과 지식을 이해하는 또 다른 훌륭한 출처는 Meta/Facebook의 FAISS 라이브러리에 대한 논문과 코드입니다. "FAISS: A Library for Efficient Similarity Search and Clustering of Dense Vectors"는 Johnson, Douze, Jégou(2017)가 작성했습니다: FAISS는 밀집 벡터의 효율적인 유사성 검색 및 클러스터링을 위해 설계된 라이브러리에 대한 포괄적인 개요를 제공합니다. 이 논문은 대규모 벡터 데이터베이스에서 인덱싱 및 검색 프로세스를 최적화하는 방법을 논의하며, 제품 양자화 기반의 방법도 포함됩니다. 이에 대해 더 배우고 싶다면 문서와 함께 Github의 코드를 참조하세요.
2017년 6월에 발표된 "Attention Is All You Need" 논문도 고려해 보세요 (reference). 이 논문은 GPT 모델과 OpenAI, Google, Meta(Facebook), Nvidia, Microsoft, IBM, Anthropic, Mistral, Salesforce, xAI(Elon Musk), Stability AI, Cohere 및 기타 많은 오픈 소스에서 파생된 모든 LLM의 뒤에 있는 Transformer 아키텍처를 소개합니다. 또한 "Approximate Nearest Neighbors: Towards Removing the Curse of Dimensionality"도 고려해 보세요 (reference 1998, reference 2010). 이 논문들은 고차원 공간에서의 근사 최근접 이웃(ANN) 검색 이론을 논의하며, 이는 유사한 항목을 효율적으로 검색하기 위한 벡터 데이터베이스의 핵심 개념입니다.
이러한 Transformer 기반 모델의 흥미로운 점 중 하나는 사용된 데이터가 많을수록 더 커지고(더 많은 매개변수), 이해력과 능력이 향상된다는 것입니다. OpenAI는 처음에 GPT-2 모델을 훈련할 때 이 점을 발견했습니다. 이 잠재력을 인식한 그들은 즉시 오픈 소스 지향 비영리에서 폐쇄형 소스 영리 회사로 전환하여 GPT-3, GPT-4 및 유명한 프론트 엔드인 ChatGPT를 생산하는 데 집중했습니다. 흥미롭게도 Google은 이 기술에 대한 특허를 보유하고 있습니다. -- Transformer와 Attention Is All You Need의 배경에는 그들의 연구자들이 있습니다 (reference). ChatGPT는 제 설명에 대해 약간 다르게 주장하며 "OpenAI의 오픈 소스 지향 비영리에서 폐쇄형 소스 영리 기업으로의 전환에 대한 서사는 복잡한 진화를 단순화합니다. OpenAI의 전환은 상업화 측면과 함께 안전 및 책임 있는 AI 개발에 대한 초점을 포함했습니다. 또한 OpenAI가 GPT-3 및 그 이후의 독점 기술 개발을 우선시하는 동안에도, 출판 및 협력을 통해 연구 커뮤니티와의 관계를 계속 유지하고 있다는 점도 주목할 가치가 있습니다."
BERT 언어 모델은 Transformers를 기반으로 하며 종종 고급 벡터 임베딩 엔진에서 사용됩니다. 이는 2018년 논문 "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding" (reference)에서 소개되었습니다. BERT(양방향 인코더 표현)는 다양한 NLP 작업을 위해 미세 조정할 수 있는 사전 훈련된 모델로의 중요한 전환을 나타냅니다. 양방향 훈련과 Transformer 아키텍처의 혁신적인 사용은 수많은 벤치마크에서 모델 성능의 새로운 기준을 설정했습니다. 벡터 임베딩을 생성하기 위한 초기 혁신적인 방법은 GloVe(2014, Stanford)와 Word2Vec(2013, Google)에서 소개되었습니다. "GloVe: Global Vectors for Word Representation" (reference): GloVe(글로벌 벡터) 논문은 단어 표현의 비지도 학습을 위한 새로운 글로벌 로그-이항 회귀 모델을 제안하며, 임베딩의 두 가지 주요 접근 방식인 글로벌 행렬 분해와 지역 맥락 창 방법의 장점을 결합합니다. "Efficient Estimation of Word Representations in Vector Space" (reference): 이 논문은 단어 임베딩을 생성하기 위한 혁신적인 접근 방식인 Word2Vec을 소개합니다. Word2Vec 모델은 연속 단어 집합(CBOW) 및 Skip-Gram 모델을 포함하여 단어 임베딩의 발전에 중요한 역할을 합니다.