From 4a3b0e1c55a25f491e0e0b130a952d60364771d9 Mon Sep 17 00:00:00 2001 From: ModelHub XC Date: Tue, 8 Sep 2026 20:56:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=EF=BC=8C=E7=94=B1ModelHub=20XC=E7=A4=BE=E5=8C=BA=E6=8F=90?= =?UTF-8?q?=E4=BE=9B=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Model: RecursiveMAS/Sequential-Light-Solver-Qwen2.5-Math-1.5B Source: Original Platform --- .gitattributes | 36 +++++++++++++++++++++++++ README.md | 53 ++++++++++++++++++++++++++++++++++++ adapter(code).pt | 3 +++ adapter(math).pt | 3 +++ adapter_config.json | 3 +++ chat_template.jinja | 54 +++++++++++++++++++++++++++++++++++++ config.json | 61 ++++++++++++++++++++++++++++++++++++++++++ generation_config.json | 10 +++++++ innerlink_config.json | 36 +++++++++++++++++++++++++ model.safetensors | 3 +++ tokenizer.json | 3 +++ tokenizer_config.json | 29 ++++++++++++++++++++ 12 files changed, 294 insertions(+) create mode 100644 .gitattributes create mode 100644 README.md create mode 100644 adapter(code).pt create mode 100644 adapter(math).pt create mode 100644 adapter_config.json create mode 100644 chat_template.jinja create mode 100644 config.json create mode 100644 generation_config.json create mode 100644 innerlink_config.json create mode 100644 model.safetensors create mode 100644 tokenizer.json create mode 100644 tokenizer_config.json diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..52373fe --- /dev/null +++ b/.gitattributes @@ -0,0 +1,36 @@ +*.7z filter=lfs diff=lfs merge=lfs -text +*.arrow filter=lfs diff=lfs merge=lfs -text +*.bin filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.ckpt filter=lfs diff=lfs merge=lfs -text +*.ftz filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.h5 filter=lfs diff=lfs merge=lfs -text +*.joblib filter=lfs diff=lfs merge=lfs -text +*.lfs.* filter=lfs diff=lfs merge=lfs -text +*.mlmodel filter=lfs diff=lfs merge=lfs -text +*.model filter=lfs diff=lfs merge=lfs -text +*.msgpack filter=lfs diff=lfs merge=lfs -text +*.npy filter=lfs diff=lfs merge=lfs -text +*.npz filter=lfs diff=lfs merge=lfs -text +*.onnx filter=lfs diff=lfs merge=lfs -text +*.ot filter=lfs diff=lfs merge=lfs -text +*.parquet filter=lfs diff=lfs merge=lfs -text +*.pb filter=lfs diff=lfs merge=lfs -text +*.pickle filter=lfs diff=lfs merge=lfs -text +*.pkl filter=lfs diff=lfs merge=lfs -text +*.pt filter=lfs diff=lfs merge=lfs -text +*.pth filter=lfs diff=lfs merge=lfs -text +*.rar filter=lfs diff=lfs merge=lfs -text +*.safetensors filter=lfs diff=lfs merge=lfs -text +saved_model/**/* filter=lfs diff=lfs merge=lfs -text +*.tar.* filter=lfs diff=lfs merge=lfs -text +*.tar filter=lfs diff=lfs merge=lfs -text +*.tflite filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.wasm filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text +*tfevents* filter=lfs diff=lfs merge=lfs -text +tokenizer.json filter=lfs diff=lfs merge=lfs -text diff --git a/README.md b/README.md new file mode 100644 index 0000000..7c0b03e --- /dev/null +++ b/README.md @@ -0,0 +1,53 @@ +--- +base_model: +- Qwen/Qwen2.5-Math-1.5B +license: mit +--- + +# Sequential-Light-Solver-Qwen2.5-Math-1.5B + +[🌐 Project Page](https://recursivemas.github.io) | [💻 Code](https://github.com/RecursiveMAS/RecursiveMAS) | [📄 Paper](https://arxiv.org/abs/2604.25917) + +We introduce RecursiveMAS, a multi-agent framework that scales agent collaboration through latent-space recursion. +RecursiveMAS treats a multi-agent system as a unified recursive computation, where heterogeneous agents iteratively exchange, refine, and evolve their latent states across recursion rounds. In the Sequential-Light setting, the Solver Agent is responsible for producing the final response based on the planning and critique information refined through RecursiveLink modules. + +## Model Details + +| Item | Description | +|---|---| +| Model | Sequential-Light-Solver-Qwen2.5-Math-1.5B | +| Collaboration Style | Sequential-Light | +| Agent Role | Solver Agent | +| Base Model | Qwen2.5-Math-1.5B | + +⚠️ **Note:** This checkpoint is a **role-specific agent** in [**RecursiveMAS**](https://arxiv.org/abs/2604.25917), rather than a standalone model intended for plain-text generation. +For detailed usage instructions, please refer to our [GitHub repository](https://github.com/RecursiveMAS/RecursiveMAS). + +## Model Collections for RecursiveMAS + +| Style | Model Collection | +|---|---| +| Sequential-Style | [🤗 HuggingFace](https://huggingface.co/collections/RecursiveMAS/sequential-style-recursivemas) | +| Mixture-Style | [🤗 HuggingFace](https://huggingface.co/collections/RecursiveMAS/mixture-style-recursivemas) | +| Distillation-Style | [🤗 HuggingFace](https://huggingface.co/collections/RecursiveMAS/distillation-style-recursivemas) | +| Deliberation-Style | [🤗 HuggingFace](https://huggingface.co/collections/RecursiveMAS/deliberation-style-recursivemas) | + +## Experiment Results + +

+ RecursiveMAS Experiment Results +

+ +## Citation + +```bibtex +@misc{recursivemas, + title={Recursive Multi-Agent Systems}, + author={Xiyuan Yang and Jiaru Zou and Rui Pan and Ruizhong Qiu and Pan Lu and Shizhe Diao and Jindong Jiang and Hanghang Tong and Tong Zhang and Markus J. Buehler and Jingrui He and James Zou}, + year={2026}, + eprint={2604.25917}, + archivePrefix={arXiv}, + primaryClass={cs.AI}, + url={https://arxiv.org/abs/2604.25917}, +} +``` \ No newline at end of file diff --git a/adapter(code).pt b/adapter(code).pt new file mode 100644 index 0000000..be3def7 --- /dev/null +++ b/adapter(code).pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6bf8a5d283e843309580ac63395b5b39bdeb22e00776a0134591b1c5a2548ffe +size 9458829 diff --git a/adapter(math).pt b/adapter(math).pt new file mode 100644 index 0000000..31a023d --- /dev/null +++ b/adapter(math).pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d726670688eb335b6eddc7f1a5b6e80af9095fa6c1765735795ac1c5d3bfbd26 +size 9458829 diff --git a/adapter_config.json b/adapter_config.json new file mode 100644 index 0000000..0ccbc2c --- /dev/null +++ b/adapter_config.json @@ -0,0 +1,3 @@ +{ + "adapter_type": "ln_res_adapter" +} \ No newline at end of file diff --git a/chat_template.jinja b/chat_template.jinja new file mode 100644 index 0000000..11f6d32 --- /dev/null +++ b/chat_template.jinja @@ -0,0 +1,54 @@ +{%- if tools %} + {{- '<|im_start|>system\n' }} + {%- if messages[0]['role'] == 'system' %} + {{- messages[0]['content'] }} + {%- else %} + {{- 'Please reason step by step, and put your final answer within \\boxed{}.' }} + {%- endif %} + {{- "\n\n# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within XML tags:\n" }} + {%- for tool in tools %} + {{- "\n" }} + {{- tool | tojson }} + {%- endfor %} + {{- "\n\n\nFor each function call, return a json object with function name and arguments within XML tags:\n\n{\"name\": , \"arguments\": }\n<|im_end|>\n" }} +{%- else %} + {%- if messages[0]['role'] == 'system' %} + {{- '<|im_start|>system\n' + messages[0]['content'] + '<|im_end|>\n' }} + {%- else %} + {{- '<|im_start|>system\nPlease reason step by step, and put your final answer within \\boxed{}.<|im_end|>\n' }} + {%- endif %} +{%- endif %} +{%- for message in messages %} + {%- if (message.role == "user") or (message.role == "system" and not loop.first) or (message.role == "assistant" and not message.tool_calls) %} + {{- '<|im_start|>' + message.role + '\n' + message.content + '<|im_end|>' + '\n' }} + {%- elif message.role == "assistant" %} + {{- '<|im_start|>' + message.role }} + {%- if message.content %} + {{- '\n' + message.content }} + {%- endif %} + {%- for tool_call in message.tool_calls %} + {%- if tool_call.function is defined %} + {%- set tool_call = tool_call.function %} + {%- endif %} + {{- '\n\n{"name": "' }} + {{- tool_call.name }} + {{- '", "arguments": ' }} + {{- tool_call.arguments | tojson }} + {{- '}\n' }} + {%- endfor %} + {{- '<|im_end|>\n' }} + {%- elif message.role == "tool" %} + {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != "tool") %} + {{- '<|im_start|>user' }} + {%- endif %} + {{- '\n\n' }} + {{- message.content }} + {{- '\n' }} + {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %} + {{- '<|im_end|>\n' }} + {%- endif %} + {%- endif %} +{%- endfor %} +{%- if add_generation_prompt %} + {{- '<|im_start|>assistant\n' }} +{%- endif %} diff --git a/config.json b/config.json new file mode 100644 index 0000000..ff8d748 --- /dev/null +++ b/config.json @@ -0,0 +1,61 @@ +{ + "architectures": [ + "Qwen2ForCausalLM" + ], + "attention_dropout": 0.0, + "bos_token_id": 151643, + "dtype": "bfloat16", + "eos_token_id": 151645, + "hidden_act": "silu", + "hidden_size": 1536, + "initializer_range": 0.02, + "intermediate_size": 8960, + "layer_types": [ + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention" + ], + "max_position_embeddings": 4096, + "max_window_layers": 21, + "model_type": "qwen2", + "num_attention_heads": 12, + "num_hidden_layers": 28, + "num_key_value_heads": 2, + "pad_token_id": null, + "rms_norm_eps": 1e-06, + "rope_parameters": { + "rope_theta": 10000.0, + "rope_type": "default" + }, + "sliding_window": null, + "tie_word_embeddings": true, + "transformers_version": "5.3.0", + "use_cache": true, + "use_sliding_window": false, + "vocab_size": 151936 +} diff --git a/generation_config.json b/generation_config.json new file mode 100644 index 0000000..53018f3 --- /dev/null +++ b/generation_config.json @@ -0,0 +1,10 @@ +{ + "bos_token_id": 151643, + "do_sample": false, + "eos_token_id": [ + 151645, + 151643 + ], + "pad_token_id": 151643, + "transformers_version": "5.3.0" +} diff --git a/innerlink_config.json b/innerlink_config.json new file mode 100644 index 0000000..d42925d --- /dev/null +++ b/innerlink_config.json @@ -0,0 +1,36 @@ +{ + "format_version": 1, + "paradigm": "sequential", + "variant": "light", + "role": "Solver", + "backbone": "Qwen2.5-Math-1.5B", + "shared_files": [ + "adapter_config.json", + "chat_template.jinja", + "config.json", + "generation_config.json", + "model.safetensors", + "tokenizer.json", + "tokenizer_config.json" + ], + "tasks": { + "math": { + "adapter.pt": "adapter(math).pt", + "adapter_config.json": "adapter_config.json", + "chat_template.jinja": "chat_template.jinja", + "config.json": "config.json", + "generation_config.json": "generation_config.json", + "tokenizer.json": "tokenizer.json", + "tokenizer_config.json": "tokenizer_config.json" + }, + "code": { + "adapter.pt": "adapter(code).pt", + "adapter_config.json": "adapter_config.json", + "chat_template.jinja": "chat_template.jinja", + "config.json": "config.json", + "generation_config.json": "generation_config.json", + "tokenizer.json": "tokenizer.json", + "tokenizer_config.json": "tokenizer_config.json" + } + } +} diff --git a/model.safetensors b/model.safetensors new file mode 100644 index 0000000..5de1e02 --- /dev/null +++ b/model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08faf1e950173bb44c11d26df28c55da7237dc55c77dbc1cbae4a5d7584540d9 +size 3087467144 diff --git a/tokenizer.json b/tokenizer.json new file mode 100644 index 0000000..34510ff --- /dev/null +++ b/tokenizer.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3fd169731d2cbde95e10bf356d66d5997fd885dd8dbb6fb4684da3f23b2585d8 +size 11421892 diff --git a/tokenizer_config.json b/tokenizer_config.json new file mode 100644 index 0000000..7d75d3b --- /dev/null +++ b/tokenizer_config.json @@ -0,0 +1,29 @@ +{ + "add_prefix_space": false, + "backend": "tokenizers", + "bos_token": null, + "clean_up_tokenization_spaces": false, + "eos_token": "<|im_end|>", + "errors": "replace", + "extra_special_tokens": [ + "<|im_start|>", + "<|im_end|>", + "<|object_ref_start|>", + "<|object_ref_end|>", + "<|box_start|>", + "<|box_end|>", + "<|quad_start|>", + "<|quad_end|>", + "<|vision_start|>", + "<|vision_end|>", + "<|vision_pad|>", + "<|image_pad|>", + "<|video_pad|>" + ], + "is_local": false, + "model_max_length": 131072, + "pad_token": "<|endoftext|>", + "split_special_tokens": false, + "tokenizer_class": "Qwen2Tokenizer", + "unk_token": null +}