diff --git a/.fdignore b/.fdignore new file mode 100644 index 0000000..d83afc4 --- /dev/null +++ b/.fdignore @@ -0,0 +1,4 @@ +.* +cursors +LICENSE +docs \ No newline at end of file diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 0000000..57f9f81 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,6 @@ +!.gitignore +!* +!*/* +cache_db.json +cache_tree.json +vector_cache diff --git a/docs/cache_title.json b/docs/cache_title.json new file mode 100644 index 0000000..5781a61 --- /dev/null +++ b/docs/cache_title.json @@ -0,0 +1 @@ +{"_default": {"1": {"path": "/README.md", "hash": "c1452962d435f3130bd2b7095763ed0b", "title": "Minecraft AI Competition and House Building"}, "2": {"path": "/README.md:3-35", "hash": "528e7f92e05e70d15692eae4c10de9f0", "title": "Video PreTraining Model Setup and Usage"}, "3": {"path": "/README.md:37-51", "hash": "fa6a4c803afe5dbb40e55ae277b6ae55", "title": "Pre-Trained Minecraft RL Models"}, "4": {"path": "/README.md:52-65", "hash": "f2e7a65b626c9636dcb63c37db1c8270", "title": "Pre-Trained Minecraft Models and Fine-Tuning"}, "5": {"path": "/README.md:66-85", "hash": "8d9c337360c872d328fc7a096da1f31e", "title": "Pre-Trained Minecraft Models for Faster Tech Tree Progress"}, "6": {"path": "/README.md:86-99", "hash": "9ea990b45669dc0134ee7fb3d55d4401", "title": "IDM Demonstration with Contractor Recordings"}, "7": {"path": "/README.md:101-114", "hash": "0b94971dc211000fe15cd49a94e25fdb", "title": "Video Pre-Training Demonstration"}, "8": {"path": "/README.md:116-136", "hash": "8cbc4f80712b287fe5417cb9a08981f0", "title": "Major Limitations and Versions Used"}, "9": {"path": "/README.md:136-152", "hash": "342a35871686f5f4cd03adceb06ca8df", "title": "Minecraft AI Model Training Versions"}, "10": {"path": "/README.md:153-168", "hash": "b568e506d7f68d3ba62ae9d393caf048", "title": "Minecraft AI: Enhancing Performance through Early Data"}, "11": {"path": "/README.md:168-182", "hash": "b829009d51fba00bc60044912275db27", "title": "Simple Wooden House Building Guide"}, "12": {"path": "/README.md:182-194", "hash": "0bde4a099a070a7624ce959fe719f1c6", "title": "Timed Minecraft Demo: House Building Challenge"}, "13": {"path": "/README.md:196-215", "hash": "75ccb213456b9925987c3c970b7d48e5", "title": "Time-Based Task Completion"}, "14": {"path": "/README.md:216-237", "hash": "d1fd694759d9d175c7cfed75472bf64c", "title": "Random Starting Inventory Generator"}, "15": {"path": "/README.md:238-250", "hash": "6fef77d0b3373d7bca09c983d2875502", "title": "Random Biome-based Hotbar Items"}, "16": {"path": "/README.md:251-263", "hash": "153ed32f17b6e984224a14c5fa5c72aa", "title": "Randomized Inventory Population"}, "17": {"path": "/README.md:264-288", "hash": "6241c345c15d01c0a963f790a1369530", "title": "Sunflower Inventory Boost"}, "18": {"path": "/README.md:288-304", "hash": "49d1830f219d3fd17faa0bc6b8a6767b", "title": "Minecraft Diamonds and Version Updates"}, "19": {"path": "/README.md:304-311", "hash": "97f68c5645214247229a383b401c7571", "title": "Minecraft Testing Guidelines"}, "20": {"path": "/README.md:312-338", "hash": "469a714703b02558a1b4810b3df6866b", "title": "Demonstration Format and Index"}, "21": {"path": "/README.md:340-388", "hash": "8ea986d3ac3fe442825903b664ecb966", "title": "Action and File Structure for Data Loader"}, "22": {"path": "/README.md:389-418", "hash": "8244fac6f7c73eaec7f6f96ad458e1c0", "title": "JSON Game State Data for Minecraft"}, "23": {"path": "/README.md:420-439", "hash": "af8d3ba5fdd955953c02f8d041d6bf7e", "title": "Cave Hunt and Waterfall Snapshot"}, "24": {"path": "/README.md:440-451", "hash": "764b061bd3e3447803ef51f668ef0789", "title": "Village-Friendly Animal Pen Building Prompt"}, "25": {"path": "/README.md:451-467", "hash": "12f8e64faa253a7719a9b19611a39c4b", "title": "AI Minecraft Tasks: Construct, Protect, and Tour in 5 Minutes"}, "26": {"path": "/README.md:467-487", "hash": "56f06a976273abb9a1d445a97289bbb5", "title": "Eco-Friendly Minecraft Village Building"}, "27": {"path": "/README.md:488-497", "hash": "df2c6bd3444897bddc114fe563e7afa3", "title": "Acknowledging Authors & Crediting Anssi Kanervisto"}, "28": {"path": "/agent.py", "hash": "f0b7144b27c969548d0f7bfdd75edd77", "title": "Reinforcement Learning Minecraft Agent Setup"}, "29": {"path": "/agent.py:1-40", "hash": "477e62661cccf5f37ed9f6413a71066d", "title": "Minecraft Agent Configuration"}, "30": {"path": "/agent.py:41-77", "hash": "a7cec167c0e7ef0a93d113d96ff9d9ac", "title": "Game Agent Parameter Settings"}, "31": {"path": "/agent.py:78-101", "hash": "52c7b1e390a783caec5eba8e80337fc0", "title": "MineRL Environment Validation and Setup"}, "32": {"path": "/agent.py:102-128", "hash": "58f163063388dbd8a85b0f78601b5c65", "title": "MineRL Agent Image Resizing"}, "33": {"path": "/agent.py:129-154", "hash": "4bed89ca686c1285bdebfc22044f88f4", "title": "Agent Class and Methods"}, "34": {"path": "/agent.py:155-175", "hash": "8a7a942e8e7a92b25cc2509b6eb08b1c", "title": "Action Transformation and Conversion in MineRL"}, "35": {"path": "/agent.py:176-199", "hash": "49d600737c3659db4e07dbaf4d3bb1a3", "title": "Observation-Action Class"}, "36": {"path": "/agent.py:200-206", "hash": "5fd5d8dbc42eede2cbad3f9c62e4678b", "title": "Agent's Policy Action Selection"}, "37": {"path": "/behavioural_cloning.py", "hash": "6dce892f3e3e939450af46ee9643ae30", "title": "Agent-Based Actor-Critic Training in Behavioral Cloning"}, "38": {"path": "/behavioural_cloning.py:1-34", "hash": "90844b50397edb735a07c4e2f5cea0b5", "title": "Behavioral Cloning: Fine-Tuning with Gradient Accumulation"}, "39": {"path": "/behavioural_cloning.py:36-60", "hash": "14e849fc25813f0ded1d4c322cc4f29f", "title": "Load and Configure Agent Object"}, "40": {"path": "/behavioural_cloning.py:62-91", "hash": "bde143bc62406e2cf1b038560a0dc294", "title": "Training Environment Setup"}, "41": {"path": "/behavioural_cloning.py:92-114", "hash": "5b9ce3197db446f4afbdc7db2f182ef4", "title": "Policy-Based Actor-Critic Environment Setup"}, "42": {"path": "/behavioural_cloning.py:115-139", "hash": "a590fe7a9cab9bf10dfe36017b6312bf", "title": "Training Policy Model with Behavioral Cloning"}, "43": {"path": "/behavioural_cloning.py:140-143", "hash": "c22affe7ae7ceef7ca1dd78d90f326f3", "title": "Command Line Parsing for Behavioral Cloning Training"}, "44": {"path": "/data_loader.py", "hash": "16b1c5a1f5c3232251e5cf4d95420b2b", "title": "Batch Data Loader with Processes"}, "45": {"path": "/data_loader.py:1-40", "hash": "7f1dce54ea9e427499d87a5f865db5b2", "title": "MineRL VPT Data Loader"}, "46": {"path": "/data_loader.py:41-67", "hash": "da416bc576629796d6e82fb3cb95715c", "title": "Video Game Annotation Extractor"}, "47": {"path": "/data_loader.py:68-91", "hash": "325ff7cddbc2a3a0f83cdc64b8b0e133", "title": "Scrollwheel-based Attack Unsticking"}, "48": {"path": "/data_loader.py:92-113", "hash": "3daba2326b04f5513c51597920e4b8c1", "title": "Stuck State Detection and Action Removal"}, "49": {"path": "/data_loader.py:114-134", "hash": "633744c5b24c2dbbb96e7fba47c8e7d9", "title": "Compositing and Resizing Cursors"}, "50": {"path": "/data_loader.py:135-155", "hash": "f03e4212831d24e4731cd0dcdef4d47e", "title": "Sub-Inefficient Sequence Loader"}, "51": {"path": "/data_loader.py:156-178", "hash": "1ab6b2ce9b69fd19613a1e1e869a1d2a", "title": "Video Data Loader for Shuffled Demonstrations"}, "52": {"path": "/data_loader.py:179-209", "hash": "d328b49f66706191df58e36e49e54b99", "title": "Batch Data Loading Workers"}, "53": {"path": "/data_loader.py:210-222", "hash": "f4fd374556da20232bb066120e407056", "title": "Batch Data Processor"}, "54": {"path": "/inverse_dynamics_model.py", "hash": "fa8f52cbd181af8f2d69d3e84997c1e6", "title": "IDMAgent: Minecraft Predictor"}, "55": {"path": "/inverse_dynamics_model.py:1-33", "hash": "1e85d3d45b4729fe65d37e9e5dba2577", "title": "IDMAgent: Minecraft Action Predictor"}, "56": {"path": "/inverse_dynamics_model.py:34-56", "hash": "c2e942bf92647f7a8e11d676f88931ad", "title": "Agent Initialization and Weight Loading"}, "57": {"path": "/inverse_dynamics_model.py:57-79", "hash": "caab0687eb32e7b1574a35f492fc9f8a", "title": "Policy to MineRL Action Conversion"}, "58": {"path": "/inverse_dynamics_model.py:80-95", "hash": "d4170e090e7fbeac6c63668e4605a745", "title": "Agent State Tracking and Action Prediction"}, "59": {"path": "/lib/action_head.py", "hash": "7af31eb75d821d02a2dafee7a9dc34c8", "title": "Abstract Action Head Class for RL Action Spaces"}, "60": {"path": "/lib/action_head.py:1-36", "hash": "542c11d9892b80d7fec97dd0dac4b760", "title": "Fan-In Initialized Action Heads"}, "61": {"path": "/lib/action_head.py:37-63", "hash": "17710b50770bd67a267f45f0a4473e44", "title": "Abstract Base Class for Action Heads"}, "62": {"path": "/lib/action_head.py:64-89", "hash": "356cc33bf35e81c3744d1f197ab30248", "title": "Orthogonal Initialization for Action Head"}, "63": {"path": "/lib/action_head.py:91-119", "hash": "74fc1c049aca7431a16b90583c84a5f9", "title": "Calculate Entropy, Z-Score, and KL Divergence"}, "64": {"path": "/lib/action_head.py:120-151", "hash": "a28fd3583dceda6f6affadcc494ff3fa", "title": "Categorical Action Head Initialization"}, "65": {"path": "/lib/action_head.py:152-174", "hash": "58db5d5aadf23bbe4e252a50c4134e6c", "title": "Action Head Class Definition and Forward Function"}, "66": {"path": "/lib/action_head.py:176-196", "hash": "6ee0db40993e23222844e36f563ca2aa", "title": "Functions for Action Distributions"}, "67": {"path": "/lib/action_head.py:197-217", "hash": "4afb70523bdbe2c6141f5e6340df6f1a", "title": "Gumbel-Softmax for Categorical Training"}, "68": {"path": "/lib/action_head.py:218-243", "hash": "ce927827517b2e39a637ac93f17b91f8", "title": "DictActionHead Class: Forward Pass and Parameter Reset"}, "69": {"path": "/lib/action_head.py:244-264", "hash": "049d01fbd1f8c350ec78e58ae0e68375", "title": "Action Head Class: Supporting Methods"}, "70": {"path": "/lib/action_head.py:265-275", "hash": "851a45c77a249cbffd9f44fa78b48f72", "title": "ActionHead Selection"}, "71": {"path": "/lib/action_mapping.py", "hash": "0bd8e1a787709909afc20607a57ea5cb", "title": "Action Mapping and Management"}, "72": {"path": "/lib/action_mapping.py:1-32", "hash": "0dda6c9a3b35e536039a506b4d7ae83c", "title": "Action Mapping Class for Minecraft Customization"}, "73": {"path": "/lib/action_mapping.py:33-64", "hash": "78a5e898bb97a921e614eb5fd78bf641", "title": "Abstract Base Class for Action Mapping"}, "74": {"path": "/lib/action_mapping.py:65-82", "hash": "898672ed758bd190c4777691bad5d9ba", "title": "Button Selection from Factored Action Space"}, "75": {"path": "/lib/action_mapping.py:83-97", "hash": "24a693ee2c0e85994af6e076799cb4f3", "title": "Priority-based Action Mapping for 'None' Button"}, "76": {"path": "/lib/action_mapping.py:98-122", "hash": "c6e9e7b0ba06bde30c8b0019720aa8ee", "title": "Action Mapping Classes for Video Games"}, "77": {"path": "/lib/action_mapping.py:124-142", "hash": "5b37aa376d8647e70a1672d50f842444", "title": "Camera Meta Actions Mapping"}, "78": {"path": "/lib/action_mapping.py:143-161", "hash": "9289ea43db0f965cdb1df90ca7dd1c14", "title": "Button and Camera Array Mapping Setup"}, "79": {"path": "/lib/action_mapping.py:162-180", "hash": "4f0950820c77a86f0c14e03bda848ce2", "title": "Factored Action-Camera Combinations"}, "80": {"path": "/lib/action_mapping.py:181-200", "hash": "3a8834404f06efff949309449ca1f492", "title": "Assertion Check and Action Mapping"}, "81": {"path": "/lib/action_mapping.py:201-223", "hash": "d672a24a0358d1196450d274966239cc", "title": "Factoring New Action Space"}, "82": {"path": "/lib/action_mapping.py:225-234", "hash": "9f4f1a765fff297a03ba7e59668384bf", "title": "Class with Three Methods Defined"}, "83": {"path": "/lib/actions.py", "hash": "535b24b72ef01b4e5b2dfd4514fc4eee", "title": "Action-based Quantization in Minecraft"}, "84": {"path": "/lib/actions.py:1-54", "hash": "729d8cc7c52f3467cb22391f432b1ce2", "title": "Minecraft Action and Camera Quantization"}, "85": {"path": "/lib/actions.py:55-68", "hash": "6d3dbd98a43de2e5903f998b9a76e4b8", "title": "Mu-law and Linear Quantization Schemes"}, "86": {"path": "/lib/actions.py:69-95", "hash": "a1ec97ac35096c762c7aeea18c190f9b", "title": "Discretize and Undiscretize Values with Class"}, "87": {"path": "/lib/actions.py:97-130", "hash": "145c3411ff155288d12b9c273c150adf", "title": "Action Transformer Class for MinerL Environment"}, "88": {"path": "/lib/actions.py:132-160", "hash": "b3c8003230409e998477dddcce3ea727", "title": "Functions: Item to Name Conversion, Dict to Numpy, and Numpy to Dict"}, "89": {"path": "/lib/actions.py:161-178", "hash": "9ea828fc1b7fcf27071058d704b66c76", "title": "Camera Array Transformations"}, "90": {"path": "/lib/impala_cnn.py", "hash": "9fb4fc00cd02052bf50aca9151de3c11", "title": "Customizable ImpalaCNN Architecture"}, "91": {"path": "/lib/impala_cnn.py:1-42", "hash": "85906f510197568564b8801143d0fe21", "title": "ImpalaCNN: Residual Basic Blocks"}, "92": {"path": "/lib/impala_cnn.py:43-78", "hash": "10eaff967714e92af2ae849845c1efd1", "title": "ImpalaCNN: 1D Conv Layers for Image Classification"}, "93": {"path": "/lib/impala_cnn.py:79-107", "hash": "1a61cbcf50361fe83f7febe1eef0d08c", "title": "ImpalaCNN: Customizable Convolutional Neural Network"}, "94": {"path": "/lib/impala_cnn.py:108-139", "hash": "23767fd0d2e918d78bf5b74df34461d0", "title": "ImpalaCNN Model Architecture"}, "95": {"path": "/lib/impala_cnn.py:140-171", "hash": "36b4b29826af1fd4e71c0c1519eddf4f", "title": "ImpalaCNN: Custom Convolutional Class"}, "96": {"path": "/lib/impala_cnn.py:172-195", "hash": "d387a23275fcea5bb73e2be867f06bfb", "title": "Stacked 2D Convolutional CNN Model"}, "97": {"path": "/lib/masked_attention.py", "hash": "194e0c1de170a38578b8e9b0b21acbe1", "title": "Masked Attention Mechanism for Time Series"}, "98": {"path": "/lib/masked_attention.py:1-31", "hash": "7872d01a7b7f1558226b47775353ca96", "title": "Band Diagonal Time Series Mask"}, "99": {"path": "/lib/masked_attention.py:32-54", "hash": "7ec082e7b7098438a5c7bbdfe89fc08e", "title": "Generate Boolean Mask for Masked Attention"}, "100": {"path": "/lib/masked_attention.py:55-73", "hash": "38b2f2f8a85dd33373d2fbad78606c2f", "title": "Update State Mask for Masked Attention"}, "101": {"path": "/lib/masked_attention.py:75-102", "hash": "f468c154765a3bb4d3c4e57642f6cb03", "title": "Dynamic Episode Masking in Transformer Layers"}, "102": {"path": "/lib/masked_attention.py:104-113", "hash": "7ff482e4fa5d0808cb0fc359d42daee3", "title": "Masked Attention Mechanism Parameters"}, "103": {"path": "/lib/masked_attention.py:114-147", "hash": "251d3bc90a7be5b9cb66746b3786ee19", "title": "Masked Attention Initialization"}, "104": {"path": "/lib/masked_attention.py:148-173", "hash": "aa80bb911e0a0fd3deff1d212aeab297", "title": "Masked Attention Class and Forward Pass"}, "105": {"path": "/lib/masked_attention.py:174-182", "hash": "3278a4ac024e8c0aa8ff500c67798258", "title": "Masked Attention Method"}, "106": {"path": "/lib/minecraft_util.py", "hash": "a1cc0dcf2f304e14dd8d4899a8e07ab3", "title": "Average Entropy Calculator"}, "107": {"path": "/lib/minecraft_util.py:1-32", "hash": "78d12a272e2d4dfe53db3720a5565f8e", "title": "Decorator for Storing Method Arguments"}, "108": {"path": "/lib/minecraft_util.py:34-55", "hash": "a4ace935d80b7eb408ebc4fa28e66967", "title": "Normalized Entropy Calculation"}, "109": {"path": "/lib/minecraft_util.py:56-79", "hash": "eb1843791cfa372d9c19ed4afb4ee805", "title": "Calculate Entropy of Gaussian Action Heads"}, "110": {"path": "/lib/minecraft_util.py:80-88", "hash": "34083658bb90469d3cf8780418d0b4ea", "title": "Average Entropy from DiagGaussianActionHead/DictActionHead"}, "111": {"path": "/lib/misc.py", "hash": "d6628f403ced15ba98ec6a825caf1758", "title": "Data Processing Tasks: Calculating Products and Reshaping Input Data"}, "112": {"path": "/lib/misc.py:1-43", "hash": "efbc8472be90b62b37cbf55d2417812a", "title": "Data Manipulation Functions"}, "113": {"path": "/lib/misc.py:44-89", "hash": "2ae18ebfe0ee19c05022f94f15ad1201", "title": "Transpose and Compose Functions"}, "114": {"path": "/lib/misc.py:90-118", "hash": "7906a283abc0eb561f11792a09c16f9d", "title": "Handling Int and Str Calculations in Function"}, "115": {"path": "/lib/misc.py:119-157", "hash": "9a14be737c4b10ca56800ad1b4719e17", "title": "Sort Symbols in List"}, "116": {"path": "/lib/misc.py:158-187", "hash": "dfe762a7cbaf4e5bff79350e81429a3a", "title": "Check and Update Product of List Values"}, "117": {"path": "/lib/misc.py:188-223", "hash": "b596b6231a675a4373be7cd94a287e7f", "title": "Shape Reshaping and Exception Handling"}, "118": {"path": "/lib/misc.py:224-240", "hash": "15112c3e1e9f1467d95277f0b2e2dcf7", "title": "Input Validation and Shape Inference"}, "119": {"path": "/lib/misc.py:241-263", "hash": "d14ebcd9f5a064c8f4a3c30a5a342838", "title": "Utility Functions in lib/misc.py:241-263"}, "120": {"path": "/lib/mlp.py", "hash": "4711ffc2d6f5a64a9069a961837cf443", "title": "MLP Class: Neural Network Architecture"}, "121": {"path": "/lib/normalize_ewma.py", "hash": "cf0d00802e6ef9cf8b0c49aeddfae7d3", "title": "Efficient Normalization with Debiased Means"}, "122": {"path": "/lib/normalize_ewma.py:1-28", "hash": "cc6672c0f2c5338681ce4b50c58b880d", "title": "Exponential Weighted Normalization Module"}, "123": {"path": "/lib/normalize_ewma.py:29-51", "hash": "0fdc785d54725e0cf8d19dc2036d9966", "title": "Debiased Mean and Variance Calculator"}, "124": {"path": "/lib/normalize_ewma.py:52-60", "hash": "3c8a1263aa1ea729587df2cc306417ab", "title": "Efficient Data Normalization and EWMA Calculation"}, "125": {"path": "/lib/policy.py", "hash": "ae26b75539d0261a20612229c76358fd", "title": "Minecraft Reinforcement Learning with PyTorch"}, "126": {"path": "/lib/policy.py:1-32", "hash": "5ea95d0c6c724d8a7854f0215e5503a4", "title": "Normalizing Images with ImgPreprocessing Class"}, "127": {"path": "/lib/policy.py:33-62", "hash": "2ed9700242e277d7eef94867d1ca9395", "title": "ImgObsPreprocessing Class"}, "128": {"path": "/lib/policy.py:63-91", "hash": "decddcb506467e3fe53388d82c12acf4", "title": "Policy Class with CNN and Layer Initialization"}, "129": {"path": "/lib/policy.py:92-122", "hash": "d3fe0b8931a2d416231541fb298c9d5d", "title": "Deep Reinforcement Learning Policy Initializer"}, "130": {"path": "/lib/policy.py:123-150", "hash": "c6351d3b4db9410cf7514726d83d6d91", "title": "Class Initialization and Attributes"}, "131": {"path": "/lib/policy.py:151-178", "hash": "7bb192d9bfe26da770fad0c949e6a331", "title": "Layer Normalization Setup"}, "132": {"path": "/lib/policy.py:179-208", "hash": "8e9695919947d265ab282109ca3616c8", "title": "Initializing Recurrent Module and Forward Pass"}, "133": {"path": "/lib/policy.py:209-238", "hash": "aa6901be3668589edb545a6b758c6157", "title": "MinecraftAgentPolicy Class Definition"}, "134": {"path": "/lib/policy.py:240-269", "hash": "b6f53641fc91c664b792927833c415d3", "title": "Neural Policy Decisions Class"}, "135": {"path": "/lib/policy.py:271-299", "hash": "bd36b0a7a06e00a6dd6ecf91fda7f8dd", "title": "Policy Network Functions"}, "136": {"path": "/lib/policy.py:300-323", "hash": "a9d9c3de561db0c7d496991888fd701c", "title": "Time Dimension Policy Evaluation"}, "137": {"path": "/lib/policy.py:324-357", "hash": "1ec979580cb31ba09f8043f8ec23b4e1", "title": "InverseActionNet: MinecraftPolicy Subclass"}, "138": {"path": "/lib/policy.py:358-386", "hash": "a36d72e518b6157a9e59de68e1bb275c", "title": "3D Convolution Layer Initialization"}, "139": {"path": "/lib/policy.py:388-424", "hash": "bbf4bbb591510dc81a39b23eb881aed1", "title": "Inverse Action Policy Class"}, "140": {"path": "/lib/policy.py:425-457", "hash": "4d5078db16ab6503c38e15b7983c9f62", "title": "Training RL Policy with PyTorch"}, "141": {"path": "/lib/policy.py:458-467", "hash": "4f00936d505d9c023367a9930f62f55b", "title": "Log Probability Action Check"}, "142": {"path": "/lib/scaled_mse_head.py", "hash": "8042cb9009f9822b2f14a09d9a9944e5", "title": "Scaled MSE Loss for Linear Layer"}, "143": {"path": "/lib/scaled_mse_head.py:1-35", "hash": "6b1bb37e8a657d12b5fa1a6ea38c575f", "title": "Scaled MSE Head Layer: Normalizing Linear Outputs"}, "144": {"path": "/lib/scaled_mse_head.py:37-50", "hash": "ffa32ac0ccd144b77da6785efe3b2622", "title": "Scaled MSE Loss with Normalization/Denormalization"}, "145": {"path": "/lib/torch_util.py", "hash": "113429be8af1e3dfc5fc522a3be8dce4", "title": "Efficient PyTorch Library Management"}, "146": {"path": "/lib/torch_util.py:1-57", "hash": "8f6059acf01bbde05b8c6f607d0cad37", "title": "Torch CUDA Utilities"}, "147": {"path": "/lib/torch_util.py:60-96", "hash": "234e5a0864eb7995ab93f3590355d262", "title": "Linear and LayerNorm Functions in Torch Utils"}, "148": {"path": "/lib/torch_util.py:97-131", "hash": "002203a8a7a4ff79c46b086717d52338", "title": "LayerNorm, Flatten, Sequential, Load Avg with Metadata"}, "149": {"path": "/lib/torch_util.py:132-165", "hash": "65ce4d6d9b2ad8b8a268b12dbdaac006", "title": "PyTorch Decorator for Model State Saving"}, "150": {"path": "/lib/torch_util.py:166-199", "hash": "f1b8d33010adc996e231787d84132191", "title": "PyTorch Tensor Data Type Parser"}, "151": {"path": "/lib/torch_util.py:200-200", "hash": "a5a547bcc4c9d2e1a9b94ab4788f3944", "title": "Squeeze Tensor Dimension"}, "152": {"path": "/lib/tree_util.py", "hash": "625abac6f11781891afdfc4d87c9f332", "title": "Tree Utilities for PyTree API"}, "153": {"path": "/lib/tree_util.py:1-35", "hash": "e4e3e2bfa15b3126a1a3c820d7b1a503", "title": "Utility Functions for Dictionary, Tuple, and List Manipulation"}, "154": {"path": "/lib/tree_util.py:36-70", "hash": "25329052d6e7e7649d7a56a93a617034", "title": "Safe List Operations and Tree Mapping"}, "155": {"path": "/lib/tree_util.py:71-93", "hash": "53c63a09ecae6e07d88e4dfa272a45a0", "title": "Multi-Input Function Applied to Pytree Leaves"}, "156": {"path": "/lib/tree_util.py:95-119", "hash": "f31c286c204a255e6a2485fd59d0e112", "title": "Tree Node Type Determination and Iteration"}, "157": {"path": "/lib/tree_util.py:120-141", "hash": "d2e14dae3afe8da5df820635f5a1308e", "title": "Validate Tree Structure in Python"}, "158": {"path": "/lib/tree_util.py:142-171", "hash": "966f58321fbef5235481571ea311705f", "title": "Tree Utilities: Building and Unflattening Trees"}, "159": {"path": "/lib/tree_util.py:172-201", "hash": "0f8d79dbe27cdec28dd78a410c2f22b6", "title": "PyTreeDef: Tree Nodes Definition and Operations"}, "160": {"path": "/lib/tree_util.py:203-256", "hash": "9f9ac37d63d0dd5ba89030d6f7fdceb4", "title": "Tree-like Object Serialization Class"}, "161": {"path": "/lib/tree_util.py:259-280", "hash": "bc0e6661f9bbe8f75ce33ed69787b0b3", "title": "Serializing Complex Data Types with PyTree API"}, "162": {"path": "/lib/util.py", "hash": "4e21f48fcd62b3ebec30b393e487309a", "title": "Neural Network Utilities"}, "163": {"path": "/lib/util.py:1-30", "hash": "3330e6aec16f2a2ec9afbd7b57eada60", "title": "Recursive Module Key Collection and Fan-in ReLU Layer"}, "164": {"path": "/lib/util.py:31-62", "hash": "45931712719df1dc656017d17bbda4f6", "title": "Dynamic Normalization Function Initialization"}, "165": {"path": "/lib/util.py:64-94", "hash": "ed09680edf59de33683b6f66a88bb387", "title": "Residual Recurrent Blocks for Neural Network Stability"}, "166": {"path": "/lib/util.py:95-126", "hash": "48928a37d35211208abb6217d9c071f9", "title": "ResidualRecurrentBlock Class"}, "167": {"path": "/lib/util.py:127-161", "hash": "de221eb02380d8de0f34fb0da8fefd04", "title": "Residual Recurrent Block Initialization"}, "168": {"path": "/lib/util.py:162-184", "hash": "16bc40801c3351aa674c94190b5b9b55", "title": "Layer Normalization and MLP Initialization"}, "169": {"path": "/lib/util.py:185-216", "hash": "5fa40e35b97127225066bab432cb717b", "title": "Transformer Block Recurrent Pass"}, "170": {"path": "/lib/util.py:217-253", "hash": "b953b83e301b7ac3941b7207d72191f6", "title": "Reversing LSTM Input Sequences"}, "171": {"path": "/lib/util.py:254-276", "hash": "77dda5342e28ecbae5b3854f27ade036", "title": "Band-Repeat Normalization"}, "172": {"path": "/lib/xf.py", "hash": "8e7b332087a17e58b4d48435a0bfe5e6", "title": "Strided Attention Mechanism for Transformers"}, "173": {"path": "/lib/xf.py:1-43", "hash": "c073f7f87fcf768fe99ed9b211fadd17", "title": "Softmax Attention Function"}, "174": {"path": "/lib/xf.py:44-68", "hash": "81fbe2c22964622eb005cdbcef5e7452", "title": "Multi-Head Attention Logit Calculation"}, "175": {"path": "/lib/xf.py:69-107", "hash": "593b4b0c82f019183bcfc23bdb4bf056", "title": "Attention Mechanism Class and Split Heads Function"}, "176": {"path": "/lib/xf.py:108-138", "hash": "38a6f4a2a862d129f615fe786d2988e0", "title": "XF Class Initialization and Preprocessing"}, "177": {"path": "/lib/xf.py:141-163", "hash": "2495bf9a78ca11d88b21a81980974eb0", "title": "StridedAttn: Preprocessing and Initialization"}, "178": {"path": "/lib/xf.py:164-192", "hash": "acd03f60e561c82698b0282c297a846c", "title": "Data Preprocessing for Deep Learning Model"}, "179": {"path": "/lib/xf.py:193-215", "hash": "69d37151684e3884e68210c0f9cae5fd", "title": "Transformer Preprocessing Function"}, "180": {"path": "/lib/xf.py:216-254", "hash": "4f91631e1997f9012006afb21ce55943", "title": "Attention Layer Base Class"}, "181": {"path": "/lib/xf.py:255-291", "hash": "9019c1e912c0e5db48937207261eae8b", "title": "Self-Attention Layer Implementation"}, "182": {"path": "/lib/xf.py:292-331", "hash": "3dd45a469d150e070a4b9f8adaa5b487", "title": "Attention Module Constructor"}, "183": {"path": "/lib/xf.py:332-359", "hash": "6407f4a805abf53423486081a78e62a6", "title": "Attention Residual Class"}, "184": {"path": "/lib/xf.py:360-382", "hash": "f6eba634c5ed7d3d37a1b2182d882d13", "title": "Neural Network Forward, Stateless Forward & State Update Functions"}, "185": {"path": "/lib/xf.py:383-414", "hash": "2db535c4d8ff1b598ed3ae1537588d4c", "title": "Residual MLP Layer Initialization"}, "186": {"path": "/lib/xf.py:415-450", "hash": "0e5f5432a3d448c626831ed76aeb38d2", "title": "ResNet Multi-Scale Module"}, "187": {"path": "/lib/xf.py:451-479", "hash": "c400dd2387946fc7c6e8647df097e15c", "title": "Split-Apply-Combine with Multiscale Layers"}, "188": {"path": "/requirements.txt", "hash": "0fa2edc6f9b06a901f5e97f98d7d0c84", "title": "PyTorch, Gym, attrs, OpenCV Installation Guide"}, "189": {"path": "/run_agent.py", "hash": "2617f4cdf6936614d2e17bfa647bb460", "title": "Run Agent Model"}, "190": {"path": "/run_agent.py:1-30", "hash": "1feeff9c7bb3457fac4f53429d8a677e", "title": "Train MineRL Agent with Pre-loaded Model"}, "191": {"path": "/run_agent.py:31-35", "hash": "6ffa7a73d52744d99d6dbb8262ae7bf5", "title": "Argument Parser Model File Loading"}, "192": {"path": "/run_inverse_dynamics_model.py", "hash": "07bf0334f978079c5efb025263736a64", "title": "Inverse Dynamics Model Game Engine"}, "193": {"path": "/run_inverse_dynamics_model.py:1-36", "hash": "bb7b5dc5b3a87b673f66d4297ea4528f", "title": "Key-Action Mapping Dictionary for Game Controls"}, "194": {"path": "/run_inverse_dynamics_model.py:37-86", "hash": "8b0a326a7ad0fbd90960e5d50ff854e7", "title": "Inverse Dynamics Model Training"}, "195": {"path": "/run_inverse_dynamics_model.py:87-112", "hash": "5fbe7ba4ba6d35cbc8e9ece32c604956", "title": "Reset Camera Action & Input Handler"}, "196": {"path": "/run_inverse_dynamics_model.py:114-143", "hash": "0088ec5b7e15efb9549727a9bff97658", "title": "Loading Agent and Capturing Video Input"}, "197": {"path": "/run_inverse_dynamics_model.py:144-170", "hash": "c7200100cae75fe5aab2b429b5447585", "title": "Inverse Dynamics Model Execution"}, "198": {"path": "/run_inverse_dynamics_model.py:171-197", "hash": "27221056654463726616621a4dd8f922", "title": "Real-Time IDM Model Predictions on Videos"}, "199": {"path": "/run_inverse_dynamics_model.py:198-205", "hash": "3a9b72a25856ca86ba216c62fd123b08", "title": "Command Line Arguments Parser"}}} \ No newline at end of file diff --git a/docs/codeview.html b/docs/codeview.html new file mode 100644 index 0000000..761065f --- /dev/null +++ b/docs/codeview.html @@ -0,0 +1,669 @@ + + + + + + + + + Code View + + + + + + + + + + + + + + + + + + + + +
+

Code Preview

+
+
+
+ +
+
+ + + \ No newline at end of file diff --git a/docs/data/0.json b/docs/data/0.json new file mode 100644 index 0000000..cd462a4 --- /dev/null +++ b/docs/data/0.json @@ -0,0 +1,548 @@ +{ + "0": { + "file_id": 0, + "content": "/README.md", + "type": "filepath" + }, + "1": { + "file_id": 0, + "content": "The comments discuss Minecraft AI model training, reinforcement learning features, and limited resource data collection for the MineRL BASALT 2022 competition, as well as building a house in under 10 minutes without harming villages.", + "type": "summary" + }, + "2": { + "file_id": 0, + "content": "# Video-Pre-Training\nVideo PreTraining (VPT): Learning to Act by Watching Unlabeled Online Videos\n> :page_facing_up: [Read Paper](https://cdn.openai.com/vpt/Paper.pdf) \\\n :mega: [Blog Post](https://openai.com/blog/vpt) \\\n :space_invader: [MineRL Environment](https://github.com/minerllabs/minerl) (note version 1.0+ required) \\\n :checkered_flag: [MineRL BASALT Competition](https://www.aicrowd.com/challenges/neurips-2022-minerl-basalt-competition)\n# Running agent models\nInstall pre-requirements for [MineRL](https://minerl.readthedocs.io/en/latest/tutorials/index.html).\nThen install requirements with:\n```\npip install git+https://github.com/minerllabs/minerl\npip install -r requirements.txt\n```\nTo run the code, call\n```\npython run_agent.py --model [path to .model file] --weights [path to .weight file]\n```\nAfter loading up, you should see a window of the agent playing Minecraft.\n# Agent Model Zoo\nBelow are the model files and weights files for various pre-trained Minecraft models.\nThe 1x, 2x and 3x model files correspond to their respective model weights width.", + "type": "code", + "location": "/README.md:3-35" + }, + "3": { + "file_id": 0, + "content": "This code provides instructions for setting up and running the Video PreTraining (VPT) model, which learns to act by watching unlabeled online videos. It also includes a link to the paper describing the methodology and provides information on where to find more resources related to VPT. The code includes commands to install pre-requisites, requirements, and run the agent models. Additionally, it lists various pre-trained Minecraft models with their respective model files and weights.", + "type": "comment" + }, + "4": { + "file_id": 0, + "content": "* [:arrow_down: 1x Model](https://openaipublic.blob.core.windows.net/minecraft-rl/models/foundation-model-1x.model)\n* [:arrow_down: 2x Model](https://openaipublic.blob.core.windows.net/minecraft-rl/models/2x.model)\n* [:arrow_down: 3x Model](https://openaipublic.blob.core.windows.net/minecraft-rl/models/foundation-model-3x.model)\n### Demonstration Only - Behavioral Cloning\nThese models are trained on video demonstrations of humans playing Minecraft\nusing behavioral cloning (BC) and are more general than later models which\nuse reinforcement learning (RL) to further optimize the policy.\nFoundational models are trained across all videos in a single training run\nwhile house and early game models refine their respective size foundational\nmodel further using either the housebuilding contractor data or early game video\nsub-set. See the paper linked above for more details.\n#### Foundational Model :chart_with_upwards_trend:\n * [:arrow_down: 1x Width Weights](https://openaipublic.blob.core.windows.net/minecraft-rl/models/foundation-model-1x.weights)", + "type": "code", + "location": "/README.md:37-51" + }, + "5": { + "file_id": 0, + "content": "This code provides links to download pre-trained models for Minecraft reinforcement learning, trained using behavioral cloning on video demonstrations. Foundational models are trained across all videos in a single training run, while house and early game models refine further with specific data sets.", + "type": "comment" + }, + "6": { + "file_id": 0, + "content": " * [:arrow_down: 2x Width Weights](https://openaipublic.blob.core.windows.net/minecraft-rl/models/foundation-model-2x.weights)\n * [:arrow_down: 3x Width Weights](https://openaipublic.blob.core.windows.net/minecraft-rl/models/foundation-model-3x.weights)\n#### Fine-Tuned from House :chart_with_upwards_trend:\n * [:arrow_down: 3x Width Weights](https://openaipublic.blob.core.windows.net/minecraft-rl/models/bc-house-3x.weights)\n#### Fine-Tuned from Early Game :chart_with_upwards_trend:\n * [:arrow_down: 2x Width Weights](https://openaipublic.blob.core.windows.net/minecraft-rl/models/bc-early-game-2x.weights)\n * [:arrow_down: 3x Width Weights](https://openaipublic.blob.core.windows.net/minecraft-rl/models/bc-early-game-3x.weights)\n### Models With Environment Interactions\nThese models further refine the above demonstration based models with a reward\nfunction targeted at obtaining diamond pickaxes. While less general then the behavioral\ncloning models, these models have the benefit of interacting with the environment", + "type": "code", + "location": "/README.md:52-65" + }, + "7": { + "file_id": 0, + "content": "This code provides links to pre-trained models for Minecraft gameplay and mentions fine-tuned models from specific starting points. Additionally, it introduces models with environment interactions that are trained using a reward function aimed at obtaining diamond pickaxes.", + "type": "comment" + }, + "8": { + "file_id": 0, + "content": "using a reward function and excel at progressing through the tech tree quickly.\nSee the paper for more information\non how they were trained and the exact reward schedule.\n#### RL from Foundation :chart_with_upwards_trend:\n * [:arrow_down: 2x Width Weights](https://openaipublic.blob.core.windows.net/minecraft-rl/models/rl-from-foundation-2x.weights)\n#### RL from House :chart_with_upwards_trend:\n * [:arrow_down: 2x Width Weights](https://openaipublic.blob.core.windows.net/minecraft-rl/models/rl-from-house-2x.weights)\n#### RL from Early Game :chart_with_upwards_trend:\n * [:arrow_down: 2x Width Weights](https://openaipublic.blob.core.windows.net/minecraft-rl/models/rl-from-early-game-2x.weights)\n# Running Inverse Dynamics Model (IDM)\nIDM aims to predict what actions player is taking in a video recording.\nSetup:\n* Install requirements: `pip install -r requirements.txt`\n* Download the IDM model [.model :arrow_down:](https://openaipublic.blob.core.windows.net/minecraft-rl/idm/4x_idm.model) and [.weight :arrow_down:](https://openaipublic.blob.core.windows.net/minecraft-rl/idm/4x_idm.weights) files", + "type": "code", + "location": "/README.md:66-85" + }, + "9": { + "file_id": 0, + "content": "This code provides pre-trained models for Minecraft gameplay using reinforcement learning and an Inverse Dynamics Model (IDM). The models are trained with different reward functions and excel at progressing quickly through the tech tree. Users can download the models and weights from specified URLs to run the IDM, which predicts player actions in a video recording.", + "type": "comment" + }, + "10": { + "file_id": 0, + "content": "* For demonstration purposes, you can use the contractor recordings shared below to. For this demo we use\n [this .mp4](https://openaipublic.blob.core.windows.net/minecraft-rl/data/10.0/cheeky-cornflower-setter-02e496ce4abb-20220421-092639.mp4)\n and [this associated actions file (.jsonl)](https://openaipublic.blob.core.windows.net/minecraft-rl/data/10.0/cheeky-cornflower-setter-02e496ce4abb-20220421-092639.jsonl).\nTo run the model with above files placed in the root directory of this code:\n```\npython run_inverse_dynamics_model.py -weights 4x_idm.weights --model 4x_idm.model --video-path cheeky-cornflower-setter-02e496ce4abb-20220421-092639.mp4 --jsonl-path cheeky-cornflower-setter-02e496ce4abb-20220421-092639.jsonl\n```\nA window should pop up which shows the video frame-by-frame, showing the predicted and true (recorded) actions side-by-side on the left.\nNote that `run_inverse_dynamics_model.py` is designed to be a demo of the IDM, not code to put it into practice.\n# Using behavioural cloning to fine-tune the models", + "type": "code", + "location": "/README.md:86-99" + }, + "11": { + "file_id": 0, + "content": "This code provides a demonstration of the Inverse Dynamics Model (IDM) using provided contractor recordings for video and actions. The model is run with specific file paths, and a window displays the predicted and true actions side-by-side. Note that this script is designed for demonstration purposes only, not for practical implementation.", + "type": "comment" + }, + "12": { + "file_id": 0, + "content": "**Disclaimer:** This code is a rough demonstration only and not an exact recreation of what original VPT paper did (but it contains some preprocessing steps you want to be aware of)! As such, do not expect replicate the original experiments with this code. This code has been designed to be run-able on consumer hardware (e.g., 8GB of VRAM).\nSetup:\n* Install requirements: `pip install -r requirements.txt`\n* Download `.weights` and `.model` file for model you want to fine-tune.\n* Download contractor data (below) and place the `.mp4` and `.jsonl` files to the same directory (e.g., `data`). With default settings, you need at least 12 recordings.\nIf you downloaded the \"1x Width\" models and placed some data under `data` directory, you can perform finetuning with\n```\npython behavioural_cloning.py --data-dir data --in-model foundation-model-1x.model --in-weights foundation-model-1x.weights --out-weights finetuned-1x.weights\n```\nYou can then use `finetuned-1x.weights` when running the agent. You can change the training settings at the top of `behavioural_cloning.py`.", + "type": "code", + "location": "/README.md:101-114" + }, + "13": { + "file_id": 0, + "content": "This code is a demonstration of video pre-training using behavioral cloning. It requires installing dependencies, downloading model and data files, and then fine-tuning the model with custom weights for better performance.", + "type": "comment" + }, + "14": { + "file_id": 0, + "content": "Major limitations:\n- Only trains single step at the time, i.e., errors are not propagated through timesteps.\n- Computes gradients one sample at a time to keep memory use low, but also slows down the code.\n# Contractor Demonstrations\n### Versions\nOver the course of the project we requested various demonstrations from contractors\nwhich we release as index files below. In general, major recorder versions change for a new\nprompt or recording feature while bug-fixes were represented as minor version changes.\nHowever, some\nrecorder versions we asked contractors to change their username when recording particular\nmodalities. Also, as contractors internally ask questions, clarification from one contractor may\nresult in a behavioral change in the other contractor. It is intractable to share every contractor's\nview for each version, but we've shared the prompts and major clarifications for each recorder\nversion where the task changed significantly.\n
\n Initial Prompt\n We are collect", + "type": "code", + "location": "/README.md:116-136" + }, + "15": { + "file_id": 0, + "content": "This code is a README.md file that lists the major limitations of the pre-training, describes a contractor demonstrations section, and provides details about the versions used for this project. It also mentions how different versions were used to change modalities or prompt changes due to contractor's internal questions and clarifications.", + "type": "comment" + }, + "16": { + "file_id": 0, + "content": "ing data for training AI models in Minecraft. You'll need to install java, download the modified version of minecraft (that collects and uploads your play data), and play minecraft survival mode! Paid per hour of gameplay. Prior experience in minecraft not. necessary. We do not collect any data that is unrelated to minecraft from your computer.\n
\nThe following is a list of the available versions:\n* **6.x** Core recorder features subject to change [:arrow_down: index file](https://openaipublic.blob.core.windows.net/minecraft-rl/snapshots/all_6xx_Jun_29.json)\n * 6.9 First feature complete recorder version\n * 6.10 Fixes mouse scaling on Mac when gui is open\n * 6.11 Tracks the hotbar slot\n * 6.13 Sprinting, swap-hands, ... (see commits below)\n
\n Commits\n * improve replays that are cut in the middle of gui; working on riding boats / replays cut in the middle of a run\n * improve replays by adding dwheel action etc, also, loosen up replay tolerances\n * opencv version bump", + "type": "code", + "location": "/README.md:136-152" + }, + "17": { + "file_id": 0, + "content": "This code is a list of available versions for the Minecraft AI model training program. It includes a description of the features in each version and provides links to download the modified Minecraft version for training.", + "type": "comment" + }, + "18": { + "file_id": 0, + "content": " * add swap hands, and recording of the step timestamp\n * implement replaying from running and sprinting and tests\n * do not record sprinting (can use stats for that)\n * check for mouse button number, ignore >2\n * handle the errors when mouse / keyboard are recorded as null\n
\n* **7.x** Prompt changes [:arrow_down: index file](https://openaipublic.blob.core.windows.net/minecraft-rl/snapshots/all_7xx_Apr_6.json)\n * 7.6 Bump version for internal tracking\n
\n Additional ask to contractors\n Right now, early game data is especially valuable to us. As such, we request that at least half of the data you upload is from the first 30 minutes of the game. This means that, for every hour of gameplay you spend in an older world, we ask you to play two sessions in which you create a new world and play for 30 minutes. You can play for longer in these worlds, but only the first 30 minutes counts as early game data.\n
\n* **8.x** :clipboard", + "type": "code", + "location": "/README.md:153-168" + }, + "19": { + "file_id": 0, + "content": "This code seems to be part of a README file for a Minecraft-based reinforcement learning project. The comments suggest that the developers are working on various features such as swapping hands and implementing replaying from running and sprinting. They also mention not recording sprinting data, checking for mouse button numbers, and handling errors related to recording mouse or keyboard input as null. Additionally, there is a note about prompting contractors to collect early game data (first 30 minutes) in newer worlds to help improve the AI's performance in those stages of the game.", + "type": "comment" + }, + "20": { + "file_id": 0, + "content": ": House Building from Scratch Task [:arrow_down: index](https://openaipublic.blob.core.windows.net/minecraft-rl/snapshots/all_8xx_Jun_29.json)\n
\n Changes and Prompt\n Hi all! Thank you for your hard work so far.\n This week we would like to have you all collect data on a specific task.\n This comes with a new recorder version 8.0 which you will need to update your recording script to download.\n This week we would like you to use a new world each time you play, so loading existing worlds is disabled.\n The new task is as follows:\n Starting in a new world, build a simple house in 10-15 minutes. This corresponds to one day and a bit of the night. Please use primarily wood, dirt, and sand, as well as crafted wood items such as doors, fences, ect. in constructing your house. Avoid using difficult items such as stone. Aside from those constraints, you may decorate the structure you build as you wish. It does not need to have any specific furniture. For example, it is ", + "type": "code", + "location": "/README.md:168-182" + }, + "21": { + "file_id": 0, + "content": "This code is providing instructions for a new task, \"Building a Simple House\". The task involves building a house using primarily wood, dirt, and sand, along with crafted wood items. The structure can be decorated as desired but should not use difficult materials such as stone. It also provides information about the need to update the recording script and use a new world each time.", + "type": "comment" + }, + "22": { + "file_id": 0, + "content": "OK if there is no bed in your house. If you have not finished the house by the sunrise (20 minutes) please exit and continue to another demonstration. Please continue to narrate what you are doing while completing this task.\n Since you will be unable to resume building after exiting Minecraft or going back to the main menu, you must finish these demonstrations in one session. Pausing via the menu is still supported. If you want to view your creations later, they will be saved locally so you can look at them in your own time. We may use these save files in a future task so if you have space, please leave the save files titled “build-house-15-min-“.\n For this week try to avoid all cobblestone / stone / granite\n For this week we just want simple houses without sleeping. If 10 minutes is too short, let us know and we can think of how to adjust!\n Stone tools are ok but I think you may run-out of time\n Changes:\n * Timer ends episode after 10 realtime minutes\n * Worlds are named: `\"build-house-15-min-\" + Math.abs(random.nextInt());`", + "type": "code", + "location": "/README.md:182-194" + }, + "23": { + "file_id": 0, + "content": "This code is for a Minecraft demonstration task where the player must build a house within 20 minutes. If not finished, they should exit and continue with another demo. Narration is required throughout. The demonstrations need to be completed in one session without resuming after exiting or going back to the main menu. Save files will be saved locally for viewing later but may be used for future tasks if space permits. The task requires a simple house without sleep areas and avoids cobblestone, stone, and granite. Stone tools are acceptable but time-limited. The episode ends after 10 realtime minutes. World names follow the format \"build-house-15-min-\" + random number.", + "type": "comment" + }, + "24": { + "file_id": 0, + "content": "
\n * Note this version introduces 10-minute timer that ends the episode. It\n cut experiments short occasionally and was fixed in 9.1\n * 8.0 Simple House\n * 8.2 Update upload script\n* **9.x** :clipboard: House Building from Random Starting Materials Task [:arrow_down: index](https://openaipublic.blob.core.windows.net/minecraft-rl/snapshots/all_9xx_Jun_29.json)\n
\n Changes and Prompt\n You now will have 10 minutes to use the provided resources to build your house / home / or structure. In this version, the experiment will time out after 10 minutes if you are not complete so don't be alarmed if that happens, it is intentional.\n No need to use up all the resources! It's ok to collect a few things but spend the majority of the time placing blocks (the act of placing seems to be harder to learn)\n Changes:\n * Worlds are named: `\"design-house-10-min-\" + Math.abs(random.nextInt());`\n * Starting inventory given by code below\n
\n
", + "type": "code", + "location": "/README.md:196-215" + }, + "25": { + "file_id": 0, + "content": "Introduces 10-minute timer for task completion.", + "type": "comment" + }, + "26": { + "file_id": 0, + "content": " Random Starting Inventory Code\n ```java\n Random random = new Random();\n List hotbar = new ArrayList<>();\n List inventory = new ArrayList<>();\n // Ensure we give the player the basic tools in their hot bar\n hotbar.add(new ItemStack(Items.STONE_AXE));\n hotbar.add(new ItemStack(Items.STONE_PICKAXE));\n hotbar.add(new ItemStack(Items.STONE_SHOVEL));\n hotbar.add(new ItemStack(Items.CRAFTING_TABLE));\n // Add some random items to the player hotbar as well\n addToList(hotbar, inventory, Items.TORCH, random.nextInt(16) * 2 + 2);\n // Next add main building blocks\n if (random.nextFloat() < 0.7) {\n addToList(hotbar, inventory, Items.OAK_FENCE_GATE, random.nextInt(5));\n addToList(hotbar, inventory, Items.OAK_FENCE, random.nextInt(5) * 64);\n addToList(hotbar, inventory, Items.OAK_DOOR, random.nextInt(5));\n addToList(hotbar, inventory, Items.OAK_TRAPDOOR, random.nextInt(2) * 2);", + "type": "code", + "location": "/README.md:216-237" + }, + "27": { + "file_id": 0, + "content": "This code generates a random starting inventory for the player by adding basic tools, some random items, and building blocks to their hotbar and inventory.", + "type": "comment" + }, + "28": { + "file_id": 0, + "content": " addToList(hotbar, inventory, Items.OAK_PLANKS, random.nextInt(3) * 64 + 128);\n addToList(hotbar, inventory, Items.OAK_SLAB, random.nextInt(3) * 64);\n addToList(hotbar, inventory, Items.OAK_STAIRS, random.nextInt(3) * 64);\n addToList(hotbar, inventory, Items.OAK_LOG, random.nextInt(2) * 32);\n addToList(hotbar, inventory, Items.OAK_PRESSURE_PLATE, random.nextInt(5));\n } else {\n addToList(hotbar, inventory, Items.BIRCH_FENCE_GATE, random.nextInt(5));\n addToList(hotbar, inventory, Items.BIRCH_FENCE, random.nextInt(5) * 64);\n addToList(hotbar, inventory, Items.BIRCH_DOOR, random.nextInt(5));\n addToList(hotbar, inventory, Items.BIRCH_TRAPDOOR, random.nextInt(2) * 2);\n addToList(hotbar, inventory, Items.BIRCH_PLANKS, random.nextInt(3) * 64 + 128);\n addToList(hotbar, inventory, Items.BIRCH_SLAB, random.nextInt(3) * 64);\n addToList(hotbar, inventory, Items.BIRCH_STAIRS, random.nextInt(3) * 64);", + "type": "code", + "location": "/README.md:238-250" + }, + "29": { + "file_id": 0, + "content": "This code randomly selects items to add to the hotbar based on the type of biome the player is in. It uses different lists of items for oak and birch biomes.", + "type": "comment" + }, + "30": { + "file_id": 0, + "content": " addToList(hotbar, inventory, Items.BIRCH_LOG, random.nextInt(2) * 32);\n addToList(hotbar, inventory, Items.BIRCH_PRESSURE_PLATE, random.nextInt(5));\n }\n // Now add some random decoration items to the player inventory\n addToList(hotbar, inventory, Items.CHEST, random.nextInt(3));\n addToList(hotbar, inventory, Items.FURNACE, random.nextInt(2) + 1);\n addToList(hotbar, inventory, Items.GLASS_PANE, random.nextInt(5) * 4);\n addToList(hotbar, inventory, Items.WHITE_BED, (int) (random.nextFloat() + 0.2)); // Bed 20% of the time\n addToList(hotbar, inventory, Items.PAINTING, (int) (random.nextFloat() + 0.1)); // Painting 10% of the time\n addToList(hotbar, inventory, Items.FLOWER_POT, (int) (random.nextFloat() + 0.1) * 4); // 4 Flower pots 10% of the time\n addToList(hotbar, inventory, Items.OXEYE_DAISY, (int) (random.nextFloat() + 0.1) * 4); // 4 Oxeye daisies 10% of the time\n addToList(hotbar, inventory, Items.POPPY, (int) (random.nextFloat() + 0.1) * 4); // 4 Poppies 10% of the time", + "type": "code", + "location": "/README.md:251-263" + }, + "31": { + "file_id": 0, + "content": "This code is adding a variety of items to the player's inventory. It uses random number generation to decide how many of each item to add, with some items having a higher chance of appearing than others (e.g., beds have a 20% chance). This helps create a diverse and unpredictable inventory for the player to work with.", + "type": "comment" + }, + "32": { + "file_id": 0, + "content": " addToList(hotbar, inventory, Items.SUNFLOWER, (int) (random.nextFloat() + 0.1) * 4); // 4 Sunflowers 10% of the time\n // Shuffle the hotbar slots and inventory slots\n Collections.shuffle(hotbar);\n Collections.shuffle(inventory);\n // Give the player the items\n this.mc.getIntegratedServer().getPlayerList().getPlayers().forEach(p -> {\n if (p.getUniqueID().equals(this.getUniqueID())) {\n hotbar.forEach(p.inventory::addItemStackToInventory);\n inventory.forEach(p.inventory::addItemStackToInventory);\n }\n });\n ```\n
\n * 9.0 First version\n * 9.1 Fixed timer bug\n* **10.0** :clipboard: Obtain Diamond Pickaxe Task [:arrow_down: index](https://openaipublic.blob.core.windows.net/minecraft-rl/snapshots/all_10xx_Jun_29.json)\n
\n Changes and Prompt\n Prompt:\n For this new task we have given you 20 minutes to craft a diamond pickaxe. We ask that you do not try to search for vi", + "type": "code", + "location": "/README.md:264-288" + }, + "33": { + "file_id": 0, + "content": "This code adds 4 sunflowers to the player's inventory 10% of the time, shuffles both the hotbar and inventory slots, and then gives the player the items if they are the same as the current player.", + "type": "comment" + }, + "34": { + "file_id": 0, + "content": "llages or other ways of getting diamonds, but if you are spawned in view of one, or happen to fall into a cave structure feel free to explore it for diamonds.\n If 20 min is not enough that is OK. It will happen on some seeds because of bad luck. Please do not use glitches to find the diamonds.\n Changes:\n * change to 20 minute time limit\n * _don't count gui time as part of the time limit_\n * World are named `\"collect-diamond-pickaxe-15min-\" + Math.abs(random.nextInt());`\n
\nSometimes we asked the contractors to signify other tasks besides changing the version. This\nprimarily occurred in versions 6 and 7 as 8, 9 and 10 are all task specific.\n
\nPrompt to contractors (click to show)\nAnother request about additional time - please use some of it to chop trees. Specifically, please start the recorder by adding --username treechop argument to the script (i.e. use play --username treechop on windows, ./play.sh --username treechop on osx/linux), and spend some time", + "type": "code", + "location": "/README.md:288-304" + }, + "35": { + "file_id": 0, + "content": "Code discusses time limits for finding diamonds in Minecraft, changing version numbers, and requesting contractors to chop trees while recording gameplay with a specific username.", + "type": "comment" + }, + "36": { + "file_id": 0, + "content": " chopping trees! Getting wooden or stone tools is ok, but please spend the majority of the with username treechop specifically chopping. I did it myself for about 15 minutes, and it does get boring pretty quickly, so I don't expect you to do it all the time, but please do at least a little bit of chopping. Feel free to play normally the rest of the time (but please restart without --username treechop argument when you are not chopping)\nHowever, it is preferable that you start a new world though, and use only the tools that are easily obtainable in that world. I'll see what I can do about getting player an iron axe - that sounds reasonable, and should not be hard, but will require a code update.\n
\n### Environment\nWe restrict the contractors to playing Minecraft in windowed mode at 720p which we downsample at 20hz to 360p\nto minimize space. We also disabled the options screen to prevent the contractor from\nchanging things such as brightness, or rendering options. We ask contractors not to press keys", + "type": "code", + "location": "/README.md:304-311" + }, + "37": { + "file_id": 0, + "content": "The code is providing instructions for the video game Minecraft, asking testers to spend a portion of their time chopping trees and using easily obtainable tools in a new world. It also mentions restrictions on the contractor's environment, such as windowed mode, downsampling, and disabling options like brightness and rendering settings.", + "type": "comment" + }, + "38": { + "file_id": 0, + "content": "such as f3 which shows a debug overlay, however some contractors may still do this.\n### Data format\nDemonstrations are broken up into up to 5 minute segments consisting of a series of\ncompressed screen observations, actions, environment statistics, and a checkpoint\nsave file from the start of the segment. Each relative path in the index will\nhave all the files for that given segment, however if a file was dropped while\nuploading, the corresponding relative path is not included in the index therefore\nthere may be missing chunks from otherwise continuous demonstrations.\nIndex files are provided for each version as a json file:\n```json\n{\n \"basedir\": \"https://openaipublic.blob.core.windows.net/data/\",\n \"relpaths\": [\n \"8.0/cheeky-cornflower-setter-74ae6c2eae2e-20220315-122354\",\n ...\n ]\n}\n```\nRelative paths follow the following format:\n* `/---