# 우리는 왜 벡터 검색을 위해 2차원 벡터를 저장하게 되었나?

> Clean Markdown view of GeekNews topic #15904. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=15904](https://news.hada.io/topic?id=15904)
- GeekNews Markdown: [https://news.hada.io/topic/15904.md](https://news.hada.io/topic/15904.md)
- Type: news
- Author: [finnchoi](https://news.hada.io/@finnchoi)
- Published: 2024-07-19T07:21:48+09:00
- Updated: 2024-07-19T07:21:48+09:00
- Original source: [aeca.ai](https://www.aeca.ai/ko/blog/posts/2024-07-17-demo-law-2d-vector)
- Points: 4
- Comments: 0

## Topic Body

### 문제점  
  
- 시맨틱/자연어 검색,  RAG를 위해서는 벡터 임베딩을 해야함  
- 대부분의 임베딩 모델은 입력 길이 제한이 있음  
	- 적당한 입력 길이를 맞추는 것이 검색 품질과 연결됨  
	- 입력 길이 제한으로 대부분 단락을 분리하여 저장하게 됨  
- 원문을 분리하여 저장함으로 하나의 문서가 여러개의 문서로 분리됨  
	- 대부분의 문서는 메타 데이터, 장문의 다른 필드 등 텍스트 데이터 하나로 구성되어 있지 않음  
	- 분리된 데이터를 저장하기 위해서는 분리된 원문과 부가 정보를 중복 저장하거나 컬렉션(혹은 테이블)을 분리하여 저장해야 함  
		- 중복 저장은 저장 용량의 증가로 비효율이 발생하고 분리된 컬렉션은 검색 과정에서 조인, 점수 계산, 문서수 계산 등 복잡도를 증가시킴  
	- 이러한 방식은 대부분의 벡터 저장소를 사용함에 따라 자주 마주하게 되는 문제임  
  
### 해결  
  
- 원문을 분리하지 않을 다른 방법을 찾음  
- 임베딩 데이터가 저장되는 필드를 2차원 데이터를 입력 받을 수 있도록 DB와 관련 라이브러리를 수정함  
	- 이는 원문이 분리되지 않고 하나 이상으로 분리된 문서별 가변 길이를 가지는 벡터 데이터를 저장할 수 있게 됨  
	- 이 방법으로 원문과 분리된 벡터 데이터가 컬렉션 분리 없이 공존할 수 있게 되며 데이터 관리, 쿼리 등이 간결해짐

## Comments



_No public comments on this page._
