---
title: IRIXEN-NanoRAG-V1
canonical_url: "https://www.modelscope.cn/models/lanche816/IRIXEN-NanoRAG-V1"
md_url: "https://www.modelscope.cn/models/lanche816/IRIXEN-NanoRAG-V1.md"
repository: lanche816/IRIXEN-NanoRAG-V1
chinese_name: IRIXEN-NanoRAG-V1
last_updated: 2026-10-31
license: apache-2.0
pipeline_tag: text-generation
tasks:
  - text-generation
model_type:
  - irixen
architectures:
  - IRIXEN60M
library_name:
  - pytorch
language:
  - zh
  - en
downloads: 0
stars: 0
tags:
  - tiny-llm
  - 60m
  - rag
  - chinese
  - bilingual
  - irixen
---

# IRIXEN-NanoRAG-V1

> IRIXEN-NanoRAG-V1 - lanche816 在 ModelScope 开源的模型。一个从零训练的 60M 参数中英双语对话模型，专为 RAG（检索增强生成）场景设计。

lanche816/IRIXEN-NanoRAG-V1 是 ModelScope 魔搭社区上的text-generation模型，采用 apache-2.0 许可。

- **Repository**: lanche816/IRIXEN-NanoRAG-V1
- **License**: apache-2.0
- **Tasks**: text-generation
- **Tags**: tiny-llm, 60m, rag, chinese, bilingual, irixen
- **Downloads**: 0
- **Stars**: 0
- **Last updated**: 2026-10-31

Source: https://www.modelscope.cn/models/lanche816/IRIXEN-NanoRAG-V1

---

# IRIXEN-NanoRAG-V1

**一个从零训练的 60M 参数中英双语对话模型，专为 RAG（检索增强生成）场景设计。**

> 模型负责"会怎么说话"，RAG 负责"知道什么"。知识可随时更新，模型无需重训。

## 模型简介

IRIXEN-NanoRAG-V1 由 IRIXEN 团队从零训练，基于 Transformer（GQA + SwiGLU + RoPE + RMSNorm），总参数量约 **64M**，中英双语，上下文 1024。

它不是"小 ChatGPT"，而是**面向 RAG 的轻量语言接口**。

| 角色 | 职责 |
|---|---|
| **模型** | 对话格式、语言组织、身份识别 |
| **RAG** | 所有事实性知识 |
| **设计理念** | 解耦"语言能力"与"知识记忆" |

## 架构

| 参数 | 值 |
|---|---|
| 总参数量 | 64M |
| 层数 | 8 |
| 隐藏维度 | 768 |
| 注意力 | GQA（8 Q 头 / 4 KV 头，head_dim=96） |
| 扩展注意力 | VHA（训练时 8→16 虚拟头，推理可折叠回 GQA） |
| FFN | SwiGLU，intermediate=2432 |
| 位置编码 | RoPE，θ=10000 |
| 归一化 | RMSNorm，eps=1e-6 |
| 词表 | BPE 6400，中英双语 |
| 上下文 | 1024 tokens |

## 训练

### 数据

- **预训练**：Matrix（Apache 2.0），中英文各 30 万条，约 **300M tokens**
- **SFT**：208 条身份与对话样本

### 过程

| 阶段 | 配置 | 结果 |
|---|---|---|
| 预训练 | AdamW, lr=3e-4, batch=16, seq=512, 1 epoch | loss **3.576** |
| SFT | AdamW, lr=2e-5, batch=4, 3 epoch | loss 0.007（过拟合） |

### 硬件

AMD ROCm 7.2 + gfx1100，BF16，预训练约 **2.5 小时**。

## 能力与边界

### 擅长

- 中文/英文句法生成（输出通顺句子）
- 身份识别（稳定回答"我是 IRIXEN-NanoRAG-V1"）
- 配合 RAG 提供准确事实回答

### 不擅长

- 事实知识记忆（"北京是首都"这类常识答不对）
- 复杂推理、多轮对话跟踪
- 自由生成时的语义准确性（60M 的物理上限）

### 诚实定位

**60M 参数量下，模型只学会句法，没学会语义。** 这是数学上限，不是训练问题。正确用法是 **RAG 直出**：检索到答案直接返回，模型不参与内容生成。
## 使用

### 加载模型

```python
import torch
from model import IRIXEN60M, Config
from tokenizers import Tokenizer

cfg = Config()
model = IRIXEN60M(cfg)
model.load_state_dict(torch.load("pytorch_model.bin", map_location="cpu"))
model.eval()

tok = Tokenizer.from_file("tokenizer.json")
ids = tok.encode("中国的首都是").ids
logits = model(torch.tensor([ids]))
print(tok.decode([logits[0, -1].argmax().item()]))
```

### 配合 RAG（推荐）

```python
from sentence_transformers import SentenceTransformer
import faiss, numpy as np

embedder = SentenceTransformer("BAAI/bge-small-zh-v1.5")
KNOWLEDGE = ["北京是中国的首都。", "人工智能是计算机科学的分支。"]
emb = embedder.encode(KNOWLEDGE, normalize_embeddings=True).astype("float32")
index = faiss.IndexFlatIP(emb.shape[1])
index.add(emb)

def retrieve(query, threshold=0.55):
    qv = embedder.encode(["为这个句子生成表示以用于检索相关文章：" + query],
                         normalize_embeddings=True).astype("float32")
    s, i = index.search(qv, 1)
    if float(s[0][0]) < threshold:
        return None
    return KNOWLEDGE[i[0][0]]
```

**推荐配置**：BGE-small-zh-v1.5 + FAISS IndexFlatIP，阈值 0.50–0.58（按知识库规模校准）。

## 评测

| 任务 | 结果 |
|---|---|
| RAG 知识问答（7 条演示） | 7/7 |
| RAG 产品层检索（15 条校准） | 15/15 |
| RAG 百科层检索（10 条校准） | 9/10 |
| 自由生成（20 条开放问题） | ~20% 语义正确 |

**结论**：RAG 直出模式知识准确率 **100%**，自由生成因 60M 容量无法稳定。

## 许可证

Apache 2.0。允许商用、修改、闭源分发，需保留版权声明。

**训练数据合规**：
- Matrix：Apache 2.0
- 自训练权重：无第三方协议约束
- 嵌入模型 BGE-small-zh-v1.5：MIT

## 引用

```bibtex
@misc{irixen-nanorag-v1,
  title={IRIXEN-NanoRAG-V1: A 60M Bilingual Dialogue Model for RAG},
  author={IRIXEN Team},
  year={2026},
}
```

## 致谢

- Matrix 数据集（m-a-p）
- BGE 嵌入模型（BAAI）
- FAISS（Meta）
- Tokenizers（HuggingFace）
