Spaces:
Sleeping
Sleeping
title: "DART-LLM: Dependency-Aware Multi-Robot Task Decomposition and Execution" | |
emoji: 🤖 | |
colorFrom: blue | |
colorTo: green | |
sdk: gradio | |
app_file: app.py | |
pinned: false | |
license: llama3.1 | |
<div align="center"> | |
<h1>DART-LLM: Dependency-Aware Multi-Robot Task Decomposition and Execution using Large Language Models (Spaces)</h1> | |
<div class="project-info"> | |
This project is part of the <a href="https://moonshot-cafe-project.org/en/" target="_blank">Moonshot Café Project</a> | |
</div> | |
<div class="authors"> | |
<a href="https://researchmap.jp/wangyongdong?lang=en" target="_blank">Yongdong Wang</a><sup class="org-1">1,*</sup>, | |
Runze Xiao<sup class="org-1">1</sup>, | |
<a href="https://www.robot.t.u-tokyo.ac.jp/~louhi_kasahara/index-e.html" target="_blank">Jun Younes Louhi Kasahara</a><sup class="org-1">1</sup>, | |
<a href="https://researchmap.jp/r-yaj?lang=en" target="_blank">Ryosuke Yajima</a><sup class="org-1">1</sup>, | |
<a href="http://k-nagatani.org/" target="_blank">Keiji Nagatani</a><sup class="org-1">1</sup><sup class="org-2">, 2</sup>, | |
<a href="https://www.robot.t.u-tokyo.ac.jp/~yamashita/" target="_blank">Atsushi Yamashita</a><sup class="org-3">3</sup>, | |
<a href="https://www.robot.t.u-tokyo.ac.jp/asamalab/en/members/asama/biography.html" target="_blank">Hajime Asama</a><sup class="org-4">4</sup> | |
</div> | |
<div class="affiliations"> | |
<sup class="org-1">1</sup>Graduate School of Engineering, The University of Tokyo<br> | |
<sup class="org-2">2</sup>Faculty of Systems and Information Engineering, University of Tsukuba<br> | |
<sup class="org-3">3</sup>Graduate School of Frontier Sciences, The University of Tokyo<br> | |
<sup class="org-4">4</sup>Tokyo College, The University of Tokyo | |
</div> | |
<div class="corresponding-author"> | |
*Corresponding author: <a href="mailto:[email protected]">[email protected]</a> | |
</div> | |
<div align="center"> | |
<a href="https://arxiv.org/pdf/2411.09022" target="_blank" rel="noopener noreferrer"> | |
<img src="https://img.shields.io/badge/arXiv-2411.09022-b31b1b" alt="arXiv Badge"> | |
</a> | |
<a href="https://github.com/wyd0817/QA_LLM_Module" target="_blank" rel="noopener noreferrer"> | |
<img src="https://img.shields.io/badge/QA_LLM_Module-GitHub-blue" alt="QA LLM Module GitHub Badge"> | |
</a> | |
<a href="https://huggingface.co/datasets/YongdongWang/dart_llm_tasks" target="_blank" rel="noopener noreferrer"> | |
<img src="https://img.shields.io/badge/Dataset-Hugging_Face-blue" alt="Dataset Badge"> | |
</a> | |
<a href="https://huggingface.co/spaces/YongdongWang/DART-LLM-Llama3.1-8b" target="_blank" rel="noopener noreferrer"> | |
<img src="https://img.shields.io/badge/Spaces-DART--LLM--Llama3.1--8b-lightgrey" alt="Spaces Badge"> | |
</a> | |
<a href="https://www.youtube.com/watch?v=p3A-yg3yv0Q" target="_blank" rel="noopener noreferrer"> | |
<img src="https://img.shields.io/badge/Video-YouTube-red" alt="Video Badge"> | |
</a> | |
<a href="https://www.youtube.com/watch?v=T3M94hP8NFQ" target="_blank" rel="noopener noreferrer"> | |
<img src="https://img.shields.io/badge/Real_Robot-YouTube-orange" alt="Real Robot Badge"> | |
</a> | |
</div> | |
## Overview | |
This Hugging Face Space hosts DART-LLM, a QLoRA-fine-tuned meta-llama/Llama-3.1-8B model specialized in construction robotics. It demonstrates converting natural language robot commands into structured JSON tasks, supporting detailed multi-robot coordination, spatial reasoning, and action planning. | |
## Quick Start | |
1. Enter your robot command in the provided interface. | |
2. Click **Generate Tasks**. | |
3. Review the structured JSON output describing the robot task sequence. | |
## Local/Edge Deployment (Recommended for Jetson) | |
For local deployment on edge devices like NVIDIA Jetson, we recommend using the GGUF quantized models for optimal performance and memory efficiency: | |
### Available GGUF Models | |
| Model | Size | Memory Usage | Recommended Hardware | | |
|-------|------|--------------|---------------------| | |
| [llama-3.2-1b-lora-qlora-dart-llm-gguf](https://huggingface.co/YongdongWang/llama-3.2-1b-lora-qlora-dart-llm-gguf) | 870MB | ~2GB RAM | Jetson Nano, Jetson Orin Nano | | |
| [llama-3.2-3b-lora-qlora-dart-llm-gguf](https://huggingface.co/YongdongWang/llama-3.2-3b-lora-qlora-dart-llm-gguf) | 1.9GB | ~4GB RAM | Jetson Orin NX, Jetson AGX Orin | | |
| [llama-3.1-8b-lora-qlora-dart-llm-gguf](https://huggingface.co/YongdongWang/llama-3.1-8b-lora-qlora-dart-llm-gguf) | 4.6GB | ~8GB RAM | High-end Jetson AGX Orin | | |
### Deployment Options | |
#### Option 1: Using Ollama (Recommended) | |
```bash | |
# Install Ollama | |
curl -fsSL https://ollama.ai/install.sh | sh | |
# Create a Modelfile | |
cat > Modelfile << EOF | |
FROM ./llama_3.2_1b-lora-qlora-dart-llm_q5_k_m.gguf | |
TEMPLATE """### Instruction: | |
{{ .Prompt }} | |
### Response: | |
""" | |
PARAMETER stop "### Instruction:" | |
PARAMETER stop "### Response:" | |
EOF | |
# Create the model | |
ollama create dart-llm-1b -f Modelfile | |
# Run inference | |
ollama run dart-llm-1b "Deploy Excavator 1 to Soil Area 1 for excavation" | |
``` | |
#### Option 2: Using llama.cpp | |
```bash | |
# Clone and build llama.cpp | |
git clone https://github.com/ggerganov/llama.cpp | |
cd llama.cpp | |
make | |
# Download model | |
wget https://huggingface.co/YongdongWang/llama-3.2-1b-lora-qlora-dart-llm-gguf/resolve/main/llama_3.2_1b-lora-qlora-dart-llm_q5_k_m.gguf | |
# Run inference | |
./main -m llama_3.2_1b-lora-qlora-dart-llm_q5_k_m.gguf \ | |
-p "### Instruction:\nDeploy Excavator 1 to Soil Area 1 for excavation\n\n### Response:\n" \ | |
-n 512 | |
``` | |
#### Option 3: Using Python (llama-cpp-python) | |
```bash | |
# Install llama-cpp-python | |
pip install llama-cpp-python | |
# Python script | |
python3 << EOF | |
from llama_cpp import Llama | |
# Load model | |
llm = Llama(model_path="llama_3.2_1b-lora-qlora-dart-llm_q5_k_m.gguf", n_ctx=2048) | |
# Generate response | |
prompt = "### Instruction:\nDeploy Excavator 1 to Soil Area 1 for excavation\n\n### Response:\n" | |
output = llm(prompt, max_tokens=512, stop=["</s>"], echo=False) | |
print(output['choices'][0]['text']) | |
EOF | |
``` | |
## Citation | |
If you use this work, please cite: | |
```bibtex | |
@article{wang2024dart, | |
title={Dart-llm: Dependency-aware multi-robot task decomposition and execution using large language models}, | |
author={Wang, Yongdong and Xiao, Runze and Kasahara, Jun Younes Louhi and Yajima, Ryosuke and Nagatani, Keiji and Yamashita, Atsushi and Asama, Hajime}, | |
journal={arXiv preprint arXiv:2411.09022}, | |
year={2024} | |
} | |
``` |