Ollama를 사용한 Perplexica 자체 호스팅

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

Page content

정말 흥미롭습니다! 이제 Copilot이나 perplexity.ai에 모든 세상에 당신이 원하는 것을 말하는 대신, 자신의 PC 또는 랩탑에 유사한 서비스를 호스팅할 수 있습니다!

무엇인지

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

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

이러한 시스템은 클라우드에 호스팅되어 있고 어떤 회사(예: Microsoft 또는 Meta)에 속해 있습니다. Perplexica는 자신의 PC 또는 강력한 랩탑에 호스팅할 수 있는 오픈소스 소프트웨어입니다.

Perplexica의 llama3.1 8b q6 및 jina embeddings 응답 여기에서 우리는 Perplexica의 Chat 모델 llama3.1 8b q6과 jina Embedding 모델을 사용하여 질문 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는 도커 내부에서 이를 연결해야 합니다)

[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에 도커화된 Perplexica를 설치했지만, Windows 또는 Mac에서도 매우 유사한 docker-compose를 사용할 수 있습니다.

시작해 보겠습니다!

도커 사용 (권장) 시스템에서 도커가 설치되고 실행되고 있는지 확인하세요.

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

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

OLLAMA: Ollama API URL.

http://host.docker.internal:PORT_NUMBER로 입력해야 합니다.

Ollama를 11434 포트에 설치했다면 (기본값), http://host.docker.internal:11434를 사용하세요. 다른 포트라면 적절히 조정하세요.

Perplexica 디렉토리에 있는 경우, 다음을 실행하세요:

docker compose up -d

이 명령어는 SearxNG 및 기초 노드 도커 이미지를 끌어오고, 두 개의 Perplexica 도커 이미지를 빌드하고 3개의 컨테이너를 시작합니다. 설치가 완료될 때까지 몇 분 정도 기다려야 합니다.

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

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

Perplexica 설정 - Ollama 모델 구성

여기서는 Chat 모델로 llama3.1:8b-instruct-q6_K (Llama 3.1 8b, quantization q6_K)가 선택되어 있고, Embedding 모델로 nomic-embed-text:137m-v1.5-fp16이 선택되어 있습니다.

또한, 더 선호하는 테마인 Light 또는 Dark 테마를 선택할 수도 있습니다.

Perplexica 검색 옵션 (이 아이콘의 눈을 클릭하세요), 어두운 테마에서: Perplexica 검색 옵션

다른 Ollama 모델 설치

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

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

채팅 모델

설치 섹션에서 본 채팅 모델의 전체 이름은 llama3.1:latest이며, 이는 llama3.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_K와 mistral-nemo:12b-instruct-2407-q8_0입니다.

Ollama가 로컬 저장소에 있는 모델을 확인하려면:

ollama list

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

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

임베딩 모델

이것들을 설치할 필요는 없으며, Perplexica는 이미 3개의 임베딩 모델이 사전 설치되어 있습니다: BGE Small, GTE Small, Bert 이중언어. 그들은 괜찮은 성능을 보이지만, 다른 임베딩 모델을 시도해 보는 것도 좋습니다.

위에서 Ollama 설치 섹션에서 nomic-embed-text:latest 임베딩 모델을 설치했습니다. 이는 좋은 모델이지만, jina/jina-embeddings-v2-base-en:latestbge-m3:567m-fp16도 시도해 보는 것이 좋습니다.

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

도커가 아닌 설치 방법은 여기에서 확인하세요: https://github.com/ItzCrazyKns/Perplexica/blob/master/docs/installation/UPDATING.md

FAQ

  • Q: Perplexica란 무엇인가요?

  • A: Perplexica는 무료로 호스팅할 수 있는 AI 검색 엔진이며, perplexity.ai 및 Copilot 시스템의 대안으로, 사용자가 자신의 컴퓨터에 로컬에서 검색 엔진을 실행할 수 있도록 합니다.

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

  • A: 단계에는 Ollama 설치, 모델 끌어오기, Perplexica 설치가 포함됩니다.

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

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

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

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

유용한 링크