Secure Minions プロトコルにより、暗号化された Ollama とフロンティアモデルの連携が可能に
TL;DR
Secure Minions は、Minions フレームワークにエンドツーエンド暗号化を追加し、ローカルの Ollama モデル(例:Gemma 3 4B)が、送信中やリモート推論中に平文を一切公開することなく、フロンティア・クラウドモデル(例:GPT-4o)と連携できるようにします。
Secure Minions が追加するもの
Secure Minions は、ローカルとリモートの通信チャネル全体を暗号化することで、元の Minions プロトコルを拡張し、クラウドプロバイダーからも保護します。主な革新は、NVIDIA Hopper H100 GPU の confidential computing mode を使用して、ハードウェアで保護されたメモリ内で復号、推論、および再暗号化を行うセキュア・エンクレーブを作成することです。
コアとなるセキュリティ・メカニズム
- Key Exchange – ローカルデバイスと H100 GPU は、相互の鍵交換を行います。
- Remote Attestation – GPU は、自身が本物であり、confidential mode で動作していることを証明し、なりすましハードウェアを防ぎます。
- Secure Enclave – GPU 内のすべてのメモリと計算は暗号化されており、ホストの root ユーザーであっても平文を読むことはできません。
- End-to-End Encryption – ローカル LLM のメッセージは送信前に暗号化され、エンクレーブ内でのみ復号され、クラウド LLM によって処理され、再暗号化されて送り返されます。
"No plaintext is exposed – during transmission or remote LLM inference." – Hazy Research announcement
パフォーマンスへの影響
最大 ~8k トークンのプロンプトと Qwen-32B のような大規模モデルを用いたテストでは、追加のレイテンシは 1% 未満であり、強力な機密性がレスポンス性能を損なわないことを示しています。
コストとプライバシーのメリット
- Cost Savings – 連携に必要な最小限の暗号化トークンのみを送信することで、このプロトコルは、元の Minions システムで報告された 5x-30x のクラウドコスト削減を実現しつつ、フロンティアモデルの精度を 98% 維持します。
- Privacy Upside – 機密性の高いコンテキストは平文でローカルデバイスを離れることがないため、ローカルファースト LLM セットアップの主なプライバシー懸念に対処します。
Getting Started
# Clone the Minions repository
git clone https://github.com/HazyResearch/minions.git
cd minions
# Optional: create a virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Install the package in editable mode
pip install -e .
# Pull a local Ollama model (e.g., Gemma 3 4B)
ollama pull gemma3:4b
Running the Secure Demo
このリポジトリには、元の Minion プロトコルと Secure Minion (MinionS) プロトコルの両方を実示する Streamlit アプリが含まれています。
streamlit run app.py
アプリの設定:
- Remote Provider: "Secure"
- Secure Endpoint URL:
http://20.57.33.122:5056 - Local Client: Ollama と選択したモデル。

Example Python Usage
from minions.clients.secure import SecureClient
from minions.clients.ollama import OllamaClient
from minions.minion import Minion
remote_client = SecureClient(
endpoint_url="http://20.57.33.122:5056",
verify_attestation=True,
)
local_client = OllamaClient(model_name="gemma3:4b")
protocol = Minion(local_client=local_client, remote_client=remote_client)
task = "How many grand slams did he win"
context = """John Doe, a legendary tennis player, ..."""
output = protocol(
task=task,
doc_metadata="file",
context=[context],
max_rounds=5,
)
print(output)
スクリプトを python example.py で実行します。
Further Reading
- Minions GitHub repository: https://github.com/HazyResearch/minions
- Hazy Research security blog post: https://hazyresearch.stanford.edu/blog/2025-05-12-security
- Original Minions paper (ICML 2025): https://arxiv.org/abs/2502.15964
Sources
関連
- Dispatch
- Dispatch
- プロジェクト
- Dispatch
- プロジェクト