本系列是 NLP-Beginner 在大模型时代的重构版本,是一份独立的入门教程,面向有 Python 与深度学习基础的学习者。沿用原系列「任务渐进 × 每个 2-4 周」的节奏,按"熟悉 Transformer → 从零实现 mini-GPT → 指令微调与对齐 → RAG → 工具调用 Agent → Mini Coding Agent"六个任务展开。
llm-beginner 可独立完成,无任何前置依赖。如果同时在读《神经网络与深度学习(第二版)》(下文简称 NNDL2)与配套的《神经网络与深度学习案例与实践(第二版)》(下文简称 实践书 v2),每个任务的"延伸阅读"会指向对应章节,配合读会更顺畅。
作为本教程的学习材料,同步撰写了《大模型与智能体》,围绕共用基础、大模型、智能体、边界与未来四条主线展开,共 17 章。 完整章节列表。
这本教材可以作为 llm-beginner 的前置知识配合阅读:教材讲清原理,本仓库的 6 个任务负责把原理动手跑通。两者都可独立完成,不强相关。
参考:
六个任务目录结构一致:每个任务下都有 requirements.txt(依赖)、data/download.py(下载数据 / 模型)、eval/run.py(自检脚本)和 eval/tutor_prompt.md(贴给大模型做代码 review 的提示词)。你的实现写在各任务的 src/ 下,按该任务 README「实现约定」表里列出的类 / 函数签名导出——自检脚本正是按这些签名导入并评测你的代码,照着写才能被正确评分。
bash
pip install -r task-1-transformer/requirements.txt
bash
export HF_ENDPOINT=https://hf-mirror.com
# Windows PowerShell:$env:HF_ENDPOINT = "https://hf-mirror.com"
完全无法访问 HF 时,多数数据 / 模型可改用 ModelScope(见各 download.py 末尾提示)。
cd task-1-transformer
python data/download.py # 1. 下载数据 / 模型(命令见下表,部分任务带参数)
# 2. 在 src/ 下写好你的实现(见本任务 README「实现约定」)
python eval/run.py # 3. 跑自检,结果写入 eval/result.json
⚠️ 请在仓库内运行
eval/run.py:它依赖仓库根目录的_eval_harness.py(六个任务共用的运行壳)。把单个任务目录拷到仓库外会导致自检无法 import。
| 任务 | 下载命令(在任务目录下执行) | 说明 |
|---|---|---|
| 一 Transformer | python data/download.py |
ChnSentiCorp 中文情感分类 |
| 二 mini-GPT | python data/download.py [--dataset poetry\|tinystories\|skypile] |
默认 poetry(唐诗,quick-start) |
| 三 SFT/DPO | python data/download.py |
下载 Qwen2.5-0.5B,并提示 MOSS / DPO 数据获取方式 |
| 四 RAG | python data/download.py [--skip-models] |
BGE 模型 + NNDL PDF + 校验 gold_qa;--skip-models 只下 PDF 并校验 |
| 五 工具 Agent | python data/download.py |
生成 10 题任务集与检索夹具,并打印模型部署提示 |
| 六 Coding Agent | python data/download.py [--with-swebench] |
生成本地 toy-repo;--with-swebench 额外下载 SWE-bench Lite 抽样元数据 |
eval/run.py 逐项打印,并把结构化结果写入 eval/result.json(始终 UTF-8,可附在提交里)。每项有三种状态:
ckpt / 数据缺失),不是错误——补齐后重跑即可。error 或具体指标,照着修。自检只验证关键契约(如 attention 数值正确性、召回率、任务成功率),是“能不能跑对”的下限检查,不替代你自己跑各任务 README「实验」里的对比与消融。Windows 控制台中文乱码已由脚本自动处理(sys.stdout.reconfigure),无需额外设置。
每个任务的 eval/tutor_prompt.md 是一段可直接复制的提示词:连同 src/ 下的代码一起贴给 Claude / Qwen / DeepSeek 等,就能拿到一份按该任务检查项组织的代码审查。
详细资源、数据下载与自检脚本见 task-1-transformer/
手写 self-attention 与 Transformer block,在小任务上跑通并可视化注意力权重。本任务和实践书 v2《注意力机制》章节有意重叠——为独立读者打下从零起步的 Transformer 基础。
详细资源、数据下载与自检脚本见 task-2-mini-gpt/
用 PyTorch 从零搭一个 decoder-only 模型,先在中文小语料上预训练并自回归生成,进阶再切到 TinyStories 或中文故事语料观察小模型叙事能力。本任务扩展实践书 v2「nanoGPT 模型」的带读:加入 BPE、RoPE、KV cache。
详细资源、数据下载与自检脚本见 task-3-sft-dpo/
在小尺寸预训练模型上做 SFT + DPO 两阶段对齐,理解从 base model 到 chat model 的全过程。本任务扩展实践书 v2「监督微调与 LoRA」「偏好对齐:DPO」两节:手写 LoRA、改用 MOSS 中英双语对话数据、做完整的"指令格式 → 偏好"两阶段闭环。
详细资源、数据下载与自检脚本见 task-4-rag/
构建端到端中文检索增强生成系统,并量化每个环节的提升。本任务扩展实践书 v2 RAG 节的最小示例:加入 reranker、chunking 策略消融、RAGAS 评测。
task-4-rag/data/kb.pdf)../神经网络与深度学习2/ LaTeX 正文设计的 task-4-rag/data/gold_qa.jsonl详细资源、数据下载与自检脚本见 task-5-tool-agent/
实现 ReAct 循环,让 LLM 自主调用工具完成多步任务。本任务扩展实践书 v2 ReAct 节的单工具示例:扩展到 4 类工具、错误恢复、与 Qwen-Agent 框架对照。
详细资源、数据下载与自检脚本见 task-6-coding-agent/
复刻一个极简版 Claude Code,能在本地仓库上理解任务、修改代码、运行测试并迭代。本任务完全超出实践书 v2 的覆盖范围,引入 MCP、Skill、Subagent 三层栈。
| 层 | 概念 | 角色 |
|---|---|---|
| 底层 | Tools / MCP | 原子工具,通过 MCP server 接入,无状态、可跨 agent 复用 |
| 中层 | Skills | 组织化的能力包(SKILL.md + scripts + references),按需加载、渐进式披露 |
| 顶层 | Subagents | 独立 context 的子 agent,处理可并行或需隔离的子任务 |
code-review、pr-description-writer、test-runner),并实现一个约 50 行的 mini-Skill 加载器(description 匹配 + 按需加载文件内容到上下文)while not done: model -> tool -> observation -> loop| 维度 | 设计选择 |
|---|---|
| 定位 | 独立入门教程,可与 NNDL2、实践书 v2 配合阅读,但可独立完成、无强依赖 |
| 教学路线 | 每项任务「先手写、再对照框架」,理解原理在前 |
| 技术栈 | 本地化优先,依赖 Hugging Face / 阿里 Qwen / 国产开源生态,国内畅通 |
| 数据贯通 | MOSS 系列从任务三贯通到任务五(教格式 → 真调用);唐诗数据从原 nlp-beginner 任务五延续到新任务二 |
| 模型贯通 | Qwen2.5 体系:0.5B(任务 3)→ 7B-Instruct(任务 4-5)→ Coder-7B(任务 6);任务二从零训练、不属此体系 |
| 技术覆盖 | RoPE、LoRA、DPO、RAG、ReAct、MCP、Skill、Subagent、CodeAct |
$ claude mcp add llm-beginner \
-- python -m otcore.mcp_server <graph>