VPT(Video PreTraining) PlatoBlockchain 데이터 인텔리전스를 사용하여 Minecraft를 재생하는 방법을 배웁니다. 수직 검색. 일체 포함.

VPT(Video PreTraining)로 Minecraft를 플레이하는 방법 배우기

VPT(Video PreTraining)로 Minecraft를 플레이하는 방법 배우기

우리는 레이블이 지정되지 않은 인간 Minecraft 플레이의 방대한 비디오 데이터 세트에서 VPT(비디오 사전 훈련)로 Minecraft를 플레이하도록 신경망을 훈련시키면서 레이블이 지정된 계약자 데이터는 소량만 사용했습니다. 미세 조정을 통해 우리 모델은 숙련된 사람이 20분(24,000개 작업) 이상 소요되는 작업인 다이아몬드 도구 제작 방법을 배울 수 있습니다. 우리의 모델은 키 누르기와 마우스 움직임의 기본 인간 인터페이스를 사용하여 매우 일반적으로 만들고 일반적인 컴퓨터 사용 에이전트를 향한 단계를 나타냅니다.

신문 읽기


코드 및 모델 가중치 보기


MineRL 경쟁

인터넷에는 우리가 배울 수 있는 공개적으로 사용 가능한 엄청난 양의 비디오가 있습니다. 한 사람이 멋진 프레젠테이션을 하는 모습, 디지털 아티스트가 아름다운 일몰을 그리는 모습, 마인크래프트 플레이어가 복잡한 집을 짓는 모습을 볼 수 있습니다. 그러나 이러한 비디오는 기록만 제공합니다. 발생했지만 정확하게 방법 그것은 달성되었습니다. 즉, 마우스 움직임과 눌린 키의 정확한 순서를 알지 못할 것입니다. 대규모 건물을 짓고자 한다면 기초 모델 우리가 언어에서 했던 것처럼 이 도메인에서 GPT, 이러한 행동 레이블의 부족은 언어 영역에 존재하지 않는 새로운 도전을 제기합니다. 여기서 "행동 레이블"은 단순히 문장의 다음 단어입니다.

인터넷에서 사용할 수 있는 레이블이 지정되지 않은 비디오 데이터의 풍부함을 활용하기 위해 우리는 참신하지만 간단한 반 지도 모방 학습 방법인 VPT(Video PreTraining)를 소개합니다. 우리는 계약자의 비디오뿐만 아니라 그들이 취한 행동(우리의 경우 키 누르기와 마우스 움직임)을 기록하는 계약자로부터 작은 데이터 세트를 수집하는 것으로 시작합니다. 이 데이터를 사용하여 비디오의 각 단계에서 수행되는 작업을 예측하는 역동역학 모델(IDM)을 훈련합니다. 중요한 것은 IDM이 과거를 사용할 수 있다는 것입니다. 그리고 미래 각 단계에서 동작을 추측하는 정보. 이 작업은 주어진 동작을 예측하는 행동 복제 작업보다 훨씬 쉽고 따라서 훨씬 적은 데이터가 필요합니다. 과거 비디오 프레임만, 그 사람이 하고 싶은 것과 그것을 성취하는 방법을 추론해야 합니다. 그런 다음 훈련된 IDM을 사용하여 훨씬 더 큰 온라인 비디오 데이터 세트에 레이블을 지정하고 행동 복제를 통해 행동하는 방법을 배울 수 있습니다.

VPT(Video PreTraining)로 Minecraft를 플레이하는 방법 배우기
VPT(Video PreTraining)로 Minecraft를 플레이하는 방법 배우기
VPT 방법 개요

VPT 제로샷 결과

우리는 Minecraft에서 우리의 방법을 검증하기로 결정했습니다. 왜냐하면 (1) 세계에서 가장 활발하게 플레이되는 비디오 게임 중 하나이며 따라서 무료로 사용할 수 있는 비디오 데이터가 풍부하고 (2) 컴퓨터 사용과 같은 실제 응용 프로그램과 유사합니다. 같지 않은 이전에 탐색을 쉽게 하기 위해 단순화된 작업 공간을 사용하는 Minecraft에서 AI는 훨씬 더 일반적으로 적용할 수 있지만 훨씬 더 어려운 기본 휴먼 인터페이스인 마우스와 키보드의 20Hz 프레임 속도를 사용합니다.

70,000시간의 IDM 레이블이 지정된 온라인 비디오에서 훈련된 우리의 행동 복제 모델("VPT 기반 모델")은 처음부터 강화 학습으로 달성하기 거의 불가능한 작업을 Minecraft에서 수행합니다. 그것은 나무를 베어 통나무를 수집하고, 그 통나무를 널빤지로 만든 다음, 그 판자를 공예용 테이블로 만드는 법을 배웁니다. 이 시퀀스는 Minecraft에 능숙한 사람이 약 50초 또는 1,000개의 연속 게임 동작을 취합니다.

VPT(Video PreTraining)로 Minecraft를 플레이하는 방법 배우기
VPT(Video PreTraining)로 Minecraft를 플레이하는 방법 배우기
숙련된 사람이 각 단계에 도달하는 데 걸리는 중앙값 시간이 표시된 크래프팅 테이블을 만드는 데 필요한 항목 순서
크래프팅 테이블 "제로 샷" 제작(즉, 추가 미세 조정 없이 사전 훈련만 한 후)

또한 이 모델은 수영, 음식 사냥, 음식 먹기와 같이 인간이 게임에서 자주 하는 다른 복잡한 기술을 수행합니다. 또한 반복적으로 점프하고 자신 아래에 블록을 놓아 자신을 높이는 Minecraft의 일반적인 동작인 "기둥 점프" 기술도 배웠습니다.

수영(제로샷)

동물 사냥(제로샷)

음식 먹기(제로샷)

기둥 점핑(제로샷)

행동 복제를 통한 미세 조정

기초 모델은 광범위한 행동 프로필을 갖고 일반적으로 다양한 작업에 걸쳐 수행할 수 있도록 설계되었습니다. 새로운 지식을 통합하거나 더 좁은 작업 분포를 전문화할 수 있도록 하려면 이러한 모델을 더 작고 구체적인 데이터 세트로 미세 조정하는 것이 일반적입니다. VPT 기초 모델이 다운스트림 데이터 세트에 얼마나 잘 미세 조정될 수 있는지에 대한 사례 연구로서 우리는 계약자에게 새로운 Minecraft 세계에서 10분 동안 플레이하고 기본 Minecraft 재료로 집을 지을 것을 요청했습니다. 우리는 이것이 테이블 제작과 같은 "초기 게임" 기술을 안정적으로 수행하는 기초 모델의 능력을 증폭시키기를 바랐습니다. 이 데이터 세트를 미세 조정하면 기본 모델에 이미 있는 초기 게임 기술을 안정적으로 수행하는 데 상당한 개선이 있을 뿐만 아니라 미세 조정된 모델은 두 나무 그리고 돌 도구. 때때로 우리는 기초적인 대피소 건설과 요원들이 상자를 습격하는 것을 포함하여 마을을 수색하는 것을 봅니다.

VPT(Video PreTraining)로 Minecraft를 플레이하는 방법 배우기
VPT(Video PreTraining)로 Minecraft를 플레이하는 방법 배우기
숙련된 사람이 각 단계에 도달하는 데 걸리는 중앙값 시간이 표시된 돌 곡괭이를 만드는 데 필요한 항목 순서
BC 미세 조정으로 인한 초기 게임 동작 개선

돌 곡괭이 만들기

기초적인 목조 쉼터 건설

마을을 수색하다

데이터 스케일링

아마도 우리 작업의 가장 중요한 가설은 동일한 소규모 계약자 데이터 세트에서 BC 기초 모델을 직접 훈련하는 것보다 레이블이 지정된 계약자 데이터를 사용하여 IDM(VPT 파이프라인의 일부로)을 훈련하는 것이 훨씬 더 효과적이라는 것입니다. 이 가설을 검증하기 위해 우리는 1시간에서 70,000시간으로 증가하는 데이터 양에 대한 기초 모델을 훈련합니다. 2,000시간 미만의 데이터에 대해 교육을 받은 사람들은 원래 IDM을 교육하기 위해 수집된 실제 레이블이 있는 계약자 데이터에 대해 교육을 받고, 2,000시간 이상에 대해 교육을 받은 사람들은 IDM으로 레이블이 지정된 인터넷 데이터에 대해 교육을 받습니다. 그런 다음 각 기초 모델을 가져와 이전 섹션에서 설명한 주택 건축 데이터 세트에 맞게 미세 조정합니다.

기초 모델 훈련 데이터가 미세 조정에 미치는 영향

기초 모형 데이터가 증가할수록 일반적으로 공예 능력이 향상되는 것을 볼 수 있으며, 가장 큰 데이터 규모에서만 석기 공예의 출현을 볼 수 있습니다.

강화 학습을 통한 미세 조정

보상 기능을 지정할 수 있는 경우 강화 학습(RL)은 잠재적으로 초인간적인 높은 성과를 이끌어내는 강력한 방법이 될 수 있습니다. 그러나 많은 작업에는 어려운 탐색 문제를 극복해야 하며 대부분의 RL 방법은 다음과 같이 해결합니다. 닥치는대로의 탐색 사전, 예를 들어 모델은 종종 엔트로피 보너스를 통해 무작위로 행동하도록 인센티브를 받습니다. 인간 행동을 모방하는 것이 무작위 행동을 취하는 것보다 훨씬 더 도움이 될 수 있기 때문에 VPT 모델은 RL 이전에 훨씬 더 나을 것입니다. 우리는 기본 인간 인터페이스를 사용할 때 Minecraft의 전례 없는 기능이 훨씬 더 어렵게 만든 다이아몬드 곡괭이를 수집하는 도전적인 작업을 모델에 설정했습니다.

다이아몬드 곡괭이를 만들려면 길고 복잡한 하위 작업 순서가 필요합니다. 이 작업을 다루기 쉽게 만들기 위해 시퀀스의 각 항목에 대해 에이전트에게 보상을 제공합니다.

VPT(Video PreTraining)로 Minecraft를 플레이하는 방법 배우기
VPT(Video PreTraining)로 Minecraft를 플레이하는 방법 배우기
다이아몬드 곡괭이를 만드는 RL 미세 조정 VPT 모델

무작위 초기화(표준 RL 방법)에서 훈련된 RL 정책은 거의 보상을 얻지 못하고 로그 수집 방법을 배우지 않고 스틱 수집은 거의 하지 않는다는 것을 발견했습니다. 대조적으로 VPT 모델의 미세 조정은 다이아몬드 곡괭이를 만드는 법을 배울 뿐만 아니라(2.5분 Minecraft 에피소드의 10%에서 수행) 다이아몬드 곡괭이. 인간이 평균 20분 이상(24,000번의 작업)을 수행하는 마인크래프트에서 다이아몬드 도구를 만들 수 있는 컴퓨터 에이전트를 보여준 것은 이번이 처음입니다.

에피소드에 대한 보상

결론

VPT는 에이전트가 행동을 배우다 인터넷에서 방대한 수의 비디오를 시청함으로써 제너레이티브 비디오 모델링이나 대조적 방법과 비교하여 대표적 사전에, VPT는 대규모 직접 학습의 흥미로운 가능성을 제공합니다. 행동 사전 언어뿐만 아니라 더 많은 영역에서. 우리는 Minecraft에서만 실험하지만 게임은 매우 개방적이며 기본 인간 인터페이스(마우스 및 키보드)는 매우 일반적이므로 우리의 결과는 다른 유사한 도메인(예: 컴퓨터 사용.

자세한 내용은 다음을 참조하시기 바랍니다 우리의 종이. 또한 계약자 데이터, Minecraft 환경, 모델 코드 및 모델 가중치를 공개 소싱하고 있으며, 이는 VPT에 대한 향후 연구에 도움이 되기를 바랍니다. 또한 올해 MineRL NeurIPS 대회와 파트너 관계를 맺었습니다. 참가자는 Minecraft의 여러 어려운 작업을 해결하기 위해 우리 모델을 사용하고 미세 조정할 수 있습니다. 관심있는 분들은 확인하실 수 있습니다 경쟁 웹 페이지 의 파란 하늘 상을 놓고 경쟁하십시오. $100,000 일반 상금 외에 $20,000. 보조금은 자신이 과소 대표되는 그룹 및 개인에게 제공됩니다.


감사의
이는 전담 팀의 큰 노력이었습니다. 각 저자는 오랜 기간 동안 다양한 분야에서 큰 공헌을 했습니다. 모든 구성원은 6개월 이상 프로젝트에 풀타임으로 참여했습니다. BB, IA, PZ 및 JC는 원래 VPT 프로젝트 팀에 있었기 때문에 훨씬 더 오랫동안(1년 이상) 참여했습니다. 원래 팀 구성원을 제외하고 작성자 순서는 무작위입니다. 또한 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