Học cách chơi Minecraft với Video PreTraining (VPT) Trí thông minh dữ liệu PlatoBlockchain. Tìm kiếm dọc. Ái.

Học cách chơi Minecraft với Video PreTraining (VPT)

Học cách chơi Minecraft với Video PreTraining (VPT)

Chúng tôi đã đào tạo mạng nơ-ron để chơi Minecraft bằng Video PreTraining (VPT) trên một tập dữ liệu video khổng lồ không gắn nhãn về trò chơi Minecraft của con người, trong khi chỉ sử dụng một lượng nhỏ dữ liệu nhà thầu được gắn nhãn. Với sự tinh chỉnh, mô hình của chúng tôi có thể học cách chế tạo các công cụ kim cương, một công việc thường mất những người thành thạo trong hơn 20 phút (24,000 thao tác). Mô hình của chúng tôi sử dụng giao diện con người nguyên bản của các lần nhấn phím và di chuyển chuột, làm cho nó khá chung chung và thể hiện một bước tiến tới các tác nhân sử dụng máy tính nói chung.

Đọc giấy


Xem mã và trọng lượng mô hình


Cuộc thi MineRL

Internet chứa rất nhiều video công khai mà chúng ta có thể học hỏi. Bạn có thể xem một người thực hiện một bài thuyết trình tuyệt đẹp, một nghệ sĩ kỹ thuật số vẽ cảnh hoàng hôn tuyệt đẹp và một người chơi Minecraft xây dựng một ngôi nhà phức tạp. Tuy nhiên, những video này chỉ cung cấp bản ghi đã xảy ra nhưng không chính xác làm thế nào nó đã đạt được, tức là bạn sẽ không biết trình tự chính xác của các chuyển động chuột và các phím được nhấn. Nếu chúng tôi muốn xây dựng quy mô lớn mô hình nền tảng trong các miền này như chúng tôi đã thực hiện bằng ngôn ngữ GPT, việc thiếu nhãn hành động này đặt ra một thách thức mới không có trong miền ngôn ngữ, nơi "nhãn hành động" chỉ đơn giản là các từ tiếp theo trong một câu.

Để tận dụng vô số dữ liệu video không gắn nhãn có sẵn trên internet, chúng tôi giới thiệu một phương pháp học bắt chước bán giám sát mới lạ nhưng đơn giản: Video PreTraining (VPT). Chúng tôi bắt đầu bằng cách thu thập một tập dữ liệu nhỏ từ các nhà thầu, nơi chúng tôi không chỉ ghi lại video của họ mà còn ghi lại các hành động mà họ đã thực hiện, trong trường hợp của chúng tôi là các thao tác nhấn phím và di chuyển chuột. Với dữ liệu này, chúng tôi đào tạo mô hình động lực học nghịch đảo (IDM), mô hình này dự đoán hành động được thực hiện ở mỗi bước trong video. Điều quan trọng, IDM có thể sử dụng quá khứ và tương lai thông tin để đoán hành động ở mỗi bước. Nhiệm vụ này dễ dàng hơn nhiều và do đó yêu cầu ít dữ liệu hơn nhiều so với nhiệm vụ nhân bản hành vi dự đoán các hành động được đưa ra chỉ khung video trước đây, yêu cầu suy ra những gì người đó muốn làm và làm thế nào để hoàn thành nó. Sau đó, chúng tôi có thể sử dụng IDM được đào tạo để gắn nhãn một tập dữ liệu lớn hơn nhiều về video trực tuyến và học cách hành động thông qua nhân bản hành vi.

Học cách chơi Minecraft với Video PreTraining (VPT)
Học cách chơi Minecraft với Video PreTraining (VPT)
Tổng quan về phương pháp VPT

Kết quả VPT Zero-Shot

Chúng tôi đã chọn xác thực phương pháp của mình trong Minecraft vì nó (1) là một trong những trò chơi điện tử được chơi nhiều nhất trên thế giới và do đó có vô số dữ liệu video miễn phí có sẵn và (2) là kết thúc mở với nhiều thứ để tương tự như các ứng dụng trong thế giới thực, chẳng hạn như sử dụng máy tính. không giống trước khi công trinh trong Minecraft sử dụng không gian hành động được đơn giản hóa nhằm mục đích giảm bớt khả năng khám phá, AI của chúng tôi sử dụng giao diện người bản địa có thể áp dụng chung hơn, mặc dù cũng khó hơn nhiều: tốc độ khung hình 20Hz với chuột và bàn phím.

Được đào tạo trên 70,000 giờ video trực tuyến có nhãn IDM, mô hình nhân bản hành vi của chúng tôi (“mô hình nền tảng VPT”) hoàn thành các nhiệm vụ trong Minecraft mà gần như không thể đạt được bằng cách học tăng cường từ đầu. Nó học cách chặt cây để thu thập các khúc gỗ, chế tạo những khúc gỗ đó thành những tấm ván, và sau đó chế tạo những tấm ván đó thành một chiếc bàn thủ công; chuỗi này đưa một người thành thạo Minecraft khoảng 50 giây hoặc 1,000 hành động trò chơi liên tiếp.

Học cách chơi Minecraft với Video PreTraining (VPT)
Học cách chơi Minecraft với Video PreTraining (VPT)
Trình tự các vật phẩm cần thiết để tạo ra một bàn chế tác, được dán nhãn với thời gian trung bình mà những người thành thạo cần đạt được từng bước
Chế tạo bàn chế tạo "không bắn" (tức là chỉ sau khi đào tạo trước mà không cần tinh chỉnh bổ sung)

Ngoài ra, mô hình thực hiện các kỹ năng phức tạp khác mà con người thường làm trong trò chơi, chẳng hạn như bơi lội, săn bắt động vật để kiếm thức ăn và ăn thức ăn đó. Nó cũng học được kỹ năng “nhảy cột”, một hành vi phổ biến trong Minecraft là nâng cao bản thân bằng cách liên tục nhảy và đặt một khối bên dưới mình.

Bơi (không bắn)

Săn bắn động vật (không bắn)

Ăn thức ăn (zero-shot)

Nhảy trụ (không bắn)

Tinh chỉnh với Nhân bản hành vi

Các mô hình nền tảng được thiết kế để có một hồ sơ hành vi rộng rãi và nói chung có khả năng thực hiện nhiều nhiệm vụ khác nhau. Để kết hợp kiến ​​thức mới hoặc cho phép họ chuyên môn hóa phân phối nhiệm vụ hẹp hơn, thông thường là tinh chỉnh các mô hình này thành các tập dữ liệu nhỏ hơn, cụ thể hơn. Như một nghiên cứu điển hình về việc mô hình nền VPT có thể được tinh chỉnh tốt như thế nào đối với các tập dữ liệu hạ lưu, chúng tôi đã yêu cầu các nhà thầu của mình chơi trong 10 phút trong thế giới Minecraft hoàn toàn mới và xây một ngôi nhà từ vật liệu Minecraft cơ bản. Chúng tôi hy vọng rằng điều này sẽ khuếch đại khả năng của mô hình nền tảng trong việc thực hiện các kỹ năng “đầu trò chơi” một cách đáng tin cậy, chẳng hạn như xây dựng bàn chế tạo. Khi tinh chỉnh tập dữ liệu này, chúng tôi không chỉ thấy sự cải thiện lớn trong việc thực hiện một cách đáng tin cậy các kỹ năng đầu trò chơi đã có trong mô hình nền tảng, mà mô hình tinh chỉnh còn học cách đi sâu hơn nữa vào cây công nghệ bằng cách chế tạo cả bằng gỗ và công cụ bằng đá. Đôi khi chúng ta còn thấy một số công trình xây dựng hầm trú ẩn thô sơ và đặc vụ tìm kiếm khắp các ngôi làng, bao gồm cả việc đột kích các rương.

Học cách chơi Minecraft với Video PreTraining (VPT)
Học cách chơi Minecraft với Video PreTraining (VPT)
Trình tự các vật phẩm cần thiết để tạo ra một chiếc cuốc đá, được dán nhãn với thời gian trung bình mà những người thành thạo cần đạt được từng bước
Cải thiện hành vi đầu trò chơi nhờ tinh chỉnh BC

Chế tạo một cái cuốc bằng đá

Xây dựng một hầm trú ẩn thô sơ bằng gỗ

Tìm kiếm qua một ngôi làng

Chia tỷ lệ dữ liệu

Có lẽ giả thuyết quan trọng nhất trong công việc của chúng tôi là việc sử dụng dữ liệu nhà thầu được gắn nhãn để đào tạo IDM (như một phần của đường ống VPT) sẽ hiệu quả hơn nhiều so với việc đào tạo trực tiếp mô hình nền tảng BC từ cùng một bộ dữ liệu nhà thầu nhỏ đó. Để xác thực giả thuyết này, chúng tôi đào tạo các mô hình nền tảng về việc tăng lượng dữ liệu từ 1 đến 70,000 giờ. Những người được đào tạo về dữ liệu dưới 2,000 giờ được đào tạo về dữ liệu nhà thầu với các nhãn xác thực được thu thập ban đầu để đào tạo IDM và những người được đào tạo trên 2,000 giờ được đào tạo về dữ liệu internet được gắn nhãn IDM của chúng tôi. Sau đó, chúng tôi lấy từng mô hình nền móng và tinh chỉnh nó cho phù hợp với tập dữ liệu xây dựng nhà được mô tả trong phần trước.

Ảnh hưởng của dữ liệu đào tạo mô hình nền tảng đối với việc tinh chỉnh

Khi dữ liệu mô hình nền tảng tăng lên, chúng ta thường thấy khả năng chế tác tăng lên và chỉ ở quy mô dữ liệu lớn nhất, chúng ta mới thấy sự xuất hiện của chế tác công cụ bằng đá.

Tinh chỉnh với Học tập củng cố

Khi có thể chỉ định một chức năng khen thưởng, học tập củng cố (RL) có thể là một phương pháp mạnh mẽ để khơi gợi hiệu suất cao, thậm chí có khả năng là siêu nhân. Tuy nhiên, nhiều nhiệm vụ đòi hỏi phải vượt qua những thử thách khám phá khó khăn và hầu hết các phương pháp RL đều giải quyết chúng bằng ngẫu nhiên mồi thăm dò, ví dụ như mô hình thường được khuyến khích hoạt động ngẫu nhiên thông qua tiền thưởng entropy. Mô hình VPT nên tốt hơn nhiều so với RL vì mô phỏng hành vi của con người có thể hữu ích hơn nhiều so với thực hiện các hành động ngẫu nhiên. Chúng tôi đặt cho mô hình của mình một nhiệm vụ đầy thử thách là thu thập một cái cuốc kim cương, một khả năng chưa từng có trong Minecraft khiến việc này càng trở nên khó khăn hơn khi sử dụng giao diện người bản địa.

Chế tạo một chiếc cuốc kim cương đòi hỏi một chuỗi nhiệm vụ phụ phức tạp và lâu dài. Để làm cho nhiệm vụ này có thể xử lý được, chúng tôi thưởng cho các nhân viên cho mỗi mục trong chuỗi.

Học cách chơi Minecraft với Video PreTraining (VPT)
Học cách chơi Minecraft với Video PreTraining (VPT)
Mô hình VPT được tinh chỉnh RL chế tạo một chiếc cuốc kim cương

Chúng tôi nhận thấy rằng chính sách RL được đào tạo từ lần khởi tạo ngẫu nhiên (phương pháp RL tiêu chuẩn) hầu như không đạt được bất kỳ phần thưởng nào, không bao giờ học cách thu thập nhật ký và hiếm khi thu thập gậy. Ngược lại, tinh chỉnh từ mô hình VPT không chỉ học cách chế tạo cuốc kim cương (điều này xảy ra trong 2.5% các tập Minecraft dài 10 phút), mà nó thậm chí còn có tỷ lệ thành công ở cấp độ con người khi thu thập tất cả các vật phẩm dẫn đến cái cuốc kim cương. Đây là lần đầu tiên có người cho thấy một nhân viên máy tính có khả năng chế tạo công cụ kim cương trong Minecraft, trung bình con người mất hơn 20 phút (24,000 thao tác).

Phần thưởng qua các tập

Kết luận

VPT mở đường cho phép các đại lý học cách hành động bằng cách xem vô số video trên internet. So với mô hình video chung chung hoặc các phương pháp tương phản sẽ chỉ mang lại đại diện trước tiên, VPT cung cấp khả năng thú vị để học trực tiếp trên quy mô lớn sơ đẳng về hành vi trong nhiều lĩnh vực hơn là chỉ ngôn ngữ. Mặc dù chúng tôi chỉ thử nghiệm trong Minecraft, nhưng trò chơi có kết thúc mở và giao diện người dùng gốc (chuột và bàn phím) rất chung chung, vì vậy chúng tôi tin rằng kết quả của chúng tôi là tín hiệu tốt cho các miền tương tự khác, ví dụ như sử dụng máy tính.

Để biết thêm thông tin, vui lòng xem giấy của chúng tôi. Chúng tôi cũng đang mở nguồn cung cấp dữ liệu nhà thầu, môi trường Minecraft, mã mô hình và trọng lượng mô hình, chúng tôi hy vọng sẽ hỗ trợ nghiên cứu trong tương lai về VPT. Hơn nữa, chúng tôi đã hợp tác với cuộc thi MineRL NeurIPS năm nay. Người dự thi có thể sử dụng và tinh chỉnh các mô hình của chúng tôi để cố gắng giải quyết nhiều nhiệm vụ khó khăn trong Minecraft. Những người quan tâm có thể kiểm tra trang web cạnh tranh và cạnh tranh cho một giải thưởng bầu trời xanh của $100,000 ngoài một nhóm giải thưởng thông thường của $20,000. Các khoản tài trợ được cung cấp cho các nhóm và cá nhân không được đại diện tự nhận.


Lời cảm ơn
Đây là một nỗ lực lớn của một đội ngũ tận tâm. Mỗi tác giả đều có những đóng góp to lớn trên nhiều mặt trong suốt thời gian dài. Tất cả các thành viên đã toàn thời gian cho dự án trong hơn sáu tháng. BB, IA, PZ và JC thuộc nhóm dự án VPT ban đầu và do đó đã tham gia lâu hơn (hơn một năm). Ngoài các thành viên trong nhóm ban đầu, thứ tự tác giả là ngẫu nhiên. Nó cũng được phân ngẫu nhiên giữa IA và 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(); });

Dấu thời gian:

Thêm từ OpenAI