Robotics
Transformers
Safetensors
dm05
text-generation
robot-control
vision-language-action
vla
dm0.5
opendm
Instructions to use Dexmal/DM05 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Dexmal/DM05 with Transformers:
# Load model directly from transformers import AutoModelForSeq2SeqLM model = AutoModelForSeq2SeqLM.from_pretrained("Dexmal/DM05", device_map="auto") - Notebooks
- Google Colab
- Kaggle
Dexmal commited on
update
Browse files- README.md +127 -13
- config.json +1 -1
- model.safetensors +2 -2
README.md
CHANGED
|
@@ -11,23 +11,137 @@ tags:
|
|
| 11 |
- opendm
|
| 12 |
---
|
| 13 |
|
| 14 |
-
#
|
| 15 |
|
| 16 |
-
|
| 17 |
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
historical context, robust policy behavior, and transfer across robot
|
| 24 |
-
embodiments.
|
| 25 |
|
| 26 |
-
##
|
| 27 |
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 31 |
|
| 32 |
## Citation
|
| 33 |
|
|
|
|
| 11 |
- opendm
|
| 12 |
---
|
| 13 |
|
| 14 |
+
# OpenDM
|
| 15 |
|
| 16 |
+

|
| 17 |
|
| 18 |
+
<p align="center">
|
| 19 |
+
<a href="https://www.dexmal.com/blog/dm0.5/index_en.html"><img src="https://img.shields.io/badge/📖-Tech_Blog-blue" alt="Tech Blog"></a>
|
| 20 |
+
<a href="https://github.com/dexmal/opendm"><img src="https://img.shields.io/badge/GitHub-OpenDM-181717?logo=github" alt="GitHub"></a>
|
| 21 |
+
<a href="https://maas.dexmal.com/"><img src="https://img.shields.io/badge/MaaS-Online-brightgreen.svg" alt="MaaS"></a>
|
| 22 |
+
</p>
|
|
|
|
|
|
|
| 23 |
|
| 24 |
+
## News
|
| 25 |
|
| 26 |
+
- [2026-07-09] DM0.5 is officially released. Read the [technical blog](https://www.dexmal.com/blog/dm0.5/index_en.html) for more details.
|
| 27 |
+
|
| 28 |
+
## Introduction
|
| 29 |
+
|
| 30 |
+
DM0.5 is Dexmal's next-generation Vision-Language-Action model (VLA) for open-world robot control. It builds on the native embodied modeling approach introduced by DM0, with systematic upgrades for open-ended instructions, long-horizon tasks, dynamic disturbances, and multi-embodiment robot control.
|
| 31 |
+
|
| 32 |
+
OpenDM provides DM0.5 model weights, training and inference scripts, dataset registration examples, and evaluation workflows for researchers and developers to train, fine-tune, evaluate, and deploy the model.
|
| 33 |
+
|
| 34 |
+
## Quick Start
|
| 35 |
+
|
| 36 |
+
We recommend using Docker to set up the runtime environment first, which helps avoid version mismatches across CUDA, PyTorch, flash-attn, and other dependencies on the host machine.
|
| 37 |
+
|
| 38 |
+
### Requirements
|
| 39 |
+
|
| 40 |
+
```text
|
| 41 |
+
System requirements:
|
| 42 |
+
Ubuntu 20.04 / 22.04
|
| 43 |
+
NVIDIA GPU
|
| 44 |
+
NVIDIA Driver
|
| 45 |
+
Docker
|
| 46 |
+
NVIDIA Container Toolkit
|
| 47 |
+
Conda (optional, only required for local pip installation)
|
| 48 |
+
|
| 49 |
+
Recommended GPUs:
|
| 50 |
+
RTX 4090, A100, H100, H20
|
| 51 |
+
8 GPUs are recommended for training, and 1 GPU is sufficient for deployment inference.
|
| 52 |
+
```
|
| 53 |
+
|
| 54 |
+
### Docker Installation
|
| 55 |
+
|
| 56 |
+
```bash
|
| 57 |
+
git clone https://github.com/dexmal/opendm.git
|
| 58 |
+
cd opendm
|
| 59 |
+
|
| 60 |
+
docker run -it --rm --gpus all --network host \
|
| 61 |
+
--name opendm \
|
| 62 |
+
--shm-size=16g \
|
| 63 |
+
-v "$PWD":/app/opendm \
|
| 64 |
+
-w /app/opendm \
|
| 65 |
+
dexmal/opendm:latest /bin/bash
|
| 66 |
+
|
| 67 |
+
# Run from the OpenDM repository root inside the container.
|
| 68 |
+
conda activate opendm
|
| 69 |
+
pip install -e .
|
| 70 |
+
```
|
| 71 |
+
|
| 72 |
+
### Local Installation
|
| 73 |
+
|
| 74 |
+
```bash
|
| 75 |
+
conda create -n opendm python=3.10 -y
|
| 76 |
+
conda activate opendm
|
| 77 |
+
|
| 78 |
+
pip install torch torchvision \
|
| 79 |
+
--index-url https://download.pytorch.org/whl/cu128
|
| 80 |
+
|
| 81 |
+
pip install ninja packaging
|
| 82 |
+
MAX_JOBS=2 pip install flash-attn --no-build-isolation
|
| 83 |
+
|
| 84 |
+
# Enter the OpenDM repository root.
|
| 85 |
+
cd opendm
|
| 86 |
+
pip install -e .
|
| 87 |
+
```
|
| 88 |
+
|
| 89 |
+
## Inference
|
| 90 |
+
|
| 91 |
+
After installing the environment and initializing the source code, you can start the model inference service. The service loads the specified checkpoint and exposes an HTTP endpoint for benchmark clients or other applications to request action predictions. Use a checkpoint that contains `norm_stats.json`, or make sure the matching stats already exist under `./norm_stats/`.
|
| 92 |
+
|
| 93 |
+
```bash
|
| 94 |
+
script/dm05_launcher.sh \
|
| 95 |
+
--task inference \
|
| 96 |
+
--nproc_per_node 1 \
|
| 97 |
+
--model-config.model-name-or-path ./checkpoints/DM05 \
|
| 98 |
+
--model-config.chunk-size 50 \
|
| 99 |
+
--inference-config.port 7891
|
| 100 |
+
```
|
| 101 |
+
|
| 102 |
+
Arguments:
|
| 103 |
+
|
| 104 |
+
- `--task`: task type. Use `inference` for inference.
|
| 105 |
+
- `--nproc_per_node`: number of GPUs on a single node. 1 GPU is sufficient for inference.
|
| 106 |
+
- `--model-config.model-name-or-path`: model checkpoint path.
|
| 107 |
+
- `--model-config.chunk-size`: action chunk length.
|
| 108 |
+
- `--inference-config.port`: inference service port.
|
| 109 |
+
|
| 110 |
+
During inference, the service first looks for `norm_stats.json` in the checkpoint directory. If it is not found, it falls back to the matching file under `./norm_stats/`, which is normally generated during training for the same dataset, action mode, and chunk size.
|
| 111 |
+
|
| 112 |
+
After the service starts, send a test request to verify that the endpoint returns a valid response:
|
| 113 |
+
|
| 114 |
+
```bash
|
| 115 |
+
bash tests/curl_demo.sh http://SERVER_IP:7891/process_frame
|
| 116 |
+
```
|
| 117 |
+
|
| 118 |
+
`/process_frame` accepts a `multipart/form-data` request:
|
| 119 |
+
|
| 120 |
+
- `text`: task instruction.
|
| 121 |
+
- `states`: JSON array of the current robot state. The dimension and order must match the model's training and normalization statistics.
|
| 122 |
+
- `image`: image files, one field per configured image key. The order must match `--inference-config.image-keys`.
|
| 123 |
+
- `robot_type`: optional built-in robot type. Currently only `DOS W1` is supported. It provides the robot state description when relative actions need to be converted back to absolute actions.
|
| 124 |
+
- `control_mode` and `speed`: text conditioning fields required when directly serving the pretrained `Dexmal/DM05` model. They are normally not required for SFT checkpoints unless your SFT data was trained with the same fields.
|
| 125 |
+
|
| 126 |
+
A successful response has the following shape.
|
| 127 |
+
|
| 128 |
+
```text
|
| 129 |
+
{
|
| 130 |
+
"response": [
|
| 131 |
+
[0.012, -0.034, 0.18, "..."],
|
| 132 |
+
[0.015, -0.031, 0.17, "..."],
|
| 133 |
+
...
|
| 134 |
+
]
|
| 135 |
+
}
|
| 136 |
+
```
|
| 137 |
+
|
| 138 |
+
## Community and Support
|
| 139 |
+
|
| 140 |
+
- Learn more about Dexmal products and model updates on the [Dexmal website](https://www.dexmal.com/).
|
| 141 |
+
- If you encounter issues, please report them through [GitHub Issues](https://github.com/dexmal/opendm/issues).
|
| 142 |
+
- For further discussion, scan the [WeChat QR code](https://raw.githubusercontent.com/dexmal/opendm/main/docs/image/wechat.jpeg) to contact us.
|
| 143 |
+
|
| 144 |
+
We will continue to release more model weights, technical documentation, and examples. If this project is helpful to you, please consider giving us a star on GitHub [](https://github.com/dexmal/opendm). Your support helps us move forward.
|
| 145 |
|
| 146 |
## Citation
|
| 147 |
|
config.json
CHANGED
|
@@ -95,7 +95,7 @@
|
|
| 95 |
],
|
| 96 |
"bos_token_id": 2,
|
| 97 |
"chunk_size": 50,
|
| 98 |
-
"dtype": "
|
| 99 |
"eos_token_id": 1,
|
| 100 |
"model_type": "dm05",
|
| 101 |
"pad_token_id": 0,
|
|
|
|
| 95 |
],
|
| 96 |
"bos_token_id": 2,
|
| 97 |
"chunk_size": 50,
|
| 98 |
+
"dtype": "bfloat16",
|
| 99 |
"eos_token_id": 1,
|
| 100 |
"model_type": "dm05",
|
| 101 |
"pad_token_id": 0,
|
model.safetensors
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b7da77f516ebd0c0c68faed2f0cfe1c68985b7b874e49dda4292d8d286de20dd
|
| 3 |
+
size 11658431136
|