Як ШІ став чемпіоном світу з шахів, а ви можете навчити його грати вдома
Привіт, друзі! З вами Ліла Харт. Останнім часом технології дивують. Штучний інтелект перемагає людей у найскладніших іграх – шахи, Го, навіть відеоігри. Отримую запрошення від Nvidia: “Ліло, навчимо людей запускати це диво техніки вдома!” Подумала: “Чому б і ні?” Це як навчити кота грати в шахи, тільки складніше, але набагато цікавіше!
Ми звикли думати, що штучний інтелект, який опановує складні ігри, вимагає суперкомп’ютерів, мільйонних бюджетів та команд геніїв. А якщо я скажу, що ви можете це зробити на своєму ігровому ПК? Так! З простою, але потужною технологією “навчання з підкріпленням” (Reinforcement Learning, RL). Ми пройдемо шлях від нуля до чемпіона… в грі 2048. Чому 2048? Бо це просто, зрозуміло, дозволяє побачити магію RL без зайвих складнощів. Візьмемо ШІ, який нічого не знає про гру, і зробимо його майстром. Готові? Тоді вперед!
1. Коли ШІ зустрів гру: народження чемпіона
Уявіть: ШІ був наївним, як дитина, що вперше грає. Але потім з’явилося навчання з підкріпленням. Як навчити цуценя трюкам: за правильну дію – смаколик, за неправильну – легке “ні”. Тільки в світі ШІ “смаколики” – це бали, а “ні” – втрата балів.
Навчання з підкріпленням з перевіреними винагородами (RLVR) – справжня революція. Ми не стоїмо над ШІ і не кажемо: “Ти помилився, виправ це”. Ні! Ми створюємо середовище, де ШІ сам експериментує, робить помилки, вчиться на них і знаходить найкращий шлях. Як кіт, що спочатку падає з дивана, а потім вчиться стрибати з грацією.
Саме цю магію ми запустимо на наших комп’ютерах. Почнемо з гри 2048. Вона проста: рухаєш плитки, складаєш числа, намагаєшся отримати 2048, головне – не дати дошці заповнитися. Думаєте, легко? Спробуйте! А тепер уявіть, що наш ШІ не знає правил. Це наш виклик.
2. Збираємо інструменти: магія Nvidia та Unsloth
Щоб почати, знадобиться кілька речей. По-перше, потужна відеокарта від Nvidia. Навіть звичайна ігрова карта підійде. Це як мати ніж для вирізання з дерева – ним можна вирізати просте, а можна шедевр.
Потрібен і “мозок” – відкрита модель. Обираємо GPTOSS – чудовий варіант від OpenAI. А “правила гри” – винагородну функцію – теж напишемо. Це наш внутрішній арбітр.
Далі – серце – Unsloth. Це майстерня, де зібрані найкращі інструменти для роботи з великими мовними моделями. Unsloth – проект з майже 50 тисячами зірок на GitHub, а це означає, що він неймовірно популярний і корисний [GitHub]. Він робить складне навчання з підкріпленням доступним для нас, звичайних користувачів.
Ще один важливий елемент – WSL, Windows Subsystem for Linux. Якщо ви користуєтесь Windows, це ваш квиток у світ Linux без встановлення окремої операційної системи. Це як мати вікно в інший світ на робочому столі.
3. Підготовка до запуску: крок за кроком у віртуальний світ
Перш ніж навчати ШІ, потрібно підготувати систему.
Крок 1: Переконайтеся, що драйвери Nvidia оновлені. Це як перевірити, чи гострий ваш ніж перед тим, як різати. Відкрийте Nvidia App і запустіть оновлення.
Крок 2: Завантажте CUDA Toolkit з сайту Nvidia [Nvidia CUDA Toolkit]. Це “паливо”, яке дозволить відеокарті спілкуватися з програмами для глибокого навчання. Знайдіть відповідну версію для вашої системи та встановіть її.
Крок 3: Встановлення WSL та Ubuntu. Відкрийте PowerShell і введіть команду: wsl.exe --install ubuntu-24.04. Це запустить процес створення віртуальної майстерні. Потім wsl.exe --set-default ubuntu-24.04, щоб ця “майстерня” стала основною.
Крок 4: Перевіримо, чи все працює. Введіть wsl.exe – і ви в Linux. Перевірте, чи бачить система відеокарту: nvidia-smi. Якщо бачите інформацію про RTX, вітаємо, ви в грі!
Крок 5: Потрібне Python-середовище. Встановлюємо: sudo apt update та sudo apt install python3 python3-full python3-pip python3-venv -y. Це як наповнити майстерню потрібними інструментами.
Крок 6: Створимо віртуальне середовище для проекту. Назвемо його unsloth-env: python3 -m venv unsloth-env. Активуємо: source unsloth-env/bin/activate. Тепер все буде ізольовано тут, не зачіпаючи основну систему.
Крок 7: Встановлюємо PyTorch, основу для багатьох глибоких моделей: pip install torch torchvision --force-reinstall --index-url https://download.pytorch.org/whl/cu118 (переконайтеся, що версія CUDA відповідає вашій).
Крок 8: Встановлюємо Unsloth: pip install unsloth. І, нарешті, Jupyter Notebook – платформу, де писатимемо код і спостерігатимемо за процесом: pip install jupyter.
Все, “майстерня” готова! Це може здатися довго, але кожен крок – маленька перемога.
4. Зустріч з “клітинками”: запуск Jupyter та перші команди
Тепер, коли все встановлено, запускаємо Jupyter Notebook: jupyter notebook. Відкриється нова вкладка в браузері. Вона покаже файли у вашій поточній директорії.
Потрібно знайти “рецепт” для гри. Unsloth має чудовий приклад – Jupyter Notebook для гри 2048. Такі файли можна знайти на сторінці проекту або в документації. Нам надали посилання на Google Colab, але можна завантажити як .ipynb файл. Знайдіть його на комп’ютері (зазвичай, в папці “Завантаження”) та відкрийте у вашому локальному Jupyter.
Ось він, наш “рецепт”! Це набір комірок з кодом. Деякі можна пропустити, особливо ті, що стосуються роботи в хмарних середовищах. Ми працюємо локально.
Перша важлива комірка:
“`python
from unsloth import FastLanguageModel
import torch
… інші імпорти …
“`
Ця комірка завантажує основну модель. Натисніть Ctrl + Enter (або кнопку запуску), і ви побачите зірочку, а потім номер. Це означає, що комірка працює. Не бійтеся, якщо щось піде не так – можна виправити помилку і запустити тільки комірку, не весь ноутбук.
І ось починається магія Unsloth:
“`python
Внутрішній опис Unsloth
Для ефективного RL ми використовуємо LoRA, яка дозволяє додати лише 1-5% вагових коефіцієнтів до моделі.
Це зберігає пам’ять, майже не впливаючи на точність.
“`
Unsloth інтелектуально оптимізує процес. Використовує техніку LoRA, яка дозволяє модифікувати лише невелику частину моделі, економлячи ресурси. Це як оновити фасад будинку, щоб він виглядав краще.
5. Коли гра оживає: адаптуємо 2048 для ШІ
Наступні комірки – адаптація гри 2048. Код гри створив… інший ШІ, GPT-5! Unsloth взяв готовий варіант, що працює через термінал, тобто текстово. Він гратиме, описуючи дії словами, без графіки.
Запускаємо комірку з грою: Ctrl + Enter. Це просто скрипт, який запускає гру.
А тепер – демонстрація! Бачимо ігрове поле. Натискаємо “W” (команда “вгору”, зміщення плиток до верхньої межі). І плитки рухаються. Пробуємо “D” (вправо). Вірно! ШІ, звісно, ще нічого не навчився, але ми переконалися, що гра працює.
Налаштування RL-середовища:
Створюємо функцію, яка прийматиме “стратегію” від ШІ, надсилатиме йому команди (W, A, S, D) та перевірятиме стан гри. Важливо додати обмеження за часом, щоб ШІ не “зависав” у нескінченному циклі.
“`python
Тут ми створюємо стратегію, яка просто тисне “W”
Ми очікуємо, що вона провалиться, але це тест
“`
Створюємо першу, “дуже просту” стратегію – ШІ постійно натискатиме “W”. Звісно, це не призведе до перемоги, але це перевірка, чи працює тайм-аут. Бачимо, що він спрацьовує – стратегія “зависає” і отримує повідомлення про це.
Далі комірки для перевірки на “зловживання” – щоб ШІ не намагався обманути систему, змінюючи таймер чи роблячи неможливі ходи. Це як перевіряти, чи не списує школяр на екзамені.
6. Секретний інгредієнт: як ШІ вчиться перемагати
А ось кульмінація – процес навчання з підкріпленням. Як це працює?
- Запит: Запитуємо модель GPTOSS: “Створи нову коротку стратегію для гри 2048, використовуючи лише Python. Дай одну команду (W, A, S, D) для оптимального наступного кроку”.
- Виконання: Беремо відповідь ШІ, перетворюємо її на функцію і запускаємо в грі.
- Оцінка: Наша “винагородна функція” оцінює, наскільки добре ШІ зіграв. Чи набрав бали? Чи наблизився до 2048? Чи не програв?
- Навчання: Результати оцінки (позитивні чи негативні “бали”) надсилаються назад моделі. Як тренер, який каже: “Ти добре біг, але наступного разу можеш швидше!”. Модель коригує “ваги” та намагається зіграти краще.
Це цикл, який повторюється. Поки модель вчиться, спостерігаємо за прогресом.
“`python
Тут ми викликаємо модель GPTOSS для отримання стратегії
Ми бачимо, як швидко вона генерує відповіді (50-60 токенів в секунду)
“`
Запускаємо запит до моделі. Бачимо, як швидко вона генерує відповідь. Але іноді відповідь може бути некоректною. Це не проблема! ШІ просто отримає звіт про помилку, і це також буде частиною його навчання. Як вчитель, який бачить, що учень зробив помилку, та пояснює, чому саме.
“`python
Це секретний соус: функції винагороди
function_works, no_cheating, strategy_succeeds
“`
Тепер – “секретний соус”: три наші винагородні функції. Вони оцінюють, чи працює стратегія, чи не намагається ШІ обдурити, та чи дійсно стратегія веде до успіху.
“`python
Тут ми створюємо набір даних для навчання
І запускаємо GPO (Generalized Policy Optimization) – алгоритм навчання
“`
І ось – команда Trainer.train()! Це запускає процес навчання. Відеокарта починає працювати на повну. Бачимо, як зростає температура, GPU “гудить” – ознака роботи.
Навчання триватиме довго, можливо, кілька годин. Бачимо перші результати: винагорода -1. Це провал. Але це нормально! Перший крок.
7. Від невдачі до перемоги: як ШІ став чемпіоном 2048
Ось результат! Навчання завершено. Спочатку – винагорода -1, але потім стрибок до 10.5! Це означає, що модель навчилася грати!
Ми бачимо, як ШІ поступово покращував гру. Спочатку маленькі бали, потім – 1024, і нарешті – 2048!
“`python
Тут ми бачимо, як ШІ поступово досягає 2048
“`
Наш ШІ, який спочатку нічого не знав, тепер вміє професійно грати в 2048. Він навчився сам, шляхом проб, помилок і винагород. Це сила навчання з підкріпленням.
Тепер можна зберегти навчену модель. Її можна завантажити на Hugging Face, щоб інші могли нею скористатися [Hugging Face].
8. Навіщо нам це все? Майбутнє ШІ у ваших руках
Запитаєте: “А навіщо це? Грати в 2048? Це ж просто гра!”
Сьогодні – гра. Але завтра це може бути щось важливіше. Технології ШІ стають меншими, потужнішими, і зможемо запускати їх прямо на пристроях – телефонах, комп’ютерах, навіть розумних холодильниках! Це називається “edge computing” [Edge Computing].
Коли це станеться, потрібен контроль. Захочеться, щоб ШІ розумів нас краще, надавав персоналізовані відповіді, працював безпечно та приватно. Саме для цього потрібне локальне навчання, локальне доналаштування, локальне навчання з підкріпленням.
Це дає владу. Створювати власні “AI-особистості”, навчати їх тому, що вам цікаво – чи то гра, чи фінансовий аналіз, чи керування дроном, чи допомога у повсякденному житті. Усе, що має мету і вимірюваний результат, можна навчити ШІ.
Що далі?
- Спробуйте! Завантажте все необхідне, скористайтеся посиланнями. Не бійтеся експериментувати.
- Вивчіть більше. Дослідіть документацію Unsloth, почитайте про RLVR. Відкрийте для себе нові можливості.
- Поділіться досвідом. Якщо спробували, напишіть у коментарях, що вийшло. Можливо, ви навчите ШІ грати у вашу улюблену гру?
Дякую Nvidia та Unsloth за цю неймовірну можливість. Це майстер-клас з того, як зробити передові технології доступними для всіх.
Пам’ятайте: ваша звичайна ігрова відеокарта – ваш портал у майбутнє. Використовуйте її не тільки для розваг, але й для навчання, експериментів та створення чогось нового. Адже хто знає, можливо, саме ви навчите ШІ наступній великій справі!
Якщо сподобалася подорож, поставте лайк, підпишіться на канал, і до зустрічі в новому технічному відкритті!







