v1.0 · 13.7M 参数 · 从随机初始化训练,未使用任何预训练权重

一个自己动手训练出来的
小型中文语言模型

Rian-Minichat-X1 是一套完全自研的说小语言模型技术栈:自训练 BPE 分词器、 自行实现的 RMSNorm / RoPE / SwiGLU 架构、预训练 + 监督微调两阶段流程。 它不做通用大模型做不到的事,但把「从零到能对话」的每一层都摊开给你看。

先说清楚能力边界。 这是一个 13.7M 参数、训练量约 1.6 亿 token 的微型模型。它擅长:按固定话术回答常见问题 (你是谁 / 能做什么 / 工作时间)、复述与改写短句、简单的中英对照。 它不擅长:复杂推理、代码生成、数学计算、以及任何需要事实准确性的场景。 涉及重要决策时请勿依赖它的输出。

它能做什么

按「一个内部小助手」的定位来训练,不追求通用性。

💬

固定话术问答

身份介绍、能力范围、使用方式等常见问题,回答风格稳定,不会跑题。

✍️

短句改写与复述

把一句话换个说法、改得更正式或更口语,长度控制在几句话以内。

🌐

简单中英对照

为短句给出基础英文表达,词汇量受词表限制,只做辅助参考。

🧩

多轮上下文

支持携带历史对话,上下文上限 512 token,超出后自动丢弃最老的轮次。

⚡

CPU 即可服务

55MB 的模型文件,一台普通云服务器就能跑起来,不需要 GPU。

🔌

OpenAI 兼容

接口与 OpenAI Chat Completions 一致,改一下 base_url 就能接入现有代码。

技术规格

全部超参都在 config.yaml 里,没有写死在代码中。

项目取值
架构decoder-only Transformer(Pre-Norm)
归一化 / 位置编码 / 前馈RMSNorm / RoPE / SwiGLU
层数 · 头数 · 隐藏维度6 · 6 · 384
参数量13,693,824(约 13.7M,词嵌入与输出层共享)
词表8,000(ByteLevel BPE,自训练,永不产生 <unk>)
上下文长度预训练 256 / 微调 512 token
训练方式预训练(下一词预测)+ SFT(只对助手回复计 loss)
模型体积约 55 MB(fp32 权重 + 内嵌分词器)

三行代码接入

直接复用 OpenAI 官方 SDK,只需要换 base_url 和 key。

python
from openai import OpenAI

client = OpenAI(
    base_url="https://api.example.com/v1",
    api_key="sk-rian-你的密钥",
)

resp = client.chat.completions.create(
    model="rian-minichat-x1",
    messages=[{"role": "user", "content": "你是谁?"}],
    temperature=0.7,
)
print(resp.choices[0].message.content)
还没有密钥?点这里申请,填写名字即可立即拿到, 每人默认每天 2000 次调用 / 20 万 token。