mpirotta commited on
Commit
24028c5
0 Parent(s):

Initial commit

Browse files
.gitattributes ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ datasets/buffer_inference_5000000_preprocessed.hdf5 filter=lfs diff=lfs merge=lfs -text
37
+ datasets/buffer.hdf5 filter=lfs diff=lfs merge=lfs -text
38
+ datasets/buffer_inference_500000.hdf5 filter=lfs diff=lfs merge=lfs -text
39
+ data/buffer.hdf5 filter=lfs diff=lfs merge=lfs -text
40
+ data/buffer_inference_500000.hdf5 filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ library_name: metamotivo
3
+ license: cc-by-nc-4.0
4
+ tags:
5
+ - facebook
6
+ - meta
7
+ - pytorch
8
+ seed: 1
9
+ repo_url: https://github.com/facebookresearch/metamotivo
10
+ docs_url: https://metamotivo.metademolab.com/
11
+ ---
12
+ # Meta Motivo S
13
+
14
+ Meta Motivo is a behavioral foundation model pre-trained with a novel unsupervised reinforcement learning algorithm to control the movements of a complex virtual humanoid agent. At test time, our model can be prompted to solve unseen tasks such as motion tracking, pose reaching, and reward optimization without any additional learning or fine-tuning.
15
+
16
+ This model is as described in ["Zero-shot Whole-Body Humanoid Control via Behavioral Foundation Models"](https://metamotivo.metademolab.com/) and corresponds to seed number 1 out of 5 evaluated in the paper.
17
+
18
+ **Model Developer:** Meta
19
+
20
+ # Model Details
21
+
22
+ Meta Motivo is composed by multiple networks
23
+ - forward net \\(F(s,a,z)\\)
24
+ - backward net \\(B(s)\\)
25
+ - actor net \\(\pi(s,z)\\)
26
+ - discriminator net \\(D(s,z)\\)
27
+ - critic net \\(Q(s,a,z)\\)
28
+
29
+ ### Network architectures
30
+
31
+ **Forward, actor, and critic.** All these networks are MLPs with ReLU activations, except for the first hidden layer which uses a layernorm followed by tanh. The networks have two initial "embedding layers", one processing `(s,z)`, and the other processing `s` alone. The second embedding layer has half the hidden units of the first layer, and their outputs are concatenated and fed into the main MLP. We use 2 embedding layers and 2 hidden layers for the main MLP, each with 1024 hidden units. The actor network outputs the mean of a Gaussian distribution with fixed standard deviation, while the forward and critic networks output a d-dimensional vector and a scalar, respectively. The two latter networks use an ensemble of two networks.
32
+
33
+ **Backward.** The backward map is a simple MLP composed of a layernorm operation, a linear layer with 256 hidden units, a tanh activation function, and another linear layer which outputs a d-dimensional vector that is then normalized in l2-norm.
34
+
35
+ **Discriminator.** The discriminator is an MLP with 3 hidden layers of 1024 units and ReLU activations, except for the first hidden layer which uses a layernorm followed by tanh. It takes as input a state observation `s` and a latent variable `z`, and has a sigmoidal unit at the output.
36
+
37
+
38
+ See the `config.json` file for more details.
39
+
40
+ ## How to use
41
+
42
+ ```bash
43
+ > pip install "metamotivo[all] @ git+https://github.com/facebookresearch/metamotivo.git"
44
+ ```
45
+ and then
46
+ ```python
47
+ from metamotivo.fb_cpr.huggingface import FBcprModel
48
+
49
+ model = FBcprModel.from_pretrained("facebook/metamotivo-S-1")
50
+ ```
51
+
52
+ # Citation
53
+
54
+ If you find our code useful for your research, please consider citing:
55
+
56
+ @article{tirinzoni2024metamotivo,
57
+ title={Zero-shot Whole-Body Humanoid Control via Behavioral Foundation Models},
58
+ author={Tirinzoni, Andrea and Touati, Ahmed and Farebrother, Jesse and Guzek, Mateusz and Kanervisto, Anssi and Xu, Yingchen and Lazaric, Alessandro and Pirotta, Matteo},
59
+ }
60
+
61
+ # License
62
+
63
+ Meta Motivo is CC-BY-NC 4.0 licensed as of now.
config.json ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "obs_dim": 358,
3
+ "action_dim": 69,
4
+ "device": "cpu",
5
+ "archi": {
6
+ "z_dim": 256,
7
+ "norm_z": true,
8
+ "f": {
9
+ "hidden_dim": 1024,
10
+ "model": "simple",
11
+ "hidden_layers": 2,
12
+ "embedding_layers": 2,
13
+ "num_parallel": 2,
14
+ "ensemble_mode": "batch"
15
+ },
16
+ "b": {
17
+ "hidden_dim": 256,
18
+ "hidden_layers": 1,
19
+ "norm": true
20
+ },
21
+ "actor": {
22
+ "hidden_dim": 1024,
23
+ "model": "simple",
24
+ "hidden_layers": 2,
25
+ "embedding_layers": 2
26
+ },
27
+ "critic": {
28
+ "hidden_dim": 1024,
29
+ "model": "simple",
30
+ "hidden_layers": 2,
31
+ "embedding_layers": 2,
32
+ "num_parallel": 2,
33
+ "ensemble_mode": "batch"
34
+ },
35
+ "discriminator": {
36
+ "hidden_dim": 1024,
37
+ "hidden_layers": 3
38
+ }
39
+ },
40
+ "inference_batch_size": 500000,
41
+ "seq_length": 8,
42
+ "actor_std": 0.2,
43
+ "norm_obs": true
44
+ }
data/buffer.hdf5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c034568a230b4402db6a8acdf2671cdf97d1d004ba70885bcc9bf17b8c4144b0
3
+ size 19834241408
data/buffer_inference_500000.hdf5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5452cc82b69bc03e0d7c7df789f6f60a5618dc6186a7e60321612602b6692d90
3
+ size 2778004096
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:946548db6d7cc025235f29ea97ca7d12064e734fdf821cf06e8b81975fa14257
3
+ size 98097048