AI工程从零到一:系统化学习路线与完整项目实践

发布时间:2026/11/3 22:16:47
AI工程从零到一:系统化学习路线与完整项目实践 看到 ai-engineering-from-scratch 这个项目名我第一反应是写这个项目的人多半是被市面上那些三天掌握大模型Prompt 工程师速成的课程坑过才决定自己把这整条路从零走一遍。这个项目解决的是 AI 学习中一个特别真实的问题——不是没资料而是资料太多、太碎、太急导致很多人学了大半年GitHub 收藏了几百个仓库还是没法独立完成一个从数据到部署的完整闭环。这个标题的关键词拆开看就很有意思ai-engineering 强调的是工程落地不是学术研究from-scratch 强调的不只是零基础而是把每个环节都亲手搭建一遍不依赖黑盒。这篇文章我会从一个真正动手做过这类项目的人的角度把这个项目背后的知识地图、实操路径、常见坑和我自己的经验心得完整拆解一遍适合三类人看想转行 AI 工程但不知道从哪下手的开发者、已经被碎片化教程搞得焦虑不已的自学者、以及想带团队搭建内部 AI 培训体系的负责人。1. 这个项目到底在解决什么问题1.1 AI 学习最大的坑不是难而是乱先聊点实在的。我见过太多人走到 AI 这条路上都是同一个开头刷到一篇我用 ChatGPT 做成了 XX的爆款文章热血上头打开 B 站搜机器学习入门然后收藏了一百多个视频买了三本豆瓣评分 9.0 以上的书结果一个月后连 NumPy 的广播机制都没搞明白。这不是学习能力的问题是学习路径的结构性问题。ai-engineering-from-scratch 这个项目的核心价值就是它提供了一个有执行顺序、有完成标准的路线图。它不像《机器学习西瓜书》那样以知识点为中心而是以你最终要能独立做出什么东西为终点倒推回来需要哪些技能、哪些工具、哪些工程实践。我实测下来这种反向设计的学习方式比正向啃教材效率高得多因为你在学每一步的时候都知道它将来用在哪而不是学了一大堆数学公式然后问这到底有啥用。1.2 从零开始的真正含义不是从数学开始这里有一个很多人误解的地方。from scratch的字面意思是从零开始但它不等于让你先去把微积分、线性代数、概率论全部重修一遍再碰代码。我见过最荒谬的学习计划是有人花了三个月复读高数结果一写 Python 代码就卡在语法上。真正高效的从零开始是从工具链和最小可运行系统开始在动手过程中按需补理论。就像学开车你不会先去学发动机热力学原理再上车而是先学会踩油门、打方向盘、看后视镜然后遇到了为什么上坡要降档的问题时再回头补一点动力原理。ai-engineering-from-scratch 走的也是这条路——先让你把 Python 环境跑起来把一个最简单的模型训出来再逐步往里深挖原理。1.3 这个项目适合谁、不适合谁我用了几天时间把这类项目的内容框架梳理了一遍也结合了自己带人入门的经验来谈谈适合人群。适合的人有基本编程经验不一定是 Python想转行 AI 工程方向已经零散学过一些机器学习知识但感觉不成体系需要为公司搭建 AI 应用但团队里没人真正懂全链路不适合的人完全没写过代码的纯小白建议先去补 Python 基础语法只想快速调 API 做 demo 的这种人不需要工程积累直接读官方文档更快目标是发 AI 顶会论文的那应该去啃论文和数学推导不是看工程实践2. 学习路线的阶段拆解与选型思路2.1 阶段一工具链与开发环境搭建这个阶段在很多人眼里不算学习但我恰恰认为它决定了你能不能坚持到第三个月。我的经验是环境配置导致的挫败感比算法看不懂导致的挫败感杀伤力大得多——因为算法看不懂你还能硬着头皮抄代码环境配不上你是真的寸步难行。具体来说第一周应该把这些事情做顺Python 环境我强烈建议直接用 Miniconda 而不是裸装 Python。Conda 解决的是依赖隔离问题你给不同项目建不同环境互不干扰。很多新手就是死在没有环境隔离这件事上今天装 TensorFlow 把 NumPy 版本搞坏了明天装 PyTorch 又把 Python 升级到 3.12结果全盘崩溃然后心态爆炸。用 Conda 之后这类问题基本消失。交互式开发工具Jupyter Notebook 适合做探索性分析、看数据分布、快速验证想法VS Code 适合写正式的项目代码和调试。不要只守着 Notebook 写一切因为真实的工程是要打包成模块和函数的。超级重要的一个工具学会用git和GitHub。这个不只是让你存代码更重要的是让你能看别人项目的 commit 历史理解一个项目是怎么一步步长出来的。我给所有初学者的要求都是每天 commit 一次哪怕只是改了两行注释。2.2 阶段二机器学习核心原理与经典模型我一直坚持一个观点不学经典机器学习直接冲深度学习是走不远的。深度学习是机器学习的一个子集虽然现在大模型很火但逻辑回归、决策树、SVM 这些经典模型的思想——模型的假设空间是什么、损失函数怎么定义、正则化怎么防止过拟合——是所有后续学习的地基。这一阶段你要亲手实现的东西别小看实现这两个字。不是from sklearn.linear_model import LinearRegression然后 fit 一下就完事而是要用 NumPy 从零手写一个线性回归包括import numpy as np def compute_loss(w, b, X, y): y_pred X.dot(w) b loss np.mean((y_pred - y) ** 2) grad_w 2 * X.T.dot(y_pred - y) / len(y) grad_b 2 * np.mean(y_pred - y) return loss, grad_w, grad_b def train(X, y, lr0.01, epochs1000): w np.zeros(X.shape[1]) b 0.0 for i in range(epochs): loss, grad_w, grad_b compute_loss(w, b, X, y) w - lr * grad_w b - lr * grad_b if i % 100 0: print(fepoch {i}: loss {loss:.4f}) return w, b这段代码故意写得极简但它包含了一个机器学习训练循环的全部核心要素前向计算、损失函数、梯度下降、参数更新。你亲手写出这个循环、调试过lr学习率设置太大会 loss 爆炸、太小会收敛太慢的问题之后再去看 PyTorch 的optimizer.step()你会知道它底层在干什么而不是把它当成魔法。2.3 阶段三深度学习与 Transformer有了经典机器学习的底子就可以进入深度学习阶段了。这一阶段的核心不是背架构图而是要理解两个关键转变第一个转变从特征工程到表示学习。传统机器学习靠人设计特征比如文本的词频、图像的像素统计深度学习是从数据里自己学出特征表示。这个转变是革命性的也是深度学习为什么能赢的根本原因。第二个转变从局部到全局的注意力机制。Transformer 里的 Self-Attention 这一层我看过非常多教程讲得云里雾里。我试着用最朴素的方式解释一下它的本质就是让序列里的每一个词都去看一眼序列里所有其他词然后决定哪些词对自己的理解更重要。苹果这个词后面跟着公司和跟着水果它对上下文中其他词的关注权重是完全不同的。这个动态决定关注谁的机制比之前 RNN 那种必须按顺序一个词一个词往后传的方式高效太多而且天然可以并行计算。这一阶段我建议用 PyTorch不要用 TensorFlow。原因很简单现在学术界和工业界的主流生态已经是 PyTorch 了HuggingFace 的 Transformers 库基于它最前沿的论文代码几乎全部是 PyTorch 写的。你会遇到的学习资料、可复用的开源代码绝大多数都是 PyTorch 生态。2.4 阶段四大模型应用工程这一阶段是很多自学者觉得书上没教过的部分。经典教材教你训练模型但大模型应用工程的核心是如何把预训练好的大模型接入到真实业务场景里。这里有几个绕不开的核心技术点Prompt Engineering提示工程这不是写几句好话让 AI 听话的玄学而是有系统方法论的。我总结下来的核心就三点一是任务指令要明确且步骤化先提取关键实体再生成摘要就比帮我总结这段话效果好得多二是给模型示例few-shot比只描述规则zero-shot更能约束输出格式三是大模型输出有随机性temperature 参数和多次采样取优是工程标配。RAG检索增强生成这是解决大模型知识过期和幻觉问题的主流方案。它不重新训练模型而是把外部文档切成片段、做向量化存储在问答时先把和问题最相关的片段检索出来再扔给大模型作为参考。我敢说未来大部分商业场景里的大模型应用都是基于 RAG 架构的值得花大力气掌握。Agent 与工具调用让大模型不只是回复文字而是能调用外部工具搜索、计算器、数据库查询、API、能自主规划任务步骤。这个方向还在快速演化但框架基础比如 LangChain 或直接手写工具调用循环已经开始稳定下来。2.5 阶段五模型部署与工程化把模型做出来只完成了一半另一半是让它稳定高效地跑在生产环境里。这一阶段的技能栈坦白说很多 AI 岗位 JD职位描述里都不会写得太具体但恰恰是能不能拿到 offer 的分水岭。核心要点包括模型序列化——PyTorch 模型要导出成 ONNX 格式或者用 TorchServe 托管服务化——用 FastAPI 包一层 REST API处理并发请求容器化——写 Dockerfile 把依赖环境打包解决在我机器上能跑到你机器上就崩的问题监控——记录推理延迟、吞吐量、模型输出质量的变化。我经常打的一个比方是你训练模型的过程像做菜而工程化部署像开餐厅。做出一道好菜和经营一家稳定出菜的餐厅需要的能力完全不同——后者要管流程、管备份、管异常处理、管用户体验。3. 实操路径两个必做的完整项目3.1 项目一从零训练并部署一个文本分类模型我推荐的第一个完整项目是做一个垃圾短信分类器要求从原始数据到线上 API 全部自己搞定。这个项目麻雀虽小、五脏俱全适合作为搞懂全链路的第一块基石。第一步数据准备。去公开数据集网站找一个短信分类数据集通常包含几万条短信和 spam/ham垃圾/正常标签。先做数据分析看类别分布、短信长度分布、有没有明显噪声。第二步构建文本特征。这里刻意不用深度学习而是用 TF-IDF 向量化 逻辑回归。为什么因为你要在这个项目里学会传统机器学习到底长什么样并且对比理解后面深度学习的方式有什么不同。你会感受两个关键参数的作用——max_features保留多少词条和ngram_range是否考虑词组它们和模型效果直接相关。第三步评估与优化。把数据集切分成训练集和验证集计算准确率、精确率、召回率、F1。这里必须动手计算这几个指标的区别不要只看准确率。垃圾短信场景里一个正常短信被误判为垃圾短信比一个垃圾短信漏掉更伤用户体验——这种用哪个指标来指导模型优化的决策能力是 AI 工程师的核心素养。第四步部署成 API。用 FastAPI 写一个接口接收用户提交的短信文本返回模型预测结果。注意几个工程细节把 TF-IDF 的vocabulary_持久化下来否则线上预测时特征对不上用 Docker 打包时模型文件要 COPY 进镜像启动服务做一次简单的压测看 QPS每秒查询数能不能到两位数以上。3.2 项目二基于 RAG 构建一个私有知识库问答机器人第二个项目就进入大模型应用的主流玩法了。设想一个场景公司有一堆内部文档员工手册、项目规范、故障处理记录你想让员工用自然语言提问比如休假申请要提前几天提交然后系统给出答案并标注信息来源。第一块文档处理与切分。核心是 chunk切块策略。一块总结的经验按标题层级切分往往比按固定长度切分效果好因为语义完整性更高切块大小在 200-500 字之间是个相对平衡的选择——太大检索时噪声多太小语义会被截断。这一块多花点时间调试直接影响检索效果。第二块向量化与向量数据库。用 embedding 模型把每块文本转成向量存进向量数据库我推荐先试 Chroma本地运行零配置等到数据量大了再考虑 Qdrant 或 Milvus。检索时把用户问题也转成向量然后计算相似度取 top-k 个片段。这儿很多人都忽略一个相当关键的细节检索到的片段不能直接全塞给大模型要先做相关性过滤——比如设定距离阈值太远的宁可不给模型让它说资料库中未找到相关信息能大幅减少幻觉。第三块构建回答链路。把检索到的片段配上简洁的 prompt 指令交给 LLM同时要求它提供答案来源引用。完整的回答链路代码逻辑大致如下def answer_question(question: str): # 1. 向量化用户问题 q_vector embed_text(question) # 2. 检索最相关的文档片段 chunks vector_db.search(q_vector, top_k5) # 3. 相关性过滤 chunks [c for c in chunks if c.score 0.45] if not chunks: return 抱歉在已有资料库中未找到相关信息。 # 4. 构造 prompt prompt f 你是一个企业内部知识助手。请只依据以下资料回答问题。 如果资料中没有足够信息直接说明不知道。 回答时注明信息来自哪个文档。 资料 {format_chunks(chunks)} 问题{question} # 5. 调用 LLM result llm_call(prompt) return result第四块迭代评估。这一步是 RAG 项目里最耗时也最容易被忽略的。我的做法是准备二三十个带标准答案的测试问题每次调整切块大小、top-k 参数或者 embedding 模型后重新跑一遍测试集用回答正确率和引用准确率两个指标来衡量变化。没有这个测试集你后面每次改动都是在盲人摸象。3.3 两点实操心得第一个心得项目规模宁小勿大。很多学习者喜欢一上来就做一个全知全能 AI 助手最后几乎全部夭折在工程量上。我更推荐用两周时间把一个极小的功能做完整、做扎实——哪怕只是文档问答这一个能力——好过用三个月把一个半成品挂在 GitHub 上长草。第二个心得记录每次实验的参数和结果。我见过太多人调了一次参数效果好但完全忘了上次是怎么调的。我自己习惯用 Markdown 维护一个实验日志每次记录这次改了什么参数结果涨了还跌了我猜测的原因是什么。实验日志写满之后你会发现自己对模型行为的直觉清晰了很多——这比任何课程都更能培养 AI 工程嗅觉。4. 常见问题与避坑指南4.1 数学基础差到什么地方会卡住这怕是 everyone 学 AI 前最焦虑的问题。我的经验是线性代数和概率论的基础直觉必须有但不需要到能推导公式的程度。什么是基础直觉比如向量乘法的几何意义是投影、矩阵乘法表示一种变换、概率分布描述事件的可能性、梯度是函数上升最快的方向。你不需要手推反向传播的链式法则但你需要理解梯度让参数往哪个方向更新。具体到实践卡住的时候再补理论是最有效的。比如你在调学习率时发现 loss 忽大忽小这时候再去查什么是梯度消失为什么学习率大会导致震荡知识会被牢牢记住——因为你有真实的问题在提问。纯粹为学而学学完就忘自己的挫败感也会很强。4.2 要不要从 TensorFlow 学起这个问题我前面提过一嘴这儿展开讲讲。五年前 TensorFlow 还是主流但如今整个 AI 生态的重心毫无疑问在 PyTorch 这一侧——这是从论文代码到工业落地到招聘要求都在验证的事实。我给出的选择很干脆如果不是公司已经有非常深重的 TensorFlow 技术债必须维护新人都从 PyTorch 开始学。学完 PyTorch反向去看 TensorFlow 的代码也能看懂个七八成但反过来不一定。还有一个很多人忽略的选型理由HuggingFace 生态几乎全站在 PyTorch 这边而 HuggingFace 又是大模型实践里绕不开的基础设施。你和微调一个 BERT之间的最短路径就是 PyTorch 加 Transformer 库。4.3 学完就忘怎么办遗忘是正常规律不是你的学习态度问题。我的方法是按项目而不是按知识组织学习因为当你围绕做一个什么功能来学习时每一步需要什么就学什么知识复用率极高自然记得住。回想一下你小时候学骑车为什么永远忘不掉因为你是在从家到学校这个真实任务中学的而不是坐在教室里背自行车平衡控制理论。另一个有效做法是把学过的东西写下来。我要求自己每完成一个项目就写一篇 1000 字左右的复盘文章讲清楚我遇到了什么问题、怎么排查的、最后怎么解决的。写作会强迫你把模糊的理解变成清晰的表达这个过程本身就是一次极高质量的学习。4.4 算力不够实验跑不动怎么办不是每个人手里都有 A100。我早期在普通笔记本上训练模型的建议是先用小数据量把流程跑通。拿之前说的垃圾短信项目来说你可以只用训练集的 10% 来跑通代码确认没有 bug再放完整数据在后台慢慢训练。这个习惯在以后做深度学习项目时会救你很多次——很多人的训练代码跑了一小时才报错就是因为没先做小规模冒烟测试smoke test。具体到实际操作可以参考这些处理顺序能跑 CPU 的原理实验如逻辑回归、经典 ML就先别急着上 GPU必须用 GPU 的训练把 batch size 调小、用混合精度再不行就用 Google Colab 的免费 T4 GPU把数据集的规模缩小到课程级别的量级。要记住学习期间你在乎的是掌握方法和排错能力不是刷新榜单分数。4.5 追新焦虑怎么破AI 领域的迭代速度快得离谱今天出了新的 Agent 框架明天又有新的评测基准。很多人被这种速度裹挟着今天学 LangChain明天听说 LangChain 不流行了又换 LlamaIndex最后哪个都没学扎实。我的建议是新技术追版本核心原理追不变。大模型推理的基本范式在可预见的未来还是接收输入、处理上下文、生成输出RAG 的范式也还是检索 生成。框架这种层面的东西只要是热门的就说明它背后的思想值得学习但你的主线应始终放在可迁移的原逻辑上。主线路实了新框架上手不过是一两天的事。事实上很多所谓新框架,换个角度看你就是在旧的实现外面包了一层新的 API。5. 几个值得反复阅读的资源与建议5.1 资源宁缺毋滥主线要固定在线资源方面我建议只选一条主线跟到底不要今天看一份博客明天换一套视频。比如机器学习理论部分可以只看吴恩达的经典课程和《机器学习周志华》里的对应章节深度学习部分以 Fast.ai 的实战课加 PyTorch 官方教程为主大模型应用这一块因为演进太快可以追踪几个关键开源项目的官方文档例如 Hugging Face 的课程和 LangChain 的入门示例。学的时候要带着我要亲手做一遍的目标去看而不是我要把这些概念都看懂。教学类视频有个陷阱——它讲得太顺了让你产生我也都会了的错觉。检验的方式特别简单关掉视频凭记忆把刚才的代码重新敲一遍。敲不出来就是没学会敲出来了那个知识才是真正属于你的。5.2 写下来是最高效的学习策略我想特别强调一遍记录这件事。不只是记录代码而是记录决策依据。比如你在两个 embedding 模型之间犹豫最后选了其中一个以及为什么你在调 chunk size 时测过哪些值效果分别如何。这些记录短期看像是拖延了写代码的时间长期看却是构建你的工程判断力的唯一途径。随手创造一个习惯就能给自己省下大量时间在代码仓库里建一个notes.md每当你改完一个关键参数、踩完一个坑之后立刻花五分钟更新这个文件。不要等整个项目做完再补文档那时你已经忘了当时是怎么想的了。这五分钟不会白花——下一轮你或者别人要改这块代码的时候这份笔记的价值会高得惊人。5.3 在社区和真实项目里磨炼学习的终态是产出。我特别建议在完成一两个个人项目后试着去参与一些开源的 AI 工具项目或者在自己公司内部找一个能用 AI 解决的小问题完整地交付一次。真实场景里会遇到课程完全没教过的问题数据比想象的脏、需求方说不清楚要什么、模型效果达标了但推理性能不够……这些脏活累活恰恰是普通学习者和真正 AI 工程师之间最大的差距所在。6. 回归到 from-scratch 的本心最后分享一点个人的体会。from scratch这个短语表面上是说从零开始学但把整个项目做完之后我反而觉得它更强调的是不依赖黑盒的底气。当你亲手用 NumPy 实现了线性回归、亲手调整过 embedding 的相似度阈值、亲手把一个 PyTorch 模型打包成 Docker 镜像并跑通了线上请求的时候你对AI 能做这个这句话的理解会和看了一百篇教程完全不同。我还记得自己做第一个完整项目时最焦虑的是感觉什么都会一点什么都不精。但当我把那个文本分类 API 部署上线真实地收到来自别人的测试请求时这个焦虑消失了——你亲手建立了一条从想法、数据、模型到服务的完整链路这条链路里每一个环节的坑你都知道大概在哪里、长什么样、怎么绕过去。这就是从零到一的工程能力。希望这篇文章能帮你在自己的 from-scratch 旅途上少走几个我走过的弯路。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询