분류 전체보기 93

[RAG] 논문 리뷰 - NodeRAG:Structuring Graph-based RAG with Heterogeneous Nodes

안녕하세요! 이전에 GraphRAG와 LightRAG에 대해 함께 살펴보았는데요, 오늘은 그 흐름을 이어 GraphRAG 분야의 또 다른 흥미로운 아이디어를 소개해 드리려고 합니다. 바로 2025년 4월 15일에 올라온 'NodeRAG: Structuring Graph-based RAG with Heterogeneous Nodes' 라는 논문인데요, 다양한 정보 유형을 각기 다른 종류의 노드로 표현하는 '이종 그래프' 구조를 체계적으로 설계하고 활용하자는 핵심 아이디어를 제시하고 있습니다. 이 아이디어를 통해 기존 모델들(GraphRAG, LightRAG)과 어떻게 다르고 어떤 점을 개선했는지 논문 리뷰를 통해 전달드리고자 합니다. 0. AbstractRAG 기술은 LLM(대규모 언어 모델)이 외부 또는..

RAG 2025.05.01

[RAG] 논문 리뷰 - LightRAG : Simple and fast retreval-augmented generation

0. ABSTRACT LightRAG은 외부 지식 기반을 통합해 대규모 언어 모델(LLM)의 성능을 향상시키는 검색 기반 생성(RAG) 시스템입니다. 기존 RAG의 한계인 단순(flat)한 데이터 표현과 부족한 맥락 이해로 인한 단편적 응답 문제를 해결하고자, LightRAG은 그래프 구조를 인덱싱 및 검색에 도입합니다.이 시스템은 다음의 주요 특징을 갖습니다:이중 검색 구조: 낮은 수준의 지식 검색과 높은 수준의 지식 검색 모두에서 포괄적인 정보 검색을 향상 시키는 이중 검색 구조를 사용하여 더 포괄적이고 정확한 응답을 제공합니다. 그래프 + 벡터 통합: 개체 간 관계와 의미 유사성을 동시에 고려하여 관련 정보의 효율적 검색을 가능하게 합니다.증분 업데이트 알고리즘: 새로운 정보를 빠르게 반영할 수 있..

RAG 2025.04.30

[RAG] Vector RAG vs Graph RAG 비교 (2)

1. LLM의 한계와 RAG의 필요성최근 LLM은 뛰어난 성능을 보여주지만, 지식의 최신성 부족, 특정 도메인 지식 부재, 그리고 부정확한 정보를 생성하는 환각(Hallucination) 현상 등의 한계를 가지고 있습니다. 이러한 문제를 해결하기 위해 RAG(검색 증강 생성) 기술이 등장했습니다. RAG는 LLM이 답변을 생성하기 전, 외부 데이터베이스나 문서에서 관련 정보를 먼저 '검색'하고, 이 정보를 바탕으로 답변을 '생성'하는 방식입니다. 이를 통해 LLM을 매번 재학습시키지 않고도 최신 정보나 특정 도메인 지식을 활용하여 답변의 정확성과 신뢰도를 높일 수 있습니다. RAG는 단순히 LLM의 약점을 보완하는 것을 넘어, AI가 정적인 학습 데이터에 의존하지 않고 실시간으로 필요한 외부 지식을 동적..

RAG 2025.04.30

[RAG] Vector RAG vs Graph RAG 비교 (1)

1. Vector RAG vs Graph RAG 개요LLM 기반의 RAG(Retrieval-Augmented Generation) 시스템을 구현하면서, 보통 Vector Store 기반의 RAG로 시작하게 됩니다. 저도 마찬가지고요. 문서를 임베딩하고, FAISS나 Chroma 같은 벡터 데이터베이스를 이용해 관련 정보를 빠르게 찾아주는 방식으로 간단하고 효과적입니다. 하지만 프로젝트가 복잡해지고 문서 간 관계성이나 구조적 연결성이 중요해질수록, 단순한 벡터 유사도 기반의 검색이 한계를 드러내기 시작했습니다. 예를 들어, "A와 관련된 B, 그리고 그로 인해 파생된 C"처럼 지식 간의 연결 고리를 파악해야 하는 경우, 벡터 기반 검색은 그 관계를 자연스럽게 드러내지 못했습니다. 간단한 챗봇 시스템을 구축..

RAG 2025.04.30

[Docker] 자주 사용하는 도커/리눅스 명령어 정리

매번 도커 명령어를 까먹어서 자주 사용하거나 알아두면 유용한 명령어들을 이번에 한번 정리해보고자 합니다. 1. 이미지 관련 명령어도커 이미지는 컨테이너를 생성하기 위한 설계도와 같습니다. 애플리케이션과 필요한 모든 종속성, 라이브러리, 환경 설정 등을 포함하고 있습니다. 효율적인 컨테이너 운영을 위해서는 이러한 이미지를 효과적으로 관리하는 것이 중요합니다. 1. docker pull NAME[:TAG|@DIGEST]기능: 도커 레지스트리(기본: Docker Hub)에서 이미지를 다운로드합니다.주요 사용법: 이미지 이름(NAME)은 필수입니다. 특정 버전(TAG 또는 DIGEST)을 지정할 수 있으며, 생략 시 latest 태그가 사용됩니다.예시:docker pull nginx (최신 Nginx 이미지 ..

개발/Docker 2025.04.21

[RAG] PDF 테이블 추출 시 선 인식 문제 해결 방법(커스터마이징 feat. Pdfplumber)

0. 개요이전 PDF Loader 관련해서 글을 작성한 적이 있는데, 따로 댓글이나 메일로 질문을 남겨주시는 분들이 있으시더라구요. 그래서 아래 PDF Loader 비교 글에서 사용한 예시 PDF에서 발생한 문제를 어떤 식으로 해결할 수 있는지 예시를 작성해서 전달드리고자 이 글을 작성하게 됐습니다.https://mz-moonzoo.tistory.com/86https://mz-moonzoo.tistory.com/73 [RAG] Document Loader 비교 (feat. PDF, Markdown 변환)0. Document Loader (PDF)RAG를 하려면 수 많은 Raw Data들을 파싱해야 합니다.Raw Data들 중에서도 가장 범용적으로 사용되는 파일은 PDF이기 때문에, 이번 글에서는 PDF ..

RAG 2025.04.21

[Docker] Docker 컨테이너 내부에서 Jupyter Lab 설정 및 실행 : 버전 관리와 정확한 검증을 위한 환경 구축

오랜만에 Docker 관련 글을 작성하네요 ㅋㅋㅋ.그럼 Docker 컨테이너 내부에 Jupyter Lab 개발 환경을 구축하고 활용하는 방법에 대해 자세히 알아보겠습니다. 이 방식의 핵심 목표는 실제 서비스 환경과 동일한 Docker 이미지 및 라이브러리 버전(NumPy, PyTorch, TensorFlow 등) 위에서 개발 및 실험(학습, 추론 등)을 진행함으로써, 모델 검증의 정확성과 신뢰도를 높이는 데 있습니다. 개발 환경과 실제 서비스 환경 간의 미묘한 버전 차이는 예상치 못한 오류나 성능 저하를 야기할 수 있습니다. 도커 외부에서 Jupyter lab을 실행하지 않고 Docker 내부에서 실행하면 이러한 문제를 원천적으로 방지하고, 격리되고 재현 가능한 환경에서 효율적으로 작업할 수 있습니다. ..

개발/Docker 2025.04.21

[LLM] Python LLM 출력 JSON 파싱 팁. (Langchain- JsonOutputParser, RunnableLambda 활용)

LLM을 활용하여 개발하다 보면, 구조화된 데이터를 얻기 위해 출력 형식을 JSON으로 지정하는 경우가 많습니다.저 역시 LLM에게 특정 역할을 부여하고 그 결과를 JSON으로 받아 후처리하는 작업을 진행하고 있었는데요, 예상치 못한 JSONDecodeError 때문에 코드를 여러번 수정한 경험이 있었습니다. 오늘은 제가 겪었던 문제 상황과 이를 해결하기 위해 여러 차례 시도했던 과정, 그리고 최종적으로 LangChain의 RunnableLambda와 개선된 사용자 정의 함수(JSON Parser)를 활용하여 파싱 에러 0%를 달성한 과정을 공유하며, LLM의 JSON 출력 오류를 극복하는 팁을 나누고자 합니다. 1. 처음 : 프롬프트로 JSON 출력 요청하기처음에는 간단하게 생각했습니다. LLM에게 원..

DL/LLM 2025.04.18

[LLM] Google Prompt Engineering Whiterpapers - 구글 프롬프트 엔지니어링 백서 요약

Google에서 API 사용자를 중심으로 프롬프트 엔지니어링 에 초점을 맞춘 68페이지 분량의 백서를 최근 공개했는데 , 구조, 형식, 구성 설정, 그리고 실제 사례에 대해 심도 있게 다루고 있습니다. 여러번 수정하여 최신 버전을 공개한 것 같네요. 이미 프롬프트 엔지니어링에 대한 지식을 갖고 있고, 경험도 많으신 분들은 가볍게 읽고 넘어가셔도 도움이 될 듯합니다.LLM에 대해 처음부터 공부해보시거나, 프롬프트 엔지니어링에 관심이 있으신 분들은 기본적으로 읽고 시작하시면 좋을 것 같습니다. 저도 일부 처음보는 방법도 있어서 도움이 조금 될 듯하네요! 자료 링크 같이 첨부드립니다.https://drive.google.com/file/d/1AbaBYbEa_EbPelsT40-vj64L-2IwUJHy/view ..

DL/LLM 2025.04.14

[RAG]외부 지식을 LLM에 통합하는 KBLaM - Knowledge Base Augmented Language Models

KBLaMhttps://arxiv.org/abs/2410.10450 KBLaM: Knowledge Base augmented Language ModelIn this paper, we propose Knowledge Base augmented Language Model (KBLaM), a new method for augmenting Large Language Models (LLMs) with external knowledge. KBLaM works with a knowledge base (KB) constructed from a corpus of documents, transforming each piarxiv.org 2025년 3월18일 마이크로소프트에서, LLM에 지식을 직접 주입하는 새로운 방식(..

RAG 2025.04.14