ローカルLLM導入ガイド
顧客環境(オンプレミス / VPC / 端末)で稼働する Lykuro Native LLM Platform(Private Gateway)と、独自推論エンジン Lykuro Native Inference Engine のインストール手順です。どちらも単一バイナリで、単体で完結して動作します。
| プロダクト | リポジトリ | 役割 |
|---|---|---|
| Native LLM Platform | lykuroai/Native-LLM-Platform(Apache-2.0) | ローカルLLM Runtime を OpenAI 互換 API として提供するゲートウェイ |
| Native Inference Engine | lykuroai/engine | 第三者 Runtime のコードを含まない独自推論エンジン |
Native LLM Platform(Private Gateway)
ローカルLLM Runtime(Lykuro Native Inference Engine / vLLM / Ollama / TGI / OpenAI互換)を OpenAI 互換 API として提供するゲートウェイです。対応OSは Linux / macOS / Windows(amd64 / arm64、Windows は amd64)。プロンプト本文・レスポンス本文は保存しません(Zero-Retention)。
1. バイナリの取得
インストールスクリプトは取得・checksum 検証・配置のみを行います(サービス登録・常駐化はしません)。
curl -fsSL https://raw.githubusercontent.com/lykuroai/Native-LLM-Platform/main/deploy/install.sh | bash
# curl は Invoke-WebRequest の別名のため curl.exe を明示
curl.exe -fsSLO https://raw.githubusercontent.com/lykuroai/Native-LLM-Platform/main/deploy/install.bat; .\install.bat
curl -fsSLO https://raw.githubusercontent.com/lykuroai/Native-LLM-Platform/main/deploy/install.bat && install.bat
手動の場合は Releases から自OSのバイナリと checksums.txt を取得し、SHA-256 を突合してください。ソースからのビルドは make build(Go 1.26+)。
2. 設定の自動生成
private-gateway init -config gateway.yaml
ローカルホストの既知ポートを走査して稼働中の Runtime を検出し、モデル定義と Virtual Key(原文は一度きり表示)を含む検証済みの設定を生成します。Runtime が見つからなくてもモデル 0 件の有効な設定を生成でき、モデルは後から管理画面の取込・init --force の再実行・手編集で追加できます。--cidr で走査範囲を指定できます。
手動で作る場合は config/gateway.example.yaml を gateway.yaml へコピーし、Gateway ID と Runtime エンドポイントを設定します。
3. 起動
実行ファイルをそのまま起動するだけです。常駐化したい場合は systemd / launchd / タスクスケジューラ等でラップしてください。
chmod +x private-gateway_<ver>_<os>_<arch>
./private-gateway_<ver>_<os>_<arch> serve -config gateway.yaml
Expand-Archive private-gateway_<ver>_windows_amd64.zip .
.\private-gateway_<ver>_windows_amd64.exe serve -config gateway.yaml
:::note Windows の注意
zip の SHA-256 を checksums.txt と突合のうえ展開してください。コード署名が無いため SmartScreen の警告が出た場合は「詳細情報 → 実行」または Unblock-File で解除します。
:::
4. ローカル管理画面(任意)
バイナリ埋め込みの Web 管理画面(概要・Virtual Key 管理・設定編集・監査ログ・メトリクス)を使えます。トークン未発行のまま有効化しても起動しません(Fail Closed)。
private-gateway admin-token # トークン発行(一度きり表示。ハッシュのみ保存)
LYKURO_ADMIN_ENABLED=true private-gateway serve -config gateway.yaml
# → http://127.0.0.1:9465 を開き、発行したトークン(lkpadm_…)でログイン
「Runtime 検出」タブでローカルホスト(または CIDR 指定、最大 /22)を走査し、発見した Runtime を承認操作(取込)で設定へ追加できます。取込するまで発見済み Runtime へは一切接続しません。
5. Lykuro からの提供 — 任意
Gateway は単体で完結して動作します。Gateway 上のローカルモデルは、Lykuro が上位プロバイダーの一つとして(DeepSeek や Qwen と同じ仕組みで)Lykuro ユーザーへ提供できます。
:::note Native-LLM-Platform 以外も接続できます
接続できるのは Native-LLM-Platform に限りません。GET /v1/models と Bearer 認証に応答する任意の OpenAI 互換 Gateway / Runtime(vLLM、Ollama、TGI、LM Studio など)を同様に扱えます(認証の無い Runtime はキー欄に任意の文字列)。
:::
- 接続先・提供モデル・価格の設定は Lykuro 運営が行います(Gateway の URL と API キーを添えてお問い合わせください)。モデル一覧は5分間隔で自動同期されます
- 提供されたモデルは、全 Lykuro ユーザーのダッシュボード「ローカルLLM」カタログに掲載され、以下のURLで任意の Lykuro アカウントの API キーから利用できます
https://api.lykuro.ai/pgw/{slug}/v1/chat/completions
- 利用者には Lykuro が設定価格で課金します(Gateway 提供元との商流は Lykuro システム外で取り決めます)
- 前提: Gateway は Lykuro(インターネット側)から到達可能である必要があります
- 中継はリクエスト・レスポンス無改変の透過方式で、プロンプト本文は保存されません(Zero-Retention)
Docker Compose(deploy/docker-compose.example.yaml)・Kubernetes Helm(deploy/helm/lykuro-private-gateway/)でのデプロイも任意で選べます。
Lykuro Native Inference Engine
第三者推論 Runtime のコードを一切含まない独自推論エンジンです。gRPC / protobuf / abseil を静的リンクした単一自己完結バイナリで配布され、外部ライブラリ依存はありません。
1. バイナリの取得
macOS(Apple Silicon)はワンライナーで導入できます(curl は Gatekeeper 隔離を付けないため即実行可)。
curl -fsSL https://raw.githubusercontent.com/lykuroai/engine/main/deploy/macos/install.sh | bash
その他のプラットフォームは Releases から取得します。
| ファイル | プラットフォーム | バックエンド |
|---|---|---|
lykuro-native-engine-macos-arm64 | macOS Apple Silicon | Metal(Mac GPU) |
lykuro-native-engine-linux-cuda-1.0.0.tar.gz | Linux x86_64 + NVIDIA | CUDA GPU |
lykuro-native-engine-linux-amd64 | Linux x86_64(AMD / Intel) | CPU |
lykuro-native-engine-linux-arm64 | Linux aarch64 | CPU |
:::note macOS の注意
バイナリは ad-hoc 署名(未公証)です。ブラウザでダウンロードした場合のみ xattr -d com.apple.quarantine <file> が 1 回必要です。
:::
ソースビルドは CMake ≥ 3.24 / Ninja / C++20 コンパイラで行います:
cmake --preset release -DLYKURO_ENABLE_GRPC=ON
cmake --build --preset release
2. モデル取得と生成(config 不要)
# ローカルモデル一覧
native-engine list
# Hugging Face から取得し Lykuro artifact へ変換(Python 不要)
native-engine pull Qwen/Qwen2.5-0.5B-Instruct
# -> ~/.lykuro/models/Qwen_Qwen2.5-0.5B-Instruct
# 生成(backend 自動選択: macOS=Metal / CUDA / CPU。プロンプト省略で REPL)
native-engine run ~/.lykuro/models/Qwen_Qwen2.5-0.5B-Instruct "日本の首都は?"
オプション: --backend cpu|metal|metal-fp16|cuda[:N]、--max-tokens N、--temperature T、--system "..."。
3. HTTP API サーバ(Ollama / OpenAI 互換)
native-engine serve --http # 127.0.0.1:11434 で待ち受け
モデルは HF repo id で指定し、初回に自動 pull + キャッシュされます。OpenAI SDK は base_url=http://127.0.0.1:11434/v1、api_key は任意文字列で利用できます。
# OpenAI 互換(stream:true で SSE)
curl http://127.0.0.1:11434/v1/chat/completions \
-d '{"model":"Qwen/Qwen2.5-0.5B-Instruct","messages":[{"role":"user","content":"2+2は?"}]}'
# Ollama 互換(stream:true で NDJSON)
curl http://127.0.0.1:11434/api/chat \
-d '{"model":"Qwen/Qwen2.5-0.5B-Instruct","messages":[{"role":"user","content":"色を3つ"}]}'
:::warning 公開範囲の注意
HTTP API は認証なしです。serve --host 0.0.0.0 で外部公開する場合は信頼できる社内 LAN 限定にし、ファイアウォールで制限してください。認証が必要なら次の gRPC + mTLS 形態を使います。
:::
4. 本番形態(gRPC + mTLS)
native-engine serve --config engine.json
{
"engine": { "id": "nie-prod-01", "listen_address": "127.0.0.1", "grpc_port": 19443, "log_level": "info" },
"security": {
"mtls_required": true,
"server_cert_path": "/path/secrets/server.crt",
"server_key_path": "/path/secrets/server.key",
"client_ca_path": "/path/secrets/client-ca.crt",
"control_identities": ["lykuro-model-manager"],
"data_identities": ["lykuro-model-manager", "lykuro-gateway"],
"trusted_signing_keys": ["<Ed25519公開鍵hex>"]
},
"model": { "artifact_path": "/Library/Application Support/Lykuro/Models/current" },
"hardware": { "backend": "cuda", "device_id": 0 }
}
本番はモデル artifact を Ed25519 署名します(fail-closed: 署名鍵も allow_unsigned_dev も無い場合は起動を拒否):
./build/release/tools/sign_artifact keygen signer
./build/release/tools/sign_artifact sign signer.key /models/current
開発用は "security": { "mtls_required": false, "allow_unsigned_dev": true } で mTLS なし・未署名モデル可(起動時に警告)。運用手順はリポジトリの docs/operations/runbook.md を参照してください。
両者をつなぐ
Engine を HTTP API で起動しておけば、Private Gateway が lykuro_native Runtime として検出・取込できます。
# 1. Engine を HTTP モードで起動
native-engine serve --http # 127.0.0.1:11434
# 2. Gateway 側で検出・取込
private-gateway init -config gateway.yaml # 自動検出して設定生成
# または稼働中に: 管理画面「Runtime 検出」タブ → 取込
# 読み取り専用の確認のみなら: private-gateway discover
検出は /api/version の engine フィールドで lykuro_native を識別します。取込後、Gateway の Virtual Key 経由で OpenAI 互換 API として社内へ提供できます。さらに Lykuro のユーザーへ提供したい場合は、上記「Lykuro からの提供」を参照してください。