LLM7 Retriever Retriever는 비정형 쿼리가 주어지면 문서를 반환하는 인터페이스입니다. 벡터 저장소보다 더 일반적입니다. Retriever는 문서를 저장할 필요 없이 단지 반환(또는 검색)만 할 수 있습니다. - Langchain Document쉽게 말해, Retriever는 검색을 쉽게 할 수 있도록 구성된 모듈입니다. 이를 통해 손쉽게 문서를 검색할 수 있도록 하고 이를 기반으로 LLM과 대화할 수 있도록 합니다.랭체인의 Retriever의 RAG의 대부분의 구성요소를 아우르며, 구성 요소 하나하나가 RAG의 품질의 좌우합니다.Chain의 종류 4가지Stuff Documents Chain분할된 텍스트 청크를 Context에 그대로 주입합니다. 토큰 이슈가 발생할 수 있어 주의를 요합니다.Map reduce do.. 2025. 3. 7. Retrieval - Vectorstores VectorStore는 자연어 → 숫자 처리한 후 이들을 저장하는 벡터 저장소입니다.벡터 저장소는 임베딩된 데이터를 인덱싱하여, input으로 받아들이는 query와의 유사도를 빠르게 출력합니다.대표적으로 FAISS, Chroma가 존재합니다.Pure vector DBVector libChromaChroma는 대표적인 오픈소스 벡터 저장소입니다.!pip install chromadb tiktoken transformers sentence_transformers openai langchain pypdf기본적으로 VectorStore는 벡터를 일시적으로 저장합니다. 텍스트와 임베딩 함수를 지정하여 from_documents() 함수에 보내면, 지정된 임베딩 함수를 통해 텍스트를 벡터로 변환하고, 이를 임시 .. 2025. 3. 7. Retrieval-Text Embeddings Retrieval-Text Embeddings는 텍스트를 숫자로 변환하여 문장 간의 유사성을 비교할 수 있도록 합니다.대부분의 경우 대용량의 말뭉치를 통해 사전학습된 모델을 통해 쉽게 임베딩합니다. 사전학습 임베딩 모델에는 대표적으로 OpenAI에서 제공하는 ada모델과, HuggingFace의 모델들이 있습니다. 사용목적과 요구사항에 따라 적절한 임베딩을 고르는 것은 RAG의 가장 중요한 부분입니다.실습OpenAIEmbeddings - ada-002from langchain.embeddings import OpenAIEmbeddingsembeddings_model = OpenAIEmbeddings(openai_api_key=)embeddings = embeddings_model.embed_documen.. 2025. 3. 7. Retrieval - Text Splitters Text Splitter는 토큰 제한이 있는 LLM이 여러 문장을 참고해 답변할 수 있도록 문서를 분할하는 역할 Text Splitter의 종류에는 2가지가 있음대부분의 경우 RecursiveCharacter TextSplitter를 통해 분할RecursiveCharacter TextSplitter줄바꿈, 마침표, 쉼표 순으로 재귀적으로 분할하므로, max_token을 지켜 분할Character TextSplitter구분자 1개 기준으로 분할하므로, max_token을 지키지 못하는 경우가 발생CharacterTextSplitter가장 간단한 텍스트 분할기로, 특정 구분자를 기준으로 텍스트를 여러 개로 분할합니다.# This is a long document we can split up.with open.. 2025. 3. 7. 이전 1 2 다음