commit de908559c18889a03489c0d9def4099b3ace3d43 Author: ModelHub XC Date: Wed Apr 22 09:57:28 2026 +0800 初始化项目,由ModelHub XC社区提供模型 Model: SL-AI/GRaPE-Mini-GGUF Source: Original Platform diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..fb167a1 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,43 @@ +*.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 +grape_mini.gguf filter=lfs diff=lfs merge=lfs -text +grape_mini.q2_k.gguf filter=lfs diff=lfs merge=lfs -text +grape_mini.q4_k_m.gguf filter=lfs diff=lfs merge=lfs -text +grape_mini.q6_k.gguf filter=lfs diff=lfs merge=lfs -text +grape_mini.q8_k.gguf filter=lfs diff=lfs merge=lfs -text +mmproj.bf16.gguf filter=lfs diff=lfs merge=lfs -text +grape_mini.bf16.gguf filter=lfs diff=lfs merge=lfs -text +grape_mini.q8_0.gguf filter=lfs diff=lfs merge=lfs -text diff --git a/README.md b/README.md new file mode 100644 index 0000000..133175b --- /dev/null +++ b/README.md @@ -0,0 +1,284 @@ +--- +license: apache-2.0 +language: +- en +pipeline_tag: text-generation +library_name: transformers +base_model: +- SL-AI/GRaPE-Mini +--- + +![GRaPE_Logo](https://cdn-uploads.huggingface.co/production/uploads/66960602f0ffd8e3a381106a/XjHkzctrE41e1qqJYeDzN.png) + +_The **G**eneral **R**easoning **A**gent (for) **P**roject **E**xploration_ + +# The GRaPE Family +| Attribute | Size | Modalities | Domain | +| :--- | :--- | :--- | :--- | +| **GRaPE Flash** | 7B A1B | Text in, Text out | High-Speed Applications | +| **GRaPE Mini** | 3B | Text + Image + Video in, Text out | On-Device Deployment | +| **GRaPE Nano** | 700M | Text in, Text out | Extreme Edge Deployment | + +*** + +# Capabilities + +The GRaPE Family was trained on about **14 billion** tokens of data after pre-training. About half was code related tasks, with the rest being heavy on STEAM. Ensuring the model has a sound logical basis. +*** + +GRaPE Flash and Nano are monomodal models, only accepting text. GRaPE Mini being trained most recently supports image and video inputs. + +*** + +## Reasoning Modes + +As GRaPE Mini is the only model that thinks, it has *some* support for reasoning modes. In testing, these modes sometimes work. Likely due to an innefficient dataset formatting for it. + +To use thinking modes, you need an XML tag, ``, which can equal these values: + +- **Minimal**: Skip thinking *(does not work most of the time, you'll have to be careful with this one)* +- **Low**: Think Below 1024 tokens +- **Medium**: Think between 1024 and 8192 tokens +- **High**: Think for any amount above 8192 tokens + +In your prompt, place the thinking mode at the *end* of your prompt, like this: +``` +Build me a website called "Aurora Beats." <|image_pad|><|vision_end|> +            {%- elif 'video' in item or item.type == 'video' %} +                {%- if do_vision_count %} +                    {%- set video_count.value = video_count.value + 1 %} +                {%- endif %} +                {%- if add_vision_id %}Video {{ video_count.value }}: {% endif -%} +                <|vision_start|><|video_pad|><|vision_end|> +            {%- elif 'text' in item %} +                {{- item.text }} +            {%- endif %} +        {%- endfor %} +    {%- endif %} +{%- endmacro %} +{%- if tools %} +    {{- '<|im_start|>system\n' }} +    {%- if messages[0].role == 'system' %} +        {{- render_content(messages[0].content, false) + '\n\n' }} +    {%- endif %} +    {{- "# 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' + render_content(messages[0].content, false) + '<|im_end|>\n' }} +    {%- 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" %} +        {%- set content = render_content(message.content, false) %} +        {%- if not(content.startswith('') and content.endswith('')) %} +            {%- set ns.multi_step_tool = false %} +            {%- set ns.last_query_index = index %} +        {%- endif %} +    {%- endif %} +{%- endfor %} +{%- for message in messages %} +    {%- set content = render_content(message.content, True) %} +    {%- if (message.role == "user") or (message.role == "system" and not loop.first) %} +        {%- if message.role == "user" and loop.last %} +            {{- '<|im_start|>' + message.role + '\n' + content + '\n\nRespond by first generating a tag to reason through the user\'s prompt.<|im_end|>\n' }} +        {%- else %} +            {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>\n' }} +        {%- endif %} +    {%- elif message.role == "assistant" %} +        {%- set reasoning_content = '' %} +        {%- if message.reasoning_content is string %} +            {%- set reasoning_content = message.reasoning_content %} +        {%- else %} +            {%- if '' in content %} +                {%- set reasoning_content = content.split('')[0].rstrip('\n').split('')[-1].lstrip('\n') %} +                {%- set content = content.split('')[-1].lstrip('\n') %} +            {%- endif %} +        {%- endif %} +        {%- if loop.index0 > ns.last_query_index %} +            {%- if loop.last or (not loop.last and reasoning_content) %} +                {{- '<|im_start|>' + message.role + '\n\n' + reasoning_content.strip('\n') + '\n\n\n' + content.lstrip('\n') }} +            {%- else %} +                {{- '<|im_start|>' + message.role + '\n' + content }} +            {%- endif %} +        {%- else %} +            {{- '<|im_start|>' + message.role + '\n' + content }} +        {%- endif %} +        {%- if message.tool_calls %} +            {%- for tool_call in message.tool_calls %} +                {%- if (loop.first and content) or (not loop.first) %} +                    {{- '\n' }} +                {%- endif %} +                {%- if tool_call.function %} +                    {%- set tool_call = tool_call.function %} +                {%- endif %} +                {{- '\n{"name": "' }} +                {{- tool_call.name }} +                {{- '", "arguments": ' }} +                {%- if tool_call.arguments is string %} +                    {{- tool_call.arguments }} +                {%- else %} +                    {{- tool_call.arguments | tojson }} +                {%- endif %} +                {{- '}\n' }} +            {%- endfor %} +        {%- endif %} +        {{- '<|im_end|>\n' }} +    {%- elif message.role == "tool" %} +        {%- if loop.first or (messages[loop.index0 - 1].role != "tool") %} +            {{- '<|im_start|>user' }} +        {%- endif %} +        {{- '\n\n' }} +        {{- 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 %} +``` + +*** + +# Notes + +The GRaPE Family started all the way back in August of 2025, meaning these models are severely out of date on architecture, and training data. + +GRaPE 2 will come sooner than the GRaPE 1 family had, and will show multiple improvements. + +There are no benchmarks for GRaPE 1 Models due to the costly nature of running them, as well as prioritization of newer models. + +Updates for GRaPE 2 models will be posted here on Huggingface, as well as [Skinnertopia](https://www.skinnertopia.com/) + +Demos for select GRaPE Models can be found here: https://github.com/Sweaterdog/GRaPE-Demos \ No newline at end of file diff --git a/grape_mini.bf16.gguf b/grape_mini.bf16.gguf new file mode 100644 index 0000000..3d2ead7 --- /dev/null +++ b/grape_mini.bf16.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79e40c32bf95666f1440f3fb8ebee15a7b0bb9a2df7f951112b370ad149283dd +size 5460974592 diff --git a/grape_mini.q2_k.gguf b/grape_mini.q2_k.gguf new file mode 100644 index 0000000..8fd741a --- /dev/null +++ b/grape_mini.q2_k.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67e628ace154b53b7430ecc2777df915e5cb4c20faa785195189cec646fdc20a +size 1146795008 diff --git a/grape_mini.q4_k_m.gguf b/grape_mini.q4_k_m.gguf new file mode 100644 index 0000000..7f92882 --- /dev/null +++ b/grape_mini.q4_k_m.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7316f56359b063eb52877c5edb26349136b843301ae4770425e1fcdd0c17e691 +size 1711846400 diff --git a/grape_mini.q6_k.gguf b/grape_mini.q6_k.gguf new file mode 100644 index 0000000..8428a21 --- /dev/null +++ b/grape_mini.q6_k.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4dd3878dc4185c59d43eed5e33c31c5283867a4c90a4f16482b3a0074c0a43d +size 2243867648 diff --git a/grape_mini.q8_0.gguf b/grape_mini.q8_0.gguf new file mode 100644 index 0000000..02c949e --- /dev/null +++ b/grape_mini.q8_0.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a5708d80977e4fca209910f7b88bf9e21613e0aec08500fbc60882026b17eeb5 +size 2904333312 diff --git a/mmproj.bf16.gguf b/mmproj.bf16.gguf new file mode 100644 index 0000000..7e62376 --- /dev/null +++ b/mmproj.bf16.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e534ce2c7c7169811a85d88aa574bb6f381c09b7c07069b4cf13a786a0afa9e +size 822540480