LLM 7

[NLP] RAG 성능 평가방법 : RAGAS를 이용해 데이터셋 생성부터 평가까지

RAG 모델을 한 번쯤 만들어 본 사람이라면 이런 고민을 해본 적이 있을 것이다. "모델이 답변을 만들어 내고 있긴 한데, 정확히 얼마나 잘하고 있는 걸까?""결과가 별로일 때 내 검색 단계가 문제인지, 아니면 생성 단계가 문제인지 어떻게 구분할 수 있지?" 이럴 때 단순히 사람이 직접 눈으로 확인하는 방식만으로는 한계가 있다. 데이터셋이 많아질 수록 평가 비용은 기하 급수적으로 커지고, 결국 객관성이 떨어진다. 여기서 등장한 도구가 바로 RAGAS (Retrieval-Augmented Generation Evaluation System) 이다. RAGAS는 말 그대로 RAG 과정을 자동화된 방식으로 평가할 수 있게 해주는 라이브러리다.1. RAGAS란 무엇인가?논문 : https://arxiv.o..

[NLP] Milvus + BM25 = Hybrid Search

이전에 Hybrid Search 전반적인 흐름과 개념적인 내용을 공부했었다.오늘은 그 연장선에서, 실제 RAG를 구현하면서 검색모듈 부분에서 주로 사용하는 라이브러리와 기술 스택에 대해 다뤄보려고 한다. 오늘은 Milvus와 BM25 각각이 어떤 역할을 하는지, 그리고 두 가지를 결합하여 어떻게 Hybrid Search를 구현하는지에 정리하려 한다. 1. BM25: Sparse SearchBM25는 키워드 기반 문서 검색 알고리즘이다. 간단히 말하면 “질문에 들어간 단어가 얼마나 많이, 또 얼마나 중요한 위치에 등장했는가”를 점수화한다. "어떻게 하면 사용자의 질의(query)와 문서(document) 사이의 연관성을 정량적으로 계산할 수 있을까?" 단순히 문서에 단어가 포함되어 있냐/없냐만 본다면..

RAG 구축하기 - 3.2 성능 최적화 : Hybrid Search(CC& RRF) 와 Rerank

지난 글에서는 청킹(Chunking) 전략을 통해 검색 품질을 높이는 방법을 다뤘다.2025.08.19 - [인공지능/자연어처리] - RAG 구축하기 - 3.1 성능 최적화 : Chunking 전략 제대로 파헤치기 RAG 구축하기 - 3.1 성능 최적화 : Chunking 전략 제대로 파헤치기앞선 두 편에서 우리는 RAG의 큰 그림을 살펴봤다.1탄에서는 데이터 파이프라인 — 문서를 불러오고(Load), 파싱하고(Parsing), 청크로 나누고(Chunking), 문맥을 보강(Contextualize), 임베딩(Embedding), 벡터DBhjjummy.tistory.com 이번에는 성능 최적화의 두 번째 포인트, 바로 Hybrid Search와 Re-Rank 기법에 대해 이야기해보려 한다.RAG를 실제로..

RAG 구축하기 - 3.1 성능 최적화 : Chunking 전략 제대로 파헤치기

앞선 두 편에서 우리는 RAG의 큰 그림을 살펴봤다.1탄에서는 데이터 파이프라인 — 문서를 불러오고(Load), 파싱하고(Parsing), 청크로 나누고(Chunking), 문맥을 보강(Contextualize), 임베딩(Embedding), 벡터DB에 저장(Upsert) — 이 과정을 정리했다.2025.08.19 - [인공지능/자연어처리] - RAG 구축하기 - 1. Data Pipeline 구축2탄에서는 Retrieval/Generation 단계를 다루며, 사용자의 질문이 어떻게 검색을 거쳐 답변으로 이어지는지 과정을 살펴보았다.2025.08.19 - [인공지능/자연어처리] - RAG 구축하기 - 2. Retrieval과 Generation RAG 구축하기 - 2. Retrieval과 Generati..

RAG 구축하기 - 2. Retrieval과 Generation

지난 글에서는 RAG를 구축할 때 가장 중요한 데이터 파이프라인에 대해서 다뤘다.즉, 문서를 불러오고(Load), 파싱하고 (Parsing), 청크로 나누고 (Chunking), 문맥을 붙이고(Contextualize), 임베딩하고 (Embedding), 벡터DB에 저장(Upsert)하는 과정을 살펴보았다. 2025.08.19 - [인공지능/자연어처리] - RAG 구축하기 - 1. Data Pipeline 구축 RAG 구축하기 - 1. Data Pipeline 구축RAG를 실제로 구축하려고 하면 어디서 부터 시작해야 할 지 막막할 수 있다. 막상 실제로 시작해보면 단순히 “검색 → 생성”이 아니라 그 이전 단계의 데이터 준비 과정이 훨씬 더 중요하다는hjjummy.tistory.com 이번 글에서는 그..

RAG 구축하기 - 1. Data Pipeline 구축

RAG를 실제로 구축하려고 하면 어디서 부터 시작해야 할 지 막막할 수 있다. 막상 실제로 시작해보면 단순히 “검색 → 생성”이 아니라 그 이전 단계의 데이터 준비 과정이 훨씬 더 중요하다는 걸 깨닫게 된다. 이번 글에서는 RAG 시스템을 만들 때 꼭 거치게 되는 기본 단계를 하나씩 짚어보며, 전체적인 흐름을 머릿속에 정리해보려고 한다. 1. Documents Load (문서 로드)가장 첫 단계는 데이터를 불러오는 것.RAG의 성능은 어떤 데이터를 넣느냐에 따라 달라지므로 다양한 형식의 문서를 불러오는 과정이 필요하다.PDF, Word, PPT, 텍스트 파일, HTML 등 다양한 포맷을 지원보통 LangChain이나 LlamaIndex 같은 라이브러리에서는 DocumentLoader를 제공해 쉽게 가져..

RAG- LangGraph 시작하기 (state+ node + edge = graph)

LangGraph를 처음 접하는 사람들을 위해 정리해보았다.요즘 RAG기반 시스템을 구축하다 보면 "LangChain 만으로는 복잡한 워크플로우를 제어하기 어렵다"는 문제를 자주 마주치게 된다. 이때 유용하게 등장한 것이 LangGraph이다. LangGraph란 무엇인가?한 줄로 요약하면 LangChain 위에서 동작하는 "상태 기계(State Machine)" 기반 LLM 워크플로우 프레임워크이다.즉, LLM을 이용한 파이프라인을 그래프 구조로 모델링하고, 각 단계의 상태와 전이를 명확히 정의할 수 있다.보통 LangChain은 chain이나 agent 같은 흐름 단위로 로직을 묶는다. 하지만 현실의 애플리케이션에서는 다음과 같은 시나리오가 자주 등장한다:질문 → 검색 → 요약 → 답변 생성사용자 입..