jolibrain/colette
Multimodal RAG to search and interact locally with technical documents of any kind
Colette – 자체 호스팅 비전-RAG 플랫폼
무엇인가요 – Colette는 외부 API에 데이터를 전송하지 않고 기술 문서를 인덱싱하고 질의할 수 있는 오픈소스, 자체 호스팅형 검색 증강 생성(RAG) 시스템입니다. 특징적인 점은 비전-RAG: 문서의 각 페이지를 이미지로 취급하여 표, 다이어그램, 설계도, 레이아웃이 그대로 유지되며, 비전 기반 임베딩으로 검색이 가능합니다.
주요 기능
- 비전-RAG (V-RAG) –
gme-Qwen2-VL와 같은 비전 임베딩 모델과Qwen3-VL와 같은 멀티모달 LLM을 사용하여 페이지 단위 이미지를 임베딩하고 검색합니다. - 하이브리드 검색 – ChromaDB/ColDB 벡터 검색 엔진과 Tantivy의 BM25 어휘 엔진을 병렬로 실행하여 제품 코드, 부품 번호 등에 유용합니다.
- HyDE (가상 문서 임베딩) – 선택적으로 LLM이 짧은 "가상 답변"을 생성하고, 원본 질문 대신 그 답변을 임베딩하여 기술적 질의에서 리콜률을 향상시킵니다.
- 텍스트 전용 RAG – 이미지 기반 처리가 필요 없는 문서용으로
unstructured+langchain을 사용하는 전통적인 파이프라인. - 다중 백엔드 LLM 지원 – HuggingFace, vLLM, Ollama, 그리고 커스텀
vllm_client와 호환됩니다. - 이미지 생성 –
diffusers를 통해 Stable Diffusion과 통합하여 시각적 출력을 가능하게 합니다. - 레이아웃 탐지 – 페이지를 자동으로
text,figure,table,full_page영역으로 분할하여 결과를 세밀하게 필터링할 수 있습니다. - Docker 기반 배포 –
colette_gpu,colette_gpu_server,colette_ui실행 이미지와 빌드/배포를 위한 CI 파이프라인 제공.
아키텍처 개요 – README에는 세 가지 주요 구성 요소를 보여주는 다이어그램이 포함되어 있습니다: (1) 인제스트(PDF → 이미지 자르기 → 비전/텍스트 임베딩), (2) 스토리지(벡터 DB + BM25 인덱스), (3) 추론(LLM이 검색된 컨텍스트를 사용해 답변 생성). 모든 구성 요소는 JSON 파일로 구성 가능합니다.
일반적인 워크플로우
- 설치 – Docker(권장) 또는 Python 가상 환경. Python ≥ 3.12, CUDA ≥ 12.1, 24GB VRAM 이상의 GPU(또는 설정으로 가벼운 모델 사용 가능).
- 인덱싱 –
colette_cli index …로 PDF 폴더를 지정. 시스템은 이미지 자르기, 비전/텍스트 인코더 실행, 임베딩 저장을 수행합니다. - 질의 –
colette_cli chat …또는 Python API(JSONApi,APIData)로 질문을 전송. 시스템은 관련된 이미지/텍스트 청크(임베딩, BM25, 또는 하이브리드)를 검색해 LLM에 전달하고, 텍스트 답변과 소스 이미지를 반환합니다.
기술 스택
- 언어: Python(핵심 로직, CLI, API), Bash(Docker 래퍼)
- 비전 모델: Qwen 스타일의 멀티모달 인코더
- LLM 백엔드: HuggingFace Transformers, vLLM, Ollama
- 벡터 스토어: ChromaDB 또는 커스텀
coldb - 어휘 검색: Tantivy(Rust 기반 BM25)
- 컨테이너화: Docker + Docker-Compose; CI는 Jenkins 사용
- 옵션 GPU 가속 이미지 생성: Diffusers(Stable Diffusion)
설치 용이성 – 중간에서 높음. Docker 이미지가 대부분의 종속성을 추상화하지만, 기본 설정은 고성능 GPU를 필요로 합니다. x86, ARM, DGX 머신용 가상환경 설정 헬퍼 스크립트, CLI 예제, 디버깅용 Jupyter 노트북도 제공됩니다.
누가 사용할까
- 기밀 기술 매뉴얼, 항공우주 문서, 설계도 등 시각적 레이아웃이 중요한 PDF를 검색해야 하며, 데이터를 외부로 유출할 수 없는 기업 또는 연구 그룹.
- 엄격한 기밀성을 지켜야 하는 내부 지식 기반 어시스턴트를 개발하는 팀.
- 멀티모달 RAG 파이프라인을 실험하고, 바로 사용 가능한 구성 가능한 스택을 원하는 개발자.
성숙도 – Jolibrain, CNES, Airbus가 지원하는 프로젝트로, CI 파이프라인, Docker 이미지, 비교적 광범위한 문서 사이트를 보유하고 있습니다. 자체 호스팅 사용에는 프로덕션 준비 상태이지만, 하드웨어 요구사항(≥ 24GB VRAM)으로 인해 워크스테이션급 또는 서버급 GPU에 한정됩니다.
빠른 시작 (Docker)
# 이미지 다운로드
docker pull docker.jolibrain.com/colette_gpu:latest
# 폴더 생성
mkdir -p models app_colette docs/pdf
# PDF 인덱싱
docker run --gpus all -v $(pwd):/rag -v $(pwd)/docs/pdf:/data -v $(pwd)/models:/app/models \
docker.jolibrain.com/colette_gpu \
bash -c "colette_cli index --app-dir /rag/app_colette --data-dir /data --config-file src/colette/config/vrag_default_lite.json --models-dir /app/models"
# 질문하기
docker run --gpus all -v $(pwd):/rag -v $(pwd)/app_colette:/app/app_colette -v $(pwd)/models:/models \
docker.jolibrain.com/colette_gpu \
bash -c "colette_cli chat --app-dir app_colette --models-dir /models --msg \"What are the identified sources of errors of a RAG?\""
자원
관련
- 프로젝트
- 프로젝트