728x90
LLM과 RAG 개념 및 실습 준비
🔹 LLM(대규모 언어 모델)이란?
- 사전에 학습된 대형 AI 모델.
- 기업이나 연구소에서 미리 학습한 모델을 제공하여 활용 가능.
- 기존의 AI 모델보다 강력한 문맥 이해 능력을 제공하며, 다양한 응용이 가능.
- 주요 활용 방식:
- 기본 모델 그대로 사용 (가장 빠르고 간단한 방법)
- 파인 튜닝(Fine-tuning) → 기존 모델에 새로운 데이터를 학습시켜 맞춤형 모델로 개선.
- RAG(Retrieval-Augmented Generation) → 기존 모델에 문서 데이터를 연동하여 특정 문서 기반 응답 생성.
🔹 RAG (검색 증강 생성, Retrieval-Augmented Generation)란?
- 기존 LLM의 한계를 보완하는 기술.
- 모델 자체를 학습하지 않고, 외부 문서 데이터를 검색하여 보다 정확한 답변을 제공.
- 예시:
- 기존 LLM: 일반적인 대화 가능하지만 특정 기업의 정책이나 매뉴얼에 대한 정확한 답변이 어려움.
- RAG 적용 LLM: 특정 기업의 매뉴얼을 참고하여 해당 내용을 기반으로 응답 생성.
- RAG의 핵심 개념:
- 문서 내 텍스트를 검색하여 관련 정보를 찾음.
- LLM이 검색된 정보를 참고하여 응답 생성.
- 특정 기업의 업무 매뉴얼을 기반으로 실제 상담에 활용 가능.
- RAG의 장점:
- 모델을 재학습(Fine-Tuning)할 필요 없이 최신 정보 반영 가능.
- 대형 언어 모델의 불확실한 답변을 줄이고, 신뢰성을 향상시킴.
- 사내 문서나 법률 문서 같은 특정 도메인에서 정확한 답변을 제공 가능.
PDF 문서 활용한 RAG 실습
🔹 실습 개요
- AI가 PDF 문서를 읽고, 해당 내용을 바탕으로 질문에 응답하는 시스템을 구축.
- 사용 문서:
- AWS SDK for Java 매뉴얼
- 기업 복지 관련 업무 매뉴얼
- 목표:
- PDF 문서를 분석하고 텍스트를 추출.
- LLM 모델을 이용하여 질문-응답 시스템을 구축.
- 기업의 내부 문서를 기반으로 AI 챗봇을 구현.
🔹 실습 과정
1️⃣ 라이브러리 설치
! pip install pypdf2 llama-index llama-index-embeddings-huggingface pdf2image pytesseract
2️⃣ PDF 문서에서 텍스트 추출 함수 생성
이 함수는 PDF 파일에서 텍스트를 읽어와서 문자열 형태로 반환하는 역할을 합니다.
from pypdf import PdfReader
def extract_text_from_pdf(pdf_file):
"""
PDF 파일에서 모든 텍스트를 추출하는 함수
:param pdf_file: PDF 파일 경로
:return: 추출된 텍스트 문자열
"""
reader = PdfReader(pdf_file)
text = ""
for page in reader.pages:
text += page.extract_text()
return text
🔹 이 함수의 동작 과정
- PdfReader를 사용하여 PDF 파일을 엽니다.
- for 루프를 이용하여 각 페이지의 텍스트를 읽습니다.
- 모든 페이지에서 읽어온 텍스트를 하나의 문자열로 합칩니다.
- 최종적으로 합쳐진 텍스트를 반환합니다.
🔹 OCR을 활용한 PDF 텍스트 추출 (이미지 기반 PDF 지원)
import pytesseract
from pdf2image import convert_from_path
def extract_text_with_ocr(pdf_file):
"""OCR을 활용하여 이미지 기반 PDF에서도 텍스트 추출"""
images = convert_from_path(pdf_file)
text = ""
for img in images:
text += pytesseract.image_to_string(img, lang='kor+eng')
return text
3️⃣ LLM 모델 설정
from llama_index.core import Document, VectorStoreIndex, Settings
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
model_name = "mistralai/Mistral-7B-Instruct-v0.2"
4️⃣ RAG 기반 검색 시스템 구축
from llama_index.core import ServiceContext, SimpleKeywordTableIndex
# 문서 데이터 생성
text_data = extract_text_from_pdf("path/to/pdf")
doc = Document(text=text_data)
# 인덱스 생성 및 검색
index = SimpleKeywordTableIndex.from_documents([doc])
query_engine = index.as_query_engine()
response = query_engine.query("퇴직 연금의 도입 효과는?")
print(response)
실습 마무리 및 응용
🔹 실무 적용 예시
- 기업 고객 상담 챗봇 구축
- 내부 업무 매뉴얼 자동 검색 시스템
- 특정 도메인 기반 질의응답 시스템
- 사내 직원 교육용 AI 도우미
- 법률 및 규정 관련 문서 검색 시스템
- 의료 및 연구 자료 기반 AI 시스템
🔹 추가 개선 방향
- 벡터 검색(Vector Search) 적용 → 더 정밀한 검색 결과 제공.
- GPT-4와 같은 강력한 LLM 모델 연동 → 더욱 자연스럽고 정확한 답변 가능.
- 데이터베이스 연동 → 실시간 데이터 반영 및 활용.
- 멀티모달 AI 적용 고려 → 이미지, 음성 데이터와 결합한 AI 검색 시스템.
- 특정 기업 환경에 맞춰 LLM 조정 → 기업 내부 문서에 특화된 모델 구성.
728x90
'🐍 Python' 카테고리의 다른 글
Hugging Face 기반 파인튜닝 및 모델 배포 완벽 가이드 (1) | 2025.02.11 |
---|---|
BERT 활용한 NLP 모델 예측 및 토큰화 완벽 가이드 (코드 포함) (0) | 2025.02.11 |
허깅 페이스(Hugging Face)로 오브젝트 디텍션: 소화전 탐지 모델 만들기 A to Z (0) | 2025.02.11 |
Hugging Face 파이프라인 사용법 총정리: 감정 분석부터 번역, 이미지 분류까지 한 번에!" (0) | 2025.02.10 |
Hugging Face로 시작하는 Transformer 모델 완벽 활용 가이드: GPT부터 BERT, T5까지 (0) | 2025.02.10 |