From 2caf9c4697cebe369c757b916b6ce766ef343f95 Mon Sep 17 00:00:00 2001 From: kelseye Date: Sun, 26 Oct 2025 08:46:06 +0000 Subject: [PATCH] Upload folder using ModelScope SDK --- .gitattributes | 135 +++++++++ README.md | 203 ++++++++++--- chat_template.jinja | 159 ++++++++++ config.json | 117 ++++++++ configuration.json | 1 + docs/function_call_guide.md | 482 ++++++++++++++++++++++++++++++ docs/function_call_guide_cn.md | 482 ++++++++++++++++++++++++++++++ docs/vllm_deploy_guide.md | 88 ++++++ docs/vllm_deploy_guide_cn.md | 85 ++++++ figures/Bench.png | Bin 0 -> 162223 bytes generation_config.json | 6 + merges.txt | 3 + model-00000-of-00130.safetensors | 3 + model-00001-of-00130.safetensors | 3 + model-00002-of-00130.safetensors | 3 + model-00003-of-00130.safetensors | 3 + model-00004-of-00130.safetensors | 3 + model-00005-of-00130.safetensors | 3 + model-00006-of-00130.safetensors | 3 + model-00007-of-00130.safetensors | 3 + model-00008-of-00130.safetensors | 3 + model-00009-of-00130.safetensors | 3 + model-00010-of-00130.safetensors | 3 + model-00011-of-00130.safetensors | 3 + model-00012-of-00130.safetensors | 3 + model-00013-of-00130.safetensors | 3 + model-00014-of-00130.safetensors | 3 + model-00015-of-00130.safetensors | 3 + model-00016-of-00130.safetensors | 3 + model-00017-of-00130.safetensors | 3 + model-00018-of-00130.safetensors | 3 + model-00019-of-00130.safetensors | 3 + model-00020-of-00130.safetensors | 3 + model-00021-of-00130.safetensors | 3 + model-00022-of-00130.safetensors | 3 + model-00023-of-00130.safetensors | 3 + model-00024-of-00130.safetensors | 3 + model-00025-of-00130.safetensors | 3 + model-00026-of-00130.safetensors | 3 + model-00027-of-00130.safetensors | 3 + model-00028-of-00130.safetensors | 3 + model-00029-of-00130.safetensors | 3 + model-00030-of-00130.safetensors | 3 + model-00031-of-00130.safetensors | 3 + model-00032-of-00130.safetensors | 3 + model-00033-of-00130.safetensors | 3 + model-00034-of-00130.safetensors | 3 + model-00035-of-00130.safetensors | 3 + model-00036-of-00130.safetensors | 3 + model-00037-of-00130.safetensors | 3 + model-00038-of-00130.safetensors | 3 + model-00039-of-00130.safetensors | 3 + model-00040-of-00130.safetensors | 3 + model-00041-of-00130.safetensors | 3 + model-00042-of-00130.safetensors | 3 + model-00043-of-00130.safetensors | 3 + model-00044-of-00130.safetensors | 3 + model-00045-of-00130.safetensors | 3 + model-00046-of-00130.safetensors | 3 + model-00047-of-00130.safetensors | 3 + model-00048-of-00130.safetensors | 3 + model-00049-of-00130.safetensors | 3 + model-00050-of-00130.safetensors | 3 + model-00051-of-00130.safetensors | 3 + model-00052-of-00130.safetensors | 3 + model-00053-of-00130.safetensors | 3 + model-00054-of-00130.safetensors | 3 + model-00055-of-00130.safetensors | 3 + model-00056-of-00130.safetensors | 3 + model-00057-of-00130.safetensors | 3 + model-00058-of-00130.safetensors | 3 + model-00059-of-00130.safetensors | 3 + model-00060-of-00130.safetensors | 3 + model-00061-of-00130.safetensors | 3 + model-00062-of-00130.safetensors | 3 + model-00063-of-00130.safetensors | 3 + model-00064-of-00130.safetensors | 3 + model-00065-of-00130.safetensors | 3 + model-00066-of-00130.safetensors | 3 + model-00067-of-00130.safetensors | 3 + model-00068-of-00130.safetensors | 3 + model-00069-of-00130.safetensors | 3 + model-00070-of-00130.safetensors | 3 + model-00071-of-00130.safetensors | 3 + model-00072-of-00130.safetensors | 3 + model-00073-of-00130.safetensors | 3 + model-00074-of-00130.safetensors | 3 + model-00075-of-00130.safetensors | 3 + model-00076-of-00130.safetensors | 3 + model-00077-of-00130.safetensors | 3 + model-00078-of-00130.safetensors | 3 + model-00079-of-00130.safetensors | 3 + model-00080-of-00130.safetensors | 3 + model-00081-of-00130.safetensors | 3 + model-00082-of-00130.safetensors | 3 + model-00083-of-00130.safetensors | 3 + model-00084-of-00130.safetensors | 3 + model-00085-of-00130.safetensors | 3 + model-00086-of-00130.safetensors | 3 + model-00087-of-00130.safetensors | 3 + model-00088-of-00130.safetensors | 3 + model-00089-of-00130.safetensors | 3 + model-00090-of-00130.safetensors | 3 + model-00091-of-00130.safetensors | 3 + model-00092-of-00130.safetensors | 3 + model-00093-of-00130.safetensors | 3 + model-00094-of-00130.safetensors | 3 + model-00095-of-00130.safetensors | 3 + model-00096-of-00130.safetensors | 3 + model-00097-of-00130.safetensors | 3 + model-00098-of-00130.safetensors | 3 + model-00099-of-00130.safetensors | 3 + model-00100-of-00130.safetensors | 3 + model-00101-of-00130.safetensors | 3 + model-00102-of-00130.safetensors | 3 + model-00103-of-00130.safetensors | 3 + model-00104-of-00130.safetensors | 3 + model-00105-of-00130.safetensors | 3 + model-00106-of-00130.safetensors | 3 + model-00107-of-00130.safetensors | 3 + model-00108-of-00130.safetensors | 3 + model-00109-of-00130.safetensors | 3 + model-00110-of-00130.safetensors | 3 + model-00111-of-00130.safetensors | 3 + model-00112-of-00130.safetensors | 3 + model-00113-of-00130.safetensors | 3 + model-00114-of-00130.safetensors | 3 + model-00115-of-00130.safetensors | 3 + model-00116-of-00130.safetensors | 3 + model-00117-of-00130.safetensors | 3 + model-00118-of-00130.safetensors | 3 + model-00119-of-00130.safetensors | 3 + model-00120-of-00130.safetensors | 3 + model-00121-of-00130.safetensors | 3 + model-00122-of-00130.safetensors | 3 + model-00123-of-00130.safetensors | 3 + model-00124-of-00130.safetensors | 3 + model-00125-of-00130.safetensors | 3 + model-00126-of-00130.safetensors | 3 + model-00127-of-00130.safetensors | 3 + model-00128-of-00130.safetensors | 3 + model-00129-of-00130.safetensors | 3 + model.safetensors.index.json | 3 + tokenizer.json | 3 + tokenizer_config.json | 495 +++++++++++++++++++++++++++++++ vocab.json | 3 + 146 files changed, 2611 insertions(+), 44 deletions(-) create mode 100644 chat_template.jinja create mode 100644 config.json create mode 100644 configuration.json create mode 100644 docs/function_call_guide.md create mode 100644 docs/function_call_guide_cn.md create mode 100644 docs/vllm_deploy_guide.md create mode 100644 docs/vllm_deploy_guide_cn.md create mode 100644 figures/Bench.png create mode 100644 generation_config.json create mode 100644 merges.txt create mode 100644 model-00000-of-00130.safetensors create mode 100644 model-00001-of-00130.safetensors create mode 100644 model-00002-of-00130.safetensors create mode 100644 model-00003-of-00130.safetensors create mode 100644 model-00004-of-00130.safetensors create mode 100644 model-00005-of-00130.safetensors create mode 100644 model-00006-of-00130.safetensors create mode 100644 model-00007-of-00130.safetensors create mode 100644 model-00008-of-00130.safetensors create mode 100644 model-00009-of-00130.safetensors create mode 100644 model-00010-of-00130.safetensors create mode 100644 model-00011-of-00130.safetensors create mode 100644 model-00012-of-00130.safetensors create mode 100644 model-00013-of-00130.safetensors create mode 100644 model-00014-of-00130.safetensors create mode 100644 model-00015-of-00130.safetensors create mode 100644 model-00016-of-00130.safetensors create mode 100644 model-00017-of-00130.safetensors create mode 100644 model-00018-of-00130.safetensors create mode 100644 model-00019-of-00130.safetensors create mode 100644 model-00020-of-00130.safetensors create mode 100644 model-00021-of-00130.safetensors create mode 100644 model-00022-of-00130.safetensors create mode 100644 model-00023-of-00130.safetensors create mode 100644 model-00024-of-00130.safetensors create mode 100644 model-00025-of-00130.safetensors create mode 100644 model-00026-of-00130.safetensors create mode 100644 model-00027-of-00130.safetensors create mode 100644 model-00028-of-00130.safetensors create mode 100644 model-00029-of-00130.safetensors create mode 100644 model-00030-of-00130.safetensors create mode 100644 model-00031-of-00130.safetensors create mode 100644 model-00032-of-00130.safetensors create mode 100644 model-00033-of-00130.safetensors create mode 100644 model-00034-of-00130.safetensors create mode 100644 model-00035-of-00130.safetensors create mode 100644 model-00036-of-00130.safetensors create mode 100644 model-00037-of-00130.safetensors create mode 100644 model-00038-of-00130.safetensors create mode 100644 model-00039-of-00130.safetensors create mode 100644 model-00040-of-00130.safetensors create mode 100644 model-00041-of-00130.safetensors create mode 100644 model-00042-of-00130.safetensors create mode 100644 model-00043-of-00130.safetensors create mode 100644 model-00044-of-00130.safetensors create mode 100644 model-00045-of-00130.safetensors create mode 100644 model-00046-of-00130.safetensors create mode 100644 model-00047-of-00130.safetensors create mode 100644 model-00048-of-00130.safetensors create mode 100644 model-00049-of-00130.safetensors create mode 100644 model-00050-of-00130.safetensors create mode 100644 model-00051-of-00130.safetensors create mode 100644 model-00052-of-00130.safetensors create mode 100644 model-00053-of-00130.safetensors create mode 100644 model-00054-of-00130.safetensors create mode 100644 model-00055-of-00130.safetensors create mode 100644 model-00056-of-00130.safetensors create mode 100644 model-00057-of-00130.safetensors create mode 100644 model-00058-of-00130.safetensors create mode 100644 model-00059-of-00130.safetensors create mode 100644 model-00060-of-00130.safetensors create mode 100644 model-00061-of-00130.safetensors create mode 100644 model-00062-of-00130.safetensors create mode 100644 model-00063-of-00130.safetensors create mode 100644 model-00064-of-00130.safetensors create mode 100644 model-00065-of-00130.safetensors create mode 100644 model-00066-of-00130.safetensors create mode 100644 model-00067-of-00130.safetensors create mode 100644 model-00068-of-00130.safetensors create mode 100644 model-00069-of-00130.safetensors create mode 100644 model-00070-of-00130.safetensors create mode 100644 model-00071-of-00130.safetensors create mode 100644 model-00072-of-00130.safetensors create mode 100644 model-00073-of-00130.safetensors create mode 100644 model-00074-of-00130.safetensors create mode 100644 model-00075-of-00130.safetensors create mode 100644 model-00076-of-00130.safetensors create mode 100644 model-00077-of-00130.safetensors create mode 100644 model-00078-of-00130.safetensors create mode 100644 model-00079-of-00130.safetensors create mode 100644 model-00080-of-00130.safetensors create mode 100644 model-00081-of-00130.safetensors create mode 100644 model-00082-of-00130.safetensors create mode 100644 model-00083-of-00130.safetensors create mode 100644 model-00084-of-00130.safetensors create mode 100644 model-00085-of-00130.safetensors create mode 100644 model-00086-of-00130.safetensors create mode 100644 model-00087-of-00130.safetensors create mode 100644 model-00088-of-00130.safetensors create mode 100644 model-00089-of-00130.safetensors create mode 100644 model-00090-of-00130.safetensors create mode 100644 model-00091-of-00130.safetensors create mode 100644 model-00092-of-00130.safetensors create mode 100644 model-00093-of-00130.safetensors create mode 100644 model-00094-of-00130.safetensors create mode 100644 model-00095-of-00130.safetensors create mode 100644 model-00096-of-00130.safetensors create mode 100644 model-00097-of-00130.safetensors create mode 100644 model-00098-of-00130.safetensors create mode 100644 model-00099-of-00130.safetensors create mode 100644 model-00100-of-00130.safetensors create mode 100644 model-00101-of-00130.safetensors create mode 100644 model-00102-of-00130.safetensors create mode 100644 model-00103-of-00130.safetensors create mode 100644 model-00104-of-00130.safetensors create mode 100644 model-00105-of-00130.safetensors create mode 100644 model-00106-of-00130.safetensors create mode 100644 model-00107-of-00130.safetensors create mode 100644 model-00108-of-00130.safetensors create mode 100644 model-00109-of-00130.safetensors create mode 100644 model-00110-of-00130.safetensors create mode 100644 model-00111-of-00130.safetensors create mode 100644 model-00112-of-00130.safetensors create mode 100644 model-00113-of-00130.safetensors create mode 100644 model-00114-of-00130.safetensors create mode 100644 model-00115-of-00130.safetensors create mode 100644 model-00116-of-00130.safetensors create mode 100644 model-00117-of-00130.safetensors create mode 100644 model-00118-of-00130.safetensors create mode 100644 model-00119-of-00130.safetensors create mode 100644 model-00120-of-00130.safetensors create mode 100644 model-00121-of-00130.safetensors create mode 100644 model-00122-of-00130.safetensors create mode 100644 model-00123-of-00130.safetensors create mode 100644 model-00124-of-00130.safetensors create mode 100644 model-00125-of-00130.safetensors create mode 100644 model-00126-of-00130.safetensors create mode 100644 model-00127-of-00130.safetensors create mode 100644 model-00128-of-00130.safetensors create mode 100644 model-00129-of-00130.safetensors create mode 100644 model.safetensors.index.json create mode 100644 tokenizer.json create mode 100644 tokenizer_config.json create mode 100644 vocab.json diff --git a/.gitattributes b/.gitattributes index 15ba2c6..f928861 100644 --- a/.gitattributes +++ b/.gitattributes @@ -45,3 +45,138 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text *.wasm filter=lfs diff=lfs merge=lfs -text *.zst filter=lfs diff=lfs merge=lfs -text *tfevents* filter=lfs diff=lfs merge=lfs -text + +model-00031-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00002-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00011-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00022-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00004-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00000-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00006-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00009-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +merges.txt filter=lfs diff=lfs merge=lfs -text +model-00010-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00005-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00013-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00001-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00012-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00033-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00015-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00007-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00037-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00014-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00032-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00019-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00035-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00041-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00036-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00018-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00023-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00034-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00045-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00043-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00025-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00020-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00038-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00047-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00029-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00040-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00024-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00049-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00042-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00051-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00048-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00053-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00050-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00052-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00046-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00057-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00059-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00055-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00122-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00026-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00054-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00063-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00028-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00060-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00062-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00061-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00065-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00067-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00056-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00058-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00030-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00003-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00069-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00008-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00017-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00073-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00071-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00064-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00070-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00066-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00075-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00068-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00077-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00079-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00081-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00072-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00076-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00039-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00074-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00083-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00016-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00078-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00080-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00085-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00082-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00087-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00089-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00021-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00091-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00095-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00093-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00090-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00086-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00027-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00088-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00097-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00101-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00106-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00099-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00092-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00094-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00100-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00105-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00096-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00104-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00107-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00098-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00102-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00113-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00044-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00119-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00114-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00108-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00115-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00111-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00117-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00109-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00112-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00128-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00110-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00126-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00125-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +tokenizer.json filter=lfs diff=lfs merge=lfs -text +model-00121-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00129-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00127-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model.safetensors.index.json filter=lfs diff=lfs merge=lfs -text +model-00124-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00116-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +vocab.json filter=lfs diff=lfs merge=lfs -text +model-00120-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00118-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00084-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00103-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text +model-00123-of-00130.safetensors filter=lfs diff=lfs merge=lfs -text \ No newline at end of file diff --git a/README.md b/README.md index 1db111e..3f8fec9 100644 --- a/README.md +++ b/README.md @@ -1,48 +1,163 @@ --- -license: Apache License 2.0 -tags: [] - -#model-type: -##如 gpt、phi、llama、chatglm、baichuan 等 -#- gpt - -#domain: -##如 nlp、cv、audio、multi-modal -#- nlp - -#language: -##语言代码列表 https://help.aliyun.com/document_detail/215387.html?spm=a2c4g.11186623.0.0.9f8d7467kni6Aa -#- cn - -#metrics: -##如 CIDEr、Blue、ROUGE 等 -#- CIDEr - -#tags: -##各种自定义,包括 pretrained、fine-tuned、instruction-tuned、RL-tuned 等训练方法和其他 -#- pretrained - -#tools: -##如 vllm、fastchat、llamacpp、AdaSeq 等 -#- vllm +pipeline_tag: text-generation +license: apache-2.0 --- -### 当前模型的贡献者未提供更加详细的模型介绍。模型文件和权重,可浏览“模型文件”页面获取。 -#### 您可以通过如下git clone命令,或者ModelScope SDK来下载模型 -SDK下载 -```bash -#安装ModelScope -pip install modelscope -``` -```python -#SDK模型下载 -from modelscope import snapshot_download -model_dir = snapshot_download('MiniMax/MiniMax-M2') -``` -Git下载 -``` -#Git模型下载 -git clone https://www.modelscope.cn/MiniMax/MiniMax-M2.git -``` +
-

如果您是本模型的贡献者,我们邀请您根据模型贡献文档,及时完善模型卡片内容。

\ No newline at end of file + + + + + + + + + + + + + + + + + +
+
+ +
+ + Homepage + + + Chat + + + API + + + MCP + +
+
+ + Hugging Face + + + GitHub + + + ModelScope + + + License + + + WeChat + +
+ +# Meet MiniMax-M2 + +Today, we release (and open source?) MiniMax-M2, a **Mini** model built for **Max** coding & agentic workflows. +**MiniMax-M2** redefines efficiency for agents. It's a compact, fast, and cost-effective model built for elite performance in coding and agentic tasks, all while maintaining powerful general intelligence. With just 10 billion activated parameters, MiniMax-M2 provides the sophisticated, end-to-end tool use performance expected from today's leading models, but in a streamlined form factor that makes deployment and scaling easier than ever. + +

+ +
+

+ +--- + +## Highlights + +**Superior Intelligence**. According to benchmarks from Artificial Analysis, MiniMax-M2 demonstrates highly competitive general intelligence across mathematics, science, instruction following, coding, and agentic tool use. **Its composite score ranks #1 among open-source models globally**. + +**Advanced Coding**. Engineered for end-to-end developer workflows, MiniMax-M2 excels at multi-file edits, coding-run-fix loops, and test-validated repairs. Strong performance on Terminal-Bench and (Multi-)SWE-Bench–style tasks demonstrates practical effectiveness in terminals, IDEs, and CI across languages. + +**Agent Performance**. MiniMax-M2 plans and executes complex, long-horizon toolchains across shell, browser, retrieval, and code runners. In BrowseComp-style evaluations, it consistently locates hard-to-surface sources, maintains evidence traceable, and gracefully recovers from flaky steps. + +**Efficient Design**. With 10 billion activated parameters (200 billion in total), MiniMax-M2 delivers lower latency, lower cost, and higher throughput for interactive agents and batched sampling—perfectly aligned with the shift toward highly deployable models that still shine on coding and agentic tasks. + +--- + +## Coding & Agentic Benchmarks + +These comprehensive evaluations test real-world end-to-end coding and agentic tool use: editing real repos, executing commands, browsing the web, and delivering functional solutions. Performance on this suite correlates with day-to-day developer experience in terminals, IDEs, and CI. + +| **Benchmark** | **MiniMax-M2** | **Claude Sonnet 4** | **Claude Sonnet 4.5** | **Gemini 2.5 Pro** | **GPT-5 (thinking)** | **GLM-4.6** | **Kimi K2 0905** | **DeepSeek-V3.2** | +|-----------|------------|-----------------|-------------------|-----------------|------------------|---------|---------------|----------------| +| **SWE-bench Verified** | 69.4 | 72.7 * | 77.2 * | 63.8 * | 74.9 * | 68 * | 69.2 * | 67.8 * | +| **Multi-SWE-Bench** | 36.2 | 35.7 * | 44.3 | / | / | 30 | 33.5 | 30.6 | +| **SWE-bench Multilingual** | 56.5 | 56.9 * | 68 | / | / | 53.8 | 55.9 * | 57.9 * | +| **Terminal-Bench** | 46.3 | 36.4 * | 50 * | 25.3 * | 43.8 * | 40.5 * | 44.5 * | 37.7 * | +| **ArtifactsBench** | 66.8 | 57.3* | 61.5 | 57.7* | 73* | 59.8 | 54.2 | 55.8 | +| **BrowseComp** | 44 | 12.2 | 19.6 | 9.9 | 54.9* | 45.1* | 14.1 | 40.1* | +| **BrowseComp-zh** | 48.5 | 29.1 | 40.8 | 32.2 | 65 | 49.5 | 28.8 | 47.9* | +| **GAIA (text only)** | 75.7 | 68.3 | 71.2 | 60.2 | 76.4 | 71.9 | 60.2 | 63.5 | +| **xbench-DeepSearch** | 72 | 64.6 | 66 | 56 | 77.8 | 70 | 61 | 71 | +| **HLE (w/ tools)** | 31.8 | 20.3 | 24.5 | 28.4 * | 35.2 * | 30.4 * | 26.9 * | 27.2 * | +| **τ²-Bench** | 77.2 | 65.5* | 84.7* | 59.2 | 80.1* | 75.9* | 70.3 | 66.7 | +| **FinSearchComp-global** | 65.5 | 42 | 60.8 | 42.6* | 63.9* | 29.2 | 29.5* | 26.2 | +| **AgentCompany** | 36 | 37 | 41 | 39.3* | / | 35 | 30 | 34 | + +>Notes: Data points marked with an asterisk (*) are taken directly from the model's official tech report or blog. All other metrics were obtained using the evaluation methods described below. +>- SWE-bench Verified: We use the same scaffold as [R2E-Gym](https://arxiv.org/pdf/2504.07164) (Jain et al. 2025) on top of OpenHands to test with agents on SWE tasks. All scores are validated on our internal infrastructure with 128k context length, 100 max steps, and no test-time scaling. All git-related content is removed to ensure agent sees only the code at the issue point. +>- Multi-SWE-Bench & SWE-bench Multilingual: All scores are averaged across 8 runs using the [claude-code](https://github.com/anthropics/claude-code) CLI (300 max steps) as the evaluation scaffold. +>- Terminal-Bench: All scores are evaluated with the official claude-code from the original [Terminal-Bench](https://www.tbench.ai/) repository(commit 94bf692), averaged over 8 runs to report the mean pass rate. +>- ArtifactsBench: All Scores are computed by averaging three runs with the official implementation of [ArtifactsBench](https://github.com/Tencent-Hunyuan/ArtifactsBenchmark), using the stable Gemini-2.5-Pro as the judge model. +>- BrowseComp & BrowseComp-zh & GAIA (text only) & xbench-DeepSearch: All scores reported use the same agent framework as [WebExplorer](https://arxiv.org/pdf/2509.06501) (Liu et al. 2025), with minor tools description adjustment. We use the 103-sample text-only GAIA validation subset following [WebExplorer](https://arxiv.org/pdf/2509.06501) (Liu et al. 2025). +>- HLE (w/ tools): All reported scores are obtained using search tools and a Python tool. The search tools employ the same agent framework as [WebExplorer](https://arxiv.org/pdf/2509.06501) (Liu et al. 2025), and the Python tool runs in a Jupyter environment. +>- τ²-Bench: All scores reported use "extended thinking with tool use", and employ GPT-4.1 as the user simulator. +>- FinSearchComp-global: Official results are reported for GPT-5-Thinking, Gemini 2.5 Pro, and Kimi-K2. Other models are evaluated using the open-source [FinSearchComp](https://arxiv.org/pdf/2509.13160) (Hu et al. 2025) framework using both search and Python tools, launched simultaneously for consistency. +>- AgentCompany: All scores reported use OpenHands 0.42 agent framework. + +--- + +## Intelligence Benchmarks + +We align with **Artificial Analysis**, which aggregates challenging benchmarks using a consistent methodology to reflect a model’s broader **intelligence profile** across math, science, instruction following, coding, and agentic tool use. + +| **Metric (AA)** | **MiniMax-M2** | **Claude Sonnet 4** | **Claude Sonnet 4.5** | **Gemini 2.5 Pro** | **GPT-5 (thinking)** | **GLM-4.6** | **Kimi K2 0905** | **DeepSeek-V3.2** | +|-----------------|----------------|---------------------|------------------------|---------------------|----------------------|-------------|------------------|-------------------| +| AIME25 | 78 | 74 | 88 | 88 | 94 | 86 | 57 | 88 | +| MMLU-Pro | 82 | 84 | 88 | 86 | 87 | 83 | 82 | 85 | +| GPQA-Diamond | 78 | 78 | 83 | 84 | 85 | 78 | 77 | 80 | +| HLE (w/o tools) | 12.5 | 9.6 | 17.3 | 21.1 | 26.5 | 13.3 | 6.3 | 13.8 | +| LiveCodeBench (LCB) | 83 | 66 | 71 | 80 | 85 | 70 | 61 | 79 | +| SciCode | 36 | 40 | 45 | 43 | 43 | 38 | 31 | 38 | +| IFBench | 72 | 55 | 57 | 49 | 73 | 43 | 42 | 54 | +| AA-LCR | 61 | 65 | 66 | 66 | 76 | 54 | 52 | 69 | +| τ²-Bench-Telecom | 87 | 65 | 78 | 54 | 85 | 71 | 73 | 34 | +| Terminal-Bench-Hard | 24 | 30 | 33 | 25 | 31 | 23 | 23 | 29 | +| **AA Intelligence** | 61 | 57 | 63 | 60 | 69 | 56 | 50 | 57 | + +>AA: All scores of MiniMax-M2 aligned with Artificial Analysis Intelligence Benchmarking Methodology (https://artificialanalysis.ai/methodology/intelligence-benchmarking). All scores of other models reported from https://artificialanalysis.ai/. + +--- + +## Why activation size matters + +Keeping activations at **10B** compresses the critical path of agentic workflow - plan → act → verify - so loops feel responsive and cheaper to run: + +- **Faster feedback cycles** in compile-run-test and browse-retrieve-cite chains. + +- **More concurrent runs** on the same budget for regression suites and multi-seed explorations. + +- **Simpler capacity planning** with smaller per-request memory and steadier tail latency. + +In short: **10B activations = responsive agent loops + better unit economics**. + +## At a glance + +If you need frontier-style coding and agents without frontier-scale costs, **MiniMax-M2** hits the sweet spot: fast inference speeds, robust tool-use capabilities, and a deployment-friendly footprint. + +We look forward to your feedback and to collaborating with developers and researchers to bring the future of intelligent collaboration one step closer. + +## How to Use + +- **MiniMax Agent**: Our general agent product, built on MiniMax-M2, is now publicly available and free for a limited time: https://agent.minimax.io/ + +- **MiniMax Open Platform**: https://www.minimax.io/ + +- **MiniMax-M2 Model Weights**: The open-source model weights are available on Hugging Face: https://huggingface.co/MiniMaxAI/ diff --git a/chat_template.jinja b/chat_template.jinja new file mode 100644 index 0000000..8ed2385 --- /dev/null +++ b/chat_template.jinja @@ -0,0 +1,159 @@ +{# ----------‑‑‑ special token variables ‑‑‑---------- #} +{%- set toolcall_begin_token = '' -%} +{%- set toolcall_end_token = '' -%} +{#- Tool Rendering Functions ============================================== -#} +{%- macro render_tool_namespace(namespace_name, tool_list) -%} +{%- for tool in tool_list -%} +{{ tool.function | tojson(ensure_ascii=False) }} +{% endfor -%} +{%- endmacro -%} +{%- macro visible_text(content) -%} + {%- if content is string -%} + {{ content }} + {%- elif content is iterable and content is not mapping -%} + {%- for item in content -%} + {%- if item is mapping and item.type == 'text' -%} + {{- item.text }} + {%- elif item is string -%} + {{- item }} + {%- endif -%} + {%- endfor -%} + {%- else -%} + {{- content }} + {%- endif -%} +{%- endmacro -%} +{#- System Message Construction ============================================ -#} +{%- macro build_system_message(system_message) -%} + {%- if system_message and system_message.content -%} + {{- visible_text(system_message.content) }} + {%- else -%} + {%- if model_identity is not defined -%} + {%- set model_identity = "You are a helpful assistant." -%} + {%- endif -%} + {{- model_identity }} + {%- endif -%} + + {#- Handle current_date -#} + {%- if system_message and system_message.current_date -%} + {{- '\n' ~ 'Current date: ' + system_message.current_date }} + {%- endif -%} + {#- Handle current_location -#} + {%- if system_message and system_message.current_location -%} + {{- '\n' ~ 'Current location: ' + system_message.current_location }} + {%- endif -%} +{%- endmacro -%} +{#- Main Template Logic ================================================= -#} +{#- Extract system message (only first message if it's system) -#} +{%- set system_message = none -%} +{%- set conversation_messages = messages -%} +{%- if messages and messages[0].role == "system" -%} + {%- set system_message = messages[0] -%} + {%- set conversation_messages = messages[1:] -%} +{%- endif -%} +{#- Get the last user message turn, for interleved thinking -#} +{%- set ns = namespace(last_user_index=-1) %} +{% for m in conversation_messages %} + {%- if m.role == 'user' %} + {% set ns.last_user_index = loop.index0 -%} + {%- endif %} +{%- endfor %} +{#- Render system message -#} +{{- ']~!b[' ~ ']~b]system' ~ '\n' }} +{{- build_system_message(system_message) }} +{#- Render tools if available -#} +{%- if tools -%} + {{- '\n\n' ~ '# Tools' ~ '\n' ~ 'You may call one or more tools to assist with the user query.\nHere are the tools available in JSONSchema format:' ~ '\n' }} + {{- '\n' ~ '' ~ '\n' }} + {{- render_tool_namespace("functions", tools) }} + {{- '' ~ '\n\n' }} +{{- 'When making tool calls, use XML format to invoke tools and pass parameters:' ~ '\n' }} +{{- '\n' ~ toolcall_begin_token }} + +param-value-1 +param-value-2 +... + +{{- '\n' ~ toolcall_end_token }} +{%- endif -%} +{{- '[e~[\n' }} + +{#- Render messages -#} +{%- set last_tool_call = namespace(name=none) -%} +{%- for message in conversation_messages -%} + {%- if message.role == 'assistant' -%} + {#- Only render reasoning_content if no user message follows -#} + {{- ']~b]ai' ~ '\n' }} + + {%- set reasoning_content = '' %} + {%- set content = visible_text(message.content) %} + {%- if message.reasoning_content is string %} + {%- set reasoning_content = message.reasoning_content %} + {%- else %} + {%- if '' in content %} + {%- set reasoning_content = content.split('')[0].strip('\n').split('')[-1].strip('\n') %} + {%- set content = content.split('')[-1].strip('\n') %} + {%- endif %} + {%- endif %} + {%- if reasoning_content and loop.index0 > ns.last_user_index -%} + {{- '' ~ '\n' ~ reasoning_content ~ '\n' ~ '' ~ '\n\n' }} + {%- endif -%} + {%- if content -%} + {{- content }} + {%- endif -%} + {%- if message.tool_calls -%} + {{- '\n' ~ toolcall_begin_token ~ '\n' }} + + {%- for tool_call in message.tool_calls -%} + {%- if tool_call.function %} + {%- set tool_call = tool_call.function %} + {%- endif %} + {{- '' }} + {% set _args = tool_call.arguments %} + {%- for k, v in _args.items() %} + {{- '' }} + {{- v | tojson(ensure_ascii=False) if v is not string else v }} + {{- '' }} + {% endfor %} + {{- '' ~ '\n' }} + {%- endfor -%} + + {{- toolcall_end_token}} + {%- set last_tool_call.name = message.tool_calls[-1].name -%} + {%- else -%} + {%- set last_tool_call.name = none -%} + {%- endif -%} + {{- '[e~[' ~ '\n' }} + + {%- elif message.role == 'tool' -%} + {%- if last_tool_call.name is none -%} + {{- raise_exception("Message has tool role, but there was no previous assistant message with a tool call!") }} + {%- endif -%} + {%- if loop.first or (conversation_messages[loop.index0 - 1].role != 'tool') -%} + {{- ']~b]tool' }} + {%- endif -%} + {%- if message.content is string -%} + {{- '\n' }} + {{- message.content }} + {{- '' }} + {%- else -%} + {%- for tr in message.content -%} + {{- '\n' }} + {{- tr.output if tr.output is defined else (tr.text if tr.type == 'text' and tr.text is defined else tr) }} + {{- '\n' }} + {%- endfor -%} + {%- endif -%} + {%- if loop.last or (conversation_messages[loop.index0 + 1].role != 'tool') -%} + {{- '[e~[\n' -}} + {%- endif -%} + + {%- elif message.role == 'user' -%} + {{- ']~b]user' ~ '\n' }} + {{- visible_text(message.content) }} + {{- '[e~[' ~ '\n' }} + {%- endif -%} +{%- endfor -%} + +{#- Generation prompt -#} +{%- if add_generation_prompt -%} +{{- ']~b]ai' ~ '\n' ~ '' ~ '\n' }} +{%- endif -%} diff --git a/config.json b/config.json new file mode 100644 index 0000000..622a352 --- /dev/null +++ b/config.json @@ -0,0 +1,117 @@ +{ + "architectures": [ + "MiniMaxM2ForCausalLM" + ], + "attention_dropout": 0.0, + "attn_type_list": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ], + "bos_token_id": null, + "eos_token_id": null, + "head_dim": 128, + "hidden_act": "silu", + "hidden_size": 3072, + "initializer_range": 0.02, + "intermediate_size": 1536, + "layernorm_full_attention_beta": 1.0, + "layernorm_linear_attention_beta": 1.0, + "layernorm_mlp_beta": 1.0, + "max_position_embeddings": 196608, + "mlp_intermediate_size": 8192, + "model_type": "mixtral", + "mtp_transformer_layers": 1, + "num_attention_heads": 48, + "num_experts_per_tok": 8, + "num_hidden_layers": 62, + "num_key_value_heads": 8, + "num_local_experts": 256, + "num_mtp_modules": 3, + "output_router_logits": false, + "qk_norm_type": "per_layer", + "quantization_config": { + "activation_scheme": "dynamic", + "fmt": "float8_e4m3fn", + "quant_method": "fp8", + "weight_block_size": [ + 128, + 128 + ] + }, + "rms_norm_eps": 1e-06, + "rope_theta": 5000000, + "rotary_dim": 64, + "router_aux_loss_coef": 0.001, + "router_jitter_noise": 0.0, + "scoring_func": "sigmoid", + "shared_intermediate_size": 0, + "shared_moe_mode": "sigmoid", + "sliding_window": null, + "tie_word_embeddings": false, + "transformers_version": "4.46.1", + "use_cache": true, + "use_mtp": true, + "use_qk_norm": true, + "use_routing_bias": true, + "vocab_size": 200064 +} diff --git a/configuration.json b/configuration.json new file mode 100644 index 0000000..bbeeda1 --- /dev/null +++ b/configuration.json @@ -0,0 +1 @@ +{"framework": "pytorch", "task": "text-generation", "allow_remote": true} \ No newline at end of file diff --git a/docs/function_call_guide.md b/docs/function_call_guide.md new file mode 100644 index 0000000..ffed775 --- /dev/null +++ b/docs/function_call_guide.md @@ -0,0 +1,482 @@ +# MiniMax-M2 Function Call Guide + +## Introduction + +The MiniMax-M2 model supports function calling capabilities, enabling the model to identify when external functions need to be called and output function call parameters in a structured format. This document provides detailed instructions on how to use the function calling features of MiniMax-M2. + +## Basic Example + +The following Python script implements a weather query function call example based on the OpenAI SDK: + +```python +from openai import OpenAI +import json + +client = OpenAI(base_url="http://localhost:8000/v1", api_key="dummy") + +def get_weather(location: str, unit: str): + return f"Getting the weather for {location} in {unit}..." + +tool_functions = {"get_weather": get_weather} + +tools = [{ + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather in a given location", + "parameters": { + "type": "object", + "properties": { + "location": {"type": "string", "description": "City and state, e.g., 'San Francisco, CA'"}, + "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]} + }, + "required": ["location", "unit"] + } + } +}] + +response = client.chat.completions.create( + model=client.models.list().data[0].id, + messages=[{"role": "user", "content": "What's the weather like in San Francisco? use celsius."}], + tools=tools, + tool_choice="auto" +) + +print(response) + +tool_call = response.choices[0].message.tool_calls[0].function +print(f"Function called: {tool_call.name}") +print(f"Arguments: {tool_call.arguments}") +print(f"Result: {get_weather(**json.loads(tool_call.arguments))}") +``` + +**Output Example:** +``` +Function called: get_weather +Arguments: {"location": "San Francisco, CA", "unit": "celsius"} +Result: Getting the weather for San Francisco, CA in celsius... +``` + +## Manually Parsing Model Output + +If you cannot use the built-in parser of inference engines that support MiniMax-M2, or need to use other inference frameworks (such as transformers, TGI, etc.), you can manually parse the model's raw output using the following method. This approach requires you to parse the XML tag format of the model output yourself. + +### Example Using Transformers + +Here is a complete example using the transformers library: + +```python +from transformers import AutoTokenizer + +def get_default_tools(): + return [ + { + "name": "get_current_weather", + "description": "Get the latest weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "A certain city, such as Beijing, Shanghai" + } + }, + } + "required": ["location"], + "type": "object" + } + ] + +# Load model and tokenizer +tokenizer = AutoTokenizer.from_pretrained(model_id) +prompt = "What's the weather like in Shanghai today?" +messages = [ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": prompt}, +] + +# Enable function calling tools +tools = get_default_tools() + +# Apply chat template and include tool definitions +text = tokenizer.apply_chat_template( + messages, + tokenize=False, + add_generation_prompt=True, + tools=tools +) + +# Send request (using any inference service) +import requests +payload = { + "model": "MiniMaxAI/MiniMax-M2", + "prompt": text, + "max_tokens": 4096 +} +response = requests.post( + "http://localhost:8000/v1/completions", + headers={"Content-Type": "application/json"}, + json=payload, + stream=False, +) + +# Model output needs manual parsing +raw_output = response.json()["choices"][0]["text"] +print("Raw output:", raw_output) + +# Use the parsing function below to process the output +function_calls = parse_tool_calls(raw_output, tools) +``` + +## 🛠️ Function Call Definition + +### Function Structure + +Function calls need to define the `tools` field in the request body. Each function consists of the following parts: + +```json +{ + "tools": [ + { + "name": "search_web", + "description": "Search function.", + "parameters": { + "properties": { + "query_list": { + "description": "Keywords for search, list should contain 1 element.", + "items": { "type": "string" }, + "type": "array" + }, + "query_tag": { + "description": "Category of query", + "items": { "type": "string" }, + "type": "array" + } + }, + "required": [ "query_list", "query_tag" ], + "type": "object" + } + } + ] +} +``` + +**Field Descriptions:** +- `name`: Function name +- `description`: Function description +- `parameters`: Function parameter definition + - `properties`: Parameter property definition, where key is the parameter name and value contains detailed parameter description + - `required`: List of required parameters + - `type`: Parameter type (usually "object") + +### Internal Processing Format + +When processing within the MiniMax-M2 model, function definitions are converted to a special format and concatenated to the input text. Here is a complete example: + +``` +]~!b[]~b]system +You are a helpful assistant. + +# Tools +You may call one or more tools to assist with the user query. +Here are the tools available in JSONSchema format: + + +{"name": "search_web", "description": "Search function.", "parameters": {"type": "object", "properties": {"query_list": {"type": "array", "items": {"type": "string"}, "description": "Keywords for search, list should contain 1 element."}, "query_tag": {"type": "array", "items": {"type": "string"}, "description": "Category of query"}}, "required": ["query_list", "query_tag"]}} + + +When making tool calls, use XML format to invoke tools and pass parameters: + + + +param-value-1 +param-value-2 +... + +[e~[ +]~b]user +When were the latest announcements from OpenAI and Gemini?[e~[ +]~b]ai + +``` + +**Format Description:** + +- `]~!b[]~b]system`: System message start marker +- `[e~[`: Message end marker +- `]~b]user`: User message start marker +- `]~b]ai`: Assistant message start marker +- `]~b]tool`: Tool result message start marker +- `...`: Tool definition area, each tool is wrapped with `` tag, content is JSON Schema +- `...`: Tool call area +- ``: Thinking process marker during generation (optional) + +### Model Output Format + +MiniMax-M2 uses structured XML tag format: + +```xml + + +["technology", "events"] +["\"OpenAI\" \"latest\" \"release\""] + + +["technology", "events"] +["\"Gemini\" \"latest\" \"release\""] + + +``` + +Each function call uses the `` tag, and parameters use the `` tag wrapper. + +## Manually Parsing Function Call Results + +### Parsing Function Calls + +MiniMax-M2 uses structured XML tags, which require a different parsing approach. The core function is as follows: + +```python +import re +import json +from typing import Any, Optional, List, Dict + + +def extract_name(name_str: str) -> str: + """Extract name from quoted string""" + name_str = name_str.strip() + if name_str.startswith('"') and name_str.endswith('"'): + return name_str[1:-1] + elif name_str.startswith("'") and name_str.endswith("'"): + return name_str[1:-1] + return name_str + + +def convert_param_value(value: str, param_type: str) -> Any: + """Convert parameter value based on parameter type""" + if value.lower() == "null": + return None + + param_type = param_type.lower() + + if param_type in ["string", "str", "text"]: + return value + elif param_type in ["integer", "int"]: + try: + return int(value) + except (ValueError, TypeError): + return value + elif param_type in ["number", "float"]: + try: + val = float(value) + return val if val != int(val) else int(val) + except (ValueError, TypeError): + return value + elif param_type in ["boolean", "bool"]: + return value.lower() in ["true", "1"] + elif param_type in ["object", "array"]: + try: + return json.loads(value) + except json.JSONDecodeError: + return value + else: + # Try JSON parsing, return string if failed + try: + return json.loads(value) + except json.JSONDecodeError: + return value + + +def parse_tool_calls(model_output: str, tools: Optional[List[Dict]] = None) -> List[Dict]: + """ + Extract all tool calls from model output + + Args: + model_output: Complete output text from the model + tools: Tool definition list for getting parameter type information, format can be: + - [{"name": "...", "parameters": {...}}] + - [{"type": "function", "function": {"name": "...", "parameters": {...}}}] + + Returns: + Parsed tool call list, each element contains name and arguments fields + + Example: + >>> tools = [{ + ... "name": "get_weather", + ... "parameters": { + ... "type": "object", + ... "properties": { + ... "location": {"type": "string"}, + ... "unit": {"type": "string"} + ... } + ... } + ... }] + >>> output = ''' + ... + ... San Francisco + ... celsius + ... + ... ''' + >>> result = parse_tool_calls(output, tools) + >>> print(result) + [{'name': 'get_weather', 'arguments': {'location': 'San Francisco', 'unit': 'celsius'}}] + """ + # Quick check if tool call marker is present + if "" not in model_output: + return [] + + tool_calls = [] + + try: + # Match all blocks + tool_call_regex = re.compile(r"(.*?)", re.DOTALL) + invoke_regex = re.compile(r"", re.DOTALL) + parameter_regex = re.compile(r"", re.DOTALL) + + # Iterate through all tool_call blocks + for tool_call_match in tool_call_regex.findall(model_output): + # Iterate through all invokes in this block + for invoke_match in invoke_regex.findall(tool_call_match): + # Extract function name + name_match = re.search(r'^([^>]+)', invoke_match) + if not name_match: + continue + + function_name = extract_name(name_match.group(1)) + + # Get parameter configuration + param_config = {} + if tools: + for tool in tools: + tool_name = tool.get("name") or tool.get("function", {}).get("name") + if tool_name == function_name: + params = tool.get("parameters") or tool.get("function", {}).get("parameters") + if isinstance(params, dict) and "properties" in params: + param_config = params["properties"] + break + + # Extract parameters + param_dict = {} + for match in parameter_regex.findall(invoke_match): + param_match = re.search(r'^([^>]+)>(.*)', match, re.DOTALL) + if param_match: + param_name = extract_name(param_match.group(1)) + param_value = param_match.group(2).strip() + + # Remove leading and trailing newlines + if param_value.startswith('\n'): + param_value = param_value[1:] + if param_value.endswith('\n'): + param_value = param_value[:-1] + + # Get parameter type and convert + param_type = "string" + if param_name in param_config: + if isinstance(param_config[param_name], dict) and "type" in param_config[param_name]: + param_type = param_config[param_name]["type"] + + param_dict[param_name] = convert_param_value(param_value, param_type) + + tool_calls.append({ + "name": function_name, + "arguments": param_dict + }) + + except Exception as e: + print(f"Failed to parse tool calls: {e}") + return [] + + return tool_calls +``` + +**Usage Example:** + +```python +# Define tools +tools = [ + { + "name": "get_weather", + "parameters": { + "type": "object", + "properties": { + "location": {"type": "string"}, + "unit": {"type": "string"} + }, + "required": ["location", "unit"] + } + } +] + +# Model output +model_output = """Let me help you query the weather. + + +San Francisco +celsius + +""" + +# Parse tool calls +tool_calls = parse_tool_calls(model_output, tools) + +# Output results +for call in tool_calls: + print(f"Function called: {call['name']}") + print(f"Arguments: {call['arguments']}") + # Output: Function called: get_weather + # Arguments: {'location': 'San Francisco', 'unit': 'celsius'} +``` + +### Executing Function Calls + +After parsing is complete, you can execute the corresponding function and construct the return result: + +```python +def execute_function_call(function_name: str, arguments: dict): + """Execute function call and return result""" + if function_name == "get_weather": + location = arguments.get("location", "Unknown location") + unit = arguments.get("unit", "celsius") + # Build function execution result + return { + "role": "tool", + "content": [ + { + "name": function_name, + "type": "text", + "text": json.dumps({ + "location": location, + "temperature": "25", + "unit": unit, + "weather": "Sunny" + }, ensure_ascii=False) + } + ] + } + elif function_name == "search_web": + query_list = arguments.get("query_list", []) + query_tag = arguments.get("query_tag", []) + # Simulate search results + return { + "role": "tool", + "content": [ + { + "name": function_name, + "type": "text", + "text": f"Search keywords: {query_list}, Category: {query_tag}\nSearch results: Relevant information found" + } + ] + } + + return None +``` + +### Returning Function Execution Results to the Model + +After successfully parsing function calls, you should add the function execution results to the conversation history so that the model can access and utilize this information in subsequent interactions. Refer to chat_template.jinja for concatenation format. + +## References + +- [MiniMax-M2 Model Repository](https://github.com/MiniMax-AI/MiniMax-M2) +- [vLLM Project Homepage](https://github.com/vllm-project/vllm) +- [OpenAI Python SDK](https://github.com/openai/openai-python) diff --git a/docs/function_call_guide_cn.md b/docs/function_call_guide_cn.md new file mode 100644 index 0000000..db8d799 --- /dev/null +++ b/docs/function_call_guide_cn.md @@ -0,0 +1,482 @@ +# MiniMax-M2 函数调用(Function Call)功能指南 + +## 简介 + +MiniMax-M2 模型支持函数调用功能,使模型能够识别何时需要调用外部函数,并以结构化格式输出函数调用参数。本文档详细介绍了如何使用 MiniMax-M2 的函数调用功能。 + +## 基础示例 + +以下 Python 脚本基于 OpenAI SDK 实现了一个天气查询函数的调用示例: + +```python +from openai import OpenAI +import json + +client = OpenAI(base_url="http://localhost:8000/v1", api_key="dummy") + +def get_weather(location: str, unit: str): + return f"Getting the weather for {location} in {unit}..." + +tool_functions = {"get_weather": get_weather} + +tools = [{ + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather in a given location", + "parameters": { + "type": "object", + "properties": { + "location": {"type": "string", "description": "City and state, e.g., 'San Francisco, CA'"}, + "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]} + }, + "required": ["location", "unit"] + } + } +}] + +response = client.chat.completions.create( + model=client.models.list().data[0].id, + messages=[{"role": "user", "content": "What's the weather like in San Francisco? use celsius."}], + tools=tools, + tool_choice="auto" +) + +print(response) + +tool_call = response.choices[0].message.tool_calls[0].function +print(f"Function called: {tool_call.name}") +print(f"Arguments: {tool_call.arguments}") +print(f"Result: {get_weather(**json.loads(tool_call.arguments))}") +``` + +**输出示例:** +``` +Function called: get_weather +Arguments: {"location": "San Francisco, CA", "unit": "celsius"} +Result: Getting the weather for San Francisco, CA in celsius... +``` + +## 手动解析模型输出 + +如果您无法使用已支持 MiniMax-M2 的推理引擎的内置解析器,或者需要使用其他推理框架(如 transformers、TGI 等),可以使用以下方法手动解析模型的原始输出。这种方法需要您自己解析模型输出的 XML 标签格式。 + +### 使用 Transformers 的示例 + +以下是使用 transformers 库的完整示例: + +```python +from transformers import AutoTokenizer + +def get_default_tools(): + return [ + { + "name": "get_current_weather", + "description": "Get the latest weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "A certain city, such as Beijing, Shanghai" + } + }, + } + "required": ["location"], + "type": "object" + } + ] + +# 加载模型和分词器 +tokenizer = AutoTokenizer.from_pretrained(model_id) +prompt = "What's the weather like in Shanghai today?" +messages = [ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": prompt}, +] + +# 启用函数调用工具 +tools = get_default_tools() + +# 应用聊天模板,并加入工具定义 +text = tokenizer.apply_chat_template( + messages, + tokenize=False, + add_generation_prompt=True, + tools=tools +) + +# 发送请求(这里使用任何推理服务) +import requests +payload = { + "model": "MiniMaxAI/MiniMax-M2", + "prompt": text, + "max_tokens": 4096 +} +response = requests.post( + "http://localhost:8000/v1/completions", + headers={"Content-Type": "application/json"}, + json=payload, + stream=False, +) + +# 模型输出需要手动解析 +raw_output = response.json()["choices"][0]["text"] +print("原始输出:", raw_output) + +# 使用下面的解析函数处理输出 +function_calls = parse_tool_calls(raw_output, tools) +``` + +## 🛠️ 函数调用的定义 + +### 函数结构体 + +函数调用需要在请求体中定义 `tools` 字段,每个函数由以下部分组成: + +```json +{ + "tools": [ + { + "name": "search_web", + "description": "搜索函数。", + "parameters": { + "properties": { + "query_list": { + "description": "进行搜索的关键词,列表元素个数为1。", + "items": { "type": "string" }, + "type": "array" + }, + "query_tag": { + "description": "query的分类", + "items": { "type": "string" }, + "type": "array" + } + }, + "required": [ "query_list", "query_tag" ], + "type": "object" + } + } + ] +} +``` + +**字段说明:** +- `name`: 函数名称 +- `description`: 函数功能描述 +- `parameters`: 函数参数定义 + - `properties`: 参数属性定义,key 是参数名,value 包含参数的详细描述 + - `required`: 必填参数列表 + - `type`: 参数类型(通常为 "object") + +### 模型内部处理格式 + +在 MiniMax-M2 模型内部处理时,函数定义会被转换为特殊格式并拼接到输入文本中。以下是一个完整的示例: + +``` +]~!b[]~b]system +You are a helpful assistant. + +# Tools +You may call one or more tools to assist with the user query. +Here are the tools available in JSONSchema format: + + +{"name": "search_web", "description": "搜索函数。", "parameters": {"type": "object", "properties": {"query_list": {"type": "array", "items": {"type": "string"}, "description": "进行搜索的关键词,列表元素个数为1。"}, "query_tag": {"type": "array", "items": {"type": "string"}, "description": "query的分类"}}, "required": ["query_list", "query_tag"]}} + + +When making tool calls, use XML format to invoke tools and pass parameters: + + + +param-value-1 +param-value-2 +... + +[e~[ +]~b]user +OpenAI 和 Gemini 的最近一次发布会都是什么时候?[e~[ +]~b]ai + +``` + +**格式说明:** + +- `]~!b[]~b]system`: System 消息开始标记 +- `[e~[`: 消息结束标记 +- `]~b]user`: User 消息开始标记 +- `]~b]ai`: Assistant 消息开始标记 +- `]~b]tool`: Tool 结果消息开始标记 +- `...`: 工具定义区域,每个工具用 `` 标签包裹,内容为 JSON Schema +- `...`: 工具调用区域 +- ``: 生成时的思考过程标记(可选) + +### 模型输出格式 + +MiniMax-M2使用结构化的 XML 标签格式: + +```xml + + +["technology", "events"] +["\"OpenAI\" \"latest\" \"release\""] + + +["technology", "events"] +["\"Gemini\" \"latest\" \"release\""] + + +``` + +每个函数调用使用 `` 标签,参数使用 `` 标签包裹。 + +## 手动解析函数调用结果 + +### 解析函数调用 + +MiniMax-M2使用结构化的 XML 标签,需要不同的解析方式。核心函数如下: + +```python +import re +import json +from typing import Any, Optional, List, Dict + + +def extract_name(name_str: str) -> str: + """从引号包裹的字符串中提取名称""" + name_str = name_str.strip() + if name_str.startswith('"') and name_str.endswith('"'): + return name_str[1:-1] + elif name_str.startswith("'") and name_str.endswith("'"): + return name_str[1:-1] + return name_str + + +def convert_param_value(value: str, param_type: str) -> Any: + """根据参数类型转换参数值""" + if value.lower() == "null": + return None + + param_type = param_type.lower() + + if param_type in ["string", "str", "text"]: + return value + elif param_type in ["integer", "int"]: + try: + return int(value) + except (ValueError, TypeError): + return value + elif param_type in ["number", "float"]: + try: + val = float(value) + return val if val != int(val) else int(val) + except (ValueError, TypeError): + return value + elif param_type in ["boolean", "bool"]: + return value.lower() in ["true", "1"] + elif param_type in ["object", "array"]: + try: + return json.loads(value) + except json.JSONDecodeError: + return value + else: + # 尝试 JSON 解析,失败则返回字符串 + try: + return json.loads(value) + except json.JSONDecodeError: + return value + + +def parse_tool_calls(model_output: str, tools: Optional[List[Dict]] = None) -> List[Dict]: + """ + 从模型输出中提取所有工具调用 + + Args: + model_output: 模型的完整输出文本 + tools: 工具定义列表,用于获取参数类型信息,格式可以是: + - [{"name": "...", "parameters": {...}}] + - [{"type": "function", "function": {"name": "...", "parameters": {...}}}] + + Returns: + 解析后的工具调用列表,每个元素包含 name 和 arguments 字段 + + Example: + >>> tools = [{ + ... "name": "get_weather", + ... "parameters": { + ... "type": "object", + ... "properties": { + ... "location": {"type": "string"}, + ... "unit": {"type": "string"} + ... } + ... } + ... }] + >>> output = ''' + ... + ... San Francisco + ... celsius + ... + ... ''' + >>> result = parse_tool_calls(output, tools) + >>> print(result) + [{'name': 'get_weather', 'arguments': {'location': 'San Francisco', 'unit': 'celsius'}}] + """ + # 快速检查是否包含工具调用标记 + if "" not in model_output: + return [] + + tool_calls = [] + + try: + # 匹配所有 块 + tool_call_regex = re.compile(r"(.*?)", re.DOTALL) + invoke_regex = re.compile(r"", re.DOTALL) + parameter_regex = re.compile(r"", re.DOTALL) + + # 遍历所有 tool_call 块 + for tool_call_match in tool_call_regex.findall(model_output): + # 遍历该块中的所有 invoke + for invoke_match in invoke_regex.findall(tool_call_match): + # 提取函数名 + name_match = re.search(r'^([^>]+)', invoke_match) + if not name_match: + continue + + function_name = extract_name(name_match.group(1)) + + # 获取参数配置 + param_config = {} + if tools: + for tool in tools: + tool_name = tool.get("name") or tool.get("function", {}).get("name") + if tool_name == function_name: + params = tool.get("parameters") or tool.get("function", {}).get("parameters") + if isinstance(params, dict) and "properties" in params: + param_config = params["properties"] + break + + # 提取参数 + param_dict = {} + for match in parameter_regex.findall(invoke_match): + param_match = re.search(r'^([^>]+)>(.*)', match, re.DOTALL) + if param_match: + param_name = extract_name(param_match.group(1)) + param_value = param_match.group(2).strip() + + # 去除首尾的换行符 + if param_value.startswith('\n'): + param_value = param_value[1:] + if param_value.endswith('\n'): + param_value = param_value[:-1] + + # 获取参数类型并转换 + param_type = "string" + if param_name in param_config: + if isinstance(param_config[param_name], dict) and "type" in param_config[param_name]: + param_type = param_config[param_name]["type"] + + param_dict[param_name] = convert_param_value(param_value, param_type) + + tool_calls.append({ + "name": function_name, + "arguments": param_dict + }) + + except Exception as e: + print(f"解析工具调用失败: {e}") + return [] + + return tool_calls +``` + +**使用示例:** + +```python +# 定义工具 +tools = [ + { + "name": "get_weather", + "parameters": { + "type": "object", + "properties": { + "location": {"type": "string"}, + "unit": {"type": "string"} + }, + "required": ["location", "unit"] + } + } +] + +# 模型输出 +model_output = """我来帮你查询天气。 + + +San Francisco +celsius + +""" + +# 解析工具调用 +tool_calls = parse_tool_calls(model_output, tools) + +# 输出结果 +for call in tool_calls: + print(f"调用函数: {call['name']}") + print(f"参数: {call['arguments']}") + # 输出: 调用函数: get_weather + # 参数: {'location': 'San Francisco', 'unit': 'celsius'} +``` + +### 执行函数调用 + +解析完成后,您可以执行对应的函数并构建返回结果: + +```python +def execute_function_call(function_name: str, arguments: dict): + """执行函数调用并返回结果""" + if function_name == "get_weather": + location = arguments.get("location", "未知位置") + unit = arguments.get("unit", "celsius") + # 构建函数执行结果 + return { + "role": "tool", + "content": [ + { + "name": function_name, + "type": "text", + "text": json.dumps({ + "location": location, + "temperature": "25", + "unit": unit, + "weather": "晴朗" + }, ensure_ascii=False) + } + ] + } + elif function_name == "search_web": + query_list = arguments.get("query_list", []) + query_tag = arguments.get("query_tag", []) + # 模拟搜索结果 + return { + "role": "tool", + "content": [ + { + "name": function_name, + "type": "text", + "text": f"搜索关键词: {query_list}, 分类: {query_tag}\n搜索结果: 相关信息已找到" + } + ] + } + + return None +``` + +### 将函数执行结果返回给模型 + +成功解析函数调用后,您应将函数执行结果添加到对话历史中,以便模型在后续交互中能够访问和利用这些信息,拼接格式参考chat_template.jinja + +## 参考资料 + +- [MiniMax-M2 模型仓库](https://github.com/MiniMax-AI/MiniMax-M2) +- [vLLM 项目主页](https://github.com/vllm-project/vllm) +- [OpenAI Python SDK](https://github.com/openai/openai-python) \ No newline at end of file diff --git a/docs/vllm_deploy_guide.md b/docs/vllm_deploy_guide.md new file mode 100644 index 0000000..a6d3cf6 --- /dev/null +++ b/docs/vllm_deploy_guide.md @@ -0,0 +1,88 @@ +# MiniMax M2 Model vLLM Deployment Guide + +We recommend using [vLLM](https://docs.vllm.ai/en/stable/) to deploy the [MiniMax-M2](https://huggingface.co/MiniMaxAI/MiniMax-M2) model. vLLM is a high-performance inference engine with excellent serving throughput, efficient and intelligent memory management, powerful batch request processing capabilities, and deeply optimized underlying performance. We recommend reviewing vLLM's official documentation to check hardware compatibility before deployment. + +## System Requirements + +- OS: Linux + +- Python: 3.9 - 3.12 + +- GPU: + + - compute capability 7.0 or higher + + - Memory requirements: 220 GB for weights, 60 GB per 1M context tokens + +The following are recommended configurations; actual requirements should be adjusted based on your use case: + +- 4x 96GB GPUs: Supports context input of up to 400K tokens. + +- 8x 144GB GPUs: Supports context input of up to 3M tokens. + +## Deployment with Python + +It is recommended to use a virtual environment (such as venv, conda, or uv) to avoid dependency conflicts. We recommend installing vLLM in a fresh Python environment: + +```bash +# Not yet released, please install nightly build +uv pip install -U vllm \ + --torch-backend=auto \ + --extra-index-url https://wheels.vllm.ai/nightly +# If released, install using uv +uv pip install "vllm" --torch-backend=auto +``` + +Run the following command to start the vLLM server. vLLM will automatically download and cache the MiniMax-M2 model from Hugging Face. + +4-GPU deployment command: + +```bash +SAFETENSORS_FAST_GPU=1 VLLM_USE_V1=0 vllm serve \ + --model MiniMaxAI/MiniMax-M2 \ + --trust-remote-code \ + --enable-expert-parallel --tensor-parallel-size 4 \ + --enable-auto-tool-choice --tool-call-parser minimax_m2 \ + --reasoning-parser minimax_m2 +``` + +## Testing Deployment + +After startup, you can test the vLLM OpenAI-compatible API with the following command: + +```bash +curl http://localhost:8000/v1/chat/completions \ + -H "Content-Type: application/json" \ + -d '{ + "model": "MiniMaxAI/MiniMax-M2", + "messages": [ + {"role": "system", "content": [{"type": "text", "text": "You are a helpful assistant."}]}, + {"role": "user", "content": [{"type": "text", "text": "Who won the world series in 2020?"}]} + ] + }' +``` + +## Common Issues + +### Hugging Face Network Issues + +If you encounter network issues, you can set up a proxy before pulling the model. + +```bash +export HF_ENDPOINT=https://hf-mirror.com +``` + +### MiniMax-M2 model is not currently supported + +This vLLM version is outdated. Please upgrade to the latest version. + +## Getting Support + +If you encounter any issues while deploying the MiniMax model: + +- Contact our technical support team through official channels such as email at api@minimaxi.com + +- Submit an issue on our [GitHub](https://github.com/MiniMax-AI) repository + +We continuously optimize the deployment experience for our models. Feedback is welcome! + diff --git a/docs/vllm_deploy_guide_cn.md b/docs/vllm_deploy_guide_cn.md new file mode 100644 index 0000000..f41a06d --- /dev/null +++ b/docs/vllm_deploy_guide_cn.md @@ -0,0 +1,85 @@ +# MiniMax M2 模型 vLLM 部署指南 + +我们推荐使用 [vLLM](https://docs.vllm.ai/en/stable/) 来部署 [MiniMax-M2](https://huggingface.co/MiniMaxAI/MiniMax-M2) 模型。vLLM 是一个高性能的推理引擎,其具有卓越的服务吞吐、高效智能的内存管理机制、强大的批量请求处理能力、深度优化的底层性能等特性。我们建议在部署之前查看 vLLM 的官方文档以检查硬件兼容性。 + +## 环境要求 + +- OS:Linux + +- Python:3.9 - 3.12 + +- GPU: + + - compute capability 7.0 or higher + + - 显存需求:权重需要 220 GB,每 1M 上下文 token 需要 60 GB + +以下为推荐配置,实际需求请根据业务场景调整: + +- 96G x4 GPU:支持 40 万 token 的上下文输入。 + +- 144G x8 GPU:支持长达 300 万 token 的上下文输入。 + +## 使用 Python 部署 + +建议使用虚拟环境(如 venv、conda、uv)以避免依赖冲突。建议在全新的 Python 环境中安装 vLLM: +```bash +# 尚未 release,请安装 nightly 构建 +uv pip install -U vllm \ + --torch-backend=auto \ + --extra-index-url https://wheels.vllm.ai/nightly +# 如果 release,使用 uv 安装 +uv pip install "vllm" --torch-backend=auto +``` + +运行如下命令启动 vLLM 服务器,vLLM 会自动从 Huggingface 下载并缓存 MiniMax-M2 模型。 + +4 卡部署命令: + +```bash +SAFETENSORS_FAST_GPU=1 VLLM_USE_V1=0 vllm serve \ + --model MiniMaxAI/MiniMax-M2 \ + --trust-remote-code \ + --enable-expert-parallel --tensor-parallel-size 4 \ + --enable-auto-tool-choice --tool-call-parser minimax_m2 \ + --reasoning-parser minimax_m2 +``` + +## 测试部署 + +启动后,可以通过如下命令测试 vLLM OpenAI 兼容接口: + +```bash +curl http://localhost:8000/v1/chat/completions \ + -H "Content-Type: application/json" \ + -d '{ + "model": "MiniMaxAI/MiniMax-M2", + "messages": [ + {"role": "system", "content": [{"type": "text", "text": "You are a helpful assistant."}]}, + {"role": "user", "content": [{"type": "text", "text": "Who won the world series in 2020?"}]} + ] + }' +``` + +## 常见问题 + +### Huggingface 网络问题 + +如果遇到网络问题,可以设置代理后再进行拉取。 + +```bash +export HF_ENDPOINT=https://hf-mirror.com +``` + +### MiniMax-M2 model is not currently supported + +该 vLLM 版本过旧,请升级到最新版本。 + +## 获取支持 + +如果在部署 MiniMax 模型过程中遇到任何问题: + +- 通过邮箱 api@minimaxi.com 等官方渠道联系我们的技术支持团队 + +- 在我们的 [GitHub](https://github.com/MiniMax-AI) 仓库提交 Issue +我们会持续优化模型的部署体验,欢迎反馈! diff --git a/figures/Bench.png b/figures/Bench.png new file mode 100644 index 0000000000000000000000000000000000000000..7e3bfc3adba4d064728a70f08e916d5fd6e01f4e GIT binary patch literal 162223 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
  • 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", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200002": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200003": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200004": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200005": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200006": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200007": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200008": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200009": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200010": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200011": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200012": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200013": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200014": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200015": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200016": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200017": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200018": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200019": { + "content": "]~b]", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200020": { + "content": "[e~[", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200021": { + "content": "]!d~[", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200022": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200023": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200024": { + "content": "]<]speech[>[", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200025": { + "content": "]<]image[>[", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200026": { + "content": "]<]video[>[", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200027": { + "content": "]<]start of speech[>[", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200028": { + "content": "]<]end of speech[>[", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200029": { + "content": "]<]start of image[>[", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200030": { + "content": "]<]end of image[>[", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200031": { + "content": "]<]start of video[>[", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200032": { + "content": "]<]end of video[>[", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200033": { + "content": "]<]vision pad[>[", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200034": { + "content": "]~!b[", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200035": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200036": { + "content": "", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + "200037": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200038": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200039": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200040": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200041": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200042": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "200043": { + "content": "", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + "200044": { + "content": "", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + "200045": { + "content": "", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + "200046": { + "content": "", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + "200047": { + "content": "", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + "200048": { + "content": "", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + "200049": { + "content": "", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + "200050": { + "content": "", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": false + }, + "200051": { + "content": "", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": false + }, + "200052": { + "content": "", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": false + }, + "200053": { + "content": "", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": false + } + }, + "additional_special_tokens": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "]<]speech[>[", + "]<]image[>[", + "]<]video[>[", + "]<]start of speech[>[", + "]<]end of speech[>[", + "]<]start of image[>[", + "]<]end of image[>[", + "]<]start of video[>[", + "]<]end of video[>[", + "]<]vision pad[>[", + "]~!b[", + "", + "", + "", + "", + "", + "", + "", + "", + "[e~[", + "]!d~[", + "]!p~[", + "]~b]", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "add_prefix_space": false, + "bos_token": "]~!b[", + "clean_up_tokenization_spaces": false, + "eos_token": "[e~[", + "model_max_length": 40960000, + "tokenizer_class": "GPT2Tokenizer", + "unk_token": "]!d~[" +} diff --git a/vocab.json b/vocab.json new file mode 100644 index 0000000..49a3e05 --- /dev/null +++ b/vocab.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b44c066b5dc34c800c4e3ecbd85f3e95ce3bfdbf8a5fe30223e005175103578a +size 4705413