Створення локальної копії 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. Це корисно для справді складних завдань, але це також означає, що модель може витратити тисячі токенів на міркування над тривіальними запитами, які не вимагають такої кількості обробки. Для звичайної роботи кодувального агента у налаштуваннях моделі LM Studio слід знизити рівень зусиль для міркувань до medium або low, щоб швидкість відповідей значно покращилась без суттєвої втрати якості. Залишайте рівень 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, у поєднанні з легким програмним агентом з відкритим кодом, змогла це зробити за один день. Якщо у вас є 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.
Пов’язана література
- Створення інтерфейсів AI-агентів з кількома кроками за допомогою Next.js та AI SDK — Дізнайтеся, як спроєктувати інтерфейс AI-агента, готовий до використання в продакшені, за допомогою типованих інструментів, багатокрокових циклів та компонентів інтерфейсу з потоковим генеруванням у Next.js.