Infinity08 commited on
Commit
a884d48
·
verified ·
1 Parent(s): 14abcf5

Upload Choonsik Stage 3 checkpoint

Browse files
README.md CHANGED
@@ -1,58 +1,84 @@
1
  ---
 
2
  base_model: Qwen/Qwen3.5-9B
3
- library_name: transformers
4
- model_name: Choonsik-Qwen3.5-9B
5
  tags:
6
- - generated_from_trainer
7
- - sft
8
- - trl
9
- licence: license
 
 
 
 
 
 
 
 
10
  ---
11
 
12
- # Model Card for Choonsik-Qwen3.5-9B
 
 
 
 
 
 
 
 
 
 
13
 
14
- This model is a fine-tuned version of [Qwen/Qwen3.5-9B](https://huggingface.co/Qwen/Qwen3.5-9B).
15
- It has been trained using [TRL](https://github.com/huggingface/trl).
 
 
 
 
16
 
17
- ## Quick start
18
 
19
  ```python
20
- from transformers import pipeline
 
21
 
22
- question = "If you had a time machine, but could only go to the past or the future once and never return, which would you choose and why?"
23
- generator = pipeline("text-generation", model="Infinity08/Choonsik-Qwen3.5-9B", device="cuda")
24
- output = generator([{"role": "user", "content": question}], max_new_tokens=128, return_full_text=False)[0]
25
- print(output["generated_text"])
26
- ```
27
 
28
- ## Training procedure
 
 
29
 
30
- [<img src="https://raw.githubusercontent.com/wandb/assets/main/wandb-github-badge-28.svg" alt="Visualize in Weights & Biases" width="150" height="24"/>](https://wandb.ai/infinity08-choonsik/huggingface/runs/n0avpowm)
31
 
 
32
 
 
 
 
 
 
33
 
34
- This model was trained with SFT.
35
 
36
- ### Framework versions
37
 
38
- - TRL: 1.3.0
39
- - Transformers: 5.7.0
40
- - Pytorch: 2.4.1+cu124
41
- - Datasets: 4.8.5
42
- - Tokenizers: 0.22.2
43
 
44
- ## Citations
45
 
 
46
 
 
47
 
48
- Cite TRL as:
49
-
50
  ```bibtex
51
- @software{vonwerra2020trl,
52
- title = {{TRL: Transformers Reinforcement Learning}},
53
- author = {von Werra, Leandro and Belkada, Younes and Tunstall, Lewis and Beeching, Edward and Thrush, Tristan and Lambert, Nathan and Huang, Shengyi and Rasul, Kashif and Gallouédec, Quentin},
54
- license = {Apache-2.0},
55
- url = {https://github.com/huggingface/trl},
56
- year = {2020}
57
  }
58
- ```
 
 
1
  ---
2
+ license: mit
3
  base_model: Qwen/Qwen3.5-9B
 
 
4
  tags:
5
+ - choonsik
6
+ - VLA
7
+ - Minecraft
8
+ - vision-language-action
9
+ - qwen3.5
10
+ - image-text-to-text
11
+ datasets:
12
+ - CraftJarvis/minecraft-vla-sft
13
+ library_name: transformers
14
+ language:
15
+ - en
16
+ pipeline_tag: image-text-to-text
17
  ---
18
 
19
+ # Choonsik Minecraft Vision-Language-Action Model
20
+
21
+ Choonsik is a **Vision-Language-Action (VLA)** model for Minecraft, built on
22
+ [Qwen/Qwen3.5-9B](<https://huggingface.co/Qwen/Qwen3.5-9B>) and trained with the
23
+ three-stage **ActVLP** pipeline from
24
+ [JARVIS-VLA](https://arxiv.org/abs/2503.16365).
25
+
26
+ Given a Minecraft observation frame and a natural-language task instruction,
27
+ Choonsik outputs keyboard + mouse action tokens that can be executed directly
28
+ in the game — covering 1,000+ atomic tasks (crafting, mining, smelting, combat,
29
+ navigation, etc.).
30
 
31
+ | | |
32
+ |---|---|
33
+ | **Base model** | [Qwen/Qwen3.5-9B](<https://huggingface.co/Qwen/Qwen3.5-9B>) |
34
+ | **Training data** | [CraftJarvis/minecraft-vla-sft](<https://huggingface.co/datasets/CraftJarvis/minecraft-vla-sft>) (3.78M examples) |
35
+ | **Training stages** | Language → Vision-Language → Imitation Learning |
36
+ | **License** | MIT |
37
 
38
+ ## Usage
39
 
40
  ```python
41
+ from choonsik.inference import ChoonsikInferenceRunner
42
+ from PIL import Image
43
 
44
+ runner = ChoonsikInferenceRunner("Infinity08/Choonsik-Qwen3.5-9B")
45
+ frame = Image.open("minecraft_frame.png")
 
 
 
46
 
47
+ action = runner.predict(frame, task="craft a wooden pickaxe")
48
+ # action = {"forward": 0, "attack": 1, ..., "camera": [0.0, 0.3]}
49
+ ```
50
 
51
+ ## Action Space
52
 
53
+ Choonsik predicts actions using **mu-law discretized tokens**:
54
 
55
+ | Token type | Count | Description |
56
+ |---|---|---|
57
+ | Keyboard | 29 | `forward`, `attack`, `use`, `jump`, hotbar 1–9, … |
58
+ | Mouse X | 21 | Horizontal camera rotation (mu-law bins) |
59
+ | Mouse Y | 21 | Vertical camera rotation (mu-law bins) |
60
 
61
+ ## Training
62
 
63
+ Three-stage ActVLP pipeline (following JARVIS-VLA):
64
 
65
+ 1. **Stage 1 — Language post-training**: Minecraft world knowledge (text-only SFT)
66
+ 2. **Stage 2 — Vision-language alignment**: Image captioning and VQA on gameplay frames
67
+ 3. **Stage 3 — Imitation learning**: Action prediction on 3.78M trajectory examples
 
 
68
 
69
+ Training hardware: L40S (48 GB VRAM). Inference: RTX 5080 with 4-bit NF4 quantization.
70
 
71
+ ## Citation
72
 
73
+ If you use Choonsik or the underlying JARVIS-VLA methodology, please cite:
74
 
 
 
75
  ```bibtex
76
+ @article{li2025jarvisvla,
77
+ title = {JARVIS-VLA: Post-Training Large-Scale Vision Language Models
78
+ to Play Visual Games with Keyboards and Mouse},
79
+ author = {Muyao Li and Zihao Wang and Kaichen He and others},
80
+ journal = {arXiv preprint arXiv:2503.16365},
81
+ year = {2025}
82
  }
83
+ ```
84
+
config.json ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "Qwen3_5ForCausalLM"
4
+ ],
5
+ "attention_bias": false,
6
+ "attention_dropout": 0.0,
7
+ "attn_output_gate": true,
8
+ "bos_token_id": null,
9
+ "dtype": "bfloat16",
10
+ "eos_token_id": 248044,
11
+ "full_attention_interval": 4,
12
+ "head_dim": 256,
13
+ "hidden_act": "silu",
14
+ "hidden_size": 4096,
15
+ "initializer_range": 0.02,
16
+ "intermediate_size": 12288,
17
+ "layer_types": [
18
+ "linear_attention",
19
+ "linear_attention",
20
+ "linear_attention",
21
+ "full_attention",
22
+ "linear_attention",
23
+ "linear_attention",
24
+ "linear_attention",
25
+ "full_attention",
26
+ "linear_attention",
27
+ "linear_attention",
28
+ "linear_attention",
29
+ "full_attention",
30
+ "linear_attention",
31
+ "linear_attention",
32
+ "linear_attention",
33
+ "full_attention",
34
+ "linear_attention",
35
+ "linear_attention",
36
+ "linear_attention",
37
+ "full_attention",
38
+ "linear_attention",
39
+ "linear_attention",
40
+ "linear_attention",
41
+ "full_attention",
42
+ "linear_attention",
43
+ "linear_attention",
44
+ "linear_attention",
45
+ "full_attention",
46
+ "linear_attention",
47
+ "linear_attention",
48
+ "linear_attention",
49
+ "full_attention"
50
+ ],
51
+ "linear_conv_kernel_dim": 4,
52
+ "linear_key_head_dim": 128,
53
+ "linear_num_key_heads": 16,
54
+ "linear_num_value_heads": 32,
55
+ "linear_value_head_dim": 128,
56
+ "mamba_ssm_dtype": "float32",
57
+ "max_position_embeddings": 262144,
58
+ "mlp_only_layers": [],
59
+ "model_type": "qwen3_5_text",
60
+ "mtp_num_hidden_layers": 1,
61
+ "mtp_use_dedicated_embeddings": false,
62
+ "num_attention_heads": 16,
63
+ "num_hidden_layers": 32,
64
+ "num_key_value_heads": 4,
65
+ "pad_token_id": null,
66
+ "partial_rotary_factor": 0.25,
67
+ "rms_norm_eps": 1e-06,
68
+ "rope_parameters": {
69
+ "mrope_interleaved": true,
70
+ "mrope_section": [
71
+ 11,
72
+ 11,
73
+ 10
74
+ ],
75
+ "partial_rotary_factor": 0.25,
76
+ "rope_theta": 10000000,
77
+ "rope_type": "default"
78
+ },
79
+ "tie_word_embeddings": false,
80
+ "transformers_version": "5.7.0",
81
+ "use_cache": true,
82
+ "vocab_size": 248320
83
+ }
generation_config.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "_from_model_config": true,
3
+ "eos_token_id": 248044,
4
+ "transformers_version": "5.7.0",
5
+ "use_cache": true
6
+ }
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:61b7d5f795d3f7504705a0881f2b7262ed2084f7e5d099d93f4a854a76514482
3
+ size 17907663008
processor_config.json CHANGED
@@ -20,8 +20,8 @@
20
  "resample": 3,
21
  "rescale_factor": 0.00392156862745098,
22
  "size": {
23
- "longest_edge": 16777216,
24
- "shortest_edge": 65536
25
  },
26
  "temporal_patch_size": 2
27
  },
 
20
  "resample": 3,
21
  "rescale_factor": 0.00392156862745098,
22
  "size": {
23
+ "longest_edge": 200704,
24
+ "shortest_edge": 50176
25
  },
26
  "temporal_patch_size": 2
27
  },
tokenizer_config.json CHANGED
@@ -9,8 +9,10 @@
9
  "eos_token": "<|im_end|>",
10
  "errors": "replace",
11
  "image_token": "<|image_pad|>",
12
- "is_local": false,
13
  "local_files_only": false,
 
 
14
  "model_max_length": 262144,
15
  "model_specific_special_tokens": {
16
  "audio_bos_token": "<|audio_start|>",
 
9
  "eos_token": "<|im_end|>",
10
  "errors": "replace",
11
  "image_token": "<|image_pad|>",
12
+ "is_local": true,
13
  "local_files_only": false,
14
+ "max_pixels": 200704,
15
+ "min_pixels": 50176,
16
  "model_max_length": 262144,
17
  "model_specific_special_tokens": {
18
  "audio_bos_token": "<|audio_start|>",