はじめに
AMDのRyzen AI Max+ 395を搭載する GMKtec EVO-X2は、dGPUには及ばないもののそこそこのiGPUを備えており、大容量の共有メモリを利用することで、これまで高価でメモリリッチなGPUでしか動作しなかった大規模なモデルをローカル環境で動作させることが可能です。
本記事では、そんなEVO-X2を使って、オープンソースのAIサーバーである Lemonade を導入し、LLMのローカル実行環境を構築する手順を紹介します。
Lemonadeとは?
- Lemonadeは、LLM・画像生成・音声モデル(TTS・STT)をローカルのハードウェア上で直接実行できるオープンソースのローカルAIサーバーです。AMDが支援しており、AMD環境での動作に特化しています(Appleシリコンでも一部動くらしいです)。制限はありますがNPUでLLMを走らせることもできます
- シンプルな管理: CLIからモデルのプル、ロード、実行を完結、WebUIも提供します
- 広範な互換性: OpenAI・Anthropic・Ollama互換APIを提供します
ちゃちゃっとパッケージを入れてしまえばある程度一通り使える状態になるというのが良いところかと思います。
逆に細かくチューニングしたい場合は設定の手間がかかったり、Lemonadeが勝手に設定して変更できなかったりするものもあるので向いていない感じです。
1. 環境セットアップ
| PC | GMKtec EVO-X2 |
| CPU | AMD Ryzen AI Max+ 395 |
| iGPU | Radeon 8060S |
| RAM | LPDDR5x 128GB |
| OS | Ubuntu 24.04 LTS |
GPU単体の性能としてはGeforceRTX5050より少し遅いくらいのようです(メーカーの宣伝文句ではRTX4070を凌駕し~というような説明はありますが、実用上の性能は全然そんなことないです)。
SDXLで同じ条件の画像生成を行う場合だと、16GBのVRAMに収まる出力サイズの場合は手持ちの4070TiSuperの方が4倍~高速です。
(消費電力が全然違うので比較にならないですが、パフォーマンスを知りたい方の参考値として)
カーネルの更新
Ubuntu 24.04の場合、OEMカーネルが必要になります。
# システムの更新
sudo apt update
sudo apt upgrade
# OEM カーネルのインストール
sudo apt install linux-oem-24.04c
24.04dだとNIC(RTL8125?)の認識が怪しくなるということですので24.04cを入れます
# 再起動して適用
sudo reboot
uname -r
# 6.17.0-1020-oem
2. GPUドライバのインストール
インストール手順
wget https://repo.radeon.com/amdgpu-install/25.35.1/ubuntu/noble/amdgpu-install_7.2.1.70201-1_all.deb
sudo apt -y install amdgpu-install_7.2.1.70201-1_all.deb
reboot
sudo amdgpu-install -y --usecase=rocm-no-dkms
sudo usermod -a -G render,video $LOGNAME
sudo reboot
動作確認
GPUが正しく認識され、ROCmが動作しているかを確認します。
rocminfo
rocm-smi
3. GTTのサイズを増やす
amd-ttm を使用すると、VRAMの要求に応じてシステムRAMからVRAMとして動的に割り当てることができる領域(GTT)のサイズを強制的に変更し、BIOSで設定可能な上限量(96GB)を超えてVRAMを確保できるようになります(が、その分CPUが使用するメモリ領域を奪うことになるので、必要なメモリを確保できずハングアップする可能性は高くなります)。
BIOSの UMA Frame Buffer Sizeは「最小 (最新のBIOSでは2GB)」 に設定することを推奨します。
BIOSで設定しているVRAMのサイズは専用領域としてiGPU専用に予約されるので、CPUが認識し使用可能なRAMの量がその分減ります。
平たく言うと、CPU/GPUどっちからでも使用できる領域をでかく取った方がお得だよねという感じです。
amd-ttmの導入
sudo apt install pipx -y
pipx ensurepath
※ pipx ensurepath 実行後はターミナルの再起動が必要です。
pipx install amd-debug-tools
VRAM拡張設定
搭載メモリ量に合わせて、GPUが利用可能な上限値を設定します。
# 現在の設定確認
amd-ttm
# 例: 128GB RAM 搭載機で 108GB を割り当てる場合
amd-ttm --set 108
設定後、OSの再起動が必要です。
前述のとおり、ハングアップの可能性があるのであまり余裕のない設定は推奨されませんが、VRAMの使用量をマネジメントするのであれば
amd-ttm --set 123
amd-ttm
# 💻 Current TTM pages limit: 32243712 pages (123.00 GB)
# 💻 Total system memory: 123.47 GB
といった設定も可能です(実際私の環境ではLLMで112GBを超えるVRAMを確保する場合がありますが、ハングアップせず動作します)
4. lemonadeのインストール
lemonadeは公式PPAを提供しています。
インストール・設定手順
# PPA の追加
sudo add-apt-repository ppa:lemonade-team/stable -y
sudo apt update
# サーバー本体のインストール
sudo apt install lemonade-server -y
# (オプション) Web UI デスクトップアプリを導入する場合
sudo apt install lemonade-desktop -y
インストール後、モデルをロードするとサーバーがバックグラウンドで起動します。
WebUIには http://localhost:13305 からアクセス可能です。
設定ファイルはちょっとわかりづらいですが、
/var/lib/lemonade/.cache/lemonade/config.json
にあります。
sudo nano /var/lib/lemonade/.cache/lemonade/concig.json
# 設定変更を適用して再起動
sudo systemctl restart lemond
デフォルトだとctx_sizeがかなり小さめなので広げておいた方がよさそうです。
サーバーのポートを変えたい場合はportを変更します。
また、外部のホストから使用する場合はhostを0.0.0.0などにしておきます。
大きいモデルを使用する場合はglobal_timeoutも伸ばしておいた方が良いでしょう。
設定ファイルの詳細なヘルプは下記にあります。
5. モデルの利用方法
モデルのダウンロードと実行
lemonadeはCLIからモデルを管理できます。
# 利用可能なモデル一覧を表示(プリセット)
lemonade list
# lemonadeがプリセットとして持っているモデルをダウンロード
lemonade pull Qwen3-0.6B-GGUF
# Hugging Face から直接指定してダウンロード
lemonade pull unsloth/Qwen3.5-27B-GGUF:Q8_0
HuggingFaceで公開されているモデルの場合、モデルカードのページにあるUse this modelのドロップダウンを開くと一番下のview all local appsの中にLemonadeがあり、選択すると下記のようなポップアップが表示されます。このポップアップから量子化のビット数を選択してコマンドをコピーすることができます。

6. モデルのカスタム設定
HuggingFaceからpullしたモデルの情報は以下のファイルに登録されます。
/var/lib/lemonade/.cache/lemonade/user_models.json
llamacppの起動オプションはrecipe_optionsのllamacpp_argsで指定できますが、--jinjaはデフォルトで挿入されるため記述するとエラーになります。
また、ctx_sizeは、llamacpp_argsに含まれず独立の設定になります(config.jsonの設定値を上書きします)。
{
"Qwen3.6-35B-A3B-GGUF": {
"checkpoint": "unsloth/Qwen3.6-35B-A3B-GGUF:UD-Q8_K_XL",
"labels": [
"custom",
"vision",
"tool-calling",
"coding"
],
"mmproj": "mmproj-BF16.gguf",
"recipe": "llamacpp",
"recipe_options": {
"ctx_size": 1048576,
"llamacpp_args": "-np 4 --temp 0.6 --repeat-penalty 1.1 -fa on --special"
},
"suggested": true
}
}
recipe_opeionsはrecipe_options.jsonとして別ファイル分けることもできます。
{
"user.Qwen2.5-Coder-1.5B": {
"ctx_size": 16384,
"llamacpp_backend": "rocm"
}
}
user_models.jsonで設定したモデルは user. プレフィックスをつけることになっています。
lemonade run user.Qwen3.6-35B-A3B-GGUF
lemonadeが採用しているllamacppのバージョンにより、対応していない新しいチャットテンプレート構文を使用するモデルを使用できない場合があります。
(2026/5/17現在、unsloth/Devstral-2-123B-Instruct-2512-GGUFはロードしようとしても失敗します)
使用例: Claude Codeから使用する
LemonadeはAnthropicのAPI互換サーバー機能を提供しており、ClaudeCodeから使用することも(一応は)できます。
export ANTHROPIC_AUTH_TOKEN=lemonade
export ANTHROPIC_BASE_URL=http://<lemonadeサーバー>:<ポート番号>
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
export CALUDE_CODE_ATTRIBUTION_HEADER=0
export CLAUDE_CODE_ENABLE_TELEMETORY=0
claude --model user.Qwen3.6-35B-A3B-GGUF
実際にClaude Codeから使用することは可能なのですが、頻繁に止まる(Claudeがなにも出力せずに推論が終わる―おそらく終端トークン誤爆)・ツールコールがうまく動かないなどがありますし、推論中にエラーでモデルがアンロードされてしまうこともあります(要モデルアンロード→ロード)。
ローカルで動くようなモデルはそもそもあまり賢くないので複雑な指示を与えると頓珍漢な結果を返すことも多く、正直あまり期待はできないと思った方がいいでしょう (ローカルLLMのためだけに現状の値段でメモリ特盛のEVO X2やMac買うくらいならClaudeのMaxプランに課金した方がお得かと)。
最後に
LLMのチャットサーバーという意味ではOllamaでもllamaでも同じようなことはできますが、AMDのサポートを受けているということでNPUはじめ各種対応や最適化も期待できますし、AMD環境でお手軽にLLMサーバーが建てられるという意味ではLemonadeを使うというのはアリかと思います。
他にないものとして、画像生成・STT・TTSが統合されているという点もありますが、現状あまり使い勝手が良いようには見えず、今後に期待という感じですかね。
参考リンク