The version of the codebase
7030e16
Precision of the model weights
bfloat16
Transformers version
4.56.1
The number of GPUs and their type
8 x NVIDIA A100-SXM4-80GB
Architecture
local-chat-completions
Name of the ML model:
Qwen3-235B-A22B-Thinking-2507
Model type:
Opened
SFT
MoE
Additional links:
https://arxiv.org/abs/2505.09388
Architecture description:
Qwen3-235B-A22B-Thinking-2507 is a large Mixture-of-Experts (MoE) decoder-only transformer language model from the Qwen3 family. The model contains 235B total parameters with about 22B active per forward pass and is optimized for complex reasoning tasks such as mathematics, science, and coding. It supports very long contexts (up to about 262K tokens) and is designed to generate intermediate reasoning steps before producing the final answer.
Description of the training:
The model follows the standard Qwen3 multi-stage training pipeline consisting of large-scale pretraining followed by post-training. Post-training includes instruction tuning and reinforcement-learning-based alignment to improve reasoning and instruction-following performance.
Pretrain data:
The model was pretrained on a large multilingual corpus of approximately 36 trillion tokens covering 119 languages. It was further post-trained on instruction-following and reasoning-oriented datasets to improve instruction following and reasoning performance.
License:
Apache License 2.0
Inference parameters
Description of the template:
{%- if tools %} {{- '<|im_start|>system ' }} {%- if messages[0].role == 'system' %} {{- messages[0].content + ' ' }} {%- endif %} {{- "# Tools You may call one or more functions to assist with the user query. You are provided with function signatures within <tools></tools> XML tags: <tools>" }} {%- for tool in tools %} {{- " " }} {{- tool | tojson }} {%- endfor %} {{- " </tools> For each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags: <tool_call> {"name": <function-name>, "arguments": <args-json-object>} </tool_call><|im_end|> " }} {%- else %} {%- if messages[0].role == 'system' %} {{- '<|im_start|>system ' + messages[0].content + '<|im_end|> ' }} {%- endif %} {%- endif %} {%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %} {%- for message in messages[::-1] %} {%- set index = (messages|length - 1) - loop.index0 %} {%- if ns.multi_step_tool and message.role == "user" and message.content is string and not(message.content.startswith('<tool_response>') and message.content.endswith('</tool_response>')) %} {%- set ns.multi_step_tool = false %} {%- set ns.last_query_index = index %} {%- endif %} {%- endfor %} {%- for message in messages %} {%- if message.content is string %} {%- set content = message.content %} {%- else %} {%- set content = '' %} {%- endif %} {%- if (message.role == "user") or (message.role == "system" and not loop.first) %} {{- '<|im_start|>' + message.role + ' ' + content + '<|im_end|>' + ' ' }} {%- elif message.role == "assistant" %} {%- set reasoning_content = '' %} {%- if message.reasoning_content is string %} {%- set reasoning_content = message.reasoning_content %} {%- else %} {%- if '</think>' in content %} {%- set reasoning_content = content.split('</think>')[0].rstrip(' ').split('<think>')[-1].lstrip(' ') %} {%- set content = content.split('</think>')[-1].lstrip(' ') %} {%- endif %} {%- endif %} {%- if loop.index0 > ns.last_query_index %} {%- if loop.last or (not loop.last and reasoning_content) %} {{- '<|im_start|>' + message.role + ' <think> ' + reasoning_content.strip(' ') + ' </think> ' + content.lstrip(' ') }} {%- else %} {{- '<|im_start|>' + message.role + ' ' + content }} {%- endif %} {%- else %} {{- '<|im_start|>' + message.role + ' ' + content }} {%- endif %} {%- if message.tool_calls %} {%- for tool_call in message.tool_calls %} {%- if (loop.first and content) or (not loop.first) %} {{- ' ' }} {%- endif %} {%- if tool_call.function %} {%- set tool_call = tool_call.function %} {%- endif %} {{- '<tool_call> {"name": "' }} {{- tool_call.name }} {{- '", "arguments": ' }} {%- if tool_call.arguments is string %} {{- tool_call.arguments }} {%- else %} {{- tool_call.arguments | tojson }} {%- endif %} {{- '} </tool_call>' }} {%- endfor %} {%- endif %} {{- '<|im_end|> ' }} {%- elif message.role == "tool" %} {%- if loop.first or (messages[loop.index0 - 1].role != "tool") %} {{- '<|im_start|>user' }} {%- endif %} {{- ' <tool_response> ' }} {{- content }} {{- ' </tool_response>' }} {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %} {{- '<|im_end|> ' }} {%- endif %} {%- endif %} {%- endfor %} {%- if add_generation_prompt %} {{- '<|im_start|>assistant ' }} {%- if enable_thinking is defined and enable_thinking is false %} {{- '<think> </think> ' }} {%- endif %} {%- endif %}
System prompt:
Реши задачу по инструкции ниже. Не давай никаких объяснений и пояснений к своему ответу. Не пиши ничего лишнего. Пиши только то, что указано в инструкции. Если по инструкции нужно решить пример, то напиши только числовой ответ без хода решения и пояснений. Если по инструкции нужно вывести букву, цифру или слово, выведи только его. Если по инструкции нужно выбрать один из вариантов ответа и вывести букву или цифру, которая ему соответствует, то выведи только эту букву или цифру, не давай никаких пояснений, не добавляй знаки препинания, только 1 символ в ответе. Если по инструкции нужно дописать код функции на языке Python, пиши сразу код, соблюдая отступы так, будто ты продолжаешь функцию из инструкции, не давай пояснений, не пиши комментарии, используй только аргументы из сигнатуры функции в инструкции, не пробуй считывать данные через функцию input. Не извиняйся, не строй диалог. Выдавай только ответ и ничего больше.