ChatLM-mini-Chinese 项目介绍
项目背景
在人工智能领域,大型语言模型已经成为了热点技术。然而,训练和推理这些模型通常需要庞大的计算资源,并非每个个人开发者或小型企业都具备这样的条件。为此,ChatLM-mini-Chinese项目旨在创建一个体量较小但性能优良的中文对话生成模型,致力于在资源有限的条件下发挥出色的作用。
项目目标
ChatLM-mini-Chinese的目标是提供一个从零开始训练的生成式语言模型,专注于中文对话场景。该项目不仅涉及到数据清洗、tokenizer(分词器)训练,还包括模型预训练、指令微调(SFT)和偏好优化(RLHF)。
模型特点
- 参数规模:模型仅有0.2B参数,约210M共享权重。
- 资源需求:在预训练过程中,只需最低4GB显存的机器便可执行,且使用
float16
加载和推理时,仅需512MB显存。 - 数据公开:预训练、SFT微调、偏好优化的数据集来源全公开。
- 工具框架:使用Huggingface的NLP框架,包括transformers、accelerate等。
- 灵活训练:支持任意位置断点,支持单机单卡和单机多卡的训练配置。
训练过程概览
预训练
预训练阶段整合为一个端到端的文本到文本(Text-to-Text)过程,不采用掩码预测的方法。项目公开了数据清洗、数据集构造与优化的细节,例如去重与流式数据加载技术。大数据集可在较低硬件配置下进行训练。
指令微调(SFT)
SFT阶段提供了开源的数据集,支持prompt指令形式的修改以及低学习率微调。
偏好优化(RLHF)
偏好优化采用了DPO方法(直接偏好优化),利用Lora方法可以将偏好结合到原始模型中。该过程旨在提升模型对特定任务的适应性。
下游任务微调
项目还支持诸如三元组信息抽取等下游任务的微调,同时保持模型的对话能力。
所需资源和设备
硬件配置
- 预训练:CPU为28核,60GB内存,2块RTX A5000显卡。
- 微调阶段:CPU为Intel i5-13600k,32GB内存,1块RTX 4060 Ti显卡。
使用指南
快速开始
使用者可以从huggingface或modelscope下载预训练的模型,配合项目提供的API和命令行界面进行推理。
项目优势
ChatLM-mini-Chinese提供了一种解决方案,使资源有限的用户能够使用高效的小模型进行自然语言处理任务。其公开的数据和灵活的训练流程降低了使用门槛,使开发者能轻松上手。
注意事项
ChatLM-mini-Chinese项目不承担可能因开源代码或模型的误用或其他风险而导致的责任。请在安全和合规的环境下使用本项目。
引用方式
如需引用本项目,请使用以下信息:
@misc{Charent2023,
author={Charent Chen},
title={A small chinese chat language model with 0.2B parameters base on T5},
year={2023},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {https://github.com/charent/ChatLM-mini-Chinese},
}
ChatLM-mini-Chinese项目通过创新与实用的结合,为中文语言处理提供了一条通向效率与效果兼具的道路。期待它能够在更多应用场景中显示出它的价值。