Lemonade: open-source сервер для локального ИИ с поддержкой GPU и NPU

Lemonade: open-source сервер для локального ИИ с поддержкой GPU и NPU

Lemonade интересен не тем, что умеет локально отвечать на вопросы. Таких оболочек уже много. Интереснее другое: Lemonade пытается стать нормальным локальным сервером для ИИ с единым API, несколькими бэкендами и упором на GPU и NPU, а не только на CPU. Если нужен не просто чат на ноутбуке, а локальная точка входа для редактора кода, агента, RAG, распознавания речи и генерации картинок, тогда проект уже выглядит серьезнее, чем очередная GUI-обертка.

Главный практический смысл Lemonade очень простой. Вы поднимаете локальный сервис, ставите модели, выбираете бэкенд под железо и отдаете приложению OpenAI-совместимый endpoint. Дальше Continue, Open WebUI, n8n или собственный код работают не с внешним облаком, а с вашим ПК. Ниже как раз та часть, которой не хватало: как устроен стек, как установить Lemonade на Windows и Linux, как загрузить модель, как дергать API и где проект пока дает сбои.

Что такое Lemonade Server и как устроена архитектура локального ИИ-сервера

По документации Lemonade Server реализует стандартный OpenAI API и добавляет свои служебные endpoint’ы для установки, загрузки и выгрузки моделей. Внутри нет одного универсального движка. Lemonade собирает несколько рантаймов под разные задачи и железо:

Задача Бэкенд Что важно знать
LLM в GGUF llama.cpp Может работать через Vulkan, ROCm, CPU, на части сценариев и через Metal
LLM на NPU и hybrid FastFlowLM / ryzenai-llm Самый интересный путь для Ryzen AI и XDNA2
STT whisper.cpp Поддерживает CPU, Vulkan, а на части конфигураций и NPU
Генерация изображений stable-diffusion.cpp Работает через отдельный image endpoint
TTS Kokoro На текущий момент модель называется kokoro-v1

Технически Lemonade ближе к оркестратору. Сервер знает, где лежат модели, умеет скачивать их из реестра или из Hugging Face, может загрузить модель в память заранее через /api/v1/load, а затем обслуживать обычные запросы на /api/v1/chat/completions, /api/v1/embeddings, /api/v1/audio/transcriptions, /api/v1/images/generations и другие endpoint’ы.

Какие требования к железу и в чем разница между GPU и NPU в Lemonade

Lemonade не привязан только к AMD, но именно на AMD его логика выглядит наиболее цельной. На обычных x86-системах можно работать через CPU. На машинах с Radeon доступен путь через Vulkan и ROCm. На Ryzen AI 300 и других системах с XDNA2 появляется NPU-сценарий. Для старых Ryzen AI 7000/8000/200 с XDNA1 полноценный LLM-инференс на NPU пока не заявлен как рабочий маршрут.

Здесь важно не путать роли ускорителей. GPU нужен для тяжелого инференса и больших моделей, особенно GGUF через llama.cpp. NPU интересен не максимальной скоростью любой ценой, а энергоэффективностью и локальными сценариями AI PC, где хочется держать агент, диктовку или помощника постоянно включенными. В реальной жизни схема часто смешанная: часть работы уходит на GPU, часть на NPU, часть остается на CPU.

Установка Lemonade Server на Windows

Самый простой маршрут на Windows сейчас такой. Скачиваете свежий MSI из релизов, ставите полный пакет lemonade.msi или минимальный серверный пакет lemonade-server-minimal.msi, после установки проверяете, что CLI появился в PATH.

lemonade-server --version
 lemonade-server serve
 curl http://localhost:8000/api/v1/health

Если нужен именно NPU на AMD Ryzen AI, сначала ставьте драйвер NPU, а уже потом Lemonade. У команды проекта для Windows маршрут заметно проще, чем для Linux. После установки сервер по умолчанию слушает localhost:8000.

Для первого запуска достаточно:

lemonade-server serve --no-tray

Если хотите сразу задать другой порт и явный GPU-бэкенд для llama.cpp:

lemonade-server serve --port 8080 --llamacpp vulkan
 lemonade-server serve --port 8080 --llamacpp rocm

На Ryzen AI для лучшей отдачи NPU в официальном FAQ рекомендуют включить turbo-режим:

cd C:WindowsSystem32AMD
 .xrt-smi configure --pmode turbo

Установка Lemonade Server на Linux

На Linux жизнь чуть сложнее, потому что здесь нужно разделять два сценария. Первый сценарий простой: обычный сервер на CPU или GPU. Второй сценарий более капризный: NPU на XDNA2 через FastFlowLM.

Базовая установка на Ubuntu для CPU или GPU

Скачайте актуальный .deb из релизов и поставьте пакет стандартным способом:

sudo apt install ./lemonade-server_*.deb
 lemonade-server --version
 lemonade-server serve --no-tray
 curl http://localhost:8000/api/v1/health

Для Fedora у проекта есть .rpm, для macOS beta доступен .pkg. На Linux сервер удобно запускать без tray-интерфейса, особенно на рабочей станции или домашнем мини-сервере.

Установка Lemonade с NPU на Linux

С марта 2026 у Lemonade появился уже не теоретический, а вполне рабочий гайд по XDNA2 NPU на Linux. Но здесь уже нужен не только сам Lemonade, а целая цепочка: свежий драйвер amdxdna, XRT, FastFlowLM, актуальная прошивка NPU и нормальный memlock.

Для Ubuntu 24.04 и 25.10 официальный маршрут выглядит так:

sudo add-apt-repository ppa:lemonade-team/stable
 sudo apt update
 sudo apt install libxrt-npu2 amdxdna-dkms
 sudo reboot

После перезагрузки ставится FastFlowLM из релиза проекта:

sudo apt install ./<flm_package.deb>

На Ubuntu 26.04 путь уже короче, потому что часть стека новее. На Arch нужны xrt, xrt-plugin-amdxdna, свежий kernel и пакет fastflowlm. Критичная деталь здесь простая: Linux NPU-путь уже живой, но зрелость у него ниже, чем у Windows. Для пилота и лаборатории нормально, для продакшена нужно больше терпения.

Как проверить, что Lemonade реально работает

После старта сервера первым делом проверьте здоровье сервиса и список моделей.

curl http://localhost:8000/api/v1/health
 curl http://localhost:8000/api/v1/models
 curl http://localhost:8000/api/v1/models?show_all=true

/api/v1/health покажет, жив ли сервер и какие модели загружены. /api/v1/models возвращает модели в OpenAI-совместимом формате. Если указать show_all=true, Lemonade покажет не только уже скачанные модели, но и каталог доступных.

Как установить модель в Lemonade и выбрать правильный бэкенд

У Lemonade есть два пути. Первый путь через CLI. Второй через HTTP API. Для старта CLI проще.

lemonade-server pull Qwen2.5-0.5B-Instruct-CPU
 lemonade-server list

Если хотите зарегистрировать и скачать свою модель из Hugging Face, а не брать только встроенный реестр Lemonade, используется более явный вызов:

lemonade-server pull user.Phi-4-Mini-GGUF 
   --checkpoint unsloth/Phi-4-mini-instruct-GGUF:Q4_K_M 
   --recipe llamacpp

То же самое можно сделать через HTTP:

curl -X POST http://localhost:8000/api/v1/pull 
   -H "Content-Type: application/json" 
   -d '{
     "model_name": "user.Phi-4-Mini-GGUF",
     "checkpoint": "unsloth/Phi-4-mini-instruct-GGUF:Q4_K_M",
     "recipe": "llamacpp"
   }'

Когда модель скачана, ее стоит явно загрузить в память. Здесь как раз выбирается бэкенд и часть параметров инференса.

curl -X POST http://localhost:8000/api/v1/load 
   -H "Content-Type: application/json" 
   -d '{
     "model_name": "Qwen3-0.6B-GGUF",
     "ctx_size": 8192,
     "llamacpp_backend": "rocm",
     "llamacpp_args": "--flash-attn on --no-mmap"
   }'

Если работаете на Vulkan, меняете rocm на vulkan. Для CPU указываете cpu. Для Whisper доступны свои опции, включая NPU и конвертацию.

Как использовать Lemonade через OpenAI API

В этом и есть главный практический плюс проекта. Снаружи Lemonade выглядит как локальный OpenAI-сервер. Поэтому любой OpenAI-совместимый клиент можно просто перенаправить на локальный endpoint.

Простейший запрос на чат:

curl -X POST http://localhost:8000/api/v1/chat/completions 
   -H "Content-Type: application/json" 
   -d '{
     "model": "Qwen3-0.6B-GGUF",
     "messages": [
       {"role": "user", "content": "Сделай краткое резюме текста"}
     ],
     "stream": false
   }'

То же самое через Python-клиент OpenAI:

from openai import OpenAI
 
 client = OpenAI(
     base_url="http://localhost:8000/api/v1",
     api_key="lemonade"
 )
 
 resp = client.chat.completions.create(
     model="Qwen3-0.6B-GGUF",
     messages=[{"role": "user", "content": "Напиши короткий ответ"}]
 )
 
 print(resp.choices[0].message.content)

Ключ api_key здесь нужен скорее для совместимости клиента. Если сервер слушает только localhost, Lemonade использует его формально. Если сервер открыт в сеть, уже нужна настоящая защита.

Как работать с эмбеддингами, распознаванием речи, TTS и картинками

Lemonade полезен именно тем, что не упирается в один чатовый endpoint.

Эмбеддинги

curl -X POST http://localhost:8000/api/v1/embeddings 
   -H "Content-Type: application/json" 
   -d '{
     "model": "nomic-embed-text-v1-GGUF",
     "input": ["первый текст", "второй текст"],
     "encoding_format": "float"
   }'

Ограничение есть. По спецификации endpoint эмбеддингов доступен для моделей с recipe llamacpp или flm. ONNX-ветка здесь не универсальна.

Распознавание речи

curl -X POST http://localhost:8000/api/v1/audio/transcriptions 
   -F "file=@/path/to/audio.wav" 
   -F "model=Whisper-Tiny"

На текущий момент в документации указано ограничение на wav и json. Если нужен realtime, Lemonade умеет отдельный WebSocket-маршрут /realtime для потоковой транскрибации, а порт WebSocket можно узнать через /api/v1/health.

Синтез речи

curl -X POST http://localhost:8000/api/v1/audio/speech 
   -H "Content-Type: application/json" 
   -d '{
     "model": "kokoro-v1",
     "input": "Lemonade умеет говорить локально",
     "speed": 1.0,
     "response_format": "mp3"
   }' > speech.mp3

Генерация изображений

curl -X POST http://localhost:8000/api/v1/images/generations 
   -H "Content-Type: application/json" 
   -d '{
     "model": "SD-Turbo",
     "prompt": "industrial control room, cinematic light",
     "size": "512x512",
     "steps": 4,
     "response_format": "b64_json"
   }'

Для image-сценариев Lemonade еще не выглядит заменой зрелых пайплайнов вокруг ComfyUI или Automatic1111, но как единая локальная API-прослойка для приложений работает вполне логично.

Как Lemonade хранит модели и где лежат настройки

Скачанные модели, по FAQ проекта, используют схему хранения Hugging Face и обычно живут в ~/.cache/huggingface/hub/. Внутренние файлы самого Lemonade и служебные настройки лежат в кеше Lemonade, по умолчанию в ~/.cache/lemonade. Там же используется recipe_options.json, где можно сохранять параметры загрузки под конкретные модели.

Практически полезная вещь: один раз загружаете модель с нужными параметрами и просите Lemonade сохранить настройки.

curl -X POST http://localhost:8000/api/v1/load 
   -H "Content-Type: application/json" 
   -d '{
     "model_name": "Qwen3-0.6B-GGUF",
     "ctx_size": 8192,
     "llamacpp_backend": "vulkan",
     "llamacpp_args": "--no-context-shift --no-mmap",
     "save_options": true
   }'

После этого сервер будет помнить рецепт именно для этой модели. Для домашней машины удобно. Для инфраструктуры с несколькими машинами лучше хранить такие настройки в управляемой конфигурации, а не надеяться только на локальный кэш.

Какую схему выбрать на практике: CPU, Vulkan, ROCm или NPU

Если нужен просто рабочий старт, берите CPU или Vulkan. CPU медленнее, зато почти без сюрпризов. Vulkan обычно самый безопасный вариант на смешанном железе, включая часть Intel и NVIDIA-систем. Если у вас Radeon и драйверы в порядке, ROCm может дать более приятную производительность. NPU стоит выбирать не ради галочки, а под конкретный сценарий: постоянный локальный помощник, диктовка, офлайн-агент, экономия энергии на AI PC.

Именно здесь многие ошибаются. Lemonade не отменяет физику железа. Модель на 30B не станет легкой только потому, что у сервера красивый API. Придется смотреть на RAM, VRAM, размер контекста, квантование и конкретный runtime. Если хотите меньше боли, начните с небольшой модели класса 0.5B-4B и только потом двигайтесь выше.

Как обезопасить Lemonade Server и не превратить локальный сервис в дыру в сети

В официальной спецификации команда прямо пишет, что сервер задуман прежде всего для локальных систем. Если хотите открыть Lemonade для других машин в сети, делайте это аккуратно:

lemonade-server serve --host 0.0.0.0 --port 8000

Если сервер будет доступен по сети, задайте API-ключ через переменную окружения:

export LEMONADE_API_KEY="случайная-длинная-строка"

И еще одна критичная деталь. Открывать Lemonade прямо в интернет нельзя. В CLI-гайде команда отдельно предупреждает, что для внешнего доступа нужен HTTPS reverse proxy, иначе трафик пойдет в открытом виде. На практике нормальная схема такая: Lemonade слушает localhost или внутренний интерфейс, снаружи стоит nginx или другой reverse proxy, а сам сервер закрыт firewall’ом.

Локальный ИИ-сервер не делает систему безопасной автоматически. Как только к Lemonade подключаются внешние приложения, агентские пайплайны или коллеги по сети, Lemonade становится полноценным сервисом инфраструктуры. Нужны контроль доступа, обновления, журнал изменений, внятное хранение моделей и обычная сетевая гигиена.

Где Lemonade сильнее всего, а где пока лучше не ждать идеального продакшена

Сильная сторона Lemonade в 2026 году ясна. Проект дает один API для текста, эмбеддингов, речи и изображений, умеет работать с GPU и NPU, дружит с экосистемой OpenAI-совместимых приложений и особенно хорошо смотрится на AMD AI PC. Для разработчика, энтузиаста, маленькой команды или безопасного локального стенда польза очень конкретная.

Слабые места тоже видны. Документация и реальная зрелость отдельных веток развиваются неравномерно. Windows-путь проще. Linux-путь уже серьезный, но местами по-прежнему инженерный, а не бытовой. NPU-сценарии заметно чувствительнее к драйверам, прошивке, ядру и версиям рантайма. Поэтому Lemonade лучше воспринимать как сильный локальный сервер для лаборатории, пилота и приватной рабочей среды, а не как безусловную замену всему продакшен-стеку.

Чек-лист первого запуска Lemonade без лишней боли

  • Сначала поставьте сервер и проверьте lemonade-server --version.
  • Запустите lemonade-server serve --no-tray и убедитесь, что отвечает /api/v1/health.
  • Посмотрите каталог через /api/v1/models?show_all=true.
  • Установите маленькую модель, а не сразу тяжелую.
  • Явно задайте бэкенд через /api/v1/load, чтобы понять, где реально идет инференс.
  • Проверьте один сценарий end-to-end: чат, эмбеддинги или распознавание речи.
  • Только потом подключайте Continue, Open WebUI, n8n или свой код.

Практический вывод по Lemonade Server

Lemonade хорош там, где нужен не просто локальный чат, а нормальный серверный слой для локального ИИ. Поднять сервис, скачать модель, выбрать Vulkan, ROCm или NPU, дернуть OpenAI-совместимый endpoint и встроить все в рабочий пайплайн здесь реально можно без недельной ручной сборки. На Windows вход особенно простой. На Linux вход уже тоже рабочий, но NPU-ветка все еще требует внимания к версиям драйверов и стека.

Если нужен короткий вердикт, он такой. Для AI PC, лаборатории, приватного ассистента, локального RAG, STT и базовой мультимодальности Lemonade уже стоит пробовать. Для большого продакшена с жесткими SLA пока нужен холодный расчет и серия пилотов. Но как инженерная платформа для локального ИИ проект уже не выглядит игрушкой.

FAQ по установке и работе с Lemonade

Можно ли использовать Lemonade без AMD

Да. CPU и часть GPU-сценариев через Vulkan работают и на не-AMD системах. Но самые интересные возможности проекта связаны именно с AMD GPU и XDNA2 NPU.

Нужен ли интернет после установки

Для самой работы локальной модели интернет не обязателен, но для первого скачивания моделей и части компонентов он нужен.

Что выбрать для первого теста

Маленькую GGUF-модель и обычный чатовый endpoint. Так проще понять, что сервер, кэш моделей и бэкенд в порядке.

Можно ли запускать Lemonade на другой машине в локальной сети

Да. Для этого сервер запускают с --host 0.0.0.0, но сразу включают API-ключ, firewall и нормальный reverse proxy, если трафик выходит за пределы доверенной сети.

Подходит ли Lemonade для чувствительных данных

Локальный запуск снижает утечку в облако, но не отменяет требования к логам, правам доступа, лицензиям моделей и защите самой машины.

Перед внедрением проверьте лицензии моделей, политику обработки данных, внутренние требования компании и ограничения железа. Использовать локальный ИИ-сервер нужно ответственно и в рамках закона, включая законодательство РФ. Локальный запуск не дает права нарушать лицензии, обрабатывать данные без законных оснований или открывать сервис в сеть без должной защиты.

AMD Ryzen AI GPU Lemonade llama.cpp NPU ONNX Runtime GenAI open-source OpenAI API локальный ИИ локальный сервер LLM
Alt text
Обращаем внимание, что все материалы в этом блоге представляют личное мнение их авторов. Редакция SecurityLab.ru не несет ответственности за точность, полноту и достоверность опубликованных данных. Вся информация предоставлена «как есть» и может не соответствовать официальной позиции компании.
25
вселенная
смерти
Антипов предупреждает
Уют превращает мозг в кисель.
Вызовы строят личность.
Нейроны дохнут без нагрузки. Узнай, почему твой «рай» — кратчайший путь к деменции.

Техноретроградка

Технологии без шума вентиляторов и сухих спецификаций.