Создание локальной копии Angry Birds с использованием Qwen3.8-27B и Pi
Узнайте, как настроить полностью локальный рабочий процесс для разработки с использованием ИИ, применив LM Studio и агента Pi для создания играбельного уровня Angry Birds с помощью Qwen3.8-27B.
Несколько недель назад небольшой побочный проект решил ответить на довольно абсурдный вопрос: можно ли создать один играбельный уровень для Angry Birds — с физическим движком, механизмом пращи, рушащимися башнями и всем остальным — используя только локальную модель, работающую на обычном потребительском оборудовании? Без ключей API облака, без платежей по тарифам, без кода, покидающего устройство.
Это сработало. Птицы летали по экрану, деревянные блоки падали, а свиньи раздавливались при столкновении. Модель, обеспечивающая всё это, — Qwen3.8-27B, работающая внутри LM Studio и управляемая Pi, агентом для программирования на основе терминала с открытым исходным кодом. Ниже приведена полная инструкция: введение в модель и объяснение того, почему она демонстрирует выдающиеся результаты, несмотря на то что помещается в один Mac, а также точные шаги по установке LM Studio, установке Pi и подключению их так, чтобы Pi направляла свои запросы к вашей локальной модели, а не к облачному провайдеру.
Зачем вообще использовать локальную версию?
Простая причина — это затраты и контроль. Работа с всем локально позволяет получить:
- Полное отсутствие платы за API, независимо от того, сколько часов вы тратите на разработку хобби-проекта.
Что вы теряете, так это максимальную скорость генерации и, как правило, качество результата. Однако этот разрыв сокращается гораздо быстрее, чем предполагают большинство людей, и Qwen3.8-27B является убедительным примером того, насколько способен стать модель с примерно 27 миллиардами параметров, если его тщательно обучить и оптимизировать для использования на бытовом оборудовании.
Знакомство с моделью: Qwen3.8–27B
Qwen3.8-27B был разработан командой Qwen от Alibaba. Это плотная модель с поддержкой обработки изображений, выпущенная под лицензией Apache 2.0, поэтому её можно свободно использовать даже в коммерческих проектах. Прежде чем начинать загрузку объемом более 16 ГБ, вот ключевые характеристики, которые стоит знать:
Архитектура
- 27 миллиардов параметров, распределенных по 64 слоям с скрытым размером в 5,120 измерений
- Гибридная схема внимания: повторяющиеся блоки, сочетающие линейное внимание типа «Gated DeltaNet» с стандартным слоем внимания с регулированием, что позволяет модели сохранять высокую скорость даже при увеличении объема контекста
- Встроенное окно контекста объемом 262,144 токенов, которое можно расширить до 1,000,000
- Процесс обучения с использованием прогнозирования нескольких токенов, что значительно ускоряет локальные вычисления
Результаты тестирования (по данным Qwen, с соответствующими сравнениями с Opus 4.6 Max от Anthropic, где это уместно):
Главный вывод заключается в том, что модель объемом 27 миллиардов параметров способна сравниться или даже превзойти модель с закрытым весовым распределением на тестах по программированию и агентному поведению, что объясняет, почему она является подходящим выбором для повседневного использования, например, в агенте Pi. Речь идет о самоотчетных данных, поэтому до проведения независимых тестов уместно проявлять определенную настороженность — однако результаты практических тестов с проектом Angry Birds, описанными далее, соответствуют этим утверждениям.
Что стоит учитывать с самого начала: Qwen3.8-27B по умолчанию имеет включенную расширенную функцию «размышления» (логических рассуждений) на уровне сложности xhigh. Это полезно для действительно сложных задач, но это также означает, что модель может потратить тысячи токенов на рассуждения при выполнении простых запросов, которые не требуют столь глубокого анализа. Для рутинной работы кодирующего агента достаточно снизить уровень сложности рассуждений до medium или low в настройках модели в LM Studio — это значительно ускорит ответы без существенного снижения качества. Оставьте уровень xhigh для задач, которые действительно требуют такой степени сложности.
Доступные форматы квантования для локальной работы с моделью включают GGUF и MLX; оба формата доступны с точностью 4 бита, 5 битов, 6 битов и 8 битов. MLX — это вариант, специально разработанный для Apple Silicon.
Для пользователей Mac требования к памяти примерно следующие, и они помогут определить, какой уровень квантования подходит для вашего оборудования:
В качестве ориентира: Mac mini с процессором M4 и 32 гигабайтами общей системной памяти может обрабатывать 4-битную квантованную версию, генерируя примерно 5–6 токенов в секунду. Это не очень быстро в абсолютных цифрах, но вполне достаточно для агента, задача которого — писать и редактировать код, а не транслировать прозу в прямом эфире. На более мощных чипах Apple Silicon — серии Max или Ultra — или на современной видеокарте Nvidia производительность значительно растёт; по некоторым данным, на более мощных потребительских устройствах скорость обработки составляет 15–30 токенов в секунду.
Шаг 1: Установите LM Studio
LM Studio — это приложение для рабочего стола, отвечающее за загрузку модели локально и предоставление к ней доступа через сервер API, совместимый с OpenAI. Именно с этим сервером будет взаимодействовать Pi.
Скачайте его с официальной страницы загрузки — доступны версии для macOS, Windows и Linux.
Установите его так же, как любую другую программу для рабочего стола, затем запустите.
Шаг 2: Скачивание Qwen3.8–27B внутри LM Studio
- В LM Studio откройте панель поиска/поиска моделей.
- Найдите
qwen/qwen3.8-27b, или перейдите непосредственно на страницу этой модели на сайте LM Studio.
xhigh до medium или low для задач по программированию и работы с агентами, по тем же причинам, которые обсуждались ранее.Шаг 3: Запуск локального сервера LM Studio
Многие пользователи сталкиваются с трудностями на этом этапе — загрузка модели в интерфейс чата не автоматически делает её доступной через API.
- Перейдите на вкладку «Разработчик» в LM Studio.
- Включите опцию «Запустить сервер».
- По умолчанию это создаёт конечную точку, совместимую с OpenAI, по адресу
http://localhost:1234/v1.
Вы можете проверить, что сервер работает, из терминала:
curl http://localhost:1234/v1/models
В ответе в формате JSON должен быть указан qwen/qwen3.8-27b (или любой другой точный идентификатор) — запишите эту строчку, ведь она понадобится вам скоро.
Шаг 4: Установка Pi
Pi — это агент для программирования с открытым исходным кодом, работающий в терминале. Он поддерживает принцип «принеси свой собственный ключ» и не зависит от конкретной модели, будучи с самого начала разработанным для одинаково эффективной работы как с облачными провайдерами, так и с локальными серверами, совместимыми с OpenAI, такими как LM Studio или Ollama.
Официальный установщик:
curl -fsSL https://pi.dev/install.sh | sh
Или, если вы предпочитаете использовать npm:
npm install -g @earendil-works/pi-coding-agent
Подтвердите, что установка прошла успешно:
pi --version
Полная документация доступна по адресу pi.dev/docs/latest.
Шаг 5: Настройте Pi на использование локальной модели LM Studio
Pi хранит настройки своего провайдера в файле ~/.pi/agent/models.json. Откройте этот файл (если он еще не существует, создайте его) и добавьте запись, указывающую на локальный сервер LM Studio:
{
"providers": {
"lmstudio": {
"baseUrl": "http://localhost:1234/v1",
"api": "openai-completions",
"apiKey": "lm-studio",
"models": [
{
"id": "qwen/qwen3.8-27b",
"input": ["text"],
"contextWindow": 65536,
"reasoning": true
}
]
}
}
}
Здесь есть несколько деталей, в которых легко ошибиться:
baseUrlдолжен полностью совпадать с адресом, указанным в вкладке «Разработчик» приложения LM Studio; по умолчанию этоhttp://localhost:1234/v1.apiKeyможет содержать любой текст-заменитель — локальный сервер LM Studio не будет его проверять, но Pi не отобразит модель, если это поле не заполнено.models[].idдолжен полностью совпадать, символ в символ, с тем, что возвращает LM Studio командойcurl http://localhost:1234/v1/models. Небольшие отличия здесь являются самой частой причиной того, что локальная модель не появляется в ожидаемом месте.contextWindowдолжен соответствовать длине контекста, которую вы фактически настроили при загрузке модели, а не её абсолютному максимуму.
Вы также можете сделать его стандартным поставщиком, отредактировав файл ~/.pi/agent/settings.json:
{
"defaultProvider": "lmstudio",
"defaultModel": "qwen/qwen3.8-27b"
}
После перезагрузки Pi — или запуска команды /model в уже открытой сессии — выберите lmstudio / qwen/qwen3.8-27b. С этого момента все запросы, отправляемые Pi, остаются на вашем собственном устройстве; ничего не отправляется за пределы вашей локальной сети.
Создание уровня из Angry Birds
После того как всё было подключено, следующим шагом стало предоставление Pi довольно расплывчатого задания: создать один уровень, доступный для игры в браузере, в стиле Angry Birds — с механикой пращи, физикой полета проектилей, стопкой блоков, которые можно разрушить, и свиньёй, которую нужно сбросить — всё это должно было быть объединено в одну самодостаточную страницу HTML/JS/Canvas.
Интересно было не только то, что модель смогла создать рабочую версию с первой же попытки — это произошло лишь после снижения уровня сложности решения до medium. При уровне xhigh модель тратила огромное количество операций на переоценку основных физических констант, прежде чем написать хотя бы одну строку кода. После правильной настройки она начала логично рассуждать о следующем:
- Механике запуска с помощью рывка и движении проектиля у пращи
- Основном физическом цикле, охватывающем гравитацию, столкновения и опрокидывание блоков
- Сохранении всей структуры в виде одного чистого файла JavaScript, который можно было корректировать на нескольких этапах, не теряя контроля над уже написанным кодом
Именно такая работа с кодированием, основанная на автономных агентах, и предназначена к измерению такими тестами, как SWE-bench Pro, Terminal-Bench и LiveCodeBench; поведение модели полностью соответствует тем показателям, которые они дают. Это не поверхностный трюк чат-бота — это модель, способная вести многодокументную, многократную сессию кодирования от начала до конца полностью офлайн, на оборудовании, которое уже у вас на столе.
Практические советы, если вы настраиваете всё самостоятельно
- Используйте средний уровень усилий для рассуждений по умолчанию. Оставьте
xhighдля действительно сложных архитектурных или алгоритмических задач. В обычных циклах кодирующего агента это в основном только увеличивает задержку без улучшения результатов.
models.json, которая не полностью совпадает с ID, указанным LM Studio.Заключение
Недавно идея о том, чтобы полностью локальная модель создала игру на основе физики, годную к запуску, казалась слишком амбициозной. Теперь же модель с 27 миллиардами параметров, квантизированная для комфортной работы на одном Mac вместе с легким open-source агентом терминала, справилась с этой задачей за один день. Если у вас есть 24 ГБ или более единой памяти, либо достаточно мощная GPU, которая в противном случае простаивает, такая конфигурация — это по-настоящему приятный способ с нулевыми дополнительными затратами оценить, насколько продвинулись инструменты локального программирования с использованием ИИ.
Ресурсы, упомянутые в этом руководстве:
Страница загрузки LM Studio доступна по адресу lmstudio.ai/download, а информация об этой конкретной модели находится по адресу lmstudio.ai/models/qwen/qwen3.8-27b. Сами квантизированные веса MLX хранятся на Hugging Face в пространстве имён lmstudio-community и обозначаются как Qwen3.8-27B-MLX-4bit. У агента для программирования на Pi есть собственный сайт под адресом pi.dev, а сопутствующая документация — по адресу pi.dev/docs/latest.
Связанная литература
- Создание интерфейсов многоэтапных ИИ-агентов с использованием Next.js и AI SDK — Узнайте, как спроектировать готовый к использованию интерфейс ИИ-агента с помощью типизированных инструментов, многоэтапных циклов и компонентов генеративного интерфейса в Next.js.