Навчання грати в Minecraft за допомогою попереднього відеонавчання (VPT) PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Навчання гри в Minecraft за допомогою відеопідготовки (VPT)

Навчання гри в Minecraft за допомогою відеопідготовки (VPT)

Ми навчили нейронну мережу грати в Minecraft за допомогою Video PreTraining (VPT) на величезному немаркованому наборі відео даних про гру Minecraft, використовуючи лише невелику кількість позначених даних підрядника. Завдяки тонкому налаштуванню наша модель може навчитися виготовляти алмазні інструменти, завдання, яке зазвичай займає у досвідчених людей понад 20 хвилин (24,000 XNUMX дій). Наша модель використовує рідний людський інтерфейс натискання клавіш і рухів миші, що робить її досить загальною, і є кроком до загальних комп’ютерних агентів.

Прочитаний папір


Перегляд коду та ваги моделі


Конкурс MineRL

Інтернет містить величезну кількість загальнодоступних відео, з яких ми можемо вчитися. Ви можете спостерігати, як людина робить чудову презентацію, цифровий художник малює прекрасний захід сонця, а гравець Minecraft будує хитромудрий будинок. Однак ці відео містять лише запис що відбулося, але не точно як це було досягнуто, тобто ви не будете знати точну послідовність рухів миші та натискання клавіш. Якщо ми хочемо побудувати масштабно моделі фундаменту в цих доменах, як ми зробили в мові з GPT, ця відсутність міток дій створює новий виклик, якого немає в мовній області, де «мітки дій» є просто наступними словами в реченні.

Щоб використати величезну кількість немаркованих відеоданих, доступних в Інтернеті, ми представляємо новий, але простий, напівконтрольований метод імітації: Video PreTraining (VPT). Ми починаємо зі збору невеликого набору даних від підрядників, де ми записуємо не тільки їх відео, а й дії, які вони зробили, а в нашому випадку це натискання клавіш і рухи миші. З цими даними ми тренуємо модель зворотної динаміки (IDM), яка прогнозує дію, що виконується на кожному кроці відео. Важливо, що IDM може використовувати минуле і майбутнє інформацію, щоб вгадати дію на кожному кроці. Це завдання набагато легше і, отже, вимагає набагато менше даних, ніж завдання поведінкового клонування передбачити дані дії лише попередні відеокадри, що вимагає висновку про те, що людина хоче зробити і як цього досягти. Потім ми можемо використовувати навчений IDM, щоб позначити набагато більший набір даних онлайн-відео і навчитися діяти за допомогою поведінкового клонування.

Навчання гри в Minecraft за допомогою відеопідготовки (VPT)
Навчання гри в Minecraft за допомогою відеопідготовки (VPT)
Огляд методу VPT

Результати VPT Zero-Shot

Ми вирішили перевірити наш метод у Minecraft, оскільки він (1) є однією з найактивніших відеоігор у світі і, таким чином, має велику кількість вільно доступних відеоданих, і (2) є відкритим з широким спектром речей, які можна робити, подібно до реальних програм, таких як використання комп’ютера. На відміну від попередній працює у Minecraft, які використовують спрощені простори дій, спрямовані на полегшення дослідження, наш AI використовує набагато більш загальний, хоча й набагато складніший, рідний людський інтерфейс: частота кадрів 20 Гц за допомогою миші та клавіатури.

Наша модель поведінкового клонування («модель VPT-фундаменту»), навчена на 70,000 50 годин онлайн-відео з міткою IDM, вирішує завдання в Minecraft, які майже неможливо досягти за допомогою навчання з підкріпленням з нуля. Воно вчиться рубати дерева, щоб збирати колоди, виготовляти ці колоди на дошки, а потім виготовляти ці дошки на столі для рукоділля; ця послідовність займає людині, яка володіє Майнкрафтом, приблизно 1,000 секунд або XNUMX послідовних ігрових дій.

Навчання гри в Minecraft за допомогою відеопідготовки (VPT)
Навчання гри в Minecraft за допомогою відеопідготовки (VPT)
Послідовність предметів, необхідних для створення столу для виготовлення, із зазначенням середнього часу, необхідного досвідченим людям, щоб досягти кожного кроку
Крафт крафтового столу «з нуля» (тобто тільки після попереднього навчання без додаткового налаштування)

Крім того, модель виконує інші складні навички, які люди часто використовують у грі, наприклад, плавання, полювання на тварин для їжі та вживання цієї їжі. Він також навчився навичку «стрибка через стовп», поширеної в Minecraft поведінки, коли підіймаєш себе, багаторазово стрибаючи та розміщуючи блок під собою.

Плавання (нульовий удар)

Мисливські тварини (нульовий постріл)

Вживання їжі (нульовий удар)

Стрибки зі стовпа (нульовий постріл)

Тоне налаштування за допомогою поведінкового клонування

Основні моделі розроблені таким чином, щоб мати широкий профіль поведінки та загалом бути здатними до широкого спектру завдань. Щоб включити нові знання або дозволити їм спеціалізуватися на вужчому розподілі завдань, звичайною практикою є точне налаштування цих моделей до менших, більш конкретних наборів даних. Як приклад того, наскільки добре модель VPT Foundation може бути точно налаштована на наступні набори даних, ми попросили наших підрядників пограти 10 хвилин у абсолютно нових світах Minecraft і побудувати будинок з основних матеріалів Minecraft. Ми сподівалися, що це посилить здатність базової моделі надійно виконувати навички «ранньої гри», такі як створення столів для крафта. Під час точного налаштування цього набору даних ми не тільки бачимо значне покращення в надійному виконанні навичок ранньої гри, які вже присутні в базовій моделі, але й налаштована модель також навчиться заглиблюватися в дерево технологій, створюючи обидва дерев’яні і кам'яні знаряддя. Іноді ми навіть бачимо деякі елементарні споруди притулку, а агент обшукує села, включаючи рейдерські скрині.

Навчання гри в Minecraft за допомогою відеопідготовки (VPT)
Навчання гри в Minecraft за допомогою відеопідготовки (VPT)
Послідовність предметів, необхідних для виготовлення кам’яної кирки, із зазначенням середнього часу, необхідного досвідченим людям, щоб досягти кожного кроку
Покращена поведінка на початку гри завдяки тонкому налаштуванню BC

Виготовлення кам’яної кирки

Будівництво елементарного дерев’яного укриття

Шукає село

Масштабування даних

Можливо, найважливіша гіпотеза нашої роботи полягає в тому, що набагато ефективніше використовувати позначені дані підрядника для навчання IDM (як частини конвеєра VPT), ​​ніж безпосередньо тренувати базову модель BC з того самого невеликого набору даних підрядника. Щоб підтвердити цю гіпотезу, ми навчаємо базові моделі на зростаючих обсягах даних від 1 до 70,000 2,000 годин. Ті, хто навчався на менш ніж 2,000 годинах даних, навчаються на даних підрядника з мітками реальної істини, які спочатку були зібрані для навчання IDM, а ті, хто навчався більше XNUMX годин, навчаються на даних Інтернету, позначених нашим IDM. Потім ми беремо кожну модель фундаменту та точно налаштовуємо її на набір даних про будівництво будинку, описаний у попередньому розділі.

Вплив навчальних даних базової моделі на точне налаштування

Оскільки дані моделі фундаменту збільшуються, ми зазвичай бачимо збільшення здібностей до крафта, і лише в найбільшому масштабі даних ми бачимо появу виготовлення кам’яних знарядь.

Тонка настройка за допомогою навчання з підкріпленням

Коли є можливість вказати функцію винагороди, навчання з підкріпленням (RL) може бути потужним методом для досягнення високої, потенційно навіть надлюдської, продуктивності. Однак багато завдань вимагають подолання важких проблем дослідження, і більшість методів RL вирішують їх випадковий попередні дослідження, наприклад, моделі часто спонукають діяти випадково за допомогою ентропійних бонусів. Модель VPT має бути набагато кращою попередньою для RL, оскільки наслідування поведінки людини, ймовірно, набагато корисніше, ніж виконання випадкових дій. Ми поставили нашій моделі складне завдання зібрати алмазну кирку, безпрецедентну можливість в Minecraft, яка ускладнюється під час використання рідного людського інтерфейсу.

Виготовлення алмазної кирки вимагає тривалої та складної послідовності підзадач. Щоб зробити це завдання вирішеним, ми винагороджуємо агентів за кожен елемент у послідовності.

Навчання гри в Minecraft за допомогою відеопідготовки (VPT)
Навчання гри в Minecraft за допомогою відеопідготовки (VPT)
RL тонко налаштована модель VPT, яка створює алмазну кирку

Ми виявили, що політика RL, навчена на основі випадкової ініціалізації (стандартний метод RL), майже не отримує жодної винагороди, ніколи не навчаючись збирати журнали і лише рідко збираючи палички. На відміну від цього, тонка настройка з моделі VPT не тільки вчиться виготовляти алмазні кирки (що робиться в 2.5% 10-хвилинних епізодів Minecraft), але й навіть має рівень успіху на рівні людини у збиранні всіх предметів, що ведуть до алмазна кирка. Це перший раз, коли хтось показав комп’ютерного агента, здатного створювати алмазні інструменти в Minecraft, що займає у людей в середньому понад 20 хвилин (24,000 XNUMX дій).

Винагорода за епізоди

Висновок

VPT відкриває шлях до дозволу агентам навчитися діяти переглядаючи величезну кількість відео в Інтернеті. Порівняно з генеративним відеомоделюванням або контрастними методами, які лише вдасться представницький раніше VPT пропонує захоплюючу можливість безпосереднього навчання у великих масштабах поведінкові пріоритети у багатьох областях, ніж просто мова. Хоча ми експериментуємо лише в Minecraft, гра дуже відкрита, а рідний людський інтерфейс (миша та клавіатура) дуже загальний, тож ми вважаємо, що наші результати є хорошим провісником для інших подібних областей, наприклад використання комп’ютера.

Для отримання додаткової інформації див наш папір. Ми також відкриті джерела даних наших підрядників, середовища Minecraft, коду моделі та ваги моделі, які, як ми сподіваємося, допоможуть майбутнім дослідженням VPT. Крім того, цього року ми співпрацюємо з конкурсом MineRL NeurIPS. Учасники конкурсу можуть використовувати та налаштовувати наші моделі, щоб спробувати вирішити багато складних завдань у Minecraft. Бажаючі можуть ознайомитися з веб-сторінка конкурсу і змагатися за приз блакитного неба $100,000 на додаток до звичайного призового фонду $20,000. Гранти доступні для самоідентифікованих малопредставлених груп та окремих осіб.


Подяки
Це були великі зусилля відданої команди. Кожен автор зробив величезний внесок на багатьох фронтах протягом тривалого часу. Усі учасники були повний робочий день у проекті більше шести місяців. BB, IA, PZ та JC входили до початкової команди проекту VPT і, отже, працювали ще довше (понад рік). Окрім тих оригінальних членів команди, порядок авторів є випадковим. Його також рандомізували між IA та PZ.

import {Runtime, Inspector, Library} from “https://unpkg.com/@observablehq/runtime@4.12.0/dist/runtime.js”; import notebookEarlyGameBehavior from “https://api.observablehq.com/d/7f62ee5a1b0ddebd.js?v=3”; import notebookRewardOverEpisodes from “https://api.observablehq.com/d/4d319198b6ab74d5.js?v=3”; import notebookBCFineTuning from “https://api.observablehq.com/d/119b327a0da6dc38.js?v=3” const customWidth = function (selector) { return (new Library).Generators.observe(function(change) { var width = change(document.querySelector(selector).clientWidth); function resized() { var w = document.querySelector(selector).clientWidth; if (w !== width) change(width = w); } window.addEventListener(“resize”, resized); return function() { window.removeEventListener(“resize”, resized); }; }); }; const earlyGameBehaviorSelector = “#chart-early-game-behavior”; const earlyGameBehaviorRenders = { “chart”: earlyGameBehaviorSelector, }; new Runtime(Object.assign(new Library, {width: customWidth(earlyGameBehaviorSelector)})).module(notebookEarlyGameBehavior, name => { const selector = earlyGameBehaviorRenders[name]; if (selector) { // key exists return new Inspector(document.querySelector(selector)); } else { return true; } }); const rewardOverEpisodesSelector = “#chart-reward-over-episodes”; const rewardOverEpisodesRenders = { “chart”: rewardOverEpisodesSelector, }; new Runtime(Object.assign(new Library, {width: customWidth(rewardOverEpisodesSelector)})).module(notebookRewardOverEpisodes, name => { const selector = rewardOverEpisodesRenders[name]; if (selector) { // key exists return new Inspector(document.querySelector(selector)); } else { return true; } }); const rewardBCFineTuningSelector = “#chart-bc-fine-tuning”; const rewardBCFineTuningRenders = { “chart”: rewardBCFineTuningSelector, }; new Runtime(Object.assign(new Library, {width: customWidth(rewardBCFineTuningSelector)})).module(notebookBCFineTuning, name => { const selector = rewardBCFineTuningRenders[name]; if (selector) { // key exists return new Inspector(document.querySelector(selector)); } else { return true; } }); var playerObjects = {}; var initVimeo = function () { var videoEls = document.querySelectorAll(‘iframe[data-vimeo]’); videoEls.forEach(function (v) { var id = v.getAttribute(‘data-id’); var player = new Vimeo.Player(v); playerObjects[id] = player; // keep track of players by id }); var triggers = document.querySelectorAll(‘.js-video-trigger’); triggers.forEach(function (t) { t.addEventListener(‘click’, function (e) { var id = this.getAttribute(‘data-video’); if (!id) return; e.preventDefault(); playerObjects[id].play(); }); }); }; function initCanvas() { let needsRecalc = true; const DESIRED_SIZE = window.innerWidth { function step() { if (needsRecalc) { needsRecalc = false; numColumns = Math.floor(window.innerWidth / DESIRED_SIZE); tileWidth = window.innerWidth / numColumns; tileHeight = ((SOURCE_HEIGHT / SOURCE_WIDTH) * tileWidth); canvas.setAttribute(‘width’, window.innerWidth); canvas.setAttribute(‘height’, tileHeight); canvas.parentNode.style.aspectRatio = `${window.innerWidth} / ${tileHeight}`; } let column = 0; for (let i = 0; i < numColumns; i++) { ctx.drawImage(video, tileWidth * i, 0, tileWidth, tileHeight); column++; } requestAnimationFrame(step) } requestAnimationFrame(step); }) } document.addEventListener('DOMContentLoaded', function() { initVimeo(); initCanvas(); });

Часова мітка:

Більше від OpenAI