从这里开始

如何学完一节课

每节课都按同样的顺序组织。本页说明每个环节的任务、代码的运行位置,以及练习卡住时的处理方法。开始第一节课前读一遍,遇到不清楚的步骤再回来查。

一次性配置

课程代码在你自己的电脑上运行。你可以在网站或 GitHub 阅读正文,运行代码则需要克隆仓库。只需克隆一次:

git clone https://github.com/fancyboi999/ai-engineering-from-scratch-zh.git
cd ai-engineering-from-scratch-zh
python3 phases/00-setup-and-tooling/01-dev-environment/code/verify.py --route beginner

检查会列出现在和后续需要的工具。每项失败都会输出原因和修复命令。课程命令都从仓库根目录运行,也就是包含 README.md 和 phases/ 的目录。

每节课对应一个目录,例如 phases/01-math-foundations/01-linear-algebra-intuition/。其中包含 docs/zh.md(课程正文)、code/(要构建和运行的程序)、outputs/(课程产物)和 quiz.json。初学者请从 第 0 阶段:开发环境.

阅读:摘要、问题背景、核心概念

开头几个环节解释思路。先不看代码,读完后用自己的话说两句话:它解决什么问题,又是怎么解决的。如果说不清,写代码前再读一遍核心概念。

动手构建:亲手写出最小版本

动手构建环节不用框架,用普通代码实现这个思路。完整程序在课程的 code/ 目录中,课程页面会给出运行命令,例如:

python3 phases/01-math-foundations/01-linear-algebra-intuition/code/vectors.py
  1. 在自己的目录(例如 scratch/)中新建文件,例如 my_vectors.py。逐步输入课程代码,不要整段复制粘贴。
  2. 每完成一步就运行文件,对比程序输出和课程输出。
  3. 如果结果不同,运行 code/ 中的完整文件,查看参考结果。
  4. 改一个数值,预测新输出,再运行代码。如果预测不对,找出造成差异的那一行。

实际使用:用成熟的库完成同一件事

实际使用环节用 NumPy、scikit-learn 或 PyTorch 等常用库完成同一项工作。先写过最小版本,你就能看懂库替你做了什么。在仓库根目录创建虚拟环境,再安装依赖:

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Windows 用户将 source 那一行替换为 .venv\Scripts\activate。requirements.txt 包含整套课程的依赖。学习单课时,只安装实际使用代码导入的库即可,例如 pip install numpy。把代码写入自己的文件,运行并核对结果是否与动手构建代码一致。

拿去用:留下一件可复用的工具

拿去用环节指出本课在 outputs/ 目录中提供的文件。这个环节不需要部署,而是给日常工作留下一件工具:

打开产物并阅读。改一行,让它更适合你的工作。每周都用的工具,比只读过的工具更能帮助你学习。

练习:逐题完成的步骤

练习不直接给答案。按以下步骤完成:

  1. 复述任务。写清输入是什么,输出应该是什么。
  2. 预测。写代码前先手算一个小例子,例如两个各含两个数的向量。
  3. 从课程代码出发。多数练习是在动手构建代码上新增一个函数或做一项修改。先找与任务最接近的函数。
  4. 写出最小版本,先让小例子运行正确。
  5. 检查。与预测对比,再测试一个边界情况,例如零向量或空列表。

许多课程在练习后设有提示。每条提示给出第一步和检查答案的方法。先尝试上述步骤,再打开提示。

总结:复习速查表

部分课程以总结结尾,用一页汇总重要公式、定义和直觉。把它当作速查表:做练习前浏览一遍,开始下一课前再读一遍。

课程还提供可打印的速查表。每份围绕一个主题,例如 RAG 或 LLM 服务,用一两页列出任务、命令、带注释的代码、图表、默认值和修复办法。每个区块链接到相应课程,课程页也列出相关速查表。做练习时可以放在旁边查阅。

测验与检查点

网站每节课顶部有五个检查点:阅读、构建、运行、证明和继续。完成后逐项标记。课末测验检查主要概念,进度只保存在当前浏览器中。当你能解释代码输出,并且能有依据地做一项小修改时,再进入下一课。

项目:按目标选择

项目是分阶段构建的较大程序,每个阶段都有测试。完成项目所需的课程阶段后再开始。

卡住时怎么办

记录命令、运行目录和完整报错。常见原因是目录不对、缺少依赖或 Python 版本过旧。重新运行环境检查。如果仍有问题,搜索 问题列表,或到讨论区提问。附上课程路径、命令和报错。