update readme
Browse files
README.md
CHANGED
|
@@ -1,3 +1,145 @@
|
|
| 1 |
-
---
|
| 2 |
-
license: apache-2.0
|
| 3 |
-
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
---
|
| 4 |
+
# AI-Flow-Ruyi2 (Ruyi2大模型)
|
| 5 |
+
|
| 6 |
+
## 介绍
|
| 7 |
+
|
| 8 |
+
**Ruyi2大模型(AI-Flow-Ruyi2)** 是中国电信人工智能研究院 (TeleAI) 智传网(AI Flow)团队研发,是面向下一代“端-边-云”模型服务架构的**同源家族模型(Familial Model)**。该模型基于 Qwen3-14B 基座构建,确立了“一次训练,多处部署”(Train Once, Deploy Many)的全新范式。其核心在于 1.7B(端)、8B(边)与 14B(云)三个嵌套分支共享主干参数,通过动态早退出机制实现不同算力环境下的自适应推理。针对端侧部署,模型创新性引入 DaE(Decompose after Expansion)框架,结合稳定块扩展(SBE)与 SVD 后训练压缩技术,在降低 40% 增量参数的同时显著增强了小模型的逻辑推理能力,从而实现了高效的端边云协同与高性能的边缘智能落地。
|
| 9 |
+
|
| 10 |
+

|
| 11 |
+

|
| 12 |
+
|
| 13 |
+
## Ruyi2
|
| 14 |
+
|
| 15 |
+
为了进一步推动下一代“端-边-云”协同计算范式的落地,让业界体验更高效的家族模型架构,我们正式开源了 Ruyi2 (AI-Flow-Ruyi2) 模型。Ruyi2 于 2026 年 2 月 14 日发布,基于 Qwen3-14B 构建。其最大参数量分支为 14B,并可分化出具有等效参数量为 1.7B 和 8B 的早退出分支。其中:
|
| 16 |
+
* 1.7B 分支:专为端侧设备(End Devices)部署设计,通过创新的DaE(扩展后分解)与SVD压缩技术优化,在极低的资源占用下保留了高密度的知识与推理能力,优势在于极致的响应速度与部署效率;
|
| 17 |
+
* 8B 分支:定位为边缘服务器(Edge Server)的主力模型,在MMLU与GSM8K等基准测试中表现优异,实现了在通用任务场景下性能与计算成本的完美平衡;
|
| 18 |
+
* 14B 分支:作为云端服务器(Cloud Server)的完全体,主攻复杂高阶应用,在逻辑推理、数学及综合知识维度上展现出统治级的全面优势,适合处理最棘手的难题。
|
| 19 |
+
|
| 20 |
+
|位点序号|早退出位置|等效模型大小|对应分支代号|场景定位|
|
| 21 |
+
|:-:|:-:|:-:|:-:|:-:|
|
| 22 |
+
|1|2层|1.7B|AI-Flow-Ruyi2-1.7B|端侧极速/简单任务 |
|
| 23 |
+
|2|21层|8B|AI-Flow-Ruyi2-8B|边缘计算/通用平衡 |
|
| 24 |
+
|3|层|14B|AI-Flow-Ruyi2-14B|云端全能/复杂问题|
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
### 训练过程
|
| 28 |
+
|
| 29 |
+
在训练开始前,我们基于Qwen团队预训练的[Qwen3-14B-Base](https://doi.org/10.48550/arXiv.2505.09388)模型,对 14B 主分支进行了参数初始化;对于 1.7B 和 8B 早退出分支,其解码器层均采用早退出位置的下一层参数进行初始化。
|
| 30 |
+
|
| 31 |
+
完成初始化后,我们采用**多分支联合预训练**方法,在私有高质量数据集上进行了约 8000亿 (800B) token 的继续预训练,构建出Ruyi2 基座(Ruyi2-Base)。
|
| 32 |
+
|
| 33 |
+
随后,我们基于约 400万 (4M) 条高质量指令数据,对各分支进行了**联合指令遵循微调**;在此基础上,针对 1.7B 分支特别引入了 DaE(扩展后分解)框架与 SVD 压缩技术,并结合 GRPO 强化学习 进一步增强了模型的逻辑推理能力,最终得到 Ruyi2。
|
| 34 |
+
|
| 35 |
+
### 性能评测
|
| 36 |
+
|
| 37 |
+
我们基于[OpenCompass](https://github.com/open-compass/opencompass)及其官方配置文件,Ruyi2 模型家族相比 Qwen3 基线模型所具备的卓越扩展效率和强劲性能。在所有参数规模上,Ruyi2 始终在知识理解和推理能力方面树立了新的行业标杆。
|
| 38 |
+
* Ruyi2-1.7B:端侧极致效能与“知识密度”的突破 作为专为移动端与边缘设备设计的轻量化分支,Ruyi2-1.7B 展现了无与伦比的“知识密度” 。得益于创新的 DaE(扩展后分解)框架与 SVD 后训练压缩技术,它在极小的参数规模下保留了惊人的知识容量,MMLU 得分高达 62.77,超越同级基座模型(Qwen3-1.7B)超过 23 个百分点 。这证明了 Ruyi2-1.7B 成功打破了小模型的性能天花板,成为在严格内存与延迟限制下处理知识密集型任务的高效解决方案;
|
| 39 |
+
* Ruyi2-8B:边缘侧的全面超越与黄金平衡 Ruyi2-8B 是家族模型中性能与效率的完美平衡点,实现了对同级竞品的全面超越 。定位为边缘服务器的主力模型,它不仅在通用知识理解上遥遥领先(MMLU 79.68),更在逻辑推理能力上实现了质的飞跃,GSM-8K 得分达到 92.19,显著优于基线模型。它以中等规模的算力开销提供了接近顶尖大模型的推理体验,验证了智传网架构在多维能力平衡上的卓越设计;
|
| 40 |
+
* Ruyi2-14B:云端旗舰的全指标统治力 作为家族中的全量旗舰,Ruyi2-14B 在所有关键评测指标上确立了绝对的统治地位。它充分释放了共享主干网络的全部潜能,不仅进一步刷新了通用知识的上限(MMLU 81.84),更在数学与复杂逻辑推理任务中展现了压倒性优势,其 GSM-8K(94.24)和 Math(86.52)得分均超越了 Qwen3-14B。Ruyi2-14B 是处理高阶复杂问题、长逻辑链推理的最稳健选择,代表了该系列模型的最高智能水平。
|
| 41 |
+
|
| 42 |
+
<details>
|
| 43 |
+
<summary>性能比较: Ruyi2 vs Qwen3</summary>
|
| 44 |
+
|
| 45 |
+
| Model | MMLU | MMLU-P | CMMLU | BBH | ARC-c | Hella | IFEval | Human | Math | GSM8K | Avg. |
|
| 46 |
+
| :--- | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
|
| 47 |
+
| Qwen3-1.7B | 39.31 | 39.82 | 61.61 | 35.81 | 67.12 | 54.25 | 67.65 | 62.20 | 70.32 | 75.89 | 57.40 |
|
| 48 |
+
| Qwen3-8B | 48.64 | 55.63 | 78.84 | 55.11 | 82.03 | 77.32 | 81.89 | 87.20 | 82.30 | 85.37 | 73.43 |
|
| 49 |
+
| Qwen3-14B | 60.43 | 64.11 | 82.06 | 64.70 | 81.69 | 80.80 | 85.77 | 87.80 | 84.42 | 85.90 | 77.77 |
|
| 50 |
+
| **Ruyi2-1.7B** | 62.77 | 9.60 | 22.68 | 19.95 | 27.46 | 58.77 | 47.13 | 47.56 | 39.14 | 75.97 | 41.10 |
|
| 51 |
+
| **Ruyi2-8B** | 79.68 | 56.12 | 74.72 | 59.38 | 82.71 | 78.19 | 73.94 | 71.95 | 72.96 | 92.19 | 74.18 |
|
| 52 |
+
| **Ruyi2-14B** | 81.84 | 71.55 | 82.15 | 77.86 | 84.41 | 83.94 | 81.52 | 84.76 | 86.52 | 94.24 | 82.88 |
|
| 53 |
+
|
| 54 |
+
</details>
|
| 55 |
+
|
| 56 |
+
|
| 57 |
+
|
| 58 |
+
|
| 59 |
+
## 使用
|
| 60 |
+
|
| 61 |
+
Step 1. 创建并激活虚拟环境
|
| 62 |
+
|
| 63 |
+
```sh
|
| 64 |
+
conda create -n ruyi python=3.12
|
| 65 |
+
conda activate ruyi
|
| 66 |
+
```
|
| 67 |
+
|
| 68 |
+
Step 2. 克隆本仓库至本地
|
| 69 |
+
|
| 70 |
+
```sh
|
| 71 |
+
git clone https://github.com/TeleAI-AI-Flow/AI-Flow-Ruyi2.git
|
| 72 |
+
cd AI-Flow-Ruyi
|
| 73 |
+
```
|
| 74 |
+
|
| 75 |
+
Step 3. 由源码安装(PS: flash_attn编译安装较慢,建议移步[官方仓库](https://github.com/Dao-AILab/flash-attention/releases/tag/v2.7.4.post1)下载whl手动安装)
|
| 76 |
+
|
| 77 |
+
```sh
|
| 78 |
+
pip install -e .
|
| 79 |
+
```
|
| 80 |
+
|
| 81 |
+
Step 4. 下载模型权重
|
| 82 |
+
|
| 83 |
+
```sh
|
| 84 |
+
git clone https://huggingface.co/TeleAI-AI-Flow/AI-Flow-Ruyi2 models/AI-Flow-Ruyi2
|
| 85 |
+
```
|
| 86 |
+
|
| 87 |
+
Step 5. 运行Demo
|
| 88 |
+
|
| 89 |
+
```sh
|
| 90 |
+
python demo.py
|
| 91 |
+
```
|
| 92 |
+
|
| 93 |
+
<details>
|
| 94 |
+
<summary>查看Demo代码</summary>
|
| 95 |
+
|
| 96 |
+
```py
|
| 97 |
+
import torch
|
| 98 |
+
from ruyi.global_var import set_global_val
|
| 99 |
+
from transformers import GenerationConfig
|
| 100 |
+
from transformers import AutoModelForCausalLM, AutoTokenizer
|
| 101 |
+
|
| 102 |
+
|
| 103 |
+
model_path = f"models/AI-Flow-Ruyi2"
|
| 104 |
+
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
|
| 105 |
+
model = AutoModelForCausalLM.from_pretrained(model_path, trust_remote_code=True, attn_implementation='flash_attention_2', torch_dtype=torch.bfloat16).to('cuda')
|
| 106 |
+
|
| 107 |
+
|
| 108 |
+
generation_config = GenerationConfig(
|
| 109 |
+
do_sample=True,
|
| 110 |
+
top_k=30,
|
| 111 |
+
top_p=0.95,
|
| 112 |
+
temperature=0.6,
|
| 113 |
+
repetition_penalty=1.2,
|
| 114 |
+
no_repeat_ngram_size=3,
|
| 115 |
+
max_new_tokens=8192
|
| 116 |
+
)
|
| 117 |
+
|
| 118 |
+
# 输入文本
|
| 119 |
+
messages = [
|
| 120 |
+
{"role": "user", "content": "你好,请用一句话介绍一下自己。"},
|
| 121 |
+
]
|
| 122 |
+
|
| 123 |
+
# 应用 chat_template 模板
|
| 124 |
+
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
|
| 125 |
+
inputs = tokenizer(prompt, return_tensors="pt")
|
| 126 |
+
|
| 127 |
+
# 模型生成
|
| 128 |
+
with torch.no_grad():
|
| 129 |
+
# 设置早退出点
|
| 130 |
+
# - 2: 第一个早退出点,对应约1.7B
|
| 131 |
+
# - 21: 第二个早退出点,对应约8B
|
| 132 |
+
# - 39: 第三个早退出点,对应约14B
|
| 133 |
+
set_global_val("early_exit_point", 39)
|
| 134 |
+
|
| 135 |
+
output = model.generate(
|
| 136 |
+
inputs["input_ids"].to('cuda'),
|
| 137 |
+
generation_config=generation_config
|
| 138 |
+
)
|
| 139 |
+
|
| 140 |
+
# 解码并打印结果
|
| 141 |
+
generated_text = tokenizer.decode(output[0], skip_special_tokens=False)
|
| 142 |
+
print(generated_text)
|
| 143 |
+
```
|
| 144 |
+
|
| 145 |
+
</details>
|