Langchain-Chatchat 기반 로컬 검색 증강 생성 시스템 구축
Langchain-Chatchat(구: Langchain-ChatGLM)는 대규모 언어 모델과 랭체인 프레임워크를 결합해 오픈소스이며, 네트워크 없이도 독립 실행이 가능한 검색 기반 생성(RAG) 기능을 제공하는 지식 기반 시스템입니다. 본 문서에서는 Windows 11 환경에서의 설치 및 최적화 과정을 단계별로 설명합니다.
1. 환경 준비
먼저, 권장되는 파이썬 버전 3.10 이상을 설치하세요. Python 공식 다운로드 페이지에서 확인 및 설치가 가능합니다.
python --version
2. 프로젝트 클론 및 의존성 설치
다음으로 소스 코드를 가져오고, 기본 패키지와 확장 기능을 설치합니다.
git clone https://github.com/chatchat-space/Langchain-Chatchat.git
cd Langchain-Chatchat
# 기본 의존성 설치
pip install -r requirements.txt
# API 서버 구성 (선택 사항)
pip install -r requirements_api.txt
# 웹 인터페이스 설치 (선택 사항)
pip install -r requirements_webui.txt
3. 모델 다운로드 및 관리
모델 파일은 일반적으로 허브허브 또는 미러 사이트를 통해 접근 가능합니다. 먼저 Git LFS를 설치하여 대용량 파일을 지원해야 합니다.
git lfs install
대표적인 모델 두 가지를 아래 명령어로 다운로드합니다:
git clone https://hf-mirror.com/THUDM/chatglm2-6b
git clone https://hf-mirror.com/moka-ai/m3e-base
4. 설정 파일 초기화
기본 구성 파일을 복사하여 사용할 수 있도록 준비합니다.
python copy_config_example.py
지식 베이스 초기화 작업을 수행합니다.
python init_database.py --recreate-vs
5. 서비스 시작
웹 인터페이스와 API를 동시에 활성화하려면 다음 명령어를 실행합니다.
python startup.py -a
정상적으로 동작하면 브라우저에서 http://localhost:8501에 접속해 웹 인터페이스를 확인할 수 있습니다. 또한 http://localhost:8000에서 API 엔드포인트도 작동 중인지 확인할 수 있습니다.
예시 질의: "《수호전》에서 '지지성'은 누구인가요?" 결과 출력이 정상적으로 반환된다면, 시스템이 제대로 작동 중입니다.
⚠️ 주의: CPU만 사용 시 응답 속도가 매우 느릴 수 있으므로, GPU 가속을 권장합니다.
6. GPU 지원 활성화 (CUDA 기반)
현재 파이토치가 CUDA를 인식하지 못하고 있다면, 다음과 같이 확인합니다.
import torch
print(torch.version)
print(torch.cuda.is_available())
출력 결과가 False라면, CUDA Toolkit을 설치하고, 맞춤형 파이토치 라이브러리를 설치해야 합니다.
6.1 CUDA Toolkit 설치
NVIDIA CUDA Toolkit 아카이브 페이지 에서 적절한 버전(예: 11.8 또는 12.1)을 다운로드 후 설치합니다.
설치 후 버전 확인:
nvcc -V
6.2 CUDA 지원 파이토치 설치
PyTorch 공식 다운로드 페이지에서 CUDA 12.1을 기반으로 한 빌드를 선택합니다.
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
기존에 파이토치를 설치했다면, 위 명령어로 덮어쓰기가 안 될 수 있습니다. 이 경우, 직접 .whl 파일을 다운로드하여 로컬 설치하는 것이 안정적입니다.
예시:
- torch-2.1.0+cu121-cp310-cp310-win_amd64.whl
- 경로 예:
g:/AI/torch-2.1.0+cu121-cp310-cp310-win_amd64.whl
pip install g:/AI/torch-2.1.0+cu121-cp310-cp310-win_amd64.whl
재확인:
import torch
print(torch.cuda.is_available()) # True 확인
7. 메모리 제약 조건 해결: 모델 양자화 적용
내 컴퓨터는 8GB GPU 메모리로, 원본 chatglm2-6b 모델은 메모리 부족으로 시작되지 않습니다. 이를 해결하기 위해 4비트 양자화된 버전을 사용합니다.
git clone https://hf-mirror.com/THUDM/chatglm2-6b-int4
model_config.py 파일 내에서 LLM_MODEL 경로를 수정합니다:
LLM_MODEL = "chatglm2-6b-int4" # 기존 경로 변경
최종적으로 다시 시작:
python startup.py -a
GPU 사용 상태와 함께, 응답 속도가 크게 개선되었음을 확인할 수 있습니다. 다만, 양자화로 인해 일부 표현력이 감소할 수 있음에 유의합니다.
8. 대규모 모델 학습 체계화 전략
현재는 대규모 언어 모델(LLM)이 엔지니어링, 연구, 산업 전반에 걸쳐 중심 역할을 하고 있습니다. 이에 따라, 단순히 코드를 작성하는 기술자가 아닌, AI 도구를 효과적으로 활용하는 전문가가 진정한 경쟁력을 갖추게 됩니다.
"기술을 대체하는 건 AI가 아니라, AI를 활용하는 사람이다."
학습 로드맵 제안
단계 1: 기초 개념 이해
- 인공지능의 발전 역사
- GPT 계열 모델의 구조와 발전 과정
- RAG(검색 증강 생성)의 원리
단계 2: API 기반 개발 능력
- OpenAI, Hugging Face 등 외부 모델 연동
- Python 기반 프롬프트 설계 및 테스트
- 스트리밍 처리 및 에러 처리 방식
단계 3: 자체 시스템 아키텍처 설계
- Agent 기반 프레임워크 (MetaGPT, LangChain 등)
- 모델 간 통합 및 컨텍스트 관리
- 비즈니스 요구사항 반영된 워크플로우 설계
단계 4: 로컬/클라우드 기반 프라이빗 배포
- 모델 최적화 (양자화, 토크나이저 최적화)
- Docker 기반 배포
- 성능 모니터링 및 오류 대응
이러한 체계적 접근을 통해, 단순한 사용자가 아니라 기술적 주도권을 갖춘 실무자로 성장할 수 있습니다.