RAG 기반 AI 서버 구축: 도구들과 기초지식 다지기
앞서 포스팅한 내용을 생각하며 기초지식을 다져보도록 하자.
🚀 1. 목표
앞서 이야기했듯이 AI 서버 구축을 진행할 것이다. 일반 서버 내부에 AI 서버를 함께 구축하면 의존성이 증가하고, 모듈화가 어렵고, 하나의 서버 장애가 모든 시스템에 영향을 미치는 문제가 발생할 가능성이 크다. 이를 방지하고 책임 분리를 명확히 하기 위해 별도의 AI 서버를 구축하는 방향을 선택했다.
🏗️ 2. 구축할 아키텍처
(일반 서버: FastAPI) ───> (AI 서버: FastAPI + vLLM + RAG)
├── LLM
├── 벡터DB
├── 임베딩 모델
위와 같은 아키텍처로 구성할 예정이다. 이는 AI 서버를 독립적으로 운영하면서도 일반 서버와의 원활한 통신을 유지할 수 있도록 설계하였다.
⚙️ 3. 사용할 개발 환경
- RunPod → GPU 서버 제공
- vLLM → LLM 서빙 최적화
- DeepSeek LLM → 실제 추론을 담당할 모델
- RAG (Retrieval-Augmented Generation) → AI 답변의 정확도를 향상시키는 검색 기반 기술
- ChromaDB (or FAISS) → 벡터 검색을 위한 데이터베이스
- FastAPI → REST API로 AI 응답을 제공
🔥 4. Wls(찐) 기초지식들 🔥
🤖 LLM이란?
LLM(Large Language Model)은 대량의 데이터를 학습한 대규모 언어 모델로, 텍스트 기반의 다양한 작업을 수행할 수 있도록 설계된 AI 모델이다.
🔍 RAG이란?
RAG(Retrieval-Augmented Generation)는 검색 기반의 문서 검색 시스템과 LLM을 결합하여 보다 정확하고 신뢰할 수 있는 AI 응답을 생성하는 기술이다. 기존의 LLM 단독 사용과 달리, 외부 데이터를 검색하여 활용하므로 최신 정보에 대응할 수 있다.
🛠️ 파인튜닝이란?
파인튜닝(Fine-Tuning)은 이미 학습된 모델을 특정 도메인이나 데이터셋에 맞춰 추가 학습하는 과정이다. 이를 통해 특정한 업무나 산업에 맞는 최적화된 모델을 만들 수 있다.
⚔️ RAG vs 파인튜닝
🔹 RAG (Retrieval-Augmented Generation)
- 외부 지식 활용: 모델이 자체적으로 알고 있는 정보를 넘어서, 외부 데이터베이스에서 실시간 정보를 검색하여 활용.
- 도메인별 학습 불필요: 새로운 정보가 필요할 때마다 모델을 다시 학습시킬 필요 없이, 데이터를 업데이트하면 됨.
- 빠른 응답 가능: 모델이 직접 모든 정보를 학습하는 것이 아니라 필요한 순간에 검색하여 응답 생성.
- 비용 절감: 모델을 반복적으로 재학습할 필요가 없으므로, 유지보수 비용이 낮음.
- 예제: 고객 지원 챗봇이 최신 정책을 실시간으로 검색하여 제공하는 경우.
🔹 파인튜닝 (Fine-Tuning)
- 내부 지식 강화: 특정 데이터셋으로 모델을 추가 학습하여 특정 도메인에 최적화된 모델 생성.
- 재학습 필요: 새로운 정보를 학습하려면 기존 모델을 다시 학습시켜야 함. (많은 시간과 비용 발생)
- 빠른 추론 가능: 검색 단계를 거치지 않고 모델 자체가 모든 지식을 포함하고 있으므로 응답 속도가 빠름.
- 고정된 데이터 의존: 학습 이후 변경된 정보는 반영되지 않기 때문에 정기적인 재학습이 필요함.
- 예제: 의료 데이터로 학습된 모델이 특정 질병에 대한 정확한 정보를 제공하는 경우.
📌 RAG를 선택한 이유
RAG를 선택하기로 했다 왜냐하면
- 외부 지식 활용이 가능하기 때문에, 최신 정보를 즉시 반영할 수 있다.
- 비용 절감이 된다. 파인튜닝처럼 모델을 계속 재학습할 필요가 없어 유지보수 비용이 적게 든다.
- 파인튜닝의 가장 큰 단점은 재학습 필요인데, 이 과정에서 많은 시간과 비용이 발생한다. 모델을 업데이트하려면 새로운 데이터로 다시 학습해야 하고, 이 과정에서 높은 GPU 자원이 소모된다. RAG는 단순히 데이터베이스를 업데이트하는 방식으로 새로운 정보를 반영할 수 있어 훨씬 효율적이다.
결론적으로, 지속적으로 변화하는 데이터를 다뤄야 하는 환경에서는 RAG가 가장 효과적인 선택이다. 특히 혼자 개발을 진행하는 상황에서 비용과 유지보수 부담을 최소화하는 것이 중요하기 때문에, 파인튜닝보다 효율적인 RAG를 선택하여 구현해보도록 하겠다.
🏆 5. 요구되는 기술 스택 및 예상 기술 요소 🏆
- 백엔드: Python, FastAPI, vLLM
- 데이터베이스: ChromaDB, FAISS (벡터 DB)
- AI 모델: DeepSeek LLM, all-MiniLM-L6-v2 (임베딩 모델)
- 서버 환경: RunPod (GPU 인프라), Docker (컨테이너화)
- 검색 최적화: RAG 기반 검색 시스템
위 기술 스택을 활용하여 AI 서버 구축을 진행할 예정이며, 이후 상세한 구현 방법을 다룰 계획이다.
'Study > 기타' 카테고리의 다른 글
RAG에 대하여, 벡터 데이터베이스 (0) | 2025.02.01 |
---|---|
App 개발자의 우당탕탕 AI서버 만들기 (1) | 2025.02.01 |
새로운 AI DeepSeek에 대하여 (2) | 2025.01.30 |
Flutter의 Clean Architecture 클린아키텍처, 각 Layer에 대하여 (0) | 2024.06.20 |
Clean Architecture 클린아키텍처, 객체지향 디자인 5원칙 SOLID[5부] (1) | 2024.03.23 |