자체 호스팅 Perplexica - Ollama와 함께

로컬에서 코파일럿 스타일 서비스를 실행하나요? 간단하죠!

Page content

이것은 매우 흥미로운 일입니다!
Copilot이나 perplexity.ai를 호출하고 세상에 당신이 무엇을 원하는지 말하는 대신,
이제 자신의 PC나 강력한 노트북에서 유사한 서비스를 호스팅할 수 있습니다!

이 것이 무엇인지

Perplexica는 Copilot과 perplexity.ai와 유사한 시스템입니다.

  • 질문을 하면
  • AI가 인터넷에서 답변을 검색합니다 (검색할 위치를 지정할 수 있습니다: 학술 논문, 글, YouTube, Reddit 등)
  • 그런 다음 AI는 찾은 모든 내용을 요약합니다
  • 원본 웹사이트의 참조를 함께 표시합니다
  • 오른쪽에는 이미지와 YouTube 동영상 목록도 있습니다
  • 또한 주제를 더 깊이 탐구하고 싶다면 클릭할 수 있는 추가 질문 목록도 있습니다

이러한 시스템은 클라우드에 호스팅되어 있으며, 일부 기업(예: Microsoft 또는 Meta)에 속해 있습니다.
Perplexica는 PC 또는 강력한 노트북에 설치할 수 있는 오픈소스 소프트웨어입니다.
로컬 Ollama와 vLLM, Docker Model Runner, LocalAI 및 클라우드 제공업체 간의 비교를 포함해 더 넓은 비교를 원하시면 LLM 호스팅: 로컬, 자체 호스팅 및 클라우드 인프라 비교를 참조하세요.

perplexica 응답 - llama3.1 8b q6 및 jina embeddings 여기서 우리는 Perplexica가 채팅 모델 llama3.1 8b q6과 jina Embedding 모델을 사용하여 질문 Who is Elon Mask?에 대한 응답을 보고 있습니다.

Perplexica는 여러 모듈로 구성되어 있습니다.

  1. SearxNG - 메타검색 엔진입니다. 다른 검색 엔진 10개 이상을 호출하여 결과를 얻기 때문에 Perplexica는 그 결과들을 결합할 수 있습니다.
    SearxNG는 자체적으로 매우 구성 가능하며, 각 엔진을 켜고 끌 수 있고 새로운 엔진을 추가할 수 있습니다.
    그러나 우리의 목적에 맞게 기본 구성은 잘 작동합니다.
  2. Perplexica 백엔드 및 프론트엔드. 기술적으로 이 두 모듈은 별도로, 하나는 API를 제공하고, 다른 하나는 UI를 제공합니다.
  3. Ollama 서비스 - Perplexica 프로젝트의 일부가 아니지만, 로컬에 LLM을 호스팅하고 싶다면 Ollama가 유일한 방법입니다.

전체 시스템 설치는 두 가지 큰 단계로 구성됩니다:

  1. Ollama 설치 + Ollama 모델 다운로드
  2. Perplexica와 함께 SearxNG 설치

Ollama 설치

Ollama를 시작하려면 다음 단계를 따르세요:

Ollama 설치 스크립트를 실행하여 설치하세요:

curl -fsSL https://ollama.com/install.sh | sh

Ollama에 당신이 좋아하는 LLM을 다운로드하도록 지시하세요. 만약 Llama3.1 8b q4라면 다음 스크립트를 실행하세요:

ollama pull llama3.1:latest

Nomic-Embed-Text의 최신 버전을 임베딩 모델로 사용하고 싶다면 다음 명령을 실행하세요:

ollama pull nomic-embed-text:latest

Ollama 서비스 파일을 편집하기 위해 다음을 실행하세요:

sudo systemctl edit ollama.service

다음 줄을 추가하여 Ollama를 네트워크에 노출시킵니다 (Perplexica는 Docker 내부에서 연결해야 하므로):

[Service]
Environment="OLLAMA_HOST=0.0.0.0"

systemd 데몬을 재로드하고 Ollama 서비스를 다시 시작하세요:

sudo systemctl daemon-reload
sudo systemctl restart ollama

Ollama가 성공적으로 시작되었는지 확인하세요:

systemctl status ollama.service
sudo journalctl -u ollama.service --no-pager

Ollama를 설치, 업데이트 및 구성하는 방법에 대한 자세한 설명은 여기를 참조하세요:
Ollama 설치 및 구성

Perplexica와 함께 다른 Ollama 모델 사용 방법에 대한 자세한 내용은 아래의 ‘다른 Ollama 모델 설치’ 섹션을 참조하세요.

Perplexica 설치

저는 Linux에 Docker화된 Perplexica를 설치했지만, Windows 또는 Mac에서도 매우 유사한 docker-compose를 사용할 수 있습니다.

시작해볼까요!

Docker 사용 (추천)

시스템에서 Docker가 설치되고 실행되고 있는지 확인하세요.

Perplexica 저장소를 클론하세요:

git clone https://github.com/ItzCrazyKns/Perplexica.git

클론 후, 프로젝트 파일이 있는 디렉토리로 이동하세요:

cd Perplexica

sample.config.toml 파일을 config.toml로 복사하세요. 나중에 Perplexica를 업데이트하고자 한다면, 이 저장소에 git pull을 실행할 수 있도록 sample.config.toml 파일을 config.toml로 복사하세요:

cp sample.config.toml config.toml

config 파일을 편집하세요:

nano config.toml

Docker 설정의 경우, 다음 필드만 채우면 됩니다:

OLLAMA: Ollama API URL을 입력하세요.
이를 http://host.docker.internal:PORT_NUMBER 형식으로 입력해야 합니다.
Ollama를 11434 포트에 설치했다면 http://host.docker.internal:11434를 사용하세요.
다른 포트를 사용하는 경우, 그에 따라 조정하세요.

Perplexica 디렉토리에 머무르면서 다음을 실행하세요:

docker compose up -d

이 명령은 SearxNG 및 기본 노드 Docker 이미지를 끌어오고, 두 개의 Perplexica Docker 이미지를 빌드한 후 3개의 컨테이너를 시작합니다.
설치가 완료될 때까지 몇 분 정도 기다려주세요.

웹 브라우저에서 http://localhost:3000을 통해 Perplexica에 액세스할 수 있습니다.

설정으로 이동하세요. 왼쪽 하단에 있는 Cog 아이콘을 클릭하고, 원하는 Ollama 모델을 선택하세요.

perplexica 설정 - ollama 모델 구성

여기서 채팅 모델로 선택된 것은 llama3.1:8b-instruct-q6_K (Llama 3.1 8b, quantization q6_K),
임베딩 모델은 nomic-embed-text:137m-v1.5-fp16입니다.

라이트 또는 다크 테마 중 어떤 것을 더 선호하는지 선택할 수도 있습니다.

Perplexica의 검색 옵션(이 아이콘 안의 눈을 클릭)은 다크 테마에서 다음과 같습니다: perplexica 검색 옵션

다른 Ollama 모델 설치

이전 섹션에서 “Ollama 설치"에서 이미 llama3.1:latest 및 nomic-embed-text:latest 모델을 설치했습니다.

채팅에는 하나의 모델만 필요하지만, 다양한 모델이 제공되고 있습니다.
그들은 약간 다르게 작동하므로, 가장 일반적인 모델부터 시작하는 것이 좋습니다:
Llama3.1, Gemma2, Mistral Nemo 또는 Qwen2.

채팅 모델

설치 섹션에서 본 채팅 모델의 전체 이름인 llama3.1:latestllama3.1:8b-text-q4_0입니다.
이 모델은 80억 개의 파라미터와 quantization 4_0을 사용합니다.
빠르고 상대적으로 작으며(4.8GB), 하지만 GPU에 더 많은 메모리가 있다면 다음을 추천합니다:

  • llama3.1:8b-instruct-q6_K (6.7GB) - 테스트에서 매우 우수한 응답을 보였지만 약간 느렸습니다.
  • llama3.1:8b-instruct-q8_0 (8.5GB) - 또는 이 모델을 시도해 보세요.

전체적으로, llama3.1:8b 그룹의 모델은 모두 상대적으로 빠릅니다.

다음과 같이 제가 추천하는 모델들을 시도해 보세요:

ollama pull llama3.1:8b-instruct-q6_K
ollama pull llama3.1:8b-instruct-q8_0

Llama3.1:8b와 비교하여 Gemma2는 더 간결하고 예술적인 응답을 생성합니다. 다음을 시도해 보세요:

# 9.8GB
ollama pull gemma2:9b-instruct-q8_0

# 14GB
ollama pull gemma2:27b-instruct-q3_K_L

Mistral Nemo 모델은 Gemma2와 Llama3.1 사이에 응답을 생성합니다.

# 기본 모델, 7.1GB
ollama pull mistral-nemo:12b-instruct-2407-q4_0

# 10GB
ollama pull mistral-nemo:12b-instruct-2407-q6_K

# 13GB
ollama pull mistral-nemo:12b-instruct-2407-q8_0

Qwen2 모델도 시도해 보는 것이 좋습니다:

# 기본 모델, 4.4GB
ollama pull qwen2:7b-instruct-q4_0

# 8.1GB
ollama pull qwen2:7b-instruct-q8_0

제가 가장 좋아하는 모델은 llama3.1:8b-instruct-q6_Kmistral-nemo:12b-instruct-2407-q8_0입니다.

로컬 저장소에 Ollama가 설치한 모델을 확인하려면:

ollama list

필요 없는 모델을 제거하려면:

ollama rm qwen2:7b-instruct-q4_0 # 예시

임베딩 모델

이것들을 설치할 수 있지만, Perplexica는 이미 3개의 임베딩 모델을 사전 설치해 두었습니다: BGE Small, GTE Small, Bert 이중언어.
이들은 충분히 잘 작동하지만, 다른 임베딩 모델을 시도해 보는 것도 좋습니다.

이전 섹션에서 설치한 nomic-embed-text:latest 임베딩 모델은 좋은 모델이지만, 아래의 것도 시도해 보는 것이 좋습니다:

ollama pull jina/jina-embeddings-v2-base-en:latest
# 그리고
ollama pull bge-m3:567m-fp16

저는 jina/jina-embeddings-v2-base-en:latest 모델의 결과를 가장 좋아하지만, 직접 확인해 보세요.

Perplexica 네트워크 설치

네트워크 서버에 설치하는 경우, 다음을 실행하기 전에

docker compose up -d

또는 이미 Perplexica를 실행 중이고, 이미지를 다시 빌드해야 한다면

# 중지하고 모든 컨테이너를 제거 (!!! 필요하다면)
docker compose down --rmi all

docker-compose.yaml에 Perplexica 서버의 IP 주소를 입력하세요:

nano docker-compose.yaml
perplexica-frontend:
    build:
      context: .
      dockerfile: app.dockerfile
      args:
      - NEXT_PUBLIC_API_URL=http://127.0.0.1:3001/api   # << 여기
      - NEXT_PUBLIC_WS_URL=ws://127.0.0.1:3001          # << 여기
    depends_on:
      - perplexica-backend

이제 Perplexica와 SearxNG 컨테이너를 시작하세요:

docker compose up -d

또는 다시 빌드하고 시작하세요:

docker compose up -d --build

Perplexica 업데이트

Docker에서 Perplexica를 실행 중인 경우:

# 중지하고 모든 컨테이너를 제거 (!!! 필요하다면)
docker compose down --rmi all

# 프로젝트 폴더로 이동
# 설치 중에 Perplexica를 클론한 위치로
cd Perplexica

# 업데이트
git pull

# Docker 컨테이너 업데이트 및 재빌드:
docker compose up -d --build

Docker가 아닌 설치의 경우: https://github.com/ItzCrazyKns/Perplexica/blob/master/docs/installation/UPDATING.md를 참조하세요.

FAQ

  • Q: Perplexica란 무엇인가요?

  • A: Perplexica는 perplexity.ai와 Copilot 시스템의 대안으로, 사용자가 자신의 컴퓨터에서 자체 호스팅 가능한 AI 검색 엔진입니다.

  • Q: Ollama와 함께 Perplexica를 설치하고 설정하는 단계는 무엇인가요?

  • A: 단계에는 Ollama 설치, 모델 다운로드, Perplexica 설치가 포함됩니다.

  • Q: Perplexica에 어떤 맞춤 설정 옵션이 있나요?

  • A: 옵션에는 LLama 3.1, Mistral Nemo 또는 Gemma2와 같은 다양한 모델 선택, 로컬 임베딩 모델 설정, 뉴스, 학술 논문, YouTube 영상 및 Reddit 포럼과 같은 다양한 검색 옵션 탐색이 포함됩니다.

  • Q: Perplexica와 함께 사용할 Ollama 모델은 무엇인가요?

  • A: 우리의 테스트에서 가장 좋은 결과는 Perplexica를 llama3.1:8b-instruct-q6_K와 jina/jina-embeddings-v2-base-en:latest 모델과 함께 실행했을 때 얻었습니다.

Ollama (Perplexica의 일반적인 백엔드)가 vLLM, Docker Model Runner, LocalAI 및 클라우드 제공업체와 어떻게 어울리는지 확인하려면 LLM 호스팅: 로컬, 자체 호스팅 및 클라우드 인프라 비교 가이드를 참조하세요.

유용한 링크