这到底是个啥玩意儿?
「LLMs‑from‑scratch」实则是一本配套代码库,作者 Sebastian Raschka 把 GPT 这类大模型的核心实现全部手写出来,配合《Build a Large Language Model (From Scratch)》这本书。想学模型、想自己动手搞模型却不想直接去搬别人的黑盒子?这套代码正好让你 从数据预处理、Attention 机制、到模型预训练、微调 全流程一步步敲代码,边敲边懂。
它帮你解决了哪些痛点?
|
痛点 |
传统方式 |
LLMs‑from‑scratch 的解决方案 |
|
看不懂黑盒子 |
直接用 Transformers,代码几千行,层层封装 |
完全手写实现,代码量几百行,层层注释,配合图解,一眼能看懂 |
|
硬件要求高 |
大模型训练几乎只能上云GPU |
代码专为 小模型(几千万参数)设计,普通笔记本也能跑,自动检测 GPU |
|
缺少系统学习路径 |
零散博客、官方文档,很碎 |
章节化教学:从 文本处理 → Attention → GPT → 预训练 → 微调,一步到位 |
|
难以动手把手实验 |
只提供预训练好的权重,改动困难 |
每一步都有 Jupyter Notebook 和 练习题,改代码、跑实验,马上看到效果 |
️ 安装 & 上手指南
- 1. 克隆仓库(别忘了装 git)git clone –depth 1 https://github.com/rasbt/LLMs-from-scratch.git
cd LLMs-from-scratch - 2. 创建虚拟环境(推荐 conda)conda create -n llms-scratch python=3.10 -y
conda activate llms-scratch - 3. 装依赖(requirements.txt 已经列好)pip install -r requirements.txt
- 4. 跑第一个例子(看看模型能不能生成点文字)python ch05/gpt_generate.py –prompt “今天天气真好”
小技巧:如果机器上有 GPU,确保装了 torch 的 CUDA 版本,代码会自动跑 GPU,速度杠杠的。
⚙️ 基本使用流程
|
步骤 |
关键文件 |
主要功能 |
|
准备数据 |
ch02/dataloader.ipynb |
文本清洗、BPE 分词器实现 |
|
实现 Attention |
ch03/multihead-attention.ipynb |
多头注意力的前向传播、mask 机制 |
|
搭建 GPT |
ch04/gpt.py |
位置编码、Transformer Block、输出层 |
|
预训练 |
ch05/gpt_train.py |
读取大规模语料、梯度累积、学习率调度 |
|
微调 |
ch06/gpt_class_finetune.py 、ch07/gpt_instruction_finetune.py |
文本分类、指令微调两大场景 |
|
生成文本 |
ch05/gpt_generate.py |
给定 Prompt,采样生成回复 |
每个章节都有对应的 Notebook,直接打开跑,报错了大致率是环境问题,先检查 torch + CUDA 是否匹配。
优点
- • 源码全公开:没有隐藏的二进制文件,想改就改。
- • 教学友善:配套书籍、练习、答案,一站式学习。
- • 硬件友善:即使是普通笔记本(CPU)也能跑完小模型的预训练。
- • 可扩展:代码结构清晰,后续加 LoRA、Mixture‑of‑Experts 之类的插件也不难。
缺点
- • 模型规模受限:想训练百亿参数的商业模型还是得上云。
- • 文档碎片化:虽然有 README,但部分细节仍散落在 Notebook 注释里,需要耐心翻。
- • 依赖更新慢:代码基于 PyTorch 1.13,若用最新的 2.x 可能要自行适配。
小结
「LLMs‑from‑scratch」就是那种 “把大模型拆成乐高块,让你自己拼装” 的项目。它把 理论 → 代码 → 实验 串成一条线,特别适合想 真正懂内部原理 的同学。即便你只是想凑个 Demo,跑跑小模型玩玩,也能在几小时内看到生成文本的效果,远比直接调用黑盒 API 更有成就感。
如果你准备好 从零开始玩转 LLM,别犹豫,克隆仓库、装好环境,跟着章节一步步敲代码——等会儿发的模型可不是别人的,而是 你自己写的!
项目地址: https://github.com/rasbt/LLMs-from-scratch


















暂无评论内容