Як ШІ став чемпіоном світу з шахів, а ви можете навчити його грати вдома

    Привіт, друзі! З вами Ліла Харт. Останнім часом технології дивують. Штучний інтелект перемагає людей у найскладніших іграх – шахи, Го, навіть відеоігри. Отримую запрошення від 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. Секретний інгредієнт: як ШІ вчиться перемагати

    А ось кульмінація – процес навчання з підкріпленням. Як це працює?

    1. Запит: Запитуємо модель GPTOSS: “Створи нову коротку стратегію для гри 2048, використовуючи лише Python. Дай одну команду (W, A, S, D) для оптимального наступного кроку”.
    2. Виконання: Беремо відповідь ШІ, перетворюємо її на функцію і запускаємо в грі.
    3. Оцінка: Наша “винагородна функція” оцінює, наскільки добре ШІ зіграв. Чи набрав бали? Чи наблизився до 2048? Чи не програв?
    4. Навчання: Результати оцінки (позитивні чи негативні “бали”) надсилаються назад моделі. Як тренер, який каже: “Ти добре біг, але наступного разу можеш швидше!”. Модель коригує “ваги” та намагається зіграти краще.

    Це цикл, який повторюється. Поки модель вчиться, спостерігаємо за прогресом.

    “`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-особистості”, навчати їх тому, що вам цікаво – чи то гра, чи фінансовий аналіз, чи керування дроном, чи допомога у повсякденному житті. Усе, що має мету і вимірюваний результат, можна навчити ШІ.

    Що далі?

    1. Спробуйте! Завантажте все необхідне, скористайтеся посиланнями. Не бійтеся експериментувати.
    2. Вивчіть більше. Дослідіть документацію Unsloth, почитайте про RLVR. Відкрийте для себе нові можливості.
    3. Поділіться досвідом. Якщо спробували, напишіть у коментарях, що вийшло. Можливо, ви навчите ШІ грати у вашу улюблену гру?

    Дякую Nvidia та Unsloth за цю неймовірну можливість. Це майстер-клас з того, як зробити передові технології доступними для всіх.

    Пам’ятайте: ваша звичайна ігрова відеокарта – ваш портал у майбутнє. Використовуйте її не тільки для розваг, але й для навчання, експериментів та створення чогось нового. Адже хто знає, можливо, саме ви навчите ШІ наступній великій справі!

    Якщо сподобалася подорож, поставте лайк, підпишіться на канал, і до зустрічі в новому технічному відкритті!

    Поділитися.
    0 0 голоси
    Рейтинг статті
    Підписатися
    Сповістити про
    guest
    0 Коментарі
    Найстаріші
    Найновіше Найбільше голосів
    Зворотній зв'язок в режимі реального часу
    Переглянути всі коментарі
    0
    Буду рада вашим думкам, прокоментуйте.x