fusion-llm-demo / README.md
zhan1206
fix: comprehensive audit fixes - Thinking Dial unification, deployment scripts, README, bilingual filter, data download
bce487e
|
Raw
History Blame
6.63 kB
# Fusion - 六边形开源大模型
**集百家之长,铸六边形开源大模型**
[![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)
[![Python 3.8+](https://img.shields.io/badge/Python-3.8+-green.svg)]()
[![PyTorch](https://img.shields.io/badge/PyTorch-2.0+-red.svg)]()
## 项目简介
Fusion 是一套面向**纯本地训练与推理**的开源大语言模型方案。它不只交付模型权重,更交付一整套可在消费级硬件上自行定制、微调、甚至复现预训练的全链路工具。
**核心理念:用户主权** - 所有训练数据清洗、模型微调、推理部署均在本地完成,无需依赖任何云端服务。
## 核心特性
### 滑动分块潜注意力(SBLA)
- 长序列切为定长块,块内高秩潜空间 + 块间极低秩潜向量
- 支持 32K 上下文窗口,KV 缓存为传统 GQA 的 1/8(理论值,待大规模训练验证)
- SBLA micro-benchmark 显示 4.2x 注意力加速(基于 mini 配置,非生产规模)
- 在 24 GB 显卡上即可对 14B 模型进行长文档微调与推理(14B 配置模板已提供,权重需自行训练)
- ⚠️ 以上性能数据基于小规模实验验证,0.5B+ 模型的实际性能待训练后确认
### 动态推理强度调节器(Thinking Dial)
- 通过 `thinking_depth`(0-3)在架构层面控制推理深度
- 0:直接作答(闲聊、翻译)
- 3:长思维链模式(数学、代码调试)
- 使用 thinking_embedding + thinking_gate 实现 logits 级别的深度偏置
- 一个模型同时拥有快响应与深推理
### 双母语独立训练(规划中)
- 目标:中文达到 Qwen 同等深度,英文自然度对标 LLaMA 3.1
- 根除"翻译腔",中英独立文化人格
- 当前状态:双语过滤架构已就绪(`data_pipeline/bilingual_filter.py`),尚需大规模双语训练数据与实际训练产物
### 教科书级知识蒸馏(T-KD)
- 使用开源教师模型改写高信誉源
- 生成风格统一、论证清晰的教学文本
- 注意:T-KD 为可选增强路径,需外部教师模型权重。核心训练流程(SBLA + Thinking Dial + GRPO)不依赖蒸馏,支持冷启动
## 项目状态
| 组件 | 状态 | 说明 |
|------|------|------|
| SBLA 注意力 | ✅ 已实现 | micro-benchmark 验证通过,4.2x 加速 |
| Thinking Dial | ✅ 已实现 | thinking_embedding + gate,GRPO 训练 |
| KV Cache | ✅ 已实现 | 增量推理、GQA 支持 |
| 预训练权重 | ⏳ 待训练 | 需 GB 级语料 + GPU |
| 大规模验证 | ⏳ 待完成 | 需 0.5B+ 模型训练 |
| 部署导出 | ✅ 脚本就绪 | GGUF/ONNX/TensorRT 脚本可用 |
| 评估框架 | ✅ 已实现 | BLEU/ROUGE/METEOR/BERTScore |
## 快速开始
### 硬件要求
| 模型版本 | 全参微调 | QLoRA 微调 | 推理(量化) |
|---------|---------|------------|-------------|
| Fusion-0.5B | 8 GB | - | CPU |
| Fusion-1.5B | 16 GB | 8 GB | 4 GB |
| Fusion-8B | 24 GB | 8 GB | 8 GB |
| Fusion-14B | 48 GB | 16 GB | 16 GB |
### 安装依赖
```bash
git clone https://github.com/zhan1206/fusion-llm.git
cd fusion-llm
pip install -r requirements.txt
```
### Mini 模型快速训练
Mini 模型是一个小型字符级模型,用于快速验证训练流程,无需 GPU。
```bash
python train/train_mini.py
```
训练产物保存在 `output/mini_model/`。
### LoRA 微调(需要 GPU)
```bash
python train/lora_finetune.py --model_size 8B
```
### 全参微调(需要 GPU)
```bash
python train/full_finetune.py --model_size 8B
```
### 推理
```python
from models.fusion_model import FusionModel, FusionConfig
config = FusionConfig(vocab_size=10000, hidden_size=256, num_hidden_layers=2)
model = FusionModel(config)
model.eval()
# 基础推理
input_ids = torch.tensor([[1, 2, 3]]) # 替换为实际 token IDs
with torch.no_grad():
outputs = model(input_ids)
```
或使用推理控制板:
```bash
python inference/dashboard.py
```
## 项目结构
```
fusion-llm/
├── models/ # 模型架构(SBLA注意力、Thinking Dial、FusionModel)
├── train/ # 训练脚本(LoRA微调、全参微调、DPO对齐、Mini模型)
├── data_pipeline/ # 数据处理(双语过滤、T-KD蒸馏)
├── inference/ # 推理部署(Dashboard、DyQuant量化、Ollama)
├── tokenizers/ # SentencePiece tokenizer 模型文件
├── configs/ # 配置文件模板(0.5B/1.5B/8B/14B/mini)
├── scripts/ # 工具脚本(tokenizer训练、数据去重)
├── tests/ # 单元测试
└── requirements.txt # Python 依赖
```
## 核心技术
### 1. SBLA 注意力机制
```python
# models/sbla_attention.py
class SlidingBlockLatentAttention(nn.Module):
"""
滑动分块潜注意力
- 块内:高秩潜空间(保留细节)
- 块间:极低秩潜向量(传递上下文)
"""
```
### 2. Thinking Dial 控制
```python
# 训练时标注 think_rank
{"text": "证明勾股定理", "think_rank": 3}
# 推理时通过 ThinkingDialProcessor 注入 thinking depth token
```
### 3. SentencePiece Tokenizer
项目使用 SentencePiece 训练专用 tokenizer,支持中英双语和 Fusion 特殊 token:
```bash
# 用自定义语料训练 tokenizer
python scripts/train_tokenizer.py --input data/tokenizer_train.txt --vocab_size 100000 --output tokenizers/
# 用内置 sample data 快速测试
python scripts/train_tokenizer.py --create_sample_data --input data/tokenizer_train.txt
python scripts/train_tokenizer.py --input data/tokenizer_train.txt --vocab_size 500 --output tokenizers/
```
## 许可证
本项目采用 **Apache License 2.0** - 详见 [LICENSE](LICENSE)
- 可商用
- 可修改
- 可私有部署
- 无附加条款
## 致谢
Fusion 项目受到以下开源项目的启发:
- [DeepSeek](https://github.com/deepseek-ai) - MLA 注意力机制
- [LLaMA](https://github.com/meta-llama/llama) - 基础 Transformer 架构
- [Qwen](https://github.com/QwenLM/Qwen) - 中文能力标杆
- [Transformers](https://github.com/huggingface/transformers) - 训练框架
- [DeepSpeed](https://github.com/microsoft/DeepSpeed) - 分布式训练
## 联系方式
- 项目作者:zhan1206
- GitHub:[@zhan1206](https://github.com/zhan1206)
- 问题反馈:[Issues](https://github.com/zhan1206/fusion-llm/issues)
---
**Fusion 是一场回归用户主权的运动。你不必依赖我们提供的权重,也不必上传任何隐私数据。你手中的代码和算力,足以锻造属于你自己的最强模型。**