Commit 256b0b1f by wyt2000

docs: README.

parent beaacea5
......@@ -2,12 +2,95 @@
MiniCPM 训练流程记录
## 模型结构修改
## 模型修改
所有量化均按最后一维量化,见 `models/MiniCPM-quant/utils_quant.py` 中的 activation_quant 。
[TODO: 推理加速]
### KV
将 hidden_states 过 k_proj 和 v_proj 后得到的 key_states 和 value_states 量化到 4bit。[TODO:目前是 int4,需要支持 fp4]
### XW
X 量化到 int8,W 量化到 int4,然后计算 nn.functional.linear(X, W),相当于 XW^T,如 X 是 [1,1,1536],W 是 [3840, 1536],这样 dim=-1 就都是按累加维量化。
[TODO:lm_head 目前也按此方式量化,需要视 SVD 结果修改]
### lm_head SVD 分解
[TODO: qilei]
### Attention 有 norm
[TODO]
## 预训练
### 数据集
| 数据集 | 成分 | token 数量 | 文件大小 | 来源 |
| :--------------------------------: | :------------: | :--------: | :------: | :----------------------------------------------------------: |
| the-stack-v2-train-smol-ids-python | 纯 Python 代码 | 56B | 160G | 过滤 starcoder2 预训练数据中的 Python 代码 |
| RedPajama-Data-V2-EN-100B | 英语文章 | 100B | 555G | RedPajama 的 1T token 子集中标签为 en 的语料 |
| Proof-pile-2-arxiv | LaTeX 代码 | 29B | 25G | 从 RedPajama 过滤 [TODO: 去重] |
| Proof-pile-2-open-web-math | 数学文章 | 15B | 48G | 从网络爬取 |
| Proof-pile-2-algebraic-stack | 数学代码 | 11B | 7.2G | 手工规则过滤,Python 共 6B [TODO: 去重],定理证明语言共 1.6B |
[TODO: 确定比例,数学 70% (55B),代码 20% (15B),文章 10% (8B)]
### 训练框架
暂定 llama-factory(备选:OLMo)。
- 内存放不下所有数据,需要用 stream 一条一条地读取。
- 先用 tokenizer 将文本编码成 tensor 保存起来 [TODO: 代码需进一步重构,存 json -> 存 pt?],节约编码的时间。
- 训练中断恢复问题,确定一个 epoch 需要多少 step。
[TODO: yutong]
### 超参
[TODO]
## 微调
## 评测
### 数据集
| 数据集 | 成分 | 数量 |
| :----------------: | :----------------------------------------------------------: | :--: |
| evol-instruct-gpt4 | 各种语言的代码问题 | 110K |
| NuminaMath-CoT | 数学问题+文本回答 | 860K |
| MathInstruct-CoT | 数学问题+文本回答 | 188K |
| MathInstruct-PoT | 数学问题+代码回答 | 73K |
| infinitymath | 数学问题+代码回答(种子问题来自 gsm8k 等 benchmark 的训练集) | 101K |
[TODO: QA 任务?]
### 训练框架
暂定 aimo-progress-prize (备选 llama-factory / Magicoder)。[TODO: 测代码数据集训练效果]
### 超参
#### Code
同 WizardCoder-GPT4 ?
#### Math
同 NuminaMath-CoT ?
## 任务与评测
| Benchmark | 成分 | 测试框架 | 测试时间 |
| :-------: | :-----------------: | :----------------------------------------------------------: | :------: |
| HumanEval | 代码生成 | EvalPlus | |
| MBPP | 代码生成 | EvalPlus | |
| MMLU | QA,选择题 | lm_eval | |
| ARC | QA,选择题 | lm_eval | |
| GSM8K | 数学题,文本 / 程序 | DeepSeek [TODO: few shot] | 1h |
| MATH | 数学题,文本 / 程序 | DeepSeek | 5h |
| MiniF2F | 定理证明 | [TODO: DeepSeek 只能测 Isabellel,InternLM 可以测 Lean,但依赖很复杂,还需要联网] | |
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment