벡터 임베딩과 벡터 데이터베이스란?

왜 Rememberizer는 단순한 데이터베이스나 키워드 검색 엔진 이상인지.

Rememberizer는 사용자의 지식 소스 내에서 의미적 유사성을 검색할 수 있게 하기 위해 벡터 데이터베이스에서 벡터 임베딩을 사용합니다. 이는 검색 엔진이나 데이터베이스에서 키워드를 찾는 것과 같은 단순한 정보 검색 형태보다 더 고도화되고 미세한 형태입니다.

가장 고도화된 형태(즉, Rememberizer에서 사용되는 형태)에서 벡터 임베딩은 OpenAI의 gpt 모델과 ChatGPT 서비스, 그리고 Google의 Gemini, Anthropic의 Claude, Facebook의 LLama 2 등과 같은 모델/서비스를 지원하는 대형 언어 모델(LLM)과 같은 구조를 가진 언어 모델에 의해 생성됩니다. 이러한 이유로 AI 모델 프롬프트(즉시 실행문)의 맥락에 포함할 적절한 지식을 찾기 위해 벡터 임베딩을 사용하는 것이 자연스럽습니다. 이들 기술은 상호보완적이며 어느 정도 동등합니다. 따라서 대부분의 LLM 서비스 제공자들은 벡터 임베딩 서비스도 제공하게 됩니다(예: Together AI의 블로그 또는 OpenAI의 또 다른 블로그).

벡터 임베딩은 어떤 모습인가? 2차원에서 좌표(x,y)를 생각해봅시다. 이것이 원점에서 이 점까지의 선을 나타낸다면, 이것을 방향을 가진 선, 즉 _2차원에서의 벡터_라고 생각할 수 있습니다. 우리의 맥락에서 벡터 임베딩은 768차원 공간에서의 벡터를 나타내는 768개의 숫자 목록일 것입니다. 최종적으로 이 숫자 목록은 "청천벽력처럼 빛나는 번개"라는 문구에서 의미를 정의하는 트랜스포머 모델에서의 0과 1 사이의 가중치를 나타낼 수 있습니다. 이것은 GPT-4에서 사용하는 의미의 표현법과 본질적으로 동일합니다. 그 결과, 우리는 좋은 벡터 임베딩이 현대 AI 언어 모델에서 볼 수 있는 놀랄 만큼 탁월한 이해력을 가능하게 해줄 것으로 기대할 수 있습니다.

값어치하는 점은 벡터 임베딩이 텍스트뿐만 아니라 이미지나 소리와 같은 다른 유형의 데이터를 나타낼 수 있으며, 적절하게 훈련된 모델로는 미디어 간에 비교할 수 있습니다. 그래서 텍스트 블록에 대한 벡터 임베딩은 이미지와 비교할 수 있고, 반대로도 가능합니다. 현재 Rememberizer는 사용자 문서와 지식의 텍스트 구성요소 내에서만 검색을 가능하게 하지만, 텍스트-이미지 및 이미지-텍스트 검색은 로드맵에 포함되어 있습니다. Google은 벡터 임베딩을 사용해 텍스트 검색(텍스트-텍스트)과 이미지 검색(텍스트-이미지)을 지원합니다(참조). Facebook은 소셜 네트워크 검색에 임베딩을 사용하는 것을 고려해봤습니다(참조). Snapchat은 벡터 임베딩을 사용하여 적절한 광고를 적절한 사용자에게 적절한 시기에 제공하는 데 필요한 맥락을 이해하는 데 사용합니다(참조).

벡터 임베딩과 벡터 데이터베이스의 작동 방식을 깊이 이해하려면 Hugging Face에서 제공하는 개요부터 시작하면 좋습니다. Pinecone(벡터 임베딩 데이터베이스 서비스)에도 좋은 개요가 있습니다.

검색과 지식에 대한 벡터 이해에 대한 또 다른 좋은 출처는 Meta/Facebook의 논문과 FAISS 라이브러리에 대한 코드입니다. "FAISS: Efficient Similarity Search and Clustering of Dense Vectors"라는 제목의 Johnson, Douze, Jégou에 의한 (2017)은 FAISS가 제공하는 종합적인 개요를 제공합니다. 이는 대규모 벡터 데이터베이스에서 색인화와 검색 절차를 최적화하기 위한 방법들을 논합니다. 이에 대해 더 배우고 싶다면, 문서와 함께 Github의 코드를 참고하면 좋을 것입니다.

"Attention Is All You Need"라는 제목의 2017년 6월의 논문을 고려해보시기 바랍니다(참조). 이 논문은 GPT 모델 및 OpenAI, Google, Meta(Facebook), Nvidia, Microsoft, IBM, Anthropic, Mistral, Salesforce, xAI (Elon Musk), Stability AI, Cohere등에서 따르는 모든 LLM 뒤에있는 트랜스포머 아키텍처를 소개합니다. 또한, "Approximate Nearest Neighbors: Towards Removing the Curse of Dimensionality"(1998년 참조, 2010년 참조)도 참고하십시오. 이 논문들은 고차원 공간에서 근사 최근접 이웃 (ANN) 검색이라는 벡터 데이터베이스에서 유사한 항목을 효율적으로 검색하는 핵심 개념에 대한 이론을 논합니다.

이러한 트랜스포머 기반 모델의 흥미로운 점 하나는, 이들이 사용하는 데이터가 많아질수록 (즉, 매개변수가 더 많아질수록) 이해력과 능력이 더욱 향상된다는 것입니다. OpenAI는 GPT-2 모델을 훈련시킬 때 이를 처음 발견했습니다. 이러한 잠재력을 인식한 후, 그들은 즉시 오픈 소스 중심 비영리 조직이었던 것을 중단하고 GPT-3, GPT-4 및 그 유명한 프론트 엔드인 ChatGPT를 생산하는 데 초점을 맞춘 폐쇄 소스 영리 사업체가 되었습니다. 흥미롭게도, 이 기술에 대한 특허는 Google이 소유하고 있습니다. -- 이 회사의 연구원들이 Transformers와 Attention Is All You Need의 주요 인물들이었습니다(참조). ChatGPT는 제 캐릭터에 대한 나의 표현에 약간 이견이 있습니다. 이들은 "OpenAI의 전환, 즉 오픈소스 중심의 비영리 조직에서 폐쇄소스의 이익 추구 조직으로의 전환에 대한 서술은 복잡한 변화를 단순화한 것"이라고 적습니다. OpenAI의 이 변화는 상업화 측면과 함께 안전성과 책임있는 AI 개발에 대한 초점을 포함하고 있었다고도 이야기 합니다. 또한, OpenAI가 GPT-3 이상의 기술을 개발하는 것을 우선시하면서도, 연구 공동체와 공개된 출판물과 협력을 통해 계속해서 교류하고 있음을 알립니다.

BERT 언어 모델은 트랜스포머를 기반으로 하며, 종종 고급 벡터 임베딩 엔진에서 사용됩니다. 이것은 "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding" (참조)이라는 2018년 논문에서 소개되었습니다. BERT (Bidirectional Encoder Representations from Transformers)는 다양한 NLP 작업에 필요한 사전 훈련된 모델을 세밀하게 조정할 수 있는 방향으로의 중요한 전환을 표시했습니다. 그들의 양방향 훈련과 트랜스포머 아키텍처의 새로운 활용은 다수의 벤치마크에 걸쳐 모델 성능의 새로운 기준을 설정했습니다. 이전의 혁신적인 방법으로는 GloVe(2014, Stanford), Word2Vec(2013, Google)가 벡터 임베딩을 만드는 데 소개했습니다. "GloVe: Global Vectors for Word Representation"(참조): GloVe(Global Vectors) 논문은 단어 표현의 비감독 학습을 위한 새로운 전역 로그-선형 회귀 모델을 제안했습니다. 이는 행렬 인수분해와 로컬 컨텍스트 창 방법이라는 임베딩의 두 가지 주요 접근법의 이점을 결합했습니다. "Efficient Estimation of Word Representations in Vector Space"(참조): 이 논문은 단어 임베딩을 생성하는 데에 혁신적인 접근인 Word2Vec를 소개했습니다. Word2Vec 모델, 포함하여 연속 단어의 배(all words bag)와 스킵-그램 모델은 단어 임베딩의 발전에 결정적인 역할을 했습니다.

Last updated