retriever 4

BM25 알고리즘 선택 기준 및 상세 사례

BM25 변형 알고리즘 선택 기준 및 상세 사례각 BM25 변형 알고리즘의 사용 사례를 데이터 유형, 문제 상황, 활용 목적에 따라 더 구체적으로 설명하겠습니다. 알고리즘의 특성과 실제 사용 가능성을 고려하여 더 많은 사례를 추가했습니다.1. 일반적인 검색추천 알고리즘: BM25Okapi이유: 간단하고 효율적이며, 대부분의 데이터 유형에서 기본적으로 잘 작동합니다.적합한 데이터 유형:긴 문서 중심의 데이터.검색 대상 문서 길이가 비슷한 데이터.TF와 IDF만으로 충분히 검색 품질을 확보할 수 있는 데이터.사용 사례검색 엔진Google 또는 Bing과 같은 웹 검색 엔진:사용자가 입력한 키워드와 관련된 문서를 검색.웹페이지의 제목, 본문 텍스트, 메타데이터를 대상으로 작동.사내 문서 검색:대기업의 내부 문..

langchain 공부 2024.11.21

BM25Retriever2 : BM25원리 코드로 해석하기

배경rank_bm25.py를 분석해서 진짜 bm25의 원리를 알고자함이론적 배경1. BM25 변형 알고리즘의 상세 비교 및 사용 사례(1) BM25Okapi설명:BM25의 기본 변형으로 가장 널리 사용되는 알고리즘.문서 길이와 단어 빈도를 보정하여 검색 점수를 계산.(b) 파라미터로 긴 문서와 짧은 문서 간의 점수 균형을 맞추며, (k1) 파라미터로 단어 빈도(TF)의 민감도를 조정.공식:IDF(역문서빈도) : **IDF(Inverse Document Frequency)**를 사용하여 특정 단어가 전체 문서에서 얼마나 중요한지를 측정 TF : 단어 빈도(해당 단어가 문서에서 나타난 횟수).k1 : TF의 기여도를 조정하는 파라미터로, TF에 대해 얼마나 민감하게 반응할지를 결정.b : 문서 길이 보정 파..

langchain 공부 2024.11.20

BM25Retriever1 내부 코드 분석

배경BM25Retriever의 bm25.py 의 원리를 알기 위해 내부코드를 분석하고자함진짜 bm25의 원리가 되는건 rank_bm25.py로 그건 내일 포스트 예정코드bm25.pyfrom __future__ import annotationsfrom typing import Any, Callable, Dict, Iterable, List, Optionalfrom langchain_core.callbacks import CallbackManagerForRetrieverRun from langchain_core.documents import Document from langchain_core.retrievers import BaseRetriever from pydantic import ConfigDic..

langchain 공부 2024.11.19

모든 Retriever(검색기) 비교

Retriever(검색기) 비교Retriever 기법장점단점사용 시기Similarity Search- 간단하고 빠른 검색 가능- 높은 유사성의 문서를 효과적으로 찾음- 정밀한 검색이 어려울 수 있음- 다중 의미를 가진 쿼리에 약함- 쿼리와 관련된 문서를 빠르게 찾고자 할 때- 단순한 유사성 기반의 검색이 필요한 경우Maximum Marginal Relevance (MMR)- 정보 다양성을 높여 중복 문서 필터링 가능- 다양한 답변을 제공할 수 있음- 계산 비용이 더 많이 듦- 검색 속도가 느려질 수 있음- 중복되지 않는 다양한 정보를 원할 때- 여러 관점을 가진 문서를 선택하고자 할 때Similarity Score Threshold- 일정 수준 이상의 유사성만 필터링- 특정 임계값 이상의 관련성 있는 문..

langchain 공부 2024.08.29