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

Model: sugiken/Ordis-1.5B-V355-VarGH
Source: Original Platform
This commit is contained in:
ModelHub XC
2026-08-25 09:39:15 +08:00
commit 1294cbf1d2
12 changed files with 600 additions and 0 deletions

55
.gitattributes vendored Normal file
View File

@@ -0,0 +1,55 @@
*.7z filter=lfs diff=lfs merge=lfs -text
*.arrow filter=lfs diff=lfs merge=lfs -text
*.bin filter=lfs diff=lfs merge=lfs -text
*.bin.* filter=lfs diff=lfs merge=lfs -text
*.bz2 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
*.model filter=lfs diff=lfs merge=lfs -text
*.msgpack 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
*.pt filter=lfs diff=lfs merge=lfs -text
*.pth filter=lfs diff=lfs merge=lfs -text
*.rar filter=lfs diff=lfs merge=lfs -text
saved_model/**/* 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
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zstandard filter=lfs diff=lfs merge=lfs -text
*.tfevents* filter=lfs diff=lfs merge=lfs -text
*.db* filter=lfs diff=lfs merge=lfs -text
*.ark* filter=lfs diff=lfs merge=lfs -text
**/*ckpt*data* filter=lfs diff=lfs merge=lfs -text
**/*ckpt*.meta filter=lfs diff=lfs merge=lfs -text
**/*ckpt*.index filter=lfs diff=lfs merge=lfs -text
*.ckpt filter=lfs diff=lfs merge=lfs -text
*.gguf* filter=lfs diff=lfs merge=lfs -text
*.ggml filter=lfs diff=lfs merge=lfs -text
*.llamafile* filter=lfs diff=lfs merge=lfs -text
*.pt2 filter=lfs diff=lfs merge=lfs -text
*.mlmodel filter=lfs diff=lfs merge=lfs -text
*.npy filter=lfs diff=lfs merge=lfs -text
*.npz filter=lfs diff=lfs merge=lfs -text
*.pickle filter=lfs diff=lfs merge=lfs -text
*.pkl filter=lfs diff=lfs merge=lfs -text
*.tar 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
merges.txt filter=lfs diff=lfs merge=lfs -text
model.safetensors filter=lfs diff=lfs merge=lfs -text
tokenizer.json filter=lfs diff=lfs merge=lfs -text
vocab.json filter=lfs diff=lfs merge=lfs -text

141
README.md Normal file
View File

@@ -0,0 +1,141 @@
---
license: apache-2.0
language:
- zh
- en
base_model: Qwen/Qwen2.5-1.5B-Instruct
tags:
- anti-hallucination
- causal-reasoning
- chinese
- text-generation
- lora
pipeline_tag: text-generation
---
# Ordis-1.5B-V355-VarGH
基于 Qwen2.5-1.5B-Instruct 的微调模型,使用 LoRA + 4阶段递进训练 (PIT) 方法,经历 16+ 组控制变量实验。专注于**实用能力**:反幻觉、诚实拒答("我不知道")、结构化推理。
> [官网](https://ordisai.com) | [GGUF 量化版](https://modelscope.cn/models/sugiken/Ordis-1.5B-V355-VarGH-GGUF) | [HuggingFace](https://huggingface.co/sugiken/Ordis-1.5B-V355-VarGH)
---
## 标准评测
**评测条件**: lm-eval v0.4.10, 0-shot, A100-80GB两个模型使用完全相同的评测设置。
微调引入了轻微的**对齐税** — 大部分标准评测分数略低于基座模型。这是预期内的结果:模型获得了反幻觉、结构化推理和诚实拒答能力,消耗了部分 1.5B 参数容量。唯一的例外是 TruthfulQA (+1.02%),反幻觉训练直接提升了真实性分数。
| 评测 | Ordis 1.5B | 基座 Qwen2.5-1.5B | 差值 |
|------|-----------|-------------------|------|
| TruthfulQA MC2 | **47.73%** | 46.71% | **+1.02** |
| GPQA | 27.90% | 28.35% | -0.45 |
| HellaSwag | 68.14% | 68.22% | -0.08 |
| ARC-Challenge | 45.22% | 46.84% | -1.62 |
| MMLU | 57.93% | 60.15% | -2.22 |
| GSM8K (CoT) | 50.80% | — | 不可直接对比* |
| AIME 2024 | 0% | 0% | — |
*GSM8K 使用文本生成模式,对 chat template 配置敏感不直接可比。AIME 超出 1.5B 模型能力范围,如实报告零分。
**Ordis 与基座模型的差异**在于标准评测无法衡量的实用能力:结构化自纠错、三层认知(诚实说"我不知道")、因果推理。
---
## CLadder 因果推理
CLadder 是基于 Judea Pearl 因果阶梯的学术评测300题3个层级。[论文](https://arxiv.org/abs/2312.04350)
| 层级 | 含义 | 得分 |
|------|------|------|
| Rung 1 (关联) | 统计相关 | 46.0% (40/87) |
| Rung 2 (干预) | 主动干预 | 50.6% (45/89) |
| Rung 3 (反事实) | "如果不同" | 62.9% (78/124) |
| **总分** | | **54.33% (163/300)** |
参考CLadder 论文报告 LLaMA-6.7B 约 50%GPT-3.5 约 55-60%。
---
## BigBench CRASS AI & 因果判断
由社区成员独立测试。BigBench CRASS AI反事实场景推理测试模型对假设性场景的推理能力。
| 评测 | Shot | Ordis 1.5B | 基座 Qwen2.5-1.5B | 差值 |
|------|------|-----------|-------------------|------|
| **CRASS AI** | **0** | **34.09%** | **52.27%** | **-18.18pp** |
| CRASS AI | 25 | 81.82% | 88.64% | -6.82pp |
| 因果判断 | 0 | 47.89% | 50.00% | -2.11pp |
| 因果判断 | 25 | 55.79% | 53.68% | +2.11pp |
**关键发现**CRASS AI 0-shot 出现显著的 -18.18pp 回退。这是对齐税在反事实推理维度的体现——反幻觉训练使模型在假设性场景下变得保守。25-shot 下差距缩小到 -6.82pp,说明能力仍在但 0-shot 默认行为已改变。
## 自定义评测
| 评测 | 得分 |
|------|------|
| 60题评测 (6个维度) | 85.0% (51/60) |
| 124分综合评测 | 75.4% (86/114) |
**60题维度拆分**
| 维度 | 得分 |
|------|------|
| 推理 | 100% |
| 常识 | 100% |
| 防御过载 | 100% |
| 反幻觉 | 90% |
| 身份 | 60% |
| IDK能力 | 60% |
---
## 核心能力
- **反幻觉**:基于推理的不确定性判断,而非安全模板
- **三层认知**:知道什么/不知道什么/先评估再决定
- **结构化自纠错**:承认→归因→修正→验证
- **因果推理**:跨领域因果结构迁移
---
## 已知局限
- **对齐税**标准评测分数略低于基座模型CRASS AI 反事实推理 0-shot -18.18pp(见上表)
- **反灌输不足**:无法抵抗持续的虚假记忆注入(开环系统限制)
- **中等置信度不稳定**1.5B 容量上限导致边界场景不确定
- **英文身份泄漏**:基座模型先验偶尔浮现
- **专有名词幻觉**1.5B 参数记忆有限
---
## 使用方法
本仓库包含 LoRA adapter 权重:
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
base_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-1.5B-Instruct")
model = PeftModel.from_pretrained(base_model, "sugiken/Ordis-1.5B-V355-VarGH")
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-1.5B-Instruct")
```
推荐使用 [GGUF 量化版](https://modelscope.cn/models/sugiken/Ordis-1.5B-V355-VarGH-GGUF) 部署。
---
## 模型信息
| 属性 | 值 |
|------|-----|
| 基座模型 | Qwen/Qwen2.5-1.5B-Instruct |
| 参数量 | 1.5B |
| 微调方法 | LoRA (r=32, alpha=64) |
| 训练方法 | 4阶段PIT (递进身份训练) |
| 上下文 | 32K (基座), 训练时 2048 |
| 语言 | 中文 (主要), 英文 |
| 许可证 | Apache 2.0 |

24
added_tokens.json Normal file
View File

@@ -0,0 +1,24 @@
{
"</tool_call>": 151658,
"<tool_call>": 151657,
"<|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
}

54
chat_template.jinja Normal file
View File

@@ -0,0 +1,54 @@
{%- if tools %}
{{- '<|im_start|>system\n' }}
{%- if messages[0]['role'] == 'system' %}
{{- messages[0]['content'] }}
{%- else %}
{{- 'You are Qwen, created by Alibaba Cloud. You are a helpful assistant.' }}
{%- endif %}
{{- "\n\n# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <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' }}
{%- else %}
{{- '<|im_start|>system\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\n' }}
{%- endif %}
{%- endif %}
{%- for message in messages %}
{%- if (message.role == "user") or (message.role == "system" and not loop.first) or (message.role == "assistant" and not message.tool_calls) %}
{{- '<|im_start|>' + message.role + '\n' + message.content + '<|im_end|>' + '\n' }}
{%- elif message.role == "assistant" %}
{{- '<|im_start|>' + message.role }}
{%- if message.content %}
{{- '\n' + message.content }}
{%- endif %}
{%- for tool_call in message.tool_calls %}
{%- if tool_call.function is defined %}
{%- set tool_call = tool_call.function %}
{%- endif %}
{{- '\n<tool_call>\n{"name": "' }}
{{- tool_call.name }}
{{- '", "arguments": ' }}
{{- tool_call.arguments | tojson }}
{{- '}\n</tool_call>' }}
{%- endfor %}
{{- '<|im_end|>\n' }}
{%- elif message.role == "tool" %}
{%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != "tool") %}
{{- '<|im_start|>user' }}
{%- endif %}
{{- '\n<tool_response>\n' }}
{{- message.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' }}
{%- endif %}

58
config.json Normal file
View File

@@ -0,0 +1,58 @@
{
"architectures": [
"Qwen2ForCausalLM"
],
"attention_dropout": 0.0,
"bos_token_id": 151643,
"dtype": "float16",
"eos_token_id": 151645,
"hidden_act": "silu",
"hidden_size": 1536,
"initializer_range": 0.02,
"intermediate_size": 8960,
"layer_types": [
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention"
],
"max_position_embeddings": 32768,
"max_window_layers": 21,
"model_type": "qwen2",
"num_attention_heads": 12,
"num_hidden_layers": 28,
"num_key_value_heads": 2,
"rms_norm_eps": 1e-06,
"rope_scaling": null,
"rope_theta": 1000000.0,
"sliding_window": null,
"tie_word_embeddings": true,
"transformers_version": "4.57.6",
"use_cache": true,
"use_sliding_window": false,
"vocab_size": 151936
}

14
generation_config.json Normal file
View File

@@ -0,0 +1,14 @@
{
"bos_token_id": 151643,
"do_sample": true,
"eos_token_id": [
151645,
151643
],
"pad_token_id": 151643,
"repetition_penalty": 1.1,
"temperature": 0.7,
"top_k": 20,
"top_p": 0.8,
"transformers_version": "4.57.6"
}

BIN
merges.txt (Stored with Git LFS) Normal file

Binary file not shown.

3
model.safetensors Normal file
View File

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

31
special_tokens_map.json Normal file
View File

@@ -0,0 +1,31 @@
{
"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": {
"content": "<|endoftext|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false
}
}

3
tokenizer.json Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:64e435abf9ee8a41ec7ec574a5fa95ee45edeef2e0146c8770df547ed752ebea
size 11421993

211
tokenizer_config.json Normal file
View File

@@ -0,0 +1,211 @@
{
"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
}
},
"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": {},
"max_length": 512,
"model_max_length": 131072,
"pad_token": "<|endoftext|>",
"split_special_tokens": false,
"stride": 0,
"tokenizer_class": "Qwen2Tokenizer",
"truncation_side": "left",
"truncation_strategy": "longest_first",
"unk_token": null
}

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

Binary file not shown.