LM + 大数据六个月学习计划(ai规划)


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,和代码结果对比。

周四:

  • 学习梯度下降。
  • 推导逻辑回归参数梯度。
  • 实现 dwdb 更新。

周五:

  • 复盘本周数学。
  • 把逻辑回归训练流程串起来。
  • 写周总结和问题清单。

周六:

  • 补线性代数练习,重点看 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 @ WqK = X @ WkV = 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 综合项目。

声明:Hello World|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - LM + 大数据六个月学习计划(ai规划)


我的朋友,理论是灰色的,而生活之树是常青的!