功能请求: 为学生添加一个适合 CPU 的"从零开始训练 LLM"学习路径

作者: RihanMujawar创建于 2026年8月10日更新于 2026年8月10日

问题

该仓库是一个很好的资源,用于了解基于 Transformer 的语言模型是如何从头开始构建的。但是,当前的训练工作流假设可以访问 GPU 和相对强大的硬件。

这可能会使项目对学生来说很难,因为他们只拥有:

  • 普通的笔记本电脑或台式机

  • 4–8 GB RAM

  • 没有专用 GPU

  • 存储空间有限

  • 仅支持 CPU 的 PyTorch

教育目标不应要求昂贵的硬件。学生应该能够理解完整的 LLM 流程,并在自己的计算机上从头开始训练一个小型、可工作的语言模型

建议的解决方案

在仓库中添加专用的CPU/低硬件学生模式

目标是提供一个小型配置,使学生能够:

  1. 准备小型数据集

  2. 构建词汇表

  3. 了解 token 嵌入

  4. 实现自注意力

  5. 实现多头注意力

  6. 构建 Transformer 块

  7. 训练小型仅支持解码的 Transformer

  8. 保存检查点

  9. 恢复训练

  10. 从训练模型中生成文本

所有这些都可以在不需要 GPU 的情况下工作。

建议的学生配置

而不是从一开始就使用数百万或数十亿个参数,提供一个非常小的教育模型。

示例:

参数:       ~1M–10M
上下文长度:  128–256 个 token
层:           2–4
注意力头:  2–4
嵌入大小:  128–256
批量大小:  1–8
数据集:          1–100 MB
精度:        float32
设备:           CPU

具体配置可以根据基准测试进行调整。

重要的一点是,学生应该能够运行:

bash
Python train.py --device cpu --config student

并最终获得一个可用的检查点。

小型数据集

当前项目使用 Pile,这对于初学者的第一个 CPU 实验来说实在太大了。

应该提供一个更小的教育数据集。

例如:

data/
├── student/
│   ├── train.txt
│   └── val.txt

仓库可以提供包含公共领域或合适许可文本的小型示例数据集。

学生也可以用自己的数据集替换它。

例如:

bash
Python prepare_data.py \
    --input data/student/train.txt \
    --output data/student/train.bin

适合 CPU 的训练

训练代码应该自动检测可用的硬件:

python
device = torch.device(
    "cuda" if torch.cuda.is_available() else "cpu"
)

但是,可以明确允许

内容来源: FareedKhan-dev/train-llm-from-scratch