Ollama を使用した Perplexica のセルフホスティング
ローカルで Copilot 風サービスを実行?簡単です!
それはとても素晴らしいことです! Copilot や Perplexity.ai を呼び出して、世界中に何を求めているかを知られる代わりに、 今ではご自身の PC やラップトップで同様のサービスをホストできるようになりました!
Perplexica は、Copilot や Perplexity.ai と似たシステムです。
- 質問を入力します
- AI がインターネット上で回答を検索します(検索対象を指定できます:学術論文、文章、YouTube、Reddit など)
- 次に、AI が発見したすべての情報を要約します
- 結果を元の Web サイトへの参照と共に提示します
- 右側に関連する画像や YouTube ビデオのリストも表示されます
- さらに、トピックをもう少し掘り下げたい場合のために、クリックして使える追加質問も用意されています
これらのシステムはクラウド上でホストされており、マイクロソフトやメタなどの企業に所属しています。 一方、Perplexica はオープンソースソフトウェアであり、ご自身の PC や高性能なラップトップでホストすることができます。
同じアップストリームコードベースは現在、Vane として配布されています。Vane (Perplexica 2.0) Quickstart With Ollama and llama.cpp では、現在の Docker イメージ、SearxNG、およびローカル推論パスについて、プロジェクト名変更に合わせて解説しています。
ローカル Ollama と vLLM、Docker Model Runner、LocalAI、クラウドプロバイダーとの比較(コストとインフラのトレードオフを含む)については、LLM Hosting: Local, Self-Hosted & Cloud Infrastructure Compared をご覧ください。
ここでは、Chat モデル llama3.1 8b q6 と Embedding モデル jina を使用した Perplexica のレスポンスを示しています。質問は「Who is Elon Mask?」です。
Perplexica はいくつかのモジュールで構成されています。
- SearxNG - メタ検索エンジンです。10 以上の検索エンジンにアクセスして結果を取得し、Perplexica がそれらを統合します。 SearxNG は非常に柔軟に設定でき、各エンジンをオン/オフしたり、新しいエンジンを追加したりできますが、当方の目的にはデフォルト設定で十分機能します。
- Perplexica Backend and Frontend - 技術的には 2 つの別々のモジュールで、1 つは API を提供し、もう 1 つは UI を提供します。
- Ollama Service - これは Perplexica プロジェクトの一部ではありませんが、LLM をローカルでホストしたい場合は、Ollama を使用するのが唯一の手段となります。
したがって、システム全体のインストールは以下の 2 つの大きなステップで構成されます:
- Ollama のインストールと Ollama モデルのダウンロード
- Perplexica と SearxNG のインストール
Ollama のインストール
Ollama を始めるには、以下の手順に従ってください:
以下のスクリプトを実行して Ollama をインストールします:
curl -fsSL https://ollama.com/install.sh | sh
Ollama に好みの LLM をダウンロードさせます。Llama3.1 8b q4 を使用する場合、以下のスクリプトを実行します:
ollama pull llama3.1:latest
Embedding モデルとして使用する(お好みの場合)最新の Nomic-Embed-Text をプルします:
ollama pull nomic-embed-text:latest
Ollama サービスファイルを編集するために以下を実行します:
sudo systemctl edit ollama.service
Ollama をネットワークに公開するために(Docker 内部から 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 のインストール、更新、設定に関する詳細な説明については、以下を参照してください: Install and configure Ollama
他の Ollama モデルを Perplexica で使用する方法の詳細については、以下の「他の 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
設定ファイルを編集します:
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 と base node の Docker イメージがプルされ、2 つの Perplexica Docker イメージがビルドされ、3 つのコンテナが起動します。 セットアップ完了まで数分待ちます。
Web ブラウザで http://localhost:3000 にアクセスして Perplexica を利用できます。
設定(Settings)へ移動します。左下の歯車アイコン(Cog icon)を押し、Ollama モデルを選択してください。

ここでは、Chat モデルとして llama3.1:8b-instruct-q6_K(Llama 3.1 8b、量子化 q6_K)、Embedding モデルとして nomic-embed-text:137m-v1.5-fp16 が選択されているのが確認できます。
また、Light テーマまたは Dark テーマのいずれかをお好きな方を選択することもできます。
Perplexica の検索オプション(ボックス内の目のアイコンをクリック)を Dark テーマで示します:

他の Ollama モデルのインストール
「Ollama のインストール」セクションで、すでに llama3.1:latest と nomic-embed-text:latest モデルをインストール済みです。
チャットには 1 つのモデルだけで十分ですが、利用可能なモデルは多数あります。 それらの挙動はわずかに異なりますが、最も一般的なモデルから始めるのが良いでしょう: Llama3.1、Gemma2、Mistral Nemo、または Qwen2 です。
チャットモデル
インストールセクションで見たチャットモデルの完全な名前 llama3.1:latest は、実際には llama3.1:8b-text-q4_0 です。 これは 80 億パラメータを持ち、量子化が 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 # 例
Embedding モデル
これらのインストールをスキップすることもできます。Perplexica には、BGE Small、GTE Small、Bert bilingual の 3 つの Embedding モデルがプリインストールされています。 これらは悪くありませんが、他の Embedding モデルを試したいかもしれません。
上記の Ollama インストールセクションで nomic-embed-text:latest Embedding モデルをインストールしましたが、良いモデルです。ただし、以下も試すことをお勧めします:
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
ご自身の Perplexica サーバーの IP アドレスを docker-compose.yaml に設定します:
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
# プロジェクトフォルダに移動
# インストール時にクローンした場所
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 は、無料でセルフホスト可能な AI 検索エンジンであり、perplexity.ai や Copilot システムの代替として、ユーザーがローカルで独自の検索エンジンを稼働させることを可能にします。
-
Q: Perplexica を Ollama と共にインストール・セットアップする手順は何ですか?
-
A: Ollama のインストール、モデルのプル、そして Perplexica のインストールというステップが含まれます。
-
Q: Perplexica で利用可能なカスタマイズオプションは何ですか?
-
A: LLama 3.1、Mistral Nemo、Gemma2 などの異なるモデルを選択したり、ローカル Embedding モデルを設定したり、ニュース、学術論文、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 Hosting: Local, Self-Hosted & Cloud Infrastructure Compared ガイドをご覧ください。
参考リンク
- Perplexica サイトのインストール手順:https://github.com/ItzCrazyKns/Perplexica
- Exposing Perplexica to network
- Install Ollama and Move Ollama Models to Different Folder
- LLMs comparison: Mistral Small, Gemma 2, Qwen 2.5, Mistral Nemo, LLama3 and Phi
- Ollama cheatsheet