MLOps 26

[LangChain RAG 구축 시리즈 Ep.09] 🗂️ ChromaDB로 벡터 저장소 구성하기

이 글에서는 앞에서 생성한 임베딩 벡터를 ChromaDB에 저장하고,이 벡터들을 기반으로 문서 검색이 가능하도록Retriever 객체를 구성하는 전체 과정을 실습합니다.🎯 목표LangChain에서 ChromaDB 벡터 저장소 구성하기JSON → 자연어 문서 → 벡터 → Chroma 저장저장된 벡터에 대해 질문(query)으로 검색 테스트🔧 ChromaDB란?Chroma는 로컬에서 작동하는 빠르고 간단한 벡터 DB입니다. 장점 설명 ✅ 설치 필요 없음LangChain과 함께 자동 동작✅ 검색 속도 빠름작은 실습/PoC에 적합✅ 오픈소스커스터마이징 가능📝 Step 1. 문서 벡터화 후 ChromaDB에 저장하기from langchain.vectorstores import Chroma ..

[LangChain RAG 구축 시리즈 Ep.08] 🧠 OpenAI Embedding 실습: JSON을 임베딩해보기

이 글에서는 실제 Iceberg의 metadata.json 파일에서 필요한 정보를 추출하여,자연어 기반 문서로 가공한 뒤, OpenAI의 임베딩 모델을 활용해 벡터로 변환하는 과정을 실습합니다.🎯 목표metadata.json에서 테이블 정보를 추출사람이 이해할 수 있는 문장 형태로 재구성LangChain의 OpenAIEmbeddings로 벡터화향후 검색(Retriever)에서 활용 가능한 문서 벡터 생성🔍 Step 1. 예시 JSON 데이터 준비 (💬 상세 주석 포함){ "table-name": "products", // 테이블 이름 "schema": { "fields": [ // 테이블 컬럼 정의 목록 { "id": 1, "name": "product_id", "type": ..

[LangChain RAG 구축 시리즈 Ep.05] 🧩 왜 metadata.json을 문서처럼 다뤄야 할까?

이 글에서는 RAG 시스템에 Iceberg의 metadata.json을 입력으로 활용할 때,왜 이 구조화된 JSON 파일을 자연어 기반 문서처럼 가공해야 하는지, 그리고어떻게 가공해야 검색 성능이 좋아지는지를 실제 예시와 함께 알아보겠습니다.❓ JSON 그대로 임베딩하면 안 되나요?많은 분들이 처음엔 이렇게 생각할 수 있습니다:“metadata.json은 구조가 잘 되어 있는데, 그냥 통째로 벡터화하면 되는 거 아냐?”하지만 실제로는 그대로 벡터화하면 RAG 성능이 매우 떨어집니다.🧱 구조적 JSON → 의미 중심 텍스트로 바꿔야 하는 이유 문제 설명 ⚠️ 벡터가 정보의 핵심을 놓침“field-id”, “source-id” 같은 키워드가 의미를 흐림⚠️ LLM이 이해하기 어려움LLM은 자연어 문맥에 ..

[LangChain RAG 구축 시리즈 Ep.04] ❄️ Iceberg란? 메타데이터 구조와 RAG 연결

이 글에서는 RAG 시스템의 실제 적용 대상인 Apache Iceberg의 개념과 구조를 살펴보고,그 안의 핵심 파일인 metadata.json이 RAG의 문서 임베딩 대상으로 왜 적합한지를 설명드립니다.❄️ Iceberg란 무엇인가요?Apache Iceberg는 대규모 테이블을 데이터 레이크 상에서 관리하기 위한 테이블 포맷입니다.Parquet, ORC와 같은 파일을 하나의 테이블처럼 관리할 수 있도록 해주는 메타데이터 기반 시스템이에요.🧩 Iceberg 테이블의 구조Iceberg는 물리적인 데이터 파일 외에도 다음과 같은 메타데이터 파일을 사용합니다. 구성 요소 설명 metadata.json테이블 스키마, 스냅샷 정보, 파티션 구조 등을 포함한 중심 메타정보manifest.list어떤 데이터 파일..

[LangChain RAG 구축 시리즈 Ep.02] 📦 Embedding의 원리와 벡터의 의미

이 글에서는 RAG의 핵심 기술 중 하나인 **Embedding(임베딩)**의 개념을 설명하고,왜 우리가 문서를 벡터로 바꾸는지, 그것이 어떤 방식으로 검색에 활용되는지를 쉽게 풀어드립니다.🤔 임베딩이란 무엇인가요?“문장이나 단어를 숫자의 집합으로 바꾸는 것”언어 모델은 텍스트 그 자체를 이해하지 못합니다.따라서 우리가 사용하는 문장이나 단어를 숫자(벡터)로 바꿔줘야 컴퓨터가 비교하거나 검색할 수 있습니다.🎯 Embedding의 핵심 목적 목적 설명 🧠 의미를 담은 벡터 생성“상품 이름이 뭐야?” 와 “제품 명이 뭐지?”를 비슷한 벡터로 표현🔍 검색을 가능하게 함질문 벡터와 문서 벡터 간의 거리를 계산해 유사도 검색📦 LLM에 정보 전달“이 질문과 관련 있는 문서”를 찾아서 LLM에게 넘겨줌?..

[LangChain RAG 구축 시리즈 Ep.01] 🔍 RAG를 구성하는 핵심 컴포넌트 4가지

이 글에서는 RAG 시스템을 구성하는 핵심 요소(Component) 4가지를 소개하고,이들이 어떻게 상호작용하며 전체 검색-생성 흐름을 만드는지 알기 쉽게 정리해드립니다.✨ RAG 시스템 전체 흐름 요약먼저 전체 그림을 한눈에 보고 시작하겠습니다.[사용자 질문] ↓[문서 검색기 Retriever] ↓ ⟵ 벡터화된 문서 저장소(VectorDB)[선택된 문서 + 질문] ↓[LLM (GPT-3.5/4 등)] ↓[최종 답변 생성]핵심 키워드: 검색기(Retriever) + 언어 모델(LLM) + 문서 저장소(VectorDB)📦 RAG 구성 요소 4가지✅ 1. 문서 임베딩 & 벡터스토어 (Vector Store)역할: 텍스트 문서(예: metadata.json) → 숫..

728x90