Update README.md
Browse files
README.md
CHANGED
|
@@ -14,10 +14,18 @@ tags:
|
|
| 14 |
- text-generation-inference
|
| 15 |
---
|
| 16 |
|
| 17 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
|
| 19 |
# 一、👋介绍
|
| 20 |
-
|
| 21 |
现在的大语言模型的参数往往较大,消费级电脑单纯做推理都比较慢,更别说想自己从头开始训练一个模型了。本项目的目标是整理生成式语言模型的训练流程,包括数据清洗、tokenizer训练、模型预训练、SFT指令微调、RLHF优化等。
|
| 22 |
|
| 23 |
ChatLM-mini-Chinese为中文对话小模型,模型参数只有0.2B(算共享权重约210M),可以在最低4GB显存的机器进行预训练(`batch_size=1`,`fp16`或者` bf16`),`float16`加载、推理最少只需要512MB显存。
|
|
@@ -27,7 +35,7 @@ ChatLM-mini-Chinese为中文对话小模型,模型参数只有0.2B(算共享
|
|
| 27 |
- 使用`Huggingface`NLP框架,包括`transformers`、`accelerate`、`trl`、`peft`等。
|
| 28 |
- 自实现`trainer`,支持单机单卡、单机多卡进行预训练、SFT微调。训练过程中支持在任意位置停止,及在任意位置继续训练。
|
| 29 |
- 预训练:整合为端到端的`Text-to-Text`预训练,非`mask`掩码预测预训练。
|
| 30 |
-
-
|
| 31 |
- tokenizer多进程词频统计,支持`sentencepiece`、`huggingface tokenizers`的tokenizer训练;
|
| 32 |
- 预训练支持任意位置断点,可从断点处继续训练;
|
| 33 |
- 大数据集(GB级别)流式加载、支持缓冲区数据打乱,不利用内存、硬盘作为缓存,有效减少内存、磁盘占用。配置`batch_size=1, max_len=320`下,最低支持在16GB内存+4GB显存的机器上进行预训练;
|
|
@@ -43,6 +51,12 @@ ChatLM-mini-Chinese为中文对话小模型,模型参数只有0.2B(算共享
|
|
| 43 |
|
| 44 |
🟢**最近更新**
|
| 45 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 46 |
<details close>
|
| 47 |
<summary> <b>2023-12-29</b> </summary>
|
| 48 |
- 更新模型代码(权重不变),可以直接使用`AutoModelForSeq2SeqLM.from_pretrained(...)`加载模型使用。<br/>
|
|
|
|
| 14 |
- text-generation-inference
|
| 15 |
---
|
| 16 |
|
| 17 |
+
<div align="center">
|
| 18 |
+
|
| 19 |
+
# 中文对话0.2B小模型 ChatLM-Chinese-0.2B
|
| 20 |
+
|
| 21 |
+
中文 | [English](https://github.com/charent/ChatLM-mini-Chinese/blob/main/README.en.md)
|
| 22 |
+
|
| 23 |
+
</div>
|
| 24 |
+
|
| 25 |
+
最新的readme文档请移步Github仓库[ChatLM-mini-Chinese](https://github.com/charent/ChatLM-mini-Chinese)
|
| 26 |
|
| 27 |
# 一、👋介绍
|
| 28 |
+
|
| 29 |
现在的大语言模型的参数往往较大,消费级电脑单纯做推理都比较慢,更别说想自己从头开始训练一个模型了。本项目的目标是整理生成式语言模型的训练流程,包括数据清洗、tokenizer训练、模型预训练、SFT指令微调、RLHF优化等。
|
| 30 |
|
| 31 |
ChatLM-mini-Chinese为中文对话小模型,模型参数只有0.2B(算共享权重约210M),可以在最低4GB显存的机器进行预训练(`batch_size=1`,`fp16`或者` bf16`),`float16`加载、推理最少只需要512MB显存。
|
|
|
|
| 35 |
- 使用`Huggingface`NLP框架,包括`transformers`、`accelerate`、`trl`、`peft`等。
|
| 36 |
- 自实现`trainer`,支持单机单卡、单机多卡进行预训练、SFT微调。训练过程中支持在任意位置停止,及在任意位置继续训练。
|
| 37 |
- 预训练:整合为端到端的`Text-to-Text`预训练,非`mask`掩码预测预训练。
|
| 38 |
+
- 开源所有数据清洗(如规范化、基于mini_hash的文档去重等)、数据集构造、数据集加载优化等流程;
|
| 39 |
- tokenizer多进程词频统计,支持`sentencepiece`、`huggingface tokenizers`的tokenizer训练;
|
| 40 |
- 预训练支持任意位置断点,可从断点处继续训练;
|
| 41 |
- 大数据集(GB级别)流式加载、支持缓冲区数据打乱,不利用内存、硬盘作为缓存,有效减少内存、磁盘占用。配置`batch_size=1, max_len=320`下,最低支持在16GB内存+4GB显存的机器上进行预训练;
|
|
|
|
| 51 |
|
| 52 |
🟢**最近更新**
|
| 53 |
|
| 54 |
+
<details close>
|
| 55 |
+
<summary> <b>2024-01-07</b> </summary>
|
| 56 |
+
- 添加数据清洗过程中基于mini hash实现的文档去重(在本项目中其实数据集的样本去重),防止模型遇到多次重复数据后,在推理时吐出训练数据。<br/>
|
| 57 |
+
- 添加`DropDatasetDuplicate`类实现对大数据集的文档去重。<br/>
|
| 58 |
+
</details>
|
| 59 |
+
|
| 60 |
<details close>
|
| 61 |
<summary> <b>2023-12-29</b> </summary>
|
| 62 |
- 更新模型代码(权重不变),可以直接使用`AutoModelForSeq2SeqLM.from_pretrained(...)`加载模型使用。<br/>
|