2026 03 24
2026-03-24¶
Embedding¶
참고: https://wikidocs.net/141213
- 개요
- 다차원의 데이터를 보다 낮은 차원의 공간으로 표현하는 방법 (텍스트 데이터를 수치화된 벡터 데이터로 변환)
- 언어를 컴퓨터가 이해하는 숫자로 번역하기
- 사과/바나나 같은 글자를 컴퓨터가 계산할 수 있는 숫자들의 배열(벡터)로 변환하는 과정
- 단순히 글자를 숫자로 바꾸는 것이 아닌, 의미를 담아서 바꾸는 과정
- 사과 <-> 바나나 임베딩 시 두 숫자의 패턴이 비슷함
- 사과 <-> 자동차 완전히 다른 숫자 패턴
- 맛있는 과일 추천해줘 >> 사과가 적힌 문서를 찾을 수 있게 도와줌
- Word Embedding
- Word2Vec, GloVe - 예전 기술
- BERT (Bidirectional Encoder Representations from Transformers)
- 양방향으로 문장을 읽어, 문맥을 파악. 동음이의어 구별
Qdrant¶
참고: https://www.oracle.com/kr/database/vector-database/qdrant/
참고: https://www.sktenterprise.com/bizInsight/blogDetail/dev/12607
- 개요
- 벡터 DB >> 내가 준 숫자 배열과 공간상에서 가장 가까운 (의미가 비슷한) 숫자 배열 5개를 찾아줘 (유사도 검색)
- Rust로 만들어져있어 가볍고 빠름. 메타데이터 필터링이 강력
- 고차원 벡터 검색이 필요할 때 사용
- 유사성 검색, 자연어 처리, 이미지 분석 등 AI 기반 작업을 위한 고급 분석 및 예측 기능 제공
- 데이터 세트 내에서 복잡한 패턴과 관계를 찾아야 하는 것
- 기능
- 신경망 시스템에는 용도에 따라 다양한 크기/형태의 벡터가 사용됨
- 희소 벡터, 밀집 벡터, 다중 벡터, 명명된 벡터 를 지원
- 벡터의 양자화 표현을 생성할 수 있다고 함 >> 원본 벡터를 효율적으로 재점수화 하거나 직접 검색 가능
- HNSW (Hierarchical Navigable Small World)
- 벡터 공간에서 빠르고 효율적으로 유사한 결과를 내줌
- 신경망 시스템에는 용도에 따라 다양한 크기/형태의 벡터가 사용됨
Presidio¶
- 개요
- 오픈소스 데이터 마스킹 도구
- LLM에게 회사 데이터/고객 데이터 넘기기 전 보안을 유지하는 역할
- Analyzer (분석기) : 텍스트를 읽고 정규식/AI 모델 통한 딱 찝기
- Anonymizer (익명화) :
<PHONE_NUMBER>,<EMAIL>처럼 다른 글자로 덮어씌워 마스킹
PROCESS¶
- 텍스트의 의미를 좌표로 바꾸기
- 지식 베이스 구축 (방대한 문서를 Qdrant에 집어넣기)
- 문서 자르기: 규정 PDF 100장이라면, 100개의 작은 문단으로 자르기
- 좌표로 변환: 100개의 문단을 각가 임베딩 모델에게 보내, 100개의 벡터를 얻음
- Qdrant에 저장: Qdrant라는 거대한 데이터베이스 서버에
벡터-문단연결 - Qdrant는 모든 지식의 의미적 위치를 알고 있는 초거대 지도가 됨
- 사용자의 질문에서 청크를 반환받음
- 임베딩 모델이 질문을 좌표로 바꿈
- Qdrant에게 검색 지시 : 질문 좌표에서 가장 가까운 문서 3개 찾아
- Qdrant : 검색 좌표에 매핑되어 있던 관련 문단 꺼내서 돌려줌
- LLM에게 검색된 청크들을 던져주기