File size: 6,358 Bytes
9ffc795
c6b828a
9ffc795
 
 
 
 
 
 
 
 
c6b828a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4ce8f9e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c6b828a
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
---
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}
}
```