milvus 백터 db를 사용해 RAG 작업을 해봄.
1) milvus docs 참조해 도커컴포즈로 milvus를 띄운다.
2) GUI로 보고 싶으니까 attu를 함께 띄운다.
3) 전처리한 데이터셋에서 question을 기준으로 모델에 임베딩 시킨다.
4) column= id, embedding, question , answer ...
5) milvus에서는 index를 생성하고 load 작업도 해줘야 데이터 쿼리가 된다.
6) 벡터 서치 가능: score가 0에 가까울수록 정확
index_params = {
"metric_type": "L2", # 유사도 계산 방식
"index_type": "IVF_FLAT",
"params": {"nlist": 1024}
}
segment : db가 벡터 데이터를 물리적으로 쪼개서 가지고 있는 단위. 보통 2~3개로 나눌수도 있는데 이거보니까 여기서는 안 짜르고 한 덩어리로 가지고 있는듯.
partition: 논리적 구분 단위. 상황에 따라 partition을 구분하면 필터링에 유리함. 예를들어 카테고리에 따라 파티션 구분을 할 수도 있을듯.
query node: milvus는 분산노드 구조. 쿼리하는 노드를 분리해서 쓰고 있다는거.
여튼 결과...
잘 나오는거 같음.... 도라따
내일은 성능테스트 해야징 ㅇ0ㅇ/