본문 바로가기
WIKI 기술 지식 베이스

PrivateGPT에서 Milvus 사용하기 (Use Milvus in PrivateGPT)

원문 보기 위키 갱신

PrivateGPT는 인터넷 연결 없이 대규모 언어 모델로 문서에 대해 질문할 수 있게 해 주는, 100% 프라이버시를 보장하는 프로덕션 준비형 AI 프로젝트예요. PrivateGPT는 하이레벨과 로우레벨 블록으로 나뉜 API를 제공하며, Gradio UI 클라이언트와 대량 모델 다운로드 스크립트, 인제스트 스크립트 같은 유용한 도구도 제공해요. 개념적으로 PrivateGPT는 RAG 파이프라인을 감싸고 그 기본 요소들을 노출하며, API와 RAG 파이프라인의 완전한 구현을 제공해 바로 사용할 수 있어요.

이 튜토리얼에서는 PrivateGPT의 백엔드 벡터 데이터베이스로 Milvus를 사용하는 방법을 보여 드려요.

이 튜토리얼은 주로 PrivateGPT 공식 설치 가이드를 참고했어요. 이 튜토리얼에 오래된 부분이 있다면 공식 가이드를 우선 따르고 우리에게 이슈를 만들어 주세요.

출처: Milvus 문서

본문

PrivateGPT를 실행하기 위한 기본 요구 사항

1. PrivateGPT 저장소 복제

저장소를 복제하고 이동해요.

$ git clone https://github.com/zylon-ai/private-gpt
$ cd private-gpt

2. Poetry 설치

의존성 관리를 위해 Poetry를 설치해요. 공식 Poetry 웹사이트의 지침을 따라 설치하면 돼요.

3. (선택) make 설치

여러 스크립트를 실행하려면 make를 설치해야 해요.

macOS (Homebrew 사용):

$ brew install make

Windows (Chocolatey 사용):

$ choco install make

사용 가능한 모듈 설치

PrivateGPT는 LLM, Embeddings, Vector Stores, UI 같은 일부 모듈의 설정을 사용자화할 수 있게 해 줘요.

이 튜토리얼에서는 다음 모듈을 사용해요.

  • LLM: Ollama
  • Embeddings: Ollama
  • Vector Stores: Milvus
  • UI: Gradio

다음 명령으로 poetry를 사용해 필요한 모듈 의존성을 설치해요.

$ poetry install --extras "llms-ollama embeddings-ollama vector-stores-milvus ui"

Ollama 서비스 시작

ollama.ai로 이동해 지침에 따라 머신에 Ollama를 설치해요.

설치 후 Ollama 데스크톱 앱이 닫혀 있는지 확인해요.

이제 Ollama 서비스를 시작해요 (LLM과 Embeddings를 모두 제공하는 로컬 추론 서버가 시작돼요):

$ ollama serve

사용할 모델을 설치해요. 기본 settings-ollama.yaml은 llama3.1 8b LLM(~4GB)과 nomic-embed-text Embeddings(~275MB)를 사용하도록 구성되어 있어요.

기본적으로 PrivateGPT는 필요할 때 모델을 자동으로 가져와요. 이 동작은 ollama.autopull_models 속성을 수정해 변경할 수 있어요.

어쨌든 모델을 수동으로 가져오고 싶다면 다음 명령을 실행해요.

$ ollama pull llama3.1
$ ollama pull nomic-embed-text

settings-ollama.yaml 파일에서 마음에 드는 모델로 바꾸고 수동으로 가져올 수도 있어요.

Milvus 설정 변경

settings-ollama.yaml 파일에서 vectorstore를 milvus로 설정해요.

vectorstore:
  database: milvus

커스텀 Milvus 설정을 추가해 자신의 설정을 지정할 수도 있어요. 이렇게요:

milvus:
  uri: http://localhost:19530
  collection_name: my_collection

사용 가능한 구성 옵션은 다음과 같아요.

필드 옵션 설명
uri 기본값은 로컬 파일인 local_data/private_gpt/milvus/milvus_local.db로 설정돼요. docker나 k8s에 더 고성능의 Milvus 서버를 설정해 예: http://localhost:19530 같은 값을 uri로 사용할 수도 있어요. Zilliz Cloud를 사용하려면 uri와 token을 Zilliz Cloud의 Public Endpoint and API key로 조정해요.
token docker/k8s의 Milvus 서버 또는 zilliz cloud api key와 짝을 이뤄요.
collection_name 컬렉션 이름, 기본값 milvus_db로 설정돼요.
overwrite 컬렉션이 이미 존재하면 데이터를 덮어쓸지 여부, 기본값 True로 설정돼요.

PrivateGPT 시작

모든 설정이 끝나면 Gradio UI로 PrivateGPT를 실행할 수 있어요.

PGPT_PROFILES=ollama make run

UI는 http://0.0.0.0:8001에서 사용할 수 있어요.

UI로 이것저것 시험해 보고 문서에 대해 질문해 볼 수 있어요.

자세한 내용은 PrivateGPT 공식 문서를 참고하세요.

더 알아보기 (Learn more)