Recent Posts
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- PytestPluginManager
- 오블완
- 코루틴 빌더
- JanusGateway
- 달인막창
- table not found
- 겨울 부산
- taint
- JanusWebRTC
- mp4fpsmod
- terminal
- VARCHAR (1)
- k8s #kubernetes #쿠버네티스
- 자원부족
- JanusWebRTCGateway
- python
- Spring Batch
- Value too long for column
- preemption #
- JanusWebRTCServer
- 헥사고날아키텍처 #육각형아키텍처 #유스케이스
- 코루틴 컨텍스트
- PersistenceContext
- 티스토리챌린지
- vfr video
- 개성국밥
- 깡돼후
- kotlin
- tolerated
- pytest
Archives
너와 나의 스토리
[LLM] Faiss 기본 개념과 사용법 본문
반응형
2024.08.10 - [Data Analysis/LLM] - [LLM] RAG with OpenAI 쉬운 구현 방법과 설명
Faiss
- Facebook AI Research에서 개발한 효율적인 벡터 검색 및 클러스터링 라이브러리
- 이는 대규모 디비에서 유사한 벡터를 빠르게 검색하는 데 사용된다.
- 주요 기능
- 고차원 벡터 근접 이웃 탐색(Approximate Nearest Neighbor Search, ANN)
- 대규모 데이터 처리
- 인덱스 및 클러스터링
- 여러 가지 알고리즘을 조합하여 사용 가능
- CPU와 GPU 모두 동작할 수 있게 설계되어 있음
- 이러한 기능을 CPU에서 실행할 수 있도록 한 버전 -> Faiss-cpu
LangChain에서 벡터 저장소를 이용해 문서를 검색할 때, 다양한 옵션을 설정하는 예제
1. MMR(Maximum Marginal Relevance)
- 검색된 문서들 사이에서 다양성을 높이기 위한 알고리즘
- 일반적인 검색에서는 가장 유사한 문서만 바환되지만, MMR을 사용하면 유사하면서도 서로 중복되지 않는 문서를 반환
vectorstore.as_retriever(
search_type="mmr",
search_kwargs={'k': 6, 'lambda_mult': 0.25}
)
2. MMR 검색
- MMR 알고리즘이 다양한 문서를 선택할 수 있는 폭을 넓혀줌
- 예: 50개의 문서를 검색한 후, 그 중에서 가장 다양한 5개의 문서를 반환하라
vectorstore.as_retriever(
search_type="mmr",
search_kwargs={'k': 5, 'fetch_k': 50}
)
3. 유사성 점수 기준 검색
- 유사성 점수 기준(score_threshold)을 설정하여, 특정 기준 점수 이상인 문서들만 반환
vectorstore.as_retriever(
search_type="similarity_score_threshold",
search_kwargs={'score_threshold': 0.8}
)
4. 가장 유사한 문서 하나만 검색
- 검색 결과 중 가장 유사한 k개의 문서만 반환
vectorstore.as_retriever(search_kwargs={'k': 1})
5. 특정 조건을 가진 문서만 검색
- 필터링된 검색을 통해 특정 조건을 만족하는 문서만 검색
- 예: "GPT-4 Technical Report"라는 제목을 가진 논문에서만 문서를 검색
vectorstore.as_retriever(
search_kwargs={'filter': {'paper_title':'GPT-4 Technical Report'}}
)
반응형
'Data Analysis > LLM' 카테고리의 다른 글
[LLM] RAG with OpenAI 쉬운 구현 방법과 설명 (0) | 2024.08.10 |
---|---|
LLM Conditioning 방법 - RLHF, PEFT (0) | 2024.07.13 |
[LLM] 프롬프트 엔지니어링 - 인젝션 공격, 제로샷/퓨샷, CoT, Self-Consistency, ToT (1) | 2024.06.24 |
[LLM] Text Embedding과 Vector DB (0) | 2024.06.21 |
[LLM] Chat Completion API / RAG with Llama-index / 임베딩이란 (0) | 2024.05.22 |
Comments