임베딩의 마법
임베딩은 언어를 수학으로 변환합니다.
임베딩은 현대 AI의 근간입니다. 많은 사람들이 이를 블랙박스처럼 취급하곤 합니다. 이 포스트에서는 임베딩이 어떻게 작동하는지 설명합니다.
키워드 검색은 단어가 일치하지 않으면 실패합니다.
만약 "How do I reset my password?"라고 검색하면, 키워드 검색은 정확히 그 단어들을 찾습니다. 만약 문서에 "Steps to recover your account credentials"라고 적혀 있다면, 검색은 실패할 수 있습니다. 여러분은 의미가 같다는 것을 알지만, 컴퓨터는 그렇지 않습니다.
임베딩은 이 문제를 해결합니다.
임베딩은 숫자 리스트입니다. 이 숫자들은 텍스트의 의미를 나타냅니다. 임베딩 모델은 단어를 고차원 공간으로 매핑합니다.
"cat"과 같은 단일 단어는 다음과 같은 벡터가 됩니다: [0.18, -0.42, 0.91, ...]
숫자 자체는 아무런 의미가 없습니다. 중요한 것은 벡터의 위치입니다.
지도를 생각해보세요. 서로 가까이 있는 도시들은 비슷한 기후와 국경을 공유합니다. 임베딩도 같은 방식으로 작동합니다. 비슷한 의미를 가진 텍스트는 벡터 공간에서 서로 가까이 위치합니다.
- 개(Dog)와 고양이(Cat)는 서로 가깝게 위치합니다.
- 자동차(Car)와 트럭(Truck)은 서로 가깝게 위치합니다.
- 자동차(Car)와 개(Dog)는 서로 멀리 떨어져 있습니다.
이 지점들 사이의 거리는 유사성을 나타냅니다.
이를 통해 시맨틱 검색(semantic search)이 가능해집니다. 철자가 아닌 의도에 기반하여 정보를 찾을 수 있습니다.
이 벡터들을 비교하기 위해 코사인 유사도(cosine similarity)를 사용합니다. 이 지표는 두 벡터 사이의 각도를 측정합니다.
- 각도가 작으면 유사도가 높다는 것을 의미합니다.
- 각도가 크면 유사도가 낮다는 것을 의미합니다.
임베딩은 검색 증강 생성(Retrieval Augmented Generation, RAG)의 핵심이기도 합니다. RAG 파이프라인에서 프로세스는 다음과 같습니다:
- 임베딩 모델을 사용하여 문서를 벡터로 변환합니다.
- 벡터를 벡터 데이터베이스에 저장합니다.
- 사용자 쿼리를 벡터로 변환합니다.
- 데이터베이스에서 가장 유사한 벡터를 찾습니다.
- 관련 문서를 LLM에 전달합니다.
LLM은 파일을 직접 검색하는 것이 아닙니다. 임베딩 공간에서 가장 유사한 항목을 검색합니다.
AI 애플리케이션을 구축한다면 임베딩을 반드시 이해해야 합니다. 임베딩은 검색 엔진부터 추천 시스템에 이르기까지 모든 것을 구동합니다. 임베딩의 강점은 의미를 조직화하는 방식에 있습니다.
출처: https://dev.to/tahaboussaden/embeddings-magic-2hlb
선택 사항 학습 커뮤니티: https://t.me/GyaanSetuAi
