功能请求: 为学生添加一个适合 CPU 的"从零开始训练 LLM"学习路径
作者: RihanMujawar创建于 2026年8月10日更新于 2026年8月10日
问题
该仓库是一个很好的资源,用于了解基于 Transformer 的语言模型是如何从头开始构建的。但是,当前的训练工作流假设可以访问 GPU 和相对强大的硬件。
这可能会使项目对学生来说很难,因为他们只拥有:
普通的笔记本电脑或台式机
4–8 GB RAM
没有专用 GPU
存储空间有限
仅支持 CPU 的 PyTorch
教育目标不应要求昂贵的硬件。学生应该能够理解完整的 LLM 流程,并在自己的计算机上从头开始训练一个小型、可工作的语言模型。
建议的解决方案
在仓库中添加专用的CPU/低硬件学生模式。
目标是提供一个小型配置,使学生能够:
准备小型数据集
构建词汇表
了解 token 嵌入
实现自注意力
实现多头注意力
构建 Transformer 块
训练小型仅支持解码的 Transformer
保存检查点
恢复训练
从训练模型中生成文本
所有这些都可以在不需要 GPU 的情况下工作。
建议的学生配置
而不是从一开始就使用数百万或数十亿个参数,提供一个非常小的教育模型。
示例:
参数: ~1M–10M
上下文长度: 128–256 个 token
层: 2–4
注意力头: 2–4
嵌入大小: 128–256
批量大小: 1–8
数据集: 1–100 MB
精度: float32
设备: CPU
具体配置可以根据基准测试进行调整。
重要的一点是,学生应该能够运行:
Python train.py --device cpu --config student
并最终获得一个可用的检查点。
小型数据集
当前项目使用 Pile,这对于初学者的第一个 CPU 实验来说实在太大了。
应该提供一个更小的教育数据集。
例如:
data/
├── student/
│ ├── train.txt
│ └── val.txt
仓库可以提供包含公共领域或合适许可文本的小型示例数据集。
学生也可以用自己的数据集替换它。
例如:
Python prepare_data.py \
--input data/student/train.txt \
--output data/student/train.bin
适合 CPU 的训练
训练代码应该自动检测可用的硬件:
device = torch.device(
"cuda" if torch.cuda.is_available() else "cpu"
)
但是,可以明确允许
内容来源: FareedKhan-dev/train-llm-from-scratch