ローカル環境で大規模言語モデル(LLM)や音声認識(Whisper)などのAIを、AMD製のGPUやNPU(Ryzen AI)を活用して高速・簡単に動作させるためのオープンソースソフトウェア「Lemonade」が手軽に導入出来そうだったので試してみました。
LemonadeはAMD製のRyzen AI NPUやRadeon GPUで最大のパフォーマンスを発揮するように設計されており、特にAMD環境でのローカルAI動作に強いそうですが、非搭載PCでも動かせます。またWindows、Linux、macOSに対応しており、初心者でもローカルLLM環境を導入しやすいとのこと。OpenAIのAPIと互換性があるため、既存のAIアプリケーションをローカルで動かしやすいそうです。
導入はサイトで分かりやすく解説されていますが、一括で導入出来るスクリプトを。今回はVM環境のUbuntu24.04に導入してみました。lemonade-desktopも入れるため、オプションを追加してインストールしています。

VM環境にインストール
nano install-lemonade.sh
sudo bash install-lemonade.sh --desktop
#!/usr/bin/env bash
# =============================================================================
# Lemonade Server — Ubuntu 24.04 インストールスクリプト (公式 PPA 版)
# https://lemonade-server.ai/
#
# 使い方:
# sudo bash install-lemonade.sh [オプション]
#
# オプション:
# --desktop lemonade-desktop も一緒にインストール
# --help このヘルプを表示
# =============================================================================
set -euo pipefail
# ── カラー定義 ────────────────────────────────────────────────────────────────
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'
CYAN='\033[0;36m'; BOLD='\033[1m'; RESET='\033[0m'
info() { echo -e "${CYAN}[INFO]${RESET} $*"; }
success() { echo -e "${GREEN}[OK]${RESET} $*"; }
warn() { echo -e "${YELLOW}[WARN]${RESET} $*"; }
error() { echo -e "${RED}[ERROR]${RESET} $*" >&2; exit 1; }
# ── オプション解析 ─────────────────────────────────────────────────────────────
INSTALL_DESKTOP=false
for arg in "$@"; do
case "$arg" in
--desktop) INSTALL_DESKTOP=true ;;
--help)
echo "使い方: sudo bash $0 [--desktop]"
echo " --desktop lemonade-desktop も追加インストール"
exit 0 ;;
*) error "不明なオプション: $arg" ;;
esac
done
# ── バナー ────────────────────────────────────────────────────────────────────
echo -e "${BOLD}${YELLOW}"
cat << 'EOF'
_ _
| | ___ _ __ ___ ___ _ __ __ _| |__
| | / _ \ '_ ` _ \ / _ \| '_ \ / _` | '_ \
| |__| __/ | | | | | (_) | | | | (_| | |_) |
|_____\___|_| |_| |_|\___/|_| |_|\__,_|_.__/
Server — Ubuntu 24.04 インストーラー (PPA 版)
EOF
echo -e "${RESET}"
# ── root チェック ──────────────────────────────────────────────────────────────
if [[ "$EUID" -ne 0 ]]; then
error "このスクリプトは root (sudo) で実行してください。\n 例: sudo bash $0"
fi
# ── OS チェック ───────────────────────────────────────────────────────────────
if [[ -f /etc/os-release ]]; then
. /etc/os-release
if [[ "$ID" != "ubuntu" ]]; then
warn "Ubuntu 以外の OS ($ID) が検出されました。続行しますが動作は保証されません。"
elif [[ "$VERSION_ID" != "24.04" ]]; then
warn "Ubuntu $VERSION_ID が検出されました。推奨は 24.04 LTS です。"
else
success "Ubuntu 24.04 LTS を確認しました"
fi
fi
# ── 必要ツールのインストール ───────────────────────────────────────────────────
info "必要ツールを確認中..."
apt-get update -qq
apt-get install -y --no-install-recommends \
software-properties-common \
curl \
ffmpeg \
> /dev/null
success "必要ツール完了"
# ── 公式 PPA の追加 ───────────────────────────────────────────────────────────
info "公式 PPA を追加中: ppa:lemonade-team/stable"
add-apt-repository -y ppa:lemonade-team/stable > /dev/null 2>&1
apt-get update -qq
success "PPA 追加完了"
# ── lemonade-server インストール ──────────────────────────────────────────────
info "lemonade-server をインストール中..."
apt-get install -y lemonade-server > /dev/null
success "lemonade-server インストール完了"
# ── lemonade-desktop (オプション) ─────────────────────────────────────────────
if [[ "$INSTALL_DESKTOP" == true ]]; then
info "lemonade-desktop をインストール中..."
apt-get install -y lemonade-desktop > /dev/null
success "lemonade-desktop インストール完了"
fi
# ── systemd サービスの有効化・起動 ────────────────────────────────────────────
info "systemd サービスを有効化・起動中..."
systemctl daemon-reload
systemctl enable lemonade-server.service 2>/dev/null || true
systemctl restart lemonade-server.service
# 起動確認(最大 20 秒待機)
TIMEOUT=20; ELAPSED=0
until systemctl is-active --quiet lemonade-server.service || [[ $ELAPSED -ge $TIMEOUT ]]; do
sleep 1; ((ELAPSED++))
done
if systemctl is-active --quiet lemonade-server.service; then
success "lemonade-server サービスが起動しています"
else
warn "サービスの起動確認がタイムアウトしました。手動で確認してください:"
warn " sudo systemctl status lemonade-server"
fi
# ── バージョン確認 ─────────────────────────────────────────────────────────────
VERSION=$(apt-cache policy lemonade-server 2>/dev/null \
| grep 'Installed:' | awk '{print $2}') || VERSION="不明"
# ── 完了メッセージ ─────────────────────────────────────────────────────────────
echo ""
echo -e "${GREEN}${BOLD}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${RESET}"
echo -e "${GREEN}${BOLD} 🍋 Lemonade Server (${VERSION}) のインストールが完了しました!${RESET}"
echo -e "${GREEN}${BOLD}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${RESET}"
echo ""
echo -e " ${BOLD}Web UI / API エンドポイント:${RESET}"
echo -e " http://localhost:13305"
echo ""
echo -e " ${BOLD}よく使うコマンド:${RESET}"
echo -e " lemonade-server recipes # 対応モデル一覧"
echo -e " lemonade run Llama-3.2-3B # チャット用 LLM"
echo -e " lemonade run SDXL-Turbo # 画像生成"
echo -e " lemonade run Whisper-Large-v3-Turbo # 音声認識"
echo -e " lemonade run kokoro-v1 # 音声合成"
echo ""
echo -e " ${BOLD}サービス管理:${RESET}"
echo -e " sudo systemctl status lemonade-server # ステータス確認"
echo -e " sudo systemctl restart lemonade-server # 再起動"
echo -e " sudo journalctl -u lemonade-server -f # ログ確認"
echo ""
echo -e " ${BOLD}アップデート:${RESET}"
echo -e " sudo apt update && sudo apt upgrade lemonade-server"
echo ""
echo -e " ${BOLD}公式ドキュメント:${RESET} https://lemonade-server.ai/docs/"
echo ""
起動したら、何か話しかけると、初回は自動的にモデルのダウンロードが行われ、回答が返ってきます。

英語での回答のあとに、日本語で表示されますね。

各モデルの特徴
🍋 Lemonade Server — モデル一覧
lemonade-server.ai / Ubuntu 24.04| Model | Size (GB) | Backend | GPU | Tags & 特徴 |
|---|
カテゴリの内訳:
- チャット LLM — Qwen3 / Llama 3 / DeepSeek-R1 / Phi-4 / Gemma シリーズ(0.38 GB〜18 GB)
- ビジョン — Gemma-3・Qwen2.5-VL シリーズ(画像を理解してチャットできるマルチモーダルモデル)
- 画像生成 — SD-Turbo / SDXL / Flux シリーズ+RealESRGAN(4x アップスケール)
- 音声 — Whisper(文字起こし)+ kokoro-v1(TTS 読み上げ)
- 埋め込み — nomic-embed-text(RAG・セマンティック検索向け)
- 特殊用途 — bge-reranker(RAG リランキング)・Qwen2.5-Coder / Qwen3-Coder(コーディング特化)
Ubuntu 24.04 の場合、バックエンドは Vulkan(GPU)または ROCm(AMD GPU) が使えます。NPU 専用モデル(FLM / OGA)は Windows 限定のため、今回のスクリプトでは llama.cpp ベースのモデルが主な対象になります。
Tailscale経由で別PCから利用する方法
デフォルトではlocalhostのみ受け付けているので、外部からアクセスしたい場合は全インターフェースに開放します。
① Lemonade のバインドアドレスを変更する
全インターフェースに開放します。
# 設定を変更(再起動後も永続)
lemonade config set host=0.0.0.0
# サービスを再起動して反映
sudo systemctl restart lemonade-server
確認。
# 0.0.0.0:13305 でリッスンしているか確認
ss -tlnp | grep 13305
② API キーを設定する
0.0.0.0 に開いた状態はネットワーク上の全員が叩けるので、キーを設定しておいたほうが安全です。
# systemd の override ファイルにキーを追記
sudo systemctl edit lemonade-server
エディタが開いたら以下を入力して保存。
[Service]
Environment="LEMONADE_API_KEY=ここに任意の強力なキー"
サービスを再起動して反映させます。
sudo systemctl daemon-reload
sudo systemctl restart lemonade-server
別 PC からアクセスする際はヘッダーに載せます。
curl http://<Tailscale-IP>:13305/api/v1/models \
-H "Authorization: Bearer ここに任意の強力なキー"
③ Tailscale 側の確認
Tailscale 自体は追加設定不要です。サーバーの Tailscale IP を確認して別 PC のブラウザから http://100.x.x.x:13305 でそのまま Web UI にアクセスできます。
tailscale ip -4
# 例: 100.x.x.x
構成イメージ
Ubuntu VM (Tailscale: 100.x.x.x)
└─ lemonade-server 0.0.0.0:13305
└─ Tailscale トンネル(暗号化済み)
└─ 別 PC: http://100.x.x.x:13305
Tailscale はトラフィックをすでに WireGuard で暗号化しているので、ファイアウォールで Tailscale インターフェース(tailscale0)のみ 13305 を許可する構成にするとより安全です。
# tailscale0 からのみ許可(任意・より堅牢にしたい場合)
sudo ufw allow in on tailscale0 to any port 13305
sudo ufw deny 13305 # 他からはブロック
sudo ufw reload
他のサービスから呼び出して利用するには
OpenAI 互換プロバイダーは CUSTOM_OPENAI_BASE_URL を指定するだけでLemonade をそのままバックエンドにして使えます。たとえば、あとで読む系のLinkwardenの場合、.env に追記するだけです。できます。
# Lemonade Server を AI バックエンドとして指定
CUSTOM_OPENAI_BASE_URL=http://100.x.x.x:13305/api/v1
OPENAI_MODEL=Llama-3.2-3B-GGUF
OPENAI_API_KEY=lemonadeで設定したAPIキー
100.x.x.x は Lemonade が動いている VM の Tailscale IP です。API キーを設定していない場合は OPENAI_API_KEY=dummy でも通ります。設定後は Linkwarden を再起動して、Settings → Preferences から AI Tagging を有効にするだけです。
モデル選びの注意点
ツール呼び出し(tool use)に対応したモデルでないと動作しないというコミュニティ報告もあるようです。Linkwarden の AI タギングは structured output を使うため、以下のモデルが特に推奨だそうです。
| モデル | ツール対応 | 軽さ |
|---|---|---|
Qwen3-4B-GGUF | ✅ | 軽い (~2.6GB) |
Qwen3-8B-GGUF | ✅ | 中 (~5GB) |
Llama-3.1-8B-GGUF | ✅ | 中 (~5GB) |
Phi-4-Mini-GGUF | ✅ | 軽い (~2.5GB) |
Llama-3.2-3B は tool calling の実装が不完全な場合があるため、Qwen3-4B が一番バランスが良さそうです。これで、完全にローカル・プライベートな AI タギングパイプラインが出来上がります。クラウド API 不要・コスト ゼロです。


