0. 计划前提
学习目标
本计划目标不是“泛泛了解大模型”,而是在 6 个月内形成可以落地的工程能力:
- 理解机器学习、神经网络、Transformer、大模型推理的核心机制。
- 能用 PyTorch 实现基础训练流程、Attention、Transformer Block 和 mini GPT。
- 能做 Prompt、Tool Calling、RAG、Agent、评估等 LLM 应用工程。
- 掌握 Spark、Kafka、Flink、ClickHouse 在 LLM 数据管道中的典型用法。
- 能完成一个“大数据 + LLM 知识库与日志评估平台”综合项目。
- 能做基础 LoRA 微调、评估、性能优化和项目文档整理。
时间投入
建议最低时间投入:
- 工作日:每天 3 小时。
- 非工作日:每天 8 小时(可弹性延至 10 小时)。
- 每周合计:31 小时(工作日 15h + 周末 16h)。
- 6 个月约 24 周,总投入约 744 小时。
如果某周工作压力较大,最低不能低于 20 小时;低于 20 小时的周,优先在下周周末弹性时间内补回核心项目实践(周末额外的 2h/天是天然的追进度缓冲区,不要在正常周挤占它)。
学习原则
- 每周必须有代码产出。
- 每两周必须有一个可运行 demo。
- 每个月必须有一个可展示成果。
- 数学不脱离代码学习,每个数学概念都要用 NumPy 或 PyTorch 实现一次。
- 大模型应用不只调 API,要同时记录数据流、失败案例、日志和评估指标。
- 大数据不只学组件概念,要和 LLM 文档处理、日志分析、评估闭环结合。
每周固定节奏
工作日:理论学习 + 代码实现 + 复盘练习,三件事每天都要有。
周六:理论补强 + 项目编码为主,提交代码,写 README 片段。
周日:复盘本周知识点,继续实现项目,补测试整理结果,写周总结和下周计划。
每周输出模板
每周结束时写一份简短总结,建议包含:
本周主题:
本周完成:
核心概念:
代码产出:
踩坑记录:
仍不理解的问题:
下周计划:1. 总体路线
第 1 月:数学 + 机器学习 + PyTorch
第 2 月:Transformer / LLM 原理
第 3 月:LLM 应用工程
第 4 月:大数据工程
第 5 月:大数据 + LLM 综合项目
第 6 月:微调 + 性能优化 + 作品整理最终产出:
project-01-numpy-ml:NumPy 逻辑回归与数学基础实现。project-02-pytorch-template:通用 PyTorch 训练模板。project-03-mini-gpt:mini GPT 训练与生成。project-04-rag-agent:RAG + Tool Calling + Agent demo。project-05-bigdata-llm-pipeline:Spark / Kafka / ClickHouse 日志与文档管道。project-06-llm-bigdata-platform:综合项目。project-07-lora-eval-optimization:LoRA 微调、评估和优化报告。
2. 第 1 月:数学 + 机器学习 + PyTorch
目标:
- 补齐大模型所需最小数学基础。
- 能用 NumPy 理解模型训练的底层计算。
- 能用 PyTorch 写出可复用训练模板。
- 理解 loss、梯度、optimizer、训练循环和评估指标。
第 1 周:线性代数 + 逻辑回归
本周目标
- 理解向量、矩阵、点积、矩阵乘法。
- 理解 sigmoid、二分类、逻辑回归。
- 用 NumPy 实现一个二分类模型。
必学概念
- 标量、向量、矩阵、张量。
- 向量点积。
- 矩阵乘法。
- shape 推导。
- sigmoid 函数。
- binary cross entropy。
- 梯度下降的直观含义。
每日安排
周一:
- 学习向量、矩阵、点积、矩阵乘法。
- 用 NumPy 写矩阵乘法、点积、向量范数。
- 整理 shape 笔记,写 10 个 shape 推导例子。
周二:
- 学习 sigmoid、二分类概率输出。
- 写 sigmoid、预测函数
y_hat = sigmoid(X @ w + b)。 - 构造 toy dataset,跑一次前向预测。
周三:
- 学习 binary cross entropy。
- NumPy 实现 BCE loss。
- 手算一个样本的 loss,和代码结果对比。
周四:
- 学习梯度下降。
- 推导逻辑回归参数梯度。
- 实现
dw、db更新。
周五:
- 复盘本周数学。
- 把逻辑回归训练流程串起来。
- 写周总结和问题清单。
周六:
- 补线性代数练习,重点看 shape。
- 完成 NumPy 逻辑回归完整训练脚本。
- 画训练 loss 曲线。
周日:
- 复盘逻辑回归。
- 添加 train / validation split 和 accuracy。
- 整理 README。
- 总结“矩阵乘法在模型里的作用”。
产出
- NumPy 逻辑回归训练脚本。
- 一份 shape 推导笔记。
- 一张 loss 曲线。
验收标准
- 能解释
X @ w + b的每个 shape。 - 能解释 sigmoid 输出为什么可以当概率。
- 能解释 loss 下降意味着什么。
- 能不用框架训练一个简单二分类模型。
第 2 周:概率、Softmax、交叉熵与评估指标
本周目标
- 理解概率分布、softmax、cross entropy。
- 理解多分类模型输出。
- 掌握常见评估指标。
必学概念
- 概率分布。
- 条件概率。
- log 概率。
- softmax。
- cross entropy。
- negative log likelihood。
- accuracy、precision、recall、F1、AUC。
每日安排
周一:
- 学习概率分布和 log。
- 手写 softmax。
- 测试不同 logits 对 softmax 的影响。
周二:
- 学习 cross entropy。
- 手写多分类交叉熵。
- 对比 one-hot label 和 class index label。
周三:
- 学习 maximum likelihood 直觉。
- 解释为什么最小化 CE 等价于提高正确 token 概率。
- 写一页笔记:CE 在分类和语言模型中的作用。
周四:
- 学习 precision、recall、F1。
- 写混淆矩阵计算代码。
- 构造不平衡数据,观察 accuracy 的问题。
周五:
- 学习 AUC、ROC 直觉。
- 给第 1 周模型加评估指标。
- 写周总结。
周六:
- 复习 softmax + CE。
- 实现一个 NumPy 多分类模型。
- 整理指标对比表。
周日:
- 复盘概率与 CE。
- 完成评估脚本。
- 写 README。
- 整理错题和易混点。
产出
- softmax 实现。
- cross entropy 实现。
- 多分类评估脚本。
验收标准
- 能解释 softmax 为什么输出和为 1。
- 能解释 CE 为什么常用于分类和 next token prediction。
- 能在业务场景中选择 precision / recall / F1。
第 3 周:PyTorch 基础与训练模板
本周目标
- 掌握 PyTorch Tensor、autograd、Dataset、DataLoader。
- 写出通用训练模板。
必学概念
- Tensor。
- requires_grad。
- autograd。
- loss.backward。
- optimizer.step。
- Dataset。
- DataLoader。
- batch training。
每日安排
周一:
- 学习 Tensor 基础操作。
- 用 Tensor 重写 NumPy 计算。
- 整理 Tensor 与 ndarray 差异。
周二:
- 学习 autograd。
- 写简单函数自动求导。
- 手算梯度并对比 autograd。
周三:
- 学习
nn.Module。 - 实现 LogisticRegression Module。
- 用 optimizer 训练。
周四:
- 学习 Dataset / DataLoader。
- 封装自定义 Dataset。
- 把训练改成 batch。
周五:
- 学习训练模板结构。
- 整理 train/evaluate/predict 函数。
- 写周总结。
周六:
- 补 PyTorch API。
- 完成通用训练模板。
- 加日志输出。
周日:
- 复盘训练循环。
- 加 checkpoint 保存和加载。
- 整理 README。
- 列出模板可复用点。
产出
- PyTorch 二分类训练模板。
- Dataset / DataLoader 示例。
- checkpoint 保存与恢复。
验收标准
- 能解释每次训练循环发生了什么。
- 能独立写出
zero_grad -> forward -> loss -> backward -> step。 - 能用 DataLoader 训练模型。
第 4 周:MLP、正则化、LayerNorm 与文本分类
本周目标
- 理解 MLP、激活函数、dropout、LayerNorm。
- 完成一个文本或表格分类项目。
必学概念
- MLP。
- ReLU / GELU。
- dropout。
- normalization。
- overfitting。
- early stopping。
- learning rate。
每日安排
周一:
- 学习 MLP。
- 实现 MLP classifier。
- 观察隐藏层维度对效果的影响。
周二:
- 学习激活函数。
- 对比 ReLU / GELU。
- 写实验记录。
周三:
- 学习 dropout 和过拟合。
- 给模型加 dropout。
- 观察训练集和验证集曲线。
周四:
- 学习 LayerNorm。
- 用 PyTorch 调用 LayerNorm。
- 预习 Transformer 中 LayerNorm 的作用。
周五:
- 学习 early stopping。
- 给训练模板加 early stopping。
- 写月度总结。
周六:
- 准备文本或表格分类数据。
- 完成分类项目训练。
- 记录指标。
周日:
- 复盘第 1 月。
- 整理项目代码。
- 写 README。
- 列出第 2 月 Transformer 前置问题。
产出
- 一个文本或表格分类项目。
- 可复用 PyTorch 训练模板。
- 第 1 月学习总结。
验收标准
- 能解释 overfitting 和正则化。
- 能用 PyTorch 完成一个完整训练任务。
- 能读懂简单模型的训练日志。
3. 第 2 月:Transformer / LLM 原理
目标:
- 理解 Attention、Transformer Block、Causal LM。
- 能训练一个 mini GPT。
- 能理解大模型推理阶段的 prefill、decode、sampling。
第 5 周:Self-Attention
本周目标
- 理解 Q、K、V。
- 理解 scaled dot-product attention。
- 理解 mask 的作用。
- 用 PyTorch 实现单头 attention。
必学概念
- token embedding。
- query、key、value。
- attention score。
- scale by sqrt(dk)。
- softmax attention weight。
- causal mask。
每日安排
周一:
- 学习 Q/K/V 的直觉。
- 写
Q = X @ Wq、K = X @ Wk、V = X @ Wv。 - 整理 Q/K/V shape。
周二:
- 学习 attention score。
- 实现
scores = Q @ K.T / sqrt(dk)。 - 可视化 attention score。
周三:
- 学习 softmax attention。
- 实现
weights @ V。 - 对比不同 token 的注意力分布。
周四:
- 学习 causal mask。
- 实现上三角 mask。
- 解释为什么语言模型不能看未来 token。
周五:
- 复盘 self-attention。
- 封装 Attention Module。
- 写周总结。
周六:
- 推导 attention shape。
- 完成单头 attention 实现。
- 写测试。
周日:
- 复盘 Q/K/V。
- 实现 causal self-attention。
- 整理 README。
- 记录不理解的问题。
产出
- PyTorch Attention 实现。
- attention shape 笔记。
- causal mask demo。
验收标准
- 能解释为什么是
Q @ K.T。 - 能解释 mask 的作用。
- 能从 shape 判断 attention 代码是否正确。
第 6 周:Multi-Head Attention 与 Transformer Block
本周目标
- 理解多头注意力。
- 理解 residual、LayerNorm、FFN。
- 实现 Transformer Block。
必学概念
- multi-head attention。
- concat heads。
- output projection。
- residual connection。
- LayerNorm。
- feed-forward network。
- pre-norm / post-norm。
每日安排
周一:
- 学习多头注意力。
- 实现 head split 和 concat。
- 整理 shape。
周二:
- 学习 output projection。
- 完成 MultiHeadAttention。
- 写单元测试。
周三:
- 学习 residual。
- 把 residual 加到模块里。
- 解释 residual 为什么有利于训练。
周四:
- 学习 LayerNorm。
- 实现 Transformer Block 前半部分。
- 对比 LayerNorm 输入输出。
周五:
- 学习 FFN。
- 完成 Transformer Block。
- 写周总结。
周六:
- 复盘 MHA。
- 完成 Transformer Block 代码。
- 测试不同 batch/seq/hidden。
周日:
- 复盘 residual + LayerNorm。
- 整理模块化代码。
- 写 README。
- 预习 Causal LM。
产出
- MultiHeadAttention。
- TransformerBlock。
- shape 测试脚本。
验收标准
- 能解释一个 Transformer Block 的数据流。
- 能说明 residual、LayerNorm、FFN 各自作用。
- 能独立实现可运行 Transformer Block。
第 7 周:Tokenizer、Causal LM 与训练
本周目标
- 理解语言模型训练目标。
- 构造字符级或简单 BPE 级数据集。
- 训练一个小型 causal LM。
必学概念
- tokenizer。
- vocabulary。
- token id。
- next token prediction。
- causal language model。
- cross entropy for token prediction。
- perplexity。
每日安排
周一:
- 学习 tokenizer。
- 实现字符级 tokenizer。
- 整理 encode/decode 流程。
周二:
- 学习 next token prediction。
- 构造 input/target。
- 检查 shift 是否正确。
周三:
- 学习 embedding。
- 实现 token embedding + position embedding。
- 测试 embedding 输出 shape。
周四:
- 学习 LM head。
- 实现 logits 输出。
- 计算 token cross entropy。
周五:
- 学习 perplexity。
- 跑一次小训练。
- 写周总结。
周六:
- 准备小文本数据。
- 训练字符级语言模型。
- 记录 loss 曲线。
周日:
- 复盘 Causal LM。
- 调 batch size、lr、context length。
- 生成样例文本。
- 写 README。
产出
- 字符级 tokenizer。
- Causal LM 训练脚本。
- 生成文本样例。
验收标准
- 能解释输入和 target 为什么错开一位。
- 能解释 logits shape。
- 能说明 perplexity 和 loss 的关系。
第 8 周:Mini GPT、推理与采样
本周目标
- 完成 mini GPT。
- 理解 prefill、decode、KV cache 概念。
- 实现 temperature、top-k、top-p 采样。
必学概念
- GPT block。
- autoregressive generation。
- prefill。
- decode。
- KV cache。
- temperature。
- top-k。
- top-p。
每日安排
周一:
- 组装 mini GPT。
- 跑通 forward。
- 检查 logits shape。
周二:
- 学习自回归生成。
- 实现 greedy decode。
- 记录生成结果。
周三:
- 学习 temperature。
- 实现 temperature sampling。
- 对比不同 temperature。
周四:
- 学习 top-k / top-p。
- 实现 top-k。
- 选做 top-p。
周五:
- 学习 KV cache 概念。
- 写 KV cache 原理笔记。
- 写月度总结。
周六:
- 整理 mini GPT 代码。
- 训练并生成结果。
- 记录实验参数。
周日:
- 复盘第 2 月。
- 完善 README 和架构图。
- 整理 Transformer 问答。
- 预习 LLM 应用工程。
产出
- mini GPT 项目。
- 文本生成脚本。
- Transformer 原理笔记。
验收标准
- 能从 embedding 到 logits 讲完整 GPT 前向过程。
- 能解释 temperature / top-k / top-p。
- 能说明 KV cache 为什么能加速 decode。
4. 第 3 月:LLM 应用工程
目标:
- 能构建 LLM API 应用。
- 能做结构化输出、工具调用、RAG、Agent。
- 能做基本评估和 bad case 分析。
第 9 周:Prompt、结构化输出与 API 使用
本周目标
- 掌握常见 Prompt 结构。
- 能要求模型输出稳定 JSON。
- 能写 LLM API wrapper。
必学概念
- system / user / assistant。
- few-shot。
- chain-of-thought 的使用边界。
- structured output。
- JSON schema。
- retry / timeout。
- token usage。
每日安排
周一:
- 学习消息格式。
- 写 API wrapper。
- 整理调用日志字段。
周二:
- 学习 system prompt。
- 写 5 个不同任务 prompt。
- 比较输出差异。
周三:
- 学习 few-shot。
- 给分类任务加 few-shot。
- 记录成功和失败样例。
周四:
- 学习 structured output。
- 要求模型输出 JSON。
- 写 JSON parse + retry。
周五:
- 学习 token 成本。
- 记录 prompt/input/output tokens。
- 写周总结。
周六:
- 整理 Prompt 模板。
- 完成结构化抽取 demo。
- 加错误重试。
周日:
- 复盘 Prompt。
- 做一个合同/工单/日志结构化抽取小项目。
- 写 README。
- 整理 bad cases。
产出
- LLM API wrapper。
- JSON 输出 demo。
- 结构化抽取小项目。
验收标准
- 能设计 system prompt。
- 能处理 JSON 输出失败。
- 能记录 token 和请求日志。
第 10 周:Tool Calling / Function Calling
本周目标
- 理解工具调用机制。
- 能定义工具 schema。
- 能完成多轮工具调用。
必学概念
- tool schema。
- arguments schema。
- tool_call。
- tool result。
- multi-step tool call。
- tool error handling。
每日安排
周一:
- 学习工具调用流程。
- 定义天气查询工具。
- 跑通一次工具调用。
周二:
- 学习参数 schema。
- 定义 SQL 查询工具。
- 限制 SQL 只读。
周三:
- 学习工具结果回传。
- 完成 tool result 到最终回答。
- 记录错误样例。
周四:
- 学习多工具选择。
- 加入文件查询工具。
- 实现工具路由。
周五:
- 学习工具异常处理。
- 给工具加 timeout / retry。
- 写周总结。
周六:
- 整理工具调用框架。
- 实现 SQL + 文件 + HTTP 三工具 demo。
- 写测试样例。
周日:
- 复盘工具调用。
- 完成多轮工具调用 demo。
- 写 README。
- 整理安全边界。
产出
- Tool calling demo。
- SQL / 文件 / HTTP 工具。
- 工具错误处理。
验收标准
- 能解释模型本身不执行工具,工具由外部 runtime 执行。
- 能定义清晰工具 schema。
- 能处理工具失败和参数错误。
第 11 周:RAG 基础
本周目标
- 构建本地知识库问答。
- 理解 chunk、embedding、向量检索、rerank。
必学概念
- document loader。
- chunking。
- embedding。
- vector index。
- top-k retrieval。
- rerank。
- citation。
- hallucination。
每日安排
周一:
- 学习 RAG 流程。
- 加载 Markdown / PDF / txt。
- 整理文档元数据。
周二:
- 学习 chunk 策略。
- 实现按标题/长度切分。
- 比较 chunk size。
周三:
- 学习 embedding。
- 生成向量。
- 存入本地向量库。
周四:
- 学习检索。
- 实现 top-k 检索。
- 输出引用来源。
周五:
- 学习 prompt 拼接。
- 完成问答链路。
- 写周总结。
周六:
- 整理知识库数据。
- 完成 RAG API。
- 记录检索日志。
周日:
- 复盘 RAG。
- 加入 rerank 或简单重排。
- 写 README。
- 整理 bad cases。
产出
- 本地 RAG 知识库。
- 检索日志。
- bad case 文件。
验收标准
- 能解释 chunk size 对召回的影响。
- 能展示检索到的原文引用。
- 能说明回答错误是检索错还是生成错。
第 12 周:Agent 与基础评估
本周目标
- 构建简单多工具 Agent。
- 建立 LLM 应用评估意识。
必学概念
- planning。
- tool routing。
- memory。
- state。
- error recovery。
- LLM-as-judge。
- retrieval recall。
- answer correctness。
每日安排
周一:
- 学习 Agent 基本结构。
- 实现任务状态对象。
- 串联工具调用。
周二:
- 学习 planning。
- 让模型生成简单 plan。
- 执行 plan 中工具。
周三:
- 学习 memory。
- 加入短期对话记忆。
- 测试多轮问题。
周四:
- 学习评估指标。
- 写 RAG 评估数据集。
- 实现简单召回评估。
周五:
- 学习 LLM-as-judge。
- 实现答案评分脚本。
- 写月度总结。
周六:
- 整合 RAG + tools。
- 完成 Agent demo。
- 记录失败用例。
周日:
- 复盘第 3 月。
- 完成评估脚本。
- 整理 README。
- 预习 Spark。
产出
- 多工具 Agent。
- RAG 评估脚本。
- LLM-as-judge demo。
验收标准
- 能解释 Agent 与普通工具调用的区别。
- 能定位一次失败发生在计划、工具、检索还是生成。
- 能用小评估集比较两个 RAG 配置。
5. 第 4 月:大数据工程
目标:
- 掌握 Spark、Kafka、Flink、ClickHouse 的核心工程用法。
- 能把 LLM 文档处理和日志分析接入大数据链路。
第 13 周:Spark SQL / DataFrame
本周目标
- 掌握 Spark DataFrame 和 Spark SQL。
- 用 Spark 做文档清洗和切分。
必学概念
- Spark Driver / Executor。
- DataFrame。
- Spark SQL。
- partition。
- shuffle。
- join。
- Parquet。
每日安排
周一:
- 学习 Spark 架构。
- 启动本地 Spark。
- 读取 CSV / JSON。
周二:
- 学习 DataFrame API。
- 做 select/filter/groupBy。
- 写数据清洗练习。
周三:
- 学习 Spark SQL。
- 注册临时表并查询。
- 对比 SQL 和 DataFrame。
周四:
- 学习 partition / shuffle。
- 观察 explain plan。
- 记录 join 触发 shuffle 的情况。
周五:
- 学习 Parquet。
- 把清洗结果写 Parquet。
- 写周总结。
周六:
- 准备文档数据。
- 用 Spark 清洗文档。
- 保存为 Parquet。
周日:
- 复盘 Spark。
- 用 Spark 切分文档 chunk。
- 写 README。
- 记录性能指标。
产出
- Spark 文档清洗任务。
- Spark chunk 生成任务。
- Parquet 输出。
验收标准
- 能解释 Driver / Executor。
- 能写 Spark SQL 和 DataFrame 代码。
- 能解释 shuffle 为什么慢。
第 14 周:Kafka 日志管道
本周目标
- 掌握 Kafka 基础。
- 将 LLM 问答日志写入 Kafka。
必学概念
- topic。
- partition。
- broker。
- producer。
- consumer。
- consumer group。
- offset。
- at-least-once。
每日安排
周一:
- 学习 Kafka 架构。
- 本地启动 Kafka。
- 创建 topic。
周二:
- 学习 producer。
- 写 Python producer。
- 发送测试消息。
周三:
- 学习 consumer group。
- 写 Python consumer。
- 观察 offset。
周四:
- 学习 partition。
- 按 user_id 分区。
- 测试并发消费。
周五:
- 学习消费语义。
- 记录失败重试策略。
- 写周总结。
周六:
- 设计 LLM 日志 schema。
- 把 RAG 请求日志写入 Kafka。
- 写 producer 封装。
周日:
- 复盘 Kafka。
- 写 consumer 入库到文件或数据库。
- 整理 README。
- 记录积压排查命令。
产出
- Kafka producer / consumer。
- LLM 问答日志 schema。
- 日志采集 demo。
验收标准
- 能解释 consumer group 和 partition 的关系。
- 能说明 offset 如何提交。
- 能处理 producer / consumer 基础异常。
第 15 周:Flink / 流处理
本周目标
- 理解流处理基本概念。
- 实时统计 LLM 请求指标。
必学概念
- stream。
- window。
- event time。
- processing time。
- watermark。
- state。
- checkpoint。
每日安排
周一:
- 学习流处理概念。
- 搭建 Flink 本地环境。
- 跑 word count。
周二:
- 学习 window。
- 实现滚动窗口统计。
- 统计 QPS。
周三:
- 学习 event time / watermark。
- 模拟乱序数据。
- 记录 watermark 行为。
周四:
- 学习 state。
- 实现按 session 或 user 统计。
- 记录 state 大小问题。
周五:
- 学习 checkpoint。
- 整理容错笔记。
- 写周总结。
周六:
- 接入 Kafka 日志。
- 实时统计 QPS、错误率、平均延迟。
- 输出到文件或数据库。
周日:
- 复盘 Flink。
- 完善指标统计。
- 整理 README。
- 记录状态和 checkpoint 问题。
产出
- Flink 实时指标统计任务。
- QPS / error_rate / latency 指标。
验收标准
- 能解释 window 和 watermark。
- 能说明 checkpoint 的作用。
- 能从 Kafka 流实时计算指标。
第 16 周:ClickHouse 日志分析
本周目标
- 掌握 ClickHouse 基础建模。
- 存储和分析 LLM 问答日志。
必学概念
- MergeTree。
- partition key。
- order by。
- primary key。
- materialized view。
- aggregation。
- TTL。
每日安排
周一:
- 学习 ClickHouse 架构。
- 创建本地表。
- 插入测试数据。
周二:
- 学习 MergeTree。
- 设计问答日志明细表。
- 写建表 SQL。
周三:
- 学习分区和排序键。
- 优化查询条件。
- 跑 explain。
周四:
- 学习聚合查询。
- 统计日维度指标。
- 写看板 SQL。
周五:
- 学习物化视图。
- 建立聚合表。
- 写月度总结。
周六:
- 把 Kafka/Flink 结果写入 ClickHouse。
- 完成日志明细表和聚合表。
- 写查询脚本。
周日:
- 复盘第 4 月。
- 完成基础分析看板 SQL。
- 整理 README。
- 预习综合项目。
产出
- ClickHouse 日志明细表。
- 聚合指标查询。
- 物化视图或聚合表。
验收标准
- 能解释 MergeTree 排序键对查询的影响。
- 能设计 LLM 日志表。
- 能写常用指标分析 SQL。
6. 第 5 月:大数据 + LLM 综合项目
项目名称:企业知识库 RAG + 日志评估平台。
目标:
- 将第 3 月 LLM 应用和第 4 月大数据组件整合成一个完整系统。
- 形成可演示、可解释、可优化的工程项目。
系统架构
原始文档
-> Spark 清洗
-> Spark chunk 生成
-> embedding 批处理
-> 向量库
-> RAG API
-> LLM 回答
-> Kafka 问答日志
-> Flink/Spark 指标统计
-> ClickHouse 明细与聚合
-> 评估报告 / bad case 数据集第 17 周:离线文档处理与入库
本周目标
- 建立离线知识库构建流水线。
- 完成文档清洗、chunk、embedding、向量入库。
每日安排
周一:
- 设计数据目录结构。
- 定义文档元数据 schema。
- 整理项目 README 目录。
周二:
- Spark 文档清洗。
- 去除空文档、重复文档。
- 记录清洗统计。
周三:
- chunk 策略设计。
- 实现 Spark chunk 生成。
- 记录 chunk size 分布。
周四:
- embedding 批处理设计。
- 实现批量 embedding。
- 处理失败重试。
周五:
- 向量库 schema。
- 写入向量库。
- 写周总结。
周六:
- 跑完整离线流水线。
- 修复数据质量问题。
- 记录指标。
周日:
- 复盘离线管道。
- 补充 README 和流程图。
- 整理数据统计表。
- 列下周 RAG 服务任务。
产出
- 离线知识库构建脚本。
- 向量库数据。
- 文档处理统计报告。
验收标准
- 能从原始文档一键生成向量库。
- 能统计文档数、chunk 数、失败数。
- 能说明 chunk 策略选择原因。
第 18 周:RAG API 服务
本周目标
- 构建可用 RAG 服务。
- 支持检索、重排、回答、引用来源。
每日安排
周一:
- 设计 API。
- 实现检索接口。
- 记录请求日志。
周二:
- 实现 prompt 拼接。
- 调用 LLM。
- 返回答案和引用。
周三:
- 加入 rerank。
- 比较 rerank 前后结果。
- 记录 bad case。
周四:
- 实现无答案判断。
- 加入 fallback。
- 写测试问题集。
周五:
- 完善 API 错误处理。
- 记录 token 和 latency。
- 写周总结。
周六:
- 端到端测试。
- 修复 RAG 质量问题。
- 整理日志字段。
周日:
- 复盘 RAG 服务。
- 补充 README 和接口文档。
- 整理 bad case。
- 准备日志管道。
产出
- RAG API 服务。
- 引用来源输出。
- bad case 文件。
验收标准
- 能回答知识库问题。
- 能展示引用来源。
- 能区分检索失败和生成失败。
第 19 周:日志管道与实时指标
本周目标
- 将 RAG 请求日志写入 Kafka。
- 使用 Flink 或 Spark Streaming 统计实时指标。
- 写入 ClickHouse。
每日安排
周一:
- 设计日志 schema。
- RAG 服务写 Kafka。
- 测试 producer。
周二:
- 写 Kafka consumer。
- 落 ClickHouse 明细表。
- 验证数据完整性。
周三:
- 实时指标设计。
- Flink 统计 QPS。
- 统计错误率。
周四:
- 统计平均延迟。
- 统计无答案率。
- 写入聚合表。
周五:
- 整理查询 SQL。
- 写看板查询。
- 写周总结。
周六:
- 端到端压测。
- 修复日志丢失或重复问题。
- 记录指标。
周日:
- 复盘日志链路。
- 完善 ClickHouse 查询。
- 写 README。
- 准备评估系统。
产出
- Kafka 日志管道。
- ClickHouse 明细表和聚合表。
- 实时指标统计任务。
验收标准
- 每次 RAG 请求有完整日志。
- 能查询 QPS、错误率、延迟、无答案率。
- 能解释日志链路的投递语义。
第 20 周:评估系统与 Bad Case 闭环
本周目标
- 建立 RAG 评估集。
- 区分检索评估和生成评估。
- 形成 bad case 分析闭环。
每日安排
周一:
- 设计评估集格式。
- 整理 50-100 条问题。
- 标注参考答案或参考文档。
周二:
- 实现检索评估。
- 计算 recall@k。
- 分析低召回问题。
周三:
- 实现生成评估。
- 使用 LLM-as-judge。
- 人工抽查。
周四:
- 整理 bad case 分类。
- 按检索、重排、prompt、模型四类归因。
- 提出优化方案。
周五:
- 跑一次优化前后对比。
- 写第 5 月项目总结。
- 整理下月优化计划。
周六:
- 完成评估脚本。
- 写评估报告。
- 整理图表。
周日:
- 复盘综合项目。
- 完善项目 README。
- 画系统架构图。
- 准备第 6 月微调与优化。
产出
- RAG 评估集。
- 检索评估脚本。
- 生成评估脚本。
- bad case 分析报告。
验收标准
- 能量化 RAG 效果。
- 能指出主要失败原因。
- 能提出下一步优化方向。
7. 第 6 月:微调、优化与作品整理
目标:
- 学会基础 LoRA 微调。
- 对综合项目做性能和质量优化。
- 整理成可展示作品。
第 21 周:LoRA / QLoRA 微调
本周目标
- 理解 SFT、LoRA、QLoRA。
- 用小模型做一次 instruction tuning。
必学概念
- SFT。
- instruction data。
- LoRA rank。
- alpha。
- target modules。
- QLoRA。
- PEFT。
每日安排
周一:
- 学习 SFT。
- 整理 instruction 数据格式。
- 构造小数据集。
周二:
- 学习 LoRA 原理。
- 安装 PEFT。
- 跑通最小 LoRA demo。
周三:
- 学习 target modules。
- 配置训练参数。
- 开始训练。
周四:
- 学习 QLoRA 概念。
- 记录显存/速度。
- 保存 adapter。
周五:
- 评估微调模型。
- 对比基础模型。
- 写周总结。
周六:
- 整理训练数据。
- 完成 LoRA 训练。
- 记录指标。
周日:
- 复盘微调。
- 写推理脚本。
- 整理 README。
- 记录适用边界。
产出
- LoRA 微调 demo。
- instruction 数据样例。
- 微调前后对比。
验收标准
- 能解释 LoRA 为什么参数更少。
- 能完成一次可复现微调。
- 能说明何时该用 RAG,何时该微调。
第 22 周:性能优化
本周目标
- 优化 RAG 服务和离线管道。
- 形成优化前后指标对比。
优化方向
- embedding batch。
- 向量索引参数。
- 检索 top-k。
- rerank 数量。
- prompt token 控制。
- LLM 请求并发。
- cache。
- retry。
- ClickHouse 查询优化。
每日安排
周一:
- 梳理当前性能瓶颈。
- 记录 baseline 指标。
- 制定优化列表。
周二:
- 优化 embedding batch。
- 测离线处理速度。
- 记录结果。
周三:
- 优化检索参数。
- 比较 recall 和 latency。
- 记录 trade-off。
周四:
- 优化缓存和并发。
- 压测 API。
- 记录 P50/P95。
周五:
- 优化 ClickHouse 查询。
- 整理优化报告。
- 写周总结。
周六:
- 端到端压测。
- 修复性能问题。
- 整理图表。
周日:
- 复盘优化。
- 写优化报告。
- 更新 README。
- 准备作品整理。
产出
- 性能优化报告。
- 优化前后指标表。
- 压测脚本。
验收标准
- 有 baseline。
- 有优化动作。
- 有指标对比。
- 能解释优化 trade-off。
第 23 周:系统文档与作品整理
本周目标
- 把综合项目整理成可展示作品。
- 补齐架构图、部署文档、数据流图。
每日安排
周一:
- 整理项目目录。
- 清理无用代码。
- 补 README 目录。
周二:
- 画系统架构图。
- 画数据流图。
- 写模块说明。
周三:
- 写部署文档。
- 写环境变量说明。
- 写启动命令。
周四:
- 写 API 文档。
- 写数据表说明。
- 写评估说明。
周五:
- 整理 demo 脚本。
- 准备展示问题集。
- 写周总结。
周六:
- 完整演示跑通。
- 修复文档和代码问题。
- 录制或整理演示流程。
周日:
- 复盘作品。
- 完善 README。
- 整理技术亮点。
- 准备最终复盘。
产出
- 完整 README。
- 架构图。
- 数据流图。
- 部署文档。
- 演示脚本。
验收标准
- 其他人能按 README 跑起来。
- 能用 10 分钟讲清楚系统架构。
- 能说明技术难点和优化点。
第 24 周:最终复盘与补缺
本周目标
- 查漏补缺。
- 形成最终知识体系和作品集。
每日安排
周一:
- 复盘数学和 ML。
- 复盘 PyTorch。
- 整理易错点。
周二:
- 复盘 Transformer。
- 复盘 LLM 推理。
- 整理问答卡片。
周三:
- 复盘 RAG / Agent。
- 复盘评估。
- 整理 bad case 方法论。
周四:
- 复盘 Spark / Kafka / Flink / ClickHouse。
- 整理大数据组件对比。
- 写数据管道总结。
周五:
- 整理最终汇报。
- 整理项目亮点。
- 写最终总结。
周六:
- 最终项目演示。
- 模拟技术讲解。
- 修复最后问题。
- 整理作品列表。
周日:
- 写 6 个月复盘。
- 规划下一阶段。
- 整理学习资料索引。
- 备份代码和文档。
产出
- 最终复盘文档。
- 项目作品集。
- 技术问答清单。
- 下一阶段计划。
验收标准
- 能讲清楚 mini GPT、RAG、大数据日志管道三个核心项目。
- 能解释端到端系统的数据流。
- 能说明下一步深入方向。
8. 每日记录
每天学习结束后记录以下内容:
今天学了什么:
今天写了什么代码:
今天最重要的一个概念:
今天遇到的问题:
明天要做什么:9. 数学补充清单
必须掌握
- 矩阵乘法和 shape 推导。
- 点积和余弦相似度。
- softmax。
- cross entropy。
- 梯度下降。
- 链式法则直觉。
- Adam 优化器直觉。
不必一开始深入
- 严格数学证明。
- 特征值分解细节。
- 信息论完整体系。
- 优化理论收敛证明。
- 复杂概率图模型。
数学与 LLM 对应关系
矩阵乘法 -> Linear layer / QKV projection
点积 -> Attention score
余弦相似度 -> Embedding 检索
softmax -> token 概率分布
cross entropy -> 语言模型 loss
梯度下降 -> 参数更新
链式法则 -> 反向传播10. 项目验收总表
第 1 月验收
- NumPy 逻辑回归能跑通。
- PyTorch 训练模板能复用。
- 能解释 loss 和梯度。
第 2 月验收
- Attention 能独立实现。
- Transformer Block 能跑通。
- mini GPT 能训练并生成文本。
第 3 月验收
- 能做结构化输出。
- 能做工具调用。
- 能做 RAG。
- 能做简单 Agent 和评估。
第 4 月验收
- Spark 能清洗文档。
- Kafka 能收集日志。
- Flink 能实时统计指标。
- ClickHouse 能查询分析日志。
第 5 月验收
- 综合项目端到端跑通。
- 有 RAG 服务。
- 有日志链路。
- 有评估报告。
第 6 月验收
- 有 LoRA 微调 demo。
- 有性能优化报告。
- 有完整 README 和架构图。
- 有最终复盘。
11. 风险与调整
如果时间不够
优先保留:
PyTorch 训练模板
Transformer / mini GPT
RAG
Spark
Kafka
ClickHouse
综合项目可以压缩:
Flink 深度
LoRA 深度
Agent 复杂度
top-p 手写实现
复杂看板如果数学卡住
不要停在证明上,改成:
先写代码
观察输入输出
再回头理解公式如果项目卡住
拆成最小链路:
单文档 -> 单 chunk -> 单 embedding -> 单检索 -> 单回答 -> 单日志先跑通最小闭环,再扩展。
如果大数据环境搭建卡住
大数据四个组件(Spark / Kafka / Flink / ClickHouse)统一用 Docker Compose 管理,这是默认策略,不是备用方案。在第 12 周末提前把环境跑通,第 4 月进入时直接写代码。不要在集群模式或原生安装上耗费时间,先理解数据流和 API,工程化后再考虑生产部署细节。
12. 推荐学习资料类型
不强制绑定具体课程,按资料类型选择:
- PyTorch 官方教程。
- Hugging Face Transformers 文档。
- Andrej Karpathy 的 Neural Networks / GPT 讲解。
- Spark 官方文档。
- Kafka 官方文档。
- ClickHouse 官方文档。
- RAG / LoRA 原论文或高质量解读。
阅读论文优先级:
1. Attention Is All You Need
2. GPT 系列概览
3. InstructGPT / RLHF 概览
4. LoRA
5. RAG不要在 6 个月内大量读论文。先做工程闭环,再补论文深度。
13. 最终能力画像
6 个月结束后,应达到:
- 能从数学角度解释 Attention。
- 能从工程角度解释 RAG。
- 能从数据角度解释 embedding 管道。
- 能从系统角度解释 Kafka / Spark / ClickHouse 在 LLM 应用中的位置。
- 能独立排查 LLM 应用中的检索失败、生成失败、日志缺失、评估偏差。
- 能写出一个可展示的大数据 + LLM 综合项目。


Comments | NOTHING