初始化项目,由ModelHub XC社区提供模型

Model: NotHereNorThere/Coral-v1.6-0.6B
Source: Original Platform
This commit is contained in:
ModelHub XC
2026-07-12 17:39:04 +08:00
commit d34f2ac248
14 changed files with 152034 additions and 0 deletions

38
.gitattributes vendored Normal file
View File

@@ -0,0 +1,38 @@
*.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
f16.gguf filter=lfs diff=lfs merge=lfs -text
Q6_K.gguf filter=lfs diff=lfs merge=lfs -text
tokenizer.json filter=lfs diff=lfs merge=lfs -text

3
Q6_K.gguf Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:66cef9315a2e855796558b3d9b84c1d64a930d8446fde526089653294deedece
size 495106688

148
README.md Normal file
View File

@@ -0,0 +1,148 @@
---
license: apache-2.0
datasets:
- QuixiAI/dolphin-r1
- teknium/OpenHermes-2.5
- Sidsidney/OpenThoughts-114k
language:
- en
- zh
base_model:
- NotHereNorThere/Coral-v1.5-0.6B
tags:
- qwen
- ties
- merge
- finetune
- small
- thinking
- uncensored
- coral
pipeline_tag: text-generation
---
# Coral-v1.6-0.6B — NotHereNorThere
> A small model that actually thinks. 0.6B parameters, uncensored, with consistent Chain-of-Thought reasoning and solid (enough) multi-step logic.
Coral-v1.6 is a pure fine-tune experiment on top of [Coral-v1.5-0.6B](https://huggingface.co/NotHereNorThere/Coral-v1.5-0.6B). No new merge, no architectural changes, just 2,000 rows of multi-domain reasoning data to see how much a standalone FT pass could move the needle.
The honest result: meaningful but not dramatic. CoT is back and consistent, structured reasoning is solid, and the model handles diverse prompts reliably. The main regressions are CoT verbosity (always-on thinking, tendency to over-verify correct answers) and premise trap handling.
This is more of a test, maybe even call it a stepping stone to Coral 2.
---
## The Coral Family
Every Coral model is a TIES merge of Qwen3 finetunes (except Coral 1, it was Llama3.2), then with a QLoRA fine-tune pass. Each release usually builds on what the previous one got right.
| Model | Base | Donors | FT Rows | Highlights |
|---|---|---|---|---|
| CoralLM-1B *(retired)* | Llama 3.2 1B | 3 | 200 | First experiment. Functional but rough. |
| Coral-v1.5-0.6B | Qwen3-0.6B | 5 | 1,000 | Adaptive CoT emerged as an accident. Crossed a real qualitative threshold at this size. |
| Coral-v1.5-4B | Qwen3-4B | 7 | 2,500 | Stronger reasoning, 13+ turn coherence, better code. |
| **Coral-v1.6-0.6B** | Coral-v1.5-0.6B | — | 2,000 | You are here. Pure FT experiment. CoT reinforced, reasoning consistent. |
| Coral-2-4B *(in progress)* | Qwen3-4B TIES merge | 5 | ~2,000 | Fresh merge, Dolphin-R1. |
---
## What v1.6 Is Testing
v1.5's fine-tune was a coherence heal more than anything. 1k rows just to stabilize the post-merge model and get it talking cleanly. The adaptive CoT behavior that made v1.5 interesting emerged as an accidental byproduct of mixing reasoning and non-reasoning data.
v1.6 asks a simpler question: **what does a pure reasoning-focused FT pass do to a model that already works?** No new merge, no architecture changes, just 2k rows of structured CoT data and a training run. The targets were:
- **Reasoning consistency** — CoT that shows up reliably and does structured work (Achiefved)
- **Formatting discipline** — cleaner responses, less noise (Kind of)
- **Personality stability** — consistent tone across wildly different prompt types (Somewhat)
- **CoT reinforcement** — deliberate rather than emergent (Achieved)
The 2,000 rows are not trying to teach the model new facts. A 600M parameter model has a fixed knowledge ceiling regardless of what you train it on. What changes is how it *uses* that knowledge whether the reasoning is structured, whether the think blocks do real work.
---
## Why Dolphin-R1 and Not a Frontier Model?
The training data comes from [QuixiAI/dolphin-r1](https://huggingface.co/datasets/QuixiAI/dolphin-r1), reasoning traces from DeepSeek-R1 and Gemini 2 Flash Thinking, rather than GPT-5.5, Claude Opus 4.7, or similar. This is intentional.
Frontier model distillation at 0.6B scale is mostly noise. The model can't hold frontier-level knowledge or capability, so training on it mostly produces a model that pattern-matches frontier-style responses without the underlying competence to back them up. What DeepSeek-R1 and Gemini 2 Flash Thinking traces do well is demonstrate structured, multi-domain reasoning patterns across thousands of diverse problems. v1.6 is after the *shape* of good reasoning, not the raw capability of a 100B+ model.
The v1.5 foundation datasets (OpenHermes 2.5 for surface behavior, OpenThoughts for CoT structure) are credited as inherited training signal from the original merge and heal pass.
---
## Training
Fine-tuned directly on top of `Coral-v1.5-0.6B`. No re-merge, just continued training.
**Dataset (2,000 rows total, randomly sampled and shuffled):**
- 1,000 rows — `QuixiAI/dolphin-r1` (reasoning-deepseek subset)
- 1,000 rows — `QuixiAI/dolphin-r1` (reasoning-flash subset)
**Inherited from Coral-v1.5-0.6B:**
- [OpenHermes 2.5](https://huggingface.co/datasets/teknium/OpenHermes-2.5) — surface behavior, instruction following
- [OpenThoughts-114k](https://huggingface.co/datasets/Sidsidney/OpenThoughts-114k) — CoT structure
**Method:** QLoRA, 4-bit NF4, LoRA r=16, Flash Attention 2
**Hardware:** 1x RTX 5060 Ti 16GB
---
## Merge Recipe (inherited from v1.5)
v1.6 is a fine-tune, not a new merge. The underlying architecture comes from the Coral-v1.5-0.6B TIES merge.
**Method:** TIES | **Base:** `Qwen/Qwen3-0.6B` | **Tool:** [mergekit](https://github.com/arcee-ai/mergekit)
| Donor | Role | Weight | Density |
|---|---|---|---|
| `reaperdoesntknow/Qwen3-0.6B-Distilled-30B-A3B-Thinking-SFT` | Thinking / reasoning | 0.30 | 0.5 |
| `MihaiPopa-1/Qwen-3-0.6B-Claude-4.7-Opus-Distilled` | Claude-style CoT | 0.30 | 0.5 |
| `suayptalha/Qwen3-0.6B-Code-Expert` | Code | 0.25 | 0.5 |
| `DavidAU/Qwen3-0.6B-heretic-abliterated-uncensored` | De-alignment | 0.15 | 0.5 |
| `huihui-ai/Huihui-Qwen3-0.6B-abliterated-v2` | De-alignment | 0.15 | 0.5 |
---
## Format & Chat Template
Uses the standard **Qwen3 chat template**. Load with `--jinja` in llama.cpp or select the Qwen3 template in LM Studio.
**CoT behavior in v1.6:** Think blocks are back and consistent but always-on. The model engages CoT on creative and casual prompts where v1.5 would skip it. It also tends to re-verify correct answers rather than stopping when done. At 600M running hundreds of tokens per second the verbosity is mostly harmless, but it's the main behavioral regression from v1.5 and a target for v1.6.
---
## Evaluation
Tested post-training on the standard Coral eval battery. Tested on Q6_K — some behavior may differ on F16.
| Test | What it checks | Result |
|---|---|---|
| Basic coherence / casual chat | Stable, non-looping responses | ✅ Good enough |
| Identity | Knows it's an AI | ✅ Correct |
| Exact instruction following ("list exactly 3 reasons") | Respects explicit count and format constraints | ✅ Correct, hit exactly 3, clean format |
| Bat and ball ($0.05) | Resists the intuitive wrong answer of $0.10 | ✅ Correct, clean algebra, got $0.05 |
| Bloops / razzles transitivity | Multi-step logical deduction, catches asymmetry | ✅ Correct, got both parts right including the asymmetry |
| Race position puzzle | Simple logic | ✅ 2nd place, correct |
| Pills timing puzzle | Step counting, interval math | ✅ 1 hour, correct |
| Snail well puzzle | State tracking across multiple steps | ⚠️ Got 9 days (correct) but brute-forced it, confused itself mid-reasoning, revised to right answer |
| Poem (rain) | Creative output, CoT suppression on low-stakes tasks | ⚠️ CoT engaged and spent tokens analyzing rhyme schemes, output was decent, process was backwards |
| Nautical coffee shop name | Casual creative, CoT suppression check | ⚠️ CoT went deep on nautical word taxonomy, answered fine, massively over-thought it |
| Moses ark trap | Catches substituted names in premise | ❌ Missed, hallucinated an answer about the Ark of the Covenant and seven vessels of oil |
| Uncensored behavior | Answers edge content without refusal | ✅ Works, attempts answers confidently rather than refusing, just often wrong on factual edge content |
| Adaptive CoT routing | Thinks for hard problems, skips for easy | 🤷 Always-on in v1.6, not exactly good or bad |
**What this tells us:** Structured reasoning is solid and reliable (for 600M paramaters). The FT pass successfully reinforced CoT. The regressions, always-on thinking, verbosity, and premise trap misses, are clear targets.
---
## Quant Guide
| Quant | Verdict |
|---|---|
| F16 | Reference quality |
| Q6_K | Essentially identical to F16, maybe some weirdness |
| Q5_K_M | Minor degradation, much smaller |
| Q4_K_M | Very moticeable at this scale, use Q5 if you can |
| Q3_K_L | Just don't. |

28
added_tokens.json Normal file
View File

@@ -0,0 +1,28 @@
{
"</think>": 151668,
"</tool_call>": 151658,
"</tool_response>": 151666,
"<think>": 151667,
"<tool_call>": 151657,
"<tool_response>": 151665,
"<|box_end|>": 151649,
"<|box_start|>": 151648,
"<|endoftext|>": 151643,
"<|file_sep|>": 151664,
"<|fim_middle|>": 151660,
"<|fim_pad|>": 151662,
"<|fim_prefix|>": 151659,
"<|fim_suffix|>": 151661,
"<|im_end|>": 151645,
"<|im_start|>": 151644,
"<|image_pad|>": 151655,
"<|object_ref_end|>": 151647,
"<|object_ref_start|>": 151646,
"<|quad_end|>": 151651,
"<|quad_start|>": 151650,
"<|repo_name|>": 151663,
"<|video_pad|>": 151656,
"<|vision_end|>": 151653,
"<|vision_pad|>": 151654,
"<|vision_start|>": 151652
}

89
chat_template.jinja Normal file
View File

@@ -0,0 +1,89 @@
{%- if tools %}
{{- '<|im_start|>system\n' }}
{%- if messages[0].role == 'system' %}
{{- messages[0].content + '\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 <tools></tools> XML tags:\n<tools>" }}
{%- for tool in tools %}
{{- "\n" }}
{{- tool | tojson }}
{%- endfor %}
{{- "\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n" }}
{%- else %}
{%- if messages[0].role == 'system' %}
{{- '<|im_start|>system\n' + messages[0].content + '<|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" 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 + '\n' + content + '<|im_end|>' + '\n' }}
{%- 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('\n').split('<think>')[-1].lstrip('\n') %}
{%- set content = content.split('</think>')[-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<think>\n' + reasoning_content.strip('\n') + '\n</think>\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 %}
{{- '<tool_call>\n{"name": "' }}
{{- tool_call.name }}
{{- '", "arguments": ' }}
{%- if tool_call.arguments is string %}
{{- tool_call.arguments }}
{%- else %}
{{- tool_call.arguments | tojson }}
{%- endif %}
{{- '}\n</tool_call>' }}
{%- endfor %}
{%- endif %}
{{- '<|im_end|>\n' }}
{%- elif message.role == "tool" %}
{%- if loop.first or (messages[loop.index0 - 1].role != "tool") %}
{{- '<|im_start|>user' }}
{%- endif %}
{{- '\n<tool_response>\n' }}
{{- content }}
{{- '\n</tool_response>' }}
{%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}
{{- '<|im_end|>\n' }}
{%- endif %}
{%- endif %}
{%- endfor %}
{%- if add_generation_prompt %}
{{- '<|im_start|>assistant\n' }}
{%- if enable_thinking is defined and enable_thinking is false %}
{{- '<think>\n\n</think>\n\n' }}
{%- endif %}
{%- endif %}

60
config.json Normal file
View File

@@ -0,0 +1,60 @@
{
"architectures": [
"Qwen3ForCausalLM"
],
"attention_bias": false,
"attention_dropout": 0.0,
"bos_token_id": 151643,
"dtype": "float16",
"eos_token_id": 151645,
"head_dim": 128,
"hidden_act": "silu",
"hidden_size": 1024,
"initializer_range": 0.02,
"intermediate_size": 3072,
"layer_types": [
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention"
],
"max_position_embeddings": 40960,
"max_window_layers": 28,
"model_type": "qwen3",
"num_attention_heads": 16,
"num_hidden_layers": 28,
"num_key_value_heads": 8,
"rms_norm_eps": 1e-06,
"rope_scaling": null,
"rope_theta": 1000000,
"sliding_window": null,
"tie_word_embeddings": true,
"transformers_version": "4.57.6",
"use_cache": true,
"use_sliding_window": false,
"vocab_size": 151936
}

3
f16.gguf Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:535c38882d81cfe7c13785fd7b29b027889dd4ba98d528f3673533f769b66bc5
size 1198182016

6
generation_config.json Normal file
View File

@@ -0,0 +1,6 @@
{
"_from_model_config": true,
"bos_token_id": 151643,
"eos_token_id": 151645,
"transformers_version": "4.57.6"
}

151388
merges.txt Normal file

File diff suppressed because it is too large Load Diff

3
model.safetensors Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:89e5c6f93141b65e64acb8b0b802e88e45b14247ad7ee7a15b5c1e40a0198b52
size 1192134784

25
special_tokens_map.json Normal file
View File

@@ -0,0 +1,25 @@
{
"additional_special_tokens": [
"<|im_start|>",
"<|im_end|>",
"<|object_ref_start|>",
"<|object_ref_end|>",
"<|box_start|>",
"<|box_end|>",
"<|quad_start|>",
"<|quad_end|>",
"<|vision_start|>",
"<|vision_end|>",
"<|vision_pad|>",
"<|image_pad|>",
"<|video_pad|>"
],
"eos_token": {
"content": "<|im_end|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false
},
"pad_token": "<|endoftext|>"
}

BIN
tokenizer.json (Stored with Git LFS) Normal file

Binary file not shown.

239
tokenizer_config.json Normal file
View File

@@ -0,0 +1,239 @@
{
"add_bos_token": false,
"add_prefix_space": false,
"added_tokens_decoder": {
"151643": {
"content": "<|endoftext|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": true
},
"151644": {
"content": "<|im_start|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": true
},
"151645": {
"content": "<|im_end|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": true
},
"151646": {
"content": "<|object_ref_start|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": true
},
"151647": {
"content": "<|object_ref_end|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": true
},
"151648": {
"content": "<|box_start|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": true
},
"151649": {
"content": "<|box_end|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": true
},
"151650": {
"content": "<|quad_start|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": true
},
"151651": {
"content": "<|quad_end|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": true
},
"151652": {
"content": "<|vision_start|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": true
},
"151653": {
"content": "<|vision_end|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": true
},
"151654": {
"content": "<|vision_pad|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": true
},
"151655": {
"content": "<|image_pad|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": true
},
"151656": {
"content": "<|video_pad|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": true
},
"151657": {
"content": "<tool_call>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": false
},
"151658": {
"content": "</tool_call>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": false
},
"151659": {
"content": "<|fim_prefix|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": false
},
"151660": {
"content": "<|fim_middle|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": false
},
"151661": {
"content": "<|fim_suffix|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": false
},
"151662": {
"content": "<|fim_pad|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": false
},
"151663": {
"content": "<|repo_name|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": false
},
"151664": {
"content": "<|file_sep|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": false
},
"151665": {
"content": "<tool_response>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": false
},
"151666": {
"content": "</tool_response>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": false
},
"151667": {
"content": "<think>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": false
},
"151668": {
"content": "</think>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": false
}
},
"additional_special_tokens": [
"<|im_start|>",
"<|im_end|>",
"<|object_ref_start|>",
"<|object_ref_end|>",
"<|box_start|>",
"<|box_end|>",
"<|quad_start|>",
"<|quad_end|>",
"<|vision_start|>",
"<|vision_end|>",
"<|vision_pad|>",
"<|image_pad|>",
"<|video_pad|>"
],
"bos_token": null,
"clean_up_tokenization_spaces": false,
"eos_token": "<|im_end|>",
"errors": "replace",
"extra_special_tokens": {},
"model_max_length": 131072,
"pad_token": "<|endoftext|>",
"split_special_tokens": false,
"tokenizer_class": "Qwen2Tokenizer",
"unk_token": null
}

1
vocab.json Normal file

File diff suppressed because one or more lines are too long