Главная / Статьи / Создание локальной копии Angry Birds с использованием Qwen3.8-27B и Pi

Создание локальной копии Angry Birds с использованием Qwen3.8-27B и Pi

Узнайте, как настроить полностью локальный рабочий процесс для разработки с использованием ИИ, применив LM Studio и агента Pi для создания играбельного уровня Angry Birds с помощью Qwen3.8-27B.

1952 слов

Несколько недель назад небольшой побочный проект решил ответить на довольно абсурдный вопрос: можно ли создать один играбельный уровень для 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

    1. В LM Studio откройте панель поиска/поиска моделей.
    2. Найдите qwen/qwen3.8-27b, или перейдите непосредственно на страницу этой модели на сайте LM Studio.
  • Выберите уровень квантования, соответствующий вашему оборудованию, исходя из ранее указанных показателей памяти — для большинства устройств с 24–32 ГБ ОЗУ вариант MLX 4-бит обеспечивает оптимальный баланс. Если вы хотите просмотреть веса перед загрузкой, те же файлы, пройдшие квантование сообществом, можно просмотреть непосредственно на Hugging Face.
  • Загрузите модель, затем загрузите её через вкладку Chat или вкладку Мои модели. Во время загрузки установите длину контекста, которая комфортно вмещается в вашу доступную память — 16K является разумным стандартным значением, и его можно увеличить, если у вас есть свободные ресурсы.
  • Прежде чем продолжить, откройте панель настроек модели и снизьте уровень усилий по рассуждению с xhigh до medium или low для задач по программированию и работы с агентами, по тем же причинам, которые обсуждались ранее.
  • Шаг 3: Запуск локального сервера LM Studio

    Многие пользователи сталкиваются с трудностями на этом этапе — загрузка модели в интерфейс чата не автоматически делает её доступной через API.

    1. Перейдите на вкладку «Разработчик» в LM Studio.
    2. Включите опцию «Запустить сервер».
    3. По умолчанию это создаёт конечную точку, совместимую с 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 для действительно сложных архитектурных или алгоритмических задач. В обычных циклах кодирующего агента это в основном только увеличивает задержку без улучшения результатов.
  • Определяйте размер окна контекста исходя из объема доступной оперативной памяти, а не из теоретического предела модели. Окно контекста в 262 Кб — или расширенный вариант в 1 Мб — кажутся впечатляющими на бумаге, но при примерно 64 Кб кэша KV на каждый токен длинные контексты чрезвычайно быстро исчерпывают память. Более реалистичной целью для большинства устройств с одной GPU или систем на базе Apple Silicon является диапазон от 16 Кб до 64 Кб.
  • Тщательно проверяйте идентификатор модели. Самая распространенная причина сбоев в локальной настройке — это запись в файле models.json, которая не полностью совпадает с ID, указанным LM Studio.
  • Скорректируйте свои ожидания по скорости обработки. Ожидайте скорость в диапазоне от однозначных чисел до средних двузначных значений токенов в секунду, а не скорость обработки облачных API. Это разумный компромисс для бесплатной работы без передачи данных с вашего устройства, но его стоит учитывать, особенно при использовании бюджетного оборудования.
  • Заключение

    Недавно идея о том, чтобы полностью локальная модель создала игру на основе физики, годную к запуску, казалась слишком амбициозной. Теперь же модель с 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.

    Связанная литература

  • ReAct Explained: Как ИИ-агенты сочетают рассуждения с действиями в реальном мире — Узнайте, как фреймворк ReAct объединяет рассуждения и использование инструментов для работы ИИ-агентов, а также в чём он отличается от моделей Chain-of-Thought, RL и других моделей рассуждений.