SuperAPI AI 工具集

build_MiniLLM_from_scratch

build_MiniLLM_from_scratch 是一个开源项目,目标是从零构建一个小参数量的 LLM,完整走完预训练、指令微调、奖励模型、强化学习四个阶段,以可控成本实现可以完成简单聊天任务的 chat 模型。项目使用 bert4torch 训练框架,代码简洁高效,训练出的 checkpoint 可无缝衔接 transformers 包进行推理,并优化了训练时的文件读取方式以降低内存占用。目前已完成预训练和指令微调两个阶段,DPO 对齐仍在测试中。项目提供了完整训练日志供复现比对,还增加了自我认知数据集,可自定义机器人名称、作者等属性,chat 模型支持多轮对话。需注意,受限于语料大小、模型规模和 SFT 语料质量,模型目前仅具备简单聊天能力,不具备回答复杂问题的能力。

访问官网

工具介绍

项目定位

build_MiniLLM_from_scratch 是一个从 0 到 1 构建 MiniLLM 的开源项目,实践路线覆盖 预训练(pretrain)-> 指令微调(sft)-> 奖励模型 -> 强化学习(dpo 实践中)四个阶段,目标是以可控的成本完成一个可以完成简单聊天任务的 chat 模型。目前已完成前两个阶段。

主要能力与特色

  • 使用 bert4torch 训练框架,代码简洁高效。
  • 训练的 checkpoint 可以无缝衔接 transformers,直接使用 transformers 包进行推理。
  • 优化了训练时的文件读取方式,优化内存占用。
  • 提供了完整训练 log 供复现比对。
  • 增加自我认知数据集,可自定义机器人名称、作者等属性。
  • chat 模型支持多轮对话。

更新与已有模型

  • 20240403:增加基于 1157 万样本训练的 MiniLLM-0.2B-SFT,支持多轮对话。
  • 20240325:增加 1.1B 模型(源于 zRzRzRzRzRzRzR)。
  • 20240316:初始提交,包含预训练模型 MiniLLM-0.2B-NoWudao-Base 和 MiniLLM-0.2B-Base;SFT 模型 MiniLLM-0.2B-SFT-Alpaca。

语料与数据

项目开源了经过 ChatGLM2-6B 分词器处理后的预训练语料,共 634 亿 Tokens,链接为 Corpus。另提供指令微调语料(筛选的可用数据集)。对齐模型(DPO)部分也在整理相应语料(筛选的可用数据集),但仍处于测试阶段。

使用方式与限制

项目未在给出的资料中提供具体的安装命令、训练步骤或依赖版本,暂未提供相关内容。可直接在 GitHub 仓库中查看文件夹与文件结构、仓库文件导航,并结合 transformers 进行推理衔接。

声明与适用场景

受限于语料大小、模型规模、SFT 语料大小和质量,本实验训练出来的模型目前只具备简单的聊天功能,不具备回答复杂问题的能力。因此更适合作为从零学习 LLM 训练流程、低算力条件下复现预训练与指令微调的实践参考。项目实现中参考了 baby-llama2-chinese,并提供微信群交流(人数超过 200,有邀请限制,可添加个人微信拉群)。