[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-80886":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":11,"openIssues":12,"contributorsCount":12,"subscribersCount":12,"size":12,"stars1d":12,"stars7d":12,"stars30d":12,"stars90d":12,"forks30d":12,"starsTrendScore":12,"compositeScore":12,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":13,"fork":13,"defaultBranch":14,"hasWiki":15,"hasPages":13,"topics":16,"createdAt":9,"pushedAt":9,"updatedAt":17,"readmeContent":18,"aiSummary":19,"trendingCount":12,"starSnapshotCount":12,"syncStatus":20,"lastSyncTime":21,"discoverSource":22},80886,"Finance-DeepSeek","ShaneLiu04\u002FFinance-DeepSeek","ShaneLiu04","基于 DeepSeek-R1-Distill-Qwen-1.5B 的金融领域推理增强问答系统",null,"Python",34,0,false,"main",true,[],"2026-06-12 02:04:08","\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-3.10%2B-blue?logo=python&logoColor=white\" alt=\"Python 3.10+\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPyTorch-2.4%2B-ee4c2c?logo=pytorch&logoColor=white\" alt=\"PyTorch\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCUDA-12.1-green?logo=nvidia&logoColor=white\" alt=\"CUDA 12.1\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg\" alt=\"License: MIT\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FFastAPI-0.110%2B-009688?logo=fastapi&logoColor=white\" alt=\"FastAPI\">\n\u003C\u002Fp>\n\n\u003Ch1 align=\"center\">Finance-DeepSeek\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n  \u003Cb>基于 DeepSeek-R1 蒸馏的金融领域推理增强问答系统\u003C\u002Fb>\u003Cbr>\n  \u003Ci>RAG + QLoRA + 结构化推理链解析 —— 单张 RTX 4060 (8GB) 可完成训练与部署\u003C\u002Fi>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"#-快速开始\">🚀 快速开始\u003C\u002Fa> •\n  \u003Ca href=\"#-架构概览\">🏗️ 架构\u003C\u002Fa> •\n  \u003Ca href=\"#-api-文档\">📡 API\u003C\u002Fa> •\n  \u003Ca href=\"#-部署方式\">🐳 部署\u003C\u002Fa> •\n  \u003Ca href=\"#-评测结果\">📊 评测\u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\n## 📌 项目简介\n\nFinance-DeepSeek 是一款面向**金融领域**的生产级问答系统，基于 `DeepSeek-R1-Distill-Qwen-1.5B` 构建。该模型由 DeepSeek-R1 671B 满血版经知识蒸馏得到，原生具备多步数值推理与自我验证能力。\n\n系统通过三大核心模块实现金融场景下的高精度问答：\n\n1. **QLoRA 领域对齐微调** —— 4-bit NF4 量化 + LoRA rank 128，在单卡 RTX 4060 上完成金融领域适配\n2. **FAISS 稠密检索增强 (RAG)** —— `finance-embeddings-investopedia` 专业金融 Embedding + Top-8 上下文注入，抑制幻觉\n3. **结构化推理链解析** —— 自动提取 `\u003Cthink>` 推理过程与 `\u003Canswer>` 最终答案，支持 SSE 流式\"边想边答\"\n\n> 💡 **核心设计哲学**：不再\"教模型推理\"，而是\"规范模型已有的推理能力并注入金融领域知识\"。\n\n---\n\n## ✨ 项目亮点\n\n### 1. 轻量级推理蒸馏适配\n- 基座模型：`DeepSeek-R1-Distill-Qwen-1.5B`（Qwen2.5-Math-1.5B 架构，经 671B 蒸馏）\n- 量化方案：4-bit NF4 + double quant + bf16 混合精度计算\n- **基座仅占约 1GB 显存**，为训练与推理留出充裕空间\n- 训练峰值 ≤ 6.5GB，推理峰值 ≤ 4GB，完美适配消费级显卡\n\n### 2. 金融专用 RAG 检索\n- **Embedding**：`FinLang\u002Ffinance-embeddings-investopedia`（金融领域专用，dim=768）\n- **备选回退**：`yiyanghkust\u002Ffinbert-tone`（FinBERT 金融情感模型）\n- **索引引擎**：FAISS 自动选择 `IndexFlatIP`（\u003C5万条）或 `IndexHNSWFlat`（≥5万条）\n- **增量更新**：支持 `add()` 实时添加新文档，无需全量重建\n- Prompt 严格约束：\"若材料不足以回答，请明确说明'根据现有资料无法确定'\"\n\n### 3. 原生多步数值推理可视化\n- 模型输出自带 `\u003Cthink>...\u003C\u002Fthink>` 结构化推理链\n- 系统自动解析为 `reasoning_steps: List[str]`\n- SSE 流式输出：**先传输思考过程，再传输最终答案**\n- 前端可实现\"打字机效果\"展示模型思维过程\n\n### 4. 教师模型蒸馏流水线\n- 支持调用 **DeepSeek-R1 API**（`deepseek-reasoner`）生成高质量推理链\n- 自动回退到本地 **DeepSeek-R1-Distill-Qwen-7B**\n- 训练数据内置数值一致性校验（1% 容差），过滤推理链与答案矛盾的样本\n\n### 5. 三种推理模式动态切换\n\n| 模式 | 说明 | 适用场景 |\n|------|------|---------|\n| `closed-book` | 纯模型自身知识 | 通用金融概念解释 |\n| `rag` | RAG 检索增强 | 需要引用外部资料的 factual 问答 |\n| `rag+reasoning` | RAG + 结构化推理链解析 | 数值计算、比率分析、需要可解释性的场景 |\n\n### 6. NLI 级 Faithfulness 评测\n- 使用 `mDeBERTa-v3-base-xnli-multilingual-nli-2mil7` 判断生成内容与上下文的**蕴含关系**\n- 替代粗糙的\"数字重叠\"启发式，评测结果更具可信度\n- 同时支持 Recall@K、MRR、EM、Numeric EM、BLEU-4、ROUGE-L、Chain Completeness\n\n### 7. 生产级安全与稳定性\n- ✅ 输入敏感词过滤（色情、赌博、洗钱、内幕交易等）\n- ✅ temperature 硬封顶 0.7，防止金融场景幻觉\n- ✅ Token 级精确截断（`max_input_length=1024`）\n- ✅ 单并发 semaphore 保护，适配 RTX 4060 单卡\n\n---\n\n## 🏗️ 架构概览\n\n```\n┌─────────────────────────────────────────────────────────────────┐\n│                         用户请求层                               │\n│   ┌──────────────┐  ┌──────────────┐  ┌──────────────────────┐  │\n│   │  Closed-Book │  │     RAG      │  │   RAG + Reasoning    │  │\n│   └──────┬───────┘  └──────┬───────┘  └──────────┬───────────┘  │\n└──────────┼────────────────┼─────────────────────┼──────────────┘\n           │                │                     │\n           ▼                ▼                     ▼\n┌─────────────────────────────────────────────────────────────────┐\n│                      FastAPI 服务层                              │\n│  \u002Fv1\u002Fchat\u002Fcompletions  │  \u002Fv1\u002Fingest  │  \u002Fv1\u002Fhealth            │\n│  • OpenAI-compatible   │  • 增量索引   │  • GPU\u002F模型\u002F索引状态    │\n│  • SSE 流式输出         │  • 安全过滤   │                        │\n└─────────────────────────────────────────────────────────────────┘\n           │                │                     │\n           ▼                ▼                     ▼\n┌─────────────────────────────────────────────────────────────────┐\n│                      推理引擎 (InferenceEngine)                  │\n│  ┌──────────────┐  ┌──────────────┐  ┌──────────────────────┐   │\n│  │  Prompt 拼接  │  │  model.gen   │  │ ChainParser + Validator│ │\n│  │  • Top-8 检索 │  │  • 4-bit QL  │  │  • \u003Cthink> 提取     │    │\n│  │  • 模板注入   │  │  • bf16 计算 │  │  • 数值一致性校验     │    │\n│  └──────────────┘  └──────────────┘  └──────────────────────┘   │\n└─────────────────────────────────────────────────────────────────┘\n           │\n           ▼\n┌─────────────────────────────────────────────────────────────────┐\n│                      数据与模型层                                │\n│  ┌──────────────┐  ┌──────────────┐  ┌──────────────────────┐  │\n│  │ DeepSeek-R1  │  │  LoRA Adapter│  │  FAISS Index         │  │\n│  │ Distill-1.5B │  │  (QLoRA r=128)│  │  • finance-embedding │  │\n│  │ 4-bit 量化   │  │  金融领域对齐 │  │  • 768 dim           │  │\n│  └──────────────┘  └──────────────┘  └──────────────────────┘  │\n└─────────────────────────────────────────────────────────────────┘\n```\n\n---\n\n## 📦 未包含的文件与获取方式\n\n由于 GitHub 单文件 100MB 限制及环境独立性原则，以下文件**未包含在仓库中**，但你只需运行对应脚本即可自动生成或下载：\n\n| 缺失文件\u002F目录 | 原因 | 大小 | 获取方式 |\n|-------------|------|------|---------|\n| `models\u002Fbase\u002F**\u002F*.safetensors` | 基座模型权重过大 | ~3.5 GB | **首次运行时自动从 HuggingFace 下载**（`deepseek-ai\u002FDeepSeek-R1-Distill-Qwen-1.5B`） |\n| `models\u002Fadapters\u002F**\u002Fadapter_model.safetensors` | LoRA 适配器权重 | ~590 MB | 方式①：运行 `python run_training.py` 自行训练  \u003Cbr>方式②：从 HuggingFace 下载预训练 adapter（如有发布） |\n| `data\u002Fcorpus\u002Ffaiss_index.index` | FAISS 向量索引 | ~15 KB（随语料增长） | 运行 **`python run_data_gen.py`** 自动重建 |\n| `data\u002Fcorpus\u002Fchunk_metadata.json` | Chunk 元数据 | ~1 KB | 同上，随索引一起生成 |\n| `data\u002Ffinetune\u002F*.jsonl` | SFT 训练数据 | ~500 KB | 同上，`run_data_gen.py` 自动生成 Alpaca + FinQA 数据 |\n| `venv\u002F` | Python 虚拟环境 | ~5 GB | 自行创建：`python -m venv venv` |\n| `evaluation\u002Fresults\u002F` | 评测输出图表 | 运行时生成 | 运行 `python run_benchmark.py` 自动生成 |\n\n### 一键准备所有缺失文件\n\n```bash\n# 1. 创建虚拟环境\npython -m venv venv\n# Linux\u002FmacOS: source venv\u002Fbin\u002Factivate\n# Windows:     venv\\Scripts\\activate\n\n# 2. 安装依赖\npip install -r requirements.txt\n\n# 3. 一键生成数据 + 索引（自动下载 Embedding 模型和 tokenizer）\npython run_data_gen.py\n\n# 4. （可选）训练 LoRA Adapter\npython run_training.py\n```\n\n完成以上步骤后，所有缺失文件均已就位，可直接启动 API 服务。\n\n---\n\n## 🚀 快速开始\n\n### 环境要求\n\n| 项目 | 要求 |\n|---|---|\n| GPU | NVIDIA RTX 4060 8GB 或同等级（支持 CUDA 12.x） |\n| 显存峰值（训练） | ≤ 6.5 GB |\n| 显存峰值（推理） | ≤ 4 GB |\n| 系统内存 | ≥ 16 GB 推荐 |\n| 磁盘空间 | ≥ 20 GB（含模型、索引与依赖） |\n\n### 1. 克隆与安装\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FShaneLiu04\u002FFinance-DeepSeek.git\ncd Finance-DeepSeek\u002Ffinance_deepseek\n\npython -m venv venv\n# Linux\u002FmacOS\nsource venv\u002Fbin\u002Factivate\n# Windows\nvenv\\Scripts\\activate\n\npip install -r requirements.txt\n```\n\n### 2. 一键数据准备\n\n```bash\n# 生成 SFT 训练数据 + 构建 FAISS 索引\npython run_data_gen.py\n```\n\n> 首次运行会自动：\n> - 下载 `FinLang\u002Ffinance-embeddings-investopedia`（约 500MB）\n> - 生成 500 条 Alpaca 基础数据 + 3 条 FinQA Demo 数据\n> - 构建 5 条演示语料的 FAISS 索引\n\n**（可选）接入教师模型蒸馏**：\n```bash\nexport DEEPSEEK_API_KEY=\"sk-your-api-key-here\"  # Linux\u002FmacOS\nset DEEPSEEK_API_KEY=sk-your-api-key-here         # Windows\npython run_data_gen.py\n```\n\n### 3. 启动 API 服务\n\n```bash\n# Linux\u002FmacOS\nPYTHONPATH=\"..:.\" python run_api.py\n\n# Windows\nset PYTHONPATH=..;.\npython run_api.py\n```\n\n服务将在 `http:\u002F\u002Flocalhost:8000` 启动。\n\n### 4. 验证部署\n\n```bash\ncurl http:\u002F\u002Flocalhost:8000\u002Fv1\u002Fhealth\n```\n\n期望返回：\n```json\n{\n  \"status\": \"ok\",\n  \"model_loaded\": true,\n  \"adapter_loaded\": true,\n  \"index_loaded\": true,\n  \"gpu_memory_used_gb\": 2.5,\n  \"gpu_memory_total_gb\": 8.0,\n  \"index_doc_count\": 5\n}\n```\n\n---\n\n## 📡 API 文档\n\n### 核心端点\n\n| 端点 | 方法 | 说明 |\n|------|------|------|\n| `\u002F` | GET | 系统信息与端点列表 |\n| `\u002Fv1\u002Fhealth` | GET | 健康检查（GPU 内存、模型\u002Fadapter\u002F索引状态） |\n| `\u002Fv1\u002Fchat\u002Fcompletions` | POST | OpenAI-compatible 对话接口 |\n| `\u002Fv1\u002Fingest` | POST | 实时文档摄入（分块、Embedding、增量索引） |\n| `\u002Fdocs` | GET | FastAPI 自动 Swagger UI |\n\n### `POST \u002Fv1\u002Fchat\u002Fcompletions`\n\n**Request Body**：\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| `messages` | `List[ChatMessage]` | ✅ | 对话历史，`[{role:\"user\", content:\"...\"}]` |\n| `mode` | `string` | ❌ | `\"closed-book\"` \u002F `\"rag\"` \u002F `\"rag+reasoning\"`（默认 `rag+reasoning`） |\n| `stream` | `bool` | ❌ | 是否 SSE 流式返回（默认 `false`） |\n| `temperature` | `float` | ❌ | 采样温度，范围 `[0.0, 0.7]`（默认 `0.6`） |\n| `top_p` | `float` | ❌ | nucleus sampling（默认 `0.9`） |\n| `max_tokens` | `int` | ❌ | 最大生成 token 数 `[1, 2048]`（默认 `1024`） |\n\n**cURL 示例**：\n\n```bash\ncurl -X POST http:\u002F\u002Flocalhost:8000\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"messages\": [{\"role\": \"user\", \"content\": \"某公司股票价格 80 元，EPS 为 4 元，市盈率是多少？\"}],\n    \"mode\": \"rag+reasoning\",\n    \"stream\": false,\n    \"temperature\": 0.6\n  }'\n```\n\n**Response 示例**（`rag+reasoning` 模式）：\n\n```json\n{\n  \"id\": \"chatcmpl-a1b2c3d4\",\n  \"object\": \"chat.completion\",\n  \"choices\": [\n    {\n      \"index\": 0,\n      \"message\": {\n        \"role\": \"assistant\",\n        \"content\": \"\u003Cthink>\\n步骤1: 识别已知条件：股价 = 80 元，EPS = 4 元。\\n步骤2: 应用市盈率公式：P\u002FE = 80 \u002F 4 = 20。\\n步骤3: 验证：20 倍属于合理估值区间。\\n\u003C\u002Fthink>\\n\u003Canswer>\\n20\\n\u003C\u002Fanswer>\"\n      },\n      \"finish_reason\": \"stop\"\n    }\n  ]\n}\n```\n\n### SSE 流式调用（推理链可视化）\n\n```python\nimport requests\n\nresp = requests.post(\n    \"http:\u002F\u002Flocalhost:8000\u002Fv1\u002Fchat\u002Fcompletions\",\n    json={\n        \"messages\": [{\"role\": \"user\", \"content\": \"投资 10000 元，年利率 5%，3 年复利本利和？\"}],\n        \"mode\": \"rag+reasoning\",\n        \"stream\": True,\n        \"temperature\": 0.6,\n    },\n    stream=True,\n)\n\nfor line in resp.iter_lines():\n    if line:\n        print(line.decode(\"utf-8\"))\n```\n\n输出格式：\n```\ndata: 步骤1: 识别参数...\ndata: 步骤2: 代入公式...\n...\nevent: parsed\ndata: {\"reasoning_steps\": [...], \"final_answer\": \"11576.25\", ...}\ndata: [DONE]\n```\n\n### `POST \u002Fv1\u002Fingest`（文档摄入）\n\n```bash\ncurl -X POST http:\u002F\u002Flocalhost:8000\u002Fv1\u002Fingest \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"documents\": [\n      {\n        \"text\": \"央行降准 0.5 个百分点，释放长期资金约 1 万亿元...\",\n        \"source_url\": \"https:\u002F\u002Fexample.com\u002Fnews\u002F1\",\n        \"category\": \"货币政策\",\n        \"title\": \"央行降准\"\n      }\n    ]\n  }'\n```\n\n返回：\n```json\n{\"status\": \"success\", \"chunks_indexed\": 2, \"total_indexed\": 7}\n```\n\n---\n\n## 🐳 部署方式\n\n### 方式一：本地部署（推荐开发调试）\n\n```bash\ncd finance_deepseek\npython run_api.py\n```\n\n### 方式二：Docker 部署\n\n```bash\ndocker-compose up --build\n```\n\n`docker-compose.yml` 已配置：\n- NVIDIA CUDA 12.1 Runtime 基础镜像\n- GPU 资源预留\n- 健康检查自动重启\n- 端口映射 `8000:8000`\n\n### 方式三：QLoRA 微调训练\n\n```bash\n# 1. 准备数据\npython run_data_gen.py\n\n# 2. 启动训练\npython run_training.py\n```\n\n训练产物：\n- `models\u002Fadapters\u002Ffinance_qlora\u002Ffinal_adapter\u002Fadapter_model.safetensors`\n- `models\u002Fadapters\u002Ffinance_qlora\u002Ffinal_adapter\u002Fadapter_config.json`\n\n> 训练配置（`config.yaml`）：\n> - LoRA: r=128, alpha=32, target_modules=[q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj]\n> - Batch: per_device=2, gradient_accumulation=2（有效 batch=4）\n> - Epochs: 3, LR: 1e-4, Scheduler: cosine, Optimizer: paged_adamw_8bit\n\n---\n\n## 📊 评测结果\n\n一键执行消融实验：\n\n```bash\npython run_benchmark.py\n```\n\n输出：\n- 终端 Markdown 表格\n- `evaluation\u002Fresults\u002Fablation_comparison.png`（柱状图可视化）\n- `evaluation\u002Fresults\u002Fablation_results.json`\n\n### 核心指标\n\n| 指标 | 目标值 | 说明 |\n|------|--------|------|\n| **Faithfulness@8** | ≥ 72% | 事实性问答严格保真度（NLI 模型判定） |\n| **Exact Match (EM)** | ≥ 15% | 字符串完全匹配率 |\n| **Numeric EM** | ≥ 65% | 数值答案相对误差 1% 内匹配率 |\n| **推理延迟** | \u003C 3s | 非流式单请求，RTX 4060 |\n| **训练显存峰值** | ≤ 6.5GB | 单卡 RTX 4060 安全余量 |\n| **推理显存峰值** | ≤ 4GB | 单卡 RTX 4060 安全余量 |\n\n---\n\n## 📁 项目结构\n\n```\nFinance-DeepSeek\u002F\n├── finance_deepseek\u002F\n│   ├── api\u002F\n│   │   ├── main.py              # FastAPI 服务入口（lifespan、端点、安全过滤）\n│   │   ├── schemas.py           # Pydantic 模型（OpenAI-compatible）\n│   │   ├── inference.py         # 推理引擎（3 模式路由、SSE 流式、Token 截断）\n│   │   └── dependencies.py      # 全局单例（AppState）\n│   ├── rag\u002F\n│   │   ├── indexer.py           # FAISS 索引构建 + 增量 add()\n│   │   ├── retriever.py         # DenseRetriever（Top-K + 可选重排）\n│   │   └── embeddings.py        # EmbeddingProvider（金融模型 + 自动回退）\n│   ├── reasoning\u002F\n│   │   ├── chain_parser.py      # \u003Cthink>\u002F\u003Canswer> 解析引擎\n│   │   ├── validator.py         # 推理链-答案数值一致性校验\n│   │   └── test_chain_parser.py # 单元测试\n│   ├── training\u002F\n│   │   ├── qlora_trainer.py     # QLoRA SFT 训练入口\n│   │   └── data_generator.py    # 教师模型蒸馏数据生成（DeepSeek-R1 API）\n│   ├── evaluation\u002F\n│   │   ├── metrics.py           # EM \u002F Numeric EM \u002F Faithfulness@K \u002F BLEU \u002F ROUGE\n│   │   └── benchmark.py         # 消融实验 + matplotlib 可视化\n│   ├── data\u002F\n│   │   ├── corpus\u002F              # 语料分块 + FAISS 索引 + chunk_metadata\n│   │   └── finetune\u002F            # SFT 训练数据（Alpaca + FinQA）\n│   ├── models\u002F\n│   │   ├── base\u002F                # DeepSeek-R1-Distill-Qwen-1.5B（自动下载）\n│   │   └── adapters\u002F            # LoRA Adapter 输出\n│   ├── config.yaml              # 全局 YAML 配置\n│   ├── requirements.txt         # Python 依赖\n│   ├── run_api.py               # 一键启动 API\n│   ├── run_training.py          # 一键启动训练\n│   ├── run_data_gen.py          # 一键生成数据 + 索引\n│   ├── run_benchmark.py         # 一键评测\n│   ├── test_deploy.py           # 部署验证脚本\n│   ├── Dockerfile               # CUDA 12.1 Runtime 镜像\n│   └── docker-compose.yml       # Docker Compose 编排\n└── README.md                    # 本文档\n```\n\n---\n\n## 🛠️ 技术栈\n\n| 层级 | 技术选型 |\n|------|---------|\n| **基座模型** | `deepseek-ai\u002FDeepSeek-R1-Distill-Qwen-1.5B` |\n| **微调框架** | `transformers` + `peft` + `trl` + `bitsandbytes` (QLoRA) |\n| **训练精度** | 4-bit NF4 + bfloat16 |\n| **向量检索** | `faiss-gpu` + `sentence-transformers` |\n| **Embedding** | `FinLang\u002Ffinance-embeddings-investopedia`（主选）\u002F `finbert-tone`（备选） |\n| **NLI 评测** | `MoritzLaurer\u002FmDeBERTa-v3-base-xnli-multilingual-nli-2mil7` |\n| **API 服务** | `FastAPI` + `Uvicorn` + `SSE` 流式输出 |\n| **配置管理** | YAML 驱动 |\n| **容器化** | `Docker` + `docker-compose` |\n\n---\n\n## 📌 路线图\n\n- [x] QLoRA 领域微调框架\n- [x] FAISS 稠密检索 + 增量更新\n- [x] 结构化推理链解析 + SSE 流式\n- [x] 教师模型蒸馏流水线（DeepSeek-R1 API）\n- [x] NLI 级 Faithfulness 评测\n- [x] 生产安全过滤 + Token 截断\n- [ ] 接入真实 SEC 10-K \u002F 央行政策语料库\n- [ ] cross-encoder 二阶段精排（rerank）\n- [ ] 多轮对话记忆与上下文压缩\n- [ ] vLLM \u002F TGI 推理加速\n- [ ] Gradio \u002F Streamlit 前端演示界面\n\n---\n\n## 🤝 贡献指南\n\n欢迎提交 Issue 和 PR！\n\n1. Fork 本仓库\n2. 创建功能分支：`git checkout -b feature\u002Famazing-feature`\n3. 提交更改：`git commit -m 'Add amazing feature'`\n4. 推送分支：`git push origin feature\u002Famazing-feature`\n5. 提交 Pull Request\n\n请确保代码遵循 PEP8，关键函数包含 Docstring，并补充相应单元测试。\n\n---\n\n## 📄 许可证\n\n本项目采用 [MIT License](LICENSE) 开源协议。\n\n---\n\n## 🙏 致谢\n\n- [DeepSeek-AI \u002F DeepSeek-R1-Distill-Qwen](https:\u002F\u002Fhuggingface.co\u002Fdeepseek-ai\u002FDeepSeek-R1-Distill-Qwen-1.5B) — 强大的推理蒸馏基座\n- [Qwen2.5-Math](https:\u002F\u002Fhuggingface.co\u002FQwen) — 优秀的数学推理能力\n- [Hugging Face PEFT \u002F TRL](https:\u002F\u002Fgithub.com\u002Fhuggingface) — 高效微调生态\n- [FAISS](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Ffaiss) — 高性能向量检索\n- [FinLang \u002F finance-embeddings-investopedia](https:\u002F\u002Fhuggingface.co\u002FFinLang) — 金融领域专用 Embedding\n\n---\n\n\u003Cp align=\"center\">\n  \u003Ci>如果本项目对您有帮助，请点亮 ⭐ Star，让更多人发现它！\u003C\u002Fi>\n\u003C\u002Fp>\n","Finance-DeepSeek 是一个专为金融领域设计的推理增强问答系统，基于 DeepSeek-R1-Distill-Qwen-1.5B 构建。该系统通过 QLoRA 领域对齐微调、FAISS 稠密检索增强（RAG）和结构化推理链解析三大核心模块实现高精度问答。它支持单张 RTX 4060 (8GB) 的训练与部署，采用 4-bit NF4 量化和混合精度计算，确保了轻量级推理。此外，系统内置数值一致性校验，并提供三种动态切换的推理模式，适用于不同复杂度的金融问题解答场景。同时，项目还强调了生产级的安全性和稳定性，包括输入敏感词过滤、温度控制等措施，以防止不准确或有害内容的生成。",2,"2026-06-11 04:02:41","CREATED_QUERY"]