我刚入行那几年,隔三差五就有人跑来问我:"我不是科班出身,数学也忘得差不多了,能不能做AI工程?"说实话,我当时的回答比较保守,总劝人先补补线性代数再说。直到后来我带过不少转行的新人,也亲眼见过文科背景的朋友把模型训得比我还溜,我才意识到一个事实:AI engineering 入门这件事,真正卡住大多数人的根本不是数学,而是没人告诉他们一条清晰的路——先学什么、后学什么、学到什么程度就该动手了。这篇文章就是那条路。我会把从零开始到跑通第一个真实项目、再到把模型工程化的完整路径拆开讲清楚,全程贯彻"from scratch"的做事逻辑:不依赖任何封装好的黑盒,每一步都知道自己在干什么。适合完全零基础的转行者、在校学生,也适合已经在业务侧但想补技术底子的产品经理和数据分析师。
1. 先破个误区:AI工程和AI算法研究不是一回事
很多新手一提到AI工程,脑子里浮现的是推导公式、证明收敛性、发论文的那类形象,然后立马被劝退。这个印象不能说错,但它描述的是算法研究员的工作,不是AI工程师的工作。我见过太多人被这个误解挡在门外,所以第一件事就是把这两个角色的区别掰扯清楚。
1.1 算法研究员、数据分析师、AI工程师的定位差异
打个比方:算法研究员是发明新菜谱的人,数据分析师是品鉴菜品、告诉厨师哪里咸了哪里淡了的食评家,而AI工程师是把菜谱稳定复刻成中央厨房量产标准的人。研究员的产出是论文和实验结论,分析师的产出是洞察和报表,工程师的产出是能跑、能维护、能交付的系统。
具体到日常任务上,三者差别非常明显:
- 算法研究员:读论文、复现实验、调参刷点、写实验报告。核心关注点是模型指标有没有提升。
- 数据分析师:写SQL取数、做AB实验分析、画图表、给业务方解释数据背后的含义。核心关注点是业务问题的量化归因。
- AI工程师:写数据处理脚本、搭训练流水线、部署推理服务、监控线上指标、排查模型报错。核心关注点是整个系统是否稳定高效运转。
从这个对比能看出,AI工程的门槛并不在于你多会发明新模型,而在于你多能搞定真实系统里的脏活累活。数据清洗和处理能力、代码工程能力、模型调优与部署能力,这三样才是AI工程师吃饭的本事。
1.2 从零开始需要具备的真实能力模型
既然定位清楚了,那"从零开始"到底要从哪里开始?我给一个基于实际工作内容的拆解。一个合格的AI工程师,日常核心技能可以分成四块。第一,编程基础,主要是Python。这不用多解释,几乎所有AI生态的工具链都以Python为第一公民。第二,数据与SQL。模型吃的是数据,你连数据都取不明白、处理不干净,后面全是白搭。第三,机器学习与深度学习基础。不需要你手推所有公式,但得理解训练、验证、测试的流程,理解损失函数、梯度下降、过拟合这些核心概念在干什么。第四,工程化能力。包括用Git管理代码、用Docker打包环境、用FastAPI之类的框架把模型包成接口、用云平台做部署。
我见过不少自学者的通病:花三个月死磕《机器学习》(西瓜书)的公式推导,结果连pandas的groupby都用不明白,更别提把一个训练好的模型保存下来并提供API服务。这就是典型的定位错误——拿算法研究员的路径来准备AI工程的岗位,事倍功半。
1.3 "从零开始"的真实起点:不是什么都不会,而是不确定下一步干什么
说句掏心窝的话,"从零开始"这个状态,最折磨人的不是"什么都不会",而是"不知道下一步干嘛"。网上东西太多,今天看到有人说先学PyTorch,明天看到有人说先学数据分析,后天又有人说大模型时代不用学传统机器学习,直接学Prompt就够了。这些说法单独看都有道理,合在一起就是精神内耗。
我的建议非常务实:以"能独立完成一个AI项目的完整闭环"为目标来倒推学习路径。什么叫完整闭环?从一个原始数据集出发,经过清洗、特征处理、模型训练、评估调优,最终交付一个可以通过接口调用或者文件方式产出的可用模型。这个闭环一旦跑通,你就同时掌握了数据能力、建模能力和基础工程能力,期间遇到的具体问题会逼着你把该补的知识补上。这条路线,是三年多来我验证过、也反复带人走通的路。
2. 起步阶段的三道关卡:Python、数据、环境,按这个顺序突破
确定了方向之后,就是脚踏实地的学习阶段。很多人的计划表排得跟考研一样,恨不得把每个知识点的学时都定好。我的建议反而不是排那么细,而是定好关卡,一关一关过。每一关学到什么程度算过,我给你一个明确的标准。
2.1 第一关:Python编程能力的"够用"标准
Python这关不需要你成为语言专家,目标只有一个:能顺畅地写脚本处理数据。具体来说,至少要做到以下几点:
- 变量、数据类型、条件判断、循环这些语法基础要熟,看到一段代码能说出它在干什么;
- 函数和类的定义要会,不用精通面向对象的所有特性,但要能写出结构清晰、可复用的函数;
- 文件读写、异常处理要熟练掌握,因为真实数据永远是脏的,代码不能一遇到怪数据就崩掉;
- 至少用过列表推导式、字典、集合这些常用数据结构,能写出简洁不啰嗦的代码。
我推荐的学习方式和大多数人习惯的不太一样:不要刷完整本语法书再去干别的,而是边写边学。找一本薄一点的Python入门书,看前三章就开始对照网上的小项目练手。我当时带过一个新人,他花了差不多三周时间把Python基础过完,然后立刻转入pandas读CSV、做统计分析的实战。语法忘了就翻书,遇到问题再回去补概念。这样学出来的Python,是带着"解决问题"的肌肉记忆的,远比孤立地背语法高效。
2.2 第二关:数据处理的肌肉记忆
这一关是AI工程里最不起眼但最重要的地基。很多新手对训练模型充满期待,结果一上手发现80%的时间都在和脏数据搏斗——缺失值、重复值、异常值、格式不统一、字段对不上。数据处理能力不过关,后面寸步难行。
核心工具是pandas和NumPy。pandas负责表格数据的读取、筛选、分组、聚合、合并,NumPy负责数值计算和数组操作。你至少要熟练掌握以下操作,并且能闭着眼写出来:
- 用
read_csv()、read_excel()读数据,用info()、describe()快速了解数据概貌; - 用
isnull()找出缺失值,用fillna()或dropna()处理缺失; - 用
drop_duplicates()去重,用astype()转换字段类型; - 用
groupby()配合agg()做分组统计,用merge()和concat()拼接数据; - 用
matplotlib或seaborn画直方图、箱线图,从直观上看看数据分布。
这一关的练习素材遍地都是:Kaggle上随便找一个入门数据集,比如泰坦尼克号生存预测,数据量不大、字段有意义,拿来练手非常合适。给自己定个目标:用pandas把这个数据集翻来覆去地查、筛、画图、统计,直到觉得"这些操作已经进入肌肉记忆了",这关就算过了。
2.3 第三关:AI工程的环境噩梦——本地环境搭建
说句实在话,我看过太多人倒在距离代码最近的地方:环境装不上。不是在装PyTorch时报错,就是CUDA版本不匹配,折腾两三天心态就崩了。这里我不打算把每个步骤零碎地列一遍,而是给你一套尽量稳妥的组合拳。
Python版本管理:强烈建议用pyenv或conda来管理Python版本,不要直接往系统里装原始Python。原因很简单:不同项目依赖的Python版本可能不一样,有的项目要3.9,有的要3.11,pyenv可以随时切换,互不干扰。
依赖管理:每个项目都要创建独立的虚拟环境。用python -m venv venv创建虚拟环境,激活后再往里装包。这样A项目装的东西不会污染B项目。新手经常省掉这一步,直接往全局环境里装了一堆包,最后版本冲突了只能哭。
包安装加速:如果你在国内,pip默认源的速度可能让人怀疑人生。配置清华或阿里镜像可以大幅提速。命令很简单,一行就能搞定:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple机器学习框架安装:初学者我建议先把scikit-learn玩熟,它是传统机器学习的主力库,CPU就能跑,安装没有任何负担。等进入深度学习阶段再装PyTorch。GPU版本的PyTorch安装是重灾区,关键点在CUDA的版本要和PyTorch要求的版本匹配。我的建议是先装CPU版本跑通流程,等真正需要训练大模型时再折腾GPU环境——到那时你对命令行已经熟悉多了,再处理起来会从容很多。
代码编辑器:VSCode是我的主力推荐,装上Python插件和Jupyter插件基本就够用了。Anaconda全家桶自带Jupyter Notebook,对纯新手更友好,但VSCode+Jupyter插件的方式更接近真实工程师的工作流。
环境这关的验收标准很简单:你能在自己的电脑上创建一个干净的Python环境,装好pandas、scikit-learn和一个Jupyter环境,成功跑通一段读写数据的代码。做到这一步,你的"from scratch"就正式迈出了第一步。
3. 机器学习核心概念的"翻译式"理解:不推导公式也能用明白
很多人学的第一道坎是数学。我的观点是:AI工程导向的学习,概念的理解远比公式推导重要。你不需要会证明贝叶斯定理,但必须知道朴素贝叶斯分类器在干什么、它的假设是什么、什么场景下用它。
3.1 把八个高频概念翻译成人话
我总结了一套"翻译对照表",带过的新人都反馈说好懂:
- 特征:就是输入给模型的每一个属性。预测房价时,面积、地段、房龄都是特征。
- 标签:就是你要预测的目标值。房价就是标签。
- 训练和推理:训练是让模型从历史数据里学规律,推理是拿训练好的模型去预测新数据。
- 过拟合:模型把训练数据背了下来,却看不懂没见过的题目。就像学生只背了练习册原题答案,考试一出变体就懵。
- 欠拟合:模型连训练数据都没学好,成绩一团糟,通常是模型太简单或者训练不够。
- 损失函数:衡量模型预测得有多不准的标尺。预测越离谱,损失越大。
- 梯度下降:找到让损失变小的方向,一步一步调整模型参数。就像下山时每一步都朝最陡的坡走,最终走向谷底。
- 验证集与测试集:验证集用来在训练过程中调参选模型,测试集用来最后检验模型的真实表现。
别看这些概念朴素,它们就是整个机器学习的骨架。任何一个模型,无论多复杂,最后都是围绕"定义损失函数、优化损失函数、防止过拟合"这三个动作展开的。
3.2 理解监督学习的完整流程:一次完整训练的内部逻辑
为了让抽象的流程落地,我拆解一个最小可行的监督学习流程。Step 1,拿到一份带标签的数据集,按比例切分成训练集和测试集,常见比例是7:3或8:2。Step 2,选择模型。新手入门选线性回归或逻辑回归最合适,它们简单、可解释、跑得快。Step 3,在训练集上调用模型的fit()方法进行训练。Step 4,在测试集上用predict()得到预测结果,和真实标签对比,计算准确率、F1、均方误差等指标,评估模型好坏。
关于步骤顺序,我要特别提醒一个新手常犯的错误:先切分数据集,再做任何数据预处理,包括填充缺失值、标准化、特征编码。原因是测试集必须扮演"未来的新数据"角色。如果你用整个数据集的信息去填充缺失值或做标准化,信息就已经泄漏给测试集了,评估出来的指标虚高,一上线就露馅。这个错误我当年踩过,带过的新人也踩,属于AI工程领域的"兵家必争之坑"。
3.3 用scikit-learn跑通第一个机器学习矩阵
这里我给出一个可以直接在Jupyter里跑的代码骨架,用经典的鸢尾花数据集,三分钟就能体验一次完整的训练评估流程。这个数据集是sklearn自带的,不需要额外下载数据。
from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score # 加载数据 iris = load_iris() X, y = iris.data, iris.target # 切分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=42 ) # 创建并训练逻辑回归模型 model = LogisticRegression(max_iter=200) model.fit(X_train, y_train) # 预测并评估 y_pred = model.predict(X_test) print("准确率:", accuracy_score(y_test, y_pred))跑通这段代码之后,你可以做几个小改动来加深理解:换不同的test_size看准确率怎么变;把逻辑回归换成决策树(DecisionTreeClassifier)感受不同模型的差异;增加random_state的取值变化,观察数据切分随机性对结果的影响。这些"改动-观察-思考"的循环,比看十遍理论都有用。这时候你可能隐约觉得模型效果还行,但完全不知道它内部发生了什么。别急,这就是我为什么下一节要求你放下封装好的工具,亲手把训练过程拆开看一遍。
4. 手写一个最小神经网络:亲手拆开训练过程的黑盒
scikit-learn用起来太舒服了,舒服到很多人会产生错觉:机器学习就是调用fit()和predict()。直到用深度学习框架处理复杂问题时,遇到梯度爆炸、损失不下降、训练速度慢这类问题,完全不知道从哪排查。根源就在于没有理解训练的本质。所以这里我建议,应该亲手用NumPy写一个几十行代码的神经网络,不用PyTorch、不用TensorFlow,就纯NumPy。
4.1 为什么我不让你一上来就用PyTorch
PyTorch这类框架做了太多贴心封装,一句loss.backward()就完成反向传播,梯度更新也自动搞定。方便是真的方便,但也把核心机制藏得严严实实。如果连"前向传播算预测、反向传播算梯度、梯度下降更新参数"这个三角关系都不亲手写一遍,后面遇到任何神秘问题都没有调起思路。打个比方:你学开车,驾校直接给你一辆带自动驾驶辅助的车,可一旦辅助系统在复杂路段出错,你连方向盘怎么修都心里没底。手写网络,就是摘掉辅助系统,体验一把纯粹的控制感。
手写一个两层神经网络的代码量完全在可接受范围内。以二分类问题为例,完整实现大概长这样:
import numpy as np def sigmoid(x): return 1 / (1 + np.exp(-x)) np.random.seed(0) # 输入X是形状为(M, 2)的数据,y是形状为(M, 1)的标签 X = np.random.randn(100, 2) y = (X[:, 0] + X[:, 1] > 0).astype(float).reshape(-1, 1) # 初始化参数:输入2 -> 隐层4 -> 输出1 W1 = np.random.randn(2, 4) b1 = np.zeros((1, 4)) W2 = np.random.randn(4, 1) b2 = np.zeros((1, 1)) learning_rate = 0.1 for epoch in range(1000): # 前向传播 z1 = X @ W1 + b1 a1 = np.tanh(z1) z2 = a1 @ W2 + b2 a2 = sigmoid(z2) # 计算损失(交叉熵) loss = -np.mean(y * np.log(a2 + 1e-8) + (1 - y) * np.log(1 - a2 + 1e-8)) # 反向传播(链式法则,此处直接给出梯度表达式) dz2 = a2 - y dW2 = a1.T @ dz2 / len(X) db2 = np.sum(dz2, axis=0, keepdims=True) / len(X) da1 = dz2 @ W2.T dz1 = da1 * (1 - a1 ** 2) dW1 = X.T @ dz1 / len(X) db1 = np.sum(dz1, axis=0, keepdims=True) / len(X) # 梯度下降更新参数 W1 -= learning_rate * dW1 b1 -= learning_rate * db1 W2 -= learning_rate * dW2 b2 -= learning_rate * db2 if epoch % 200 == 0: print(f"epoch {epoch}, loss = {loss:.4f}")4.2 逐行理解训练三角:前向传播、反向传播、参数更新
代码跑通之后,把思路卡在训练三角上。前向传播做的事情,是把输入数据逐层做矩阵乘法、过激活函数、得到输出;反向传播做的事情,是根据输出和真实标签的差距(损失),从后往前逐层计算每个参数"应该往哪个方向调";参数更新做的事情,就是用梯度下降等优化算法把参数朝正确的方向挪一小步。这三个动作循环往复成百上千次,损失就会逐步下降,模型预测就越来越准。
手写代码还有一个隐藏福利:你能清楚看到每个参数的梯度是怎么由链式法则一层层传递回来的。当你的网络运行正常、loss稳步下降时,你对"训练"这个东西会建立非常牢固的直觉,甚至有一种"显示器上的数字是我亲手调的参数带来的"的掌控感。等回头再去看PyTorch文档里的nn.Linear、optimizer.step(),你会觉得那些不过是把手写的细节封装好了而已。
4.3 把"调参"第一次变成有方向的行动
跑了上面这段代码,你可以做几组对照实验来体验调参的感觉。第一个实验:把学习率改成0.001,观察loss下降变慢,训练可能要更多轮次;把学习率改成10,观察loss发散不降反升。这个实验能让你真实感受"学习率太大容易震荡、太小收敛慢"这句教科书名言。第二个实验:把隐层神经元数量从4改成64,观察训练更"有力",但也容易过拟合,测试集表现可能不升反降。第三个实验:去掉tanh激活函数,直接把两层线性变换叠在一起,观察模型表达能力明显下降。
我建议把这些实验结果记录在一个表格里,形成一个自己的"调参日志"。以后用到深度学习框架时,你会感谢现在养成的这个好习惯——记录每个改动对应的效果,是AI工程师最基础的科学方法论。
5. 第一个完整项目:从原始数据到可交付模型
到这里,你已经掌握了Python数据处理、机器学习基本流程,也亲手写过网络训练过程了。现在该给自己来一次真正的实战演练了。很多人到这一步就开始纠结:学CV还是学NLP?做推荐还是做预测?项目选什么题?纠结到最后,一个月过去了,什么也没做出来。我的建议很直接:选一个表格数据预测问题,完整地走一遍项目闭环。用经典的房价预测数据集(比如波士顿房价或加州房价),或者预测员工是否离职,都行。关键是走完整个流程。
5.1 选项目的原则:覆盖全流程、数据量可控、成败可感知
零基础第一个项目的题材选择,有三个原则要守住。第一,数据要是表格数据,不要一上来就搞图片或文本,因为表格数据的数据清洗、特征工程和模型评估流程最标准,也最容易排查问题。第二,数据量在几千到几万之间,太小学不到东西,太大跑得慢、挫败感强。第三,任务类型最好是回归或分类,因为评价指标清晰——分类看准确率、F1,回归看均方误差、R2,结果好不好一眼便知。等这个闭环走顺了,再去挑战图像、文本、大模型方向,每个方向都会有它特有的新问题需要学习,但核心框架你已经掌握了。
5.2 项目全流程拆解:数据清洗、基线模型、特征工程、模型迭代
如果你用加州房价数据集,完整流程可以拆成五个阶段。阶段一,加载数据,用info()看有没有缺失值,用describe()看数值分布有没有异常。如果发现某个字段有缺失,根据字段含义决定填充方式,比如中位数填充或按分类分组填充。阶段二,基线模型先行。不要一上来就搞复杂特征工程或调参,先用最朴素的线性回归配合几个默认参数跑一遍,记录它的指标表现,作为后续所有努力的参照线。阶段三,做一轮基础特征工程。比如创建"房间平均面积"这类组合特征,对数值型特征做标准化,对类别特征做独热编码,然后重新训练模型,对比和基线有没有提升。阶段四,换更强的模型。把线性回归换成随机森林或梯度提升树,一般会带来明显提升。然后简单调一下树的数量、最大深度、学习率这几个关键参数,每调一次都在验证集上记录指标。阶段五,凝固成果。用测试集做最终评估,输出模型表现报告。
每一步都用代码实现并记录结果后,你会发现自己对AI工程的感受已经完全不同。那些网课上讲的"数据决定上限""特征工程很重要""模型选择有讲究",在你亲手体验过后都会内化成真正的认知。这就是为什么我说第一个完整项目的价值,远大于十门网课。
5.3 项目复盘的标准动作:把"看着挺顺"变成"明确知道好坏"
项目跑通之后,别急着开心,先做一场严肃的复盘。复盘的标准动作包括三个。一,把所有实验记录整理成表格,每一行是一次实验(模型名、关键参数、验证集指标),一目了然看出哪一步贡献了最大提升。二,分析错误样本。分类问题看哪些样本被分错了,回归问题看哪些样本预测偏差最大,思考这些样本有什么共性特征,往往能带出下一个特征工程思路。三,写一段项目总结文档,描述数据情况、处理方法、模型选择理由、最终指标。
我已经数不清见过多少新人项目"跑完了"之后一问三不知,连自己用过哪些特征、做过哪些尝试都说不清。AI工程和实验室做作业最大的不同,就是工程讲究可追溯、可复现、可交接。从第一个项目就养成复盘记录的习惯,价值连城。
6. 工程化思维:从Notebook代码到可交付的AI服务
很多自学者做到上一步就停住了,觉得"模型跑通了,任务完成"。但在真实业务里,这最多只完成了30%。一份散落在Jupyter Notebook里的代码,别人没法复用,没法上线,没法运维。所谓"工程化",就是把这30%补到100%。
6.1 Notebook时代的终结:脚本化与结构化
第一步,把Notebook里的代码按职责拆成脚本文件。通常一个最小可用的Python项目会包含这些文件:data_loader.py负责加载和清洗数据,train.py负责训练模型并保存,predict.py负责加载模型对新数据进行预测,requirements.txt列出项目依赖。文件结构清晰之后,项目的可读性和可复用性会立刻提升一个档次。
举例说明,训练脚本保存模型的核心代码只涉及两行:
from sklearn.linear_model import LinearRegression import joblib model = LinearRegression() model.fit(X_train, y_train) joblib.dump(model, 'house_price_model.pkl')当你要给其他人使用时,对方只需要拿到这个.pkl文件和一个predict.py脚本,就能对新数据做推理,而不需要重新执行整个Notebook。这就是工程化降低使用门槛的第一步。
6.2 把模型变成API服务:FastAPI实战要点
真实业务里,模型更多时候不是被人直接调用的,而是被业务系统以API形式调用。把模型封装成API服务,在AI工程里是高频需求。FastAPI是当前的主流选择,代码简洁、性能好、自动生成接口文档。一个最小可行的模型API服务示例:
from fastapi import FastAPI from pydantic import BaseModel import joblib app = FastAPI() model = joblib.load('house_price_model.pkl') class HouseFeatures(BaseModel): area: float bedrooms: int age: float @app.post("/predict") def predict(features: HouseFeatures): X = [[features.area, features.bedrooms, features.age]] price = model.predict(X)[0] return {"predicted_price": price}运行方式是在终端执行uvicorn main:app --reload,然后访问http://127.0.0.1:8000/docs就能看到自动生成的接口文档,直接在网页里测试接口。这一整套流程跑通之后,你就拥有了把一个模型"交付"出去的能力。我自己带新人时,到这个节点通常都要求他们把项目部署到公网或公司内网环境,因为接口能真正被别的地方调用,才叫完整的交付。
6.3 版本管理与实验追踪:AI工程师的隐形必修课
工程化还有两块容易被自学者忽略但极其重要的能力。第一块是用Git做版本管理。哪怕只是一个人开发,也要养成每次修改代码前git commit的习惯。好处很明显:某个版本的实验效果好,你可以随时回到那个状态;改坏了代码,可以快速回滚而不至于熬夜重写。Git的基本操作,init、add、commit、branch、checkout,半小时就能上手,但价值是长期的。
第二块是实验追踪。你可以用Excel、CSV,或者专业的MLflow来记录每次实验的参数和指标。我习惯把每次实验的模型名、关键参数、训练集指标、验证集指标、备注写在表格里。几个月后回看时,这张表会清晰地告诉你哪些路走过、哪些好使、哪些没用。工程化的核心不是用多高级的工具,而是用纪律把每次探索的轨迹留下来,让经验可以积累、可以继承。
7. 接下来往哪走:深度学习与大模型时代的进阶路径
如果你已经完成了前面的所有步骤,恭喜你,你已经从一个"零基础的新手",变成了一个"有独立完成AI项目闭环能力的人"。这时你会面临一个新的困惑:大模型时代,传统机器学习的东西还有用吗?我要学的深度学习到底该学多深?我接下来该选哪个方向?这些问题没有标准答案,但有几个原则可以帮你减少走弯路的概率。
7.1 别急着追"大模型",先把深度学习基础补扎实
很多人看到现在大模型满天飞,就想去学怎么微调LLaMA、怎么搭RAG应用,完全跳过深度学习基础。我的建议刚好相反:先把深度学习基础打扎实。因为无论是微调大模型、做RAG、还是开发Agent应用,底层的骨干网络、嵌入表示、注意力机制、梯度训练这些概念,全部源自深度学习基础。你对transformer、BERT、GPT这些现代架构的理解,必须建立在神经网络工作方式之上,否则你除了会调包之外,什么都没有。
深度学习基础的学习建议按以下顺序展开。第一,用PyTorch重写上一章用NumPy手写的神经网络,体验框架带来的便利,同时通过对照确认你确实理解内部机制。第二,理解卷积神经网络的基本结构和它在图像任务中的动机,不必太深入,能跑通一个手写数字识别之类的经典任务即可。第三,理解循环神经网络和序列模型的思路,重点是理解输入长度可变和时序依赖这两个新问题。第四,理解注意力机制和Transformer结构的核心思想,这是通向现代大语言模型的最后一公里。每一步都配一个小项目,千万别只刷课不动手。
7.2 怎么选方向:CV、NLP还是LLM应用
方向选择上,我给一个非常务实的判断框架。如果你对图像检测、分割、人脸识别这些具体任务感兴趣,且愿意积累领域知识,走计算机视觉方向;如果你对文本分类、信息抽取、知识图谱感兴趣,走自然语言处理方向;如果你更关心怎么用现成的大模型去解决实际业务场景,比如搭建企业知识库问答、设计Agent工作流,那可以直接走大模型应用方向。前两者需要更扎实的模型训练功底,后者则更看重工程集成、评估、产品化能力。
大模型应用是目前市面上需求量最大的AI工程岗位方向之一,但竞争也激烈。如果你能同时具备前两步打下的建模底子,再叠加RAG、Prompt工程、模型评估这些应用层能力,就会形成一个很少见的差异化优势——既懂模型原理,又会工程落地。我一直觉得这个组合,才是最值钱的AI工程师画像。
7.3 保持清醒:AI工程的护城河不在模型,在数据与领域理解
最后,说一个我在这个行业摸爬滚打几年后最深的体会:一个AI工程师的护城河,从来不是会最新最火的模型,而是懂业务数据和懂领域问题。同样一个算法,扔到金融风控场景,你需要理解什么是逾期、什么是坏账;扔到医疗场景,你需要理解影像数据、诊断流程里的坑;扔到电商场景,你需要理解转化率、用户行为数据各种口径背后的含义。模型框架大家都在用、都会用,真正拉开差距的是谁能把业务问题转换成数据问题,再把数据问题转换成模型问题,最后用工程手段交付一个稳定可靠的结果。
所以从现在开始,别只盯着模型代码看,多花时间去理解你所在行业的数据流转、业务链路和指标口径。一个能跟业务方聊明白的AI工程师,价值远高于一个只会调参的。这也是为什么我一直强调"from scratch"不只是从零学技术,更是从零建立一套"如何把问题落地成系统"的思维方式。
文章写到这里,我自己也挺有感触。这几年我见过很多人从一开始觉得自己"这也不行那也不行",到一步一步把项目做完时眼里有光的样子。AI工程这条路,表面上技术门槛高,实际上只要你愿意动手、耐得住性子把基础打牢,它给普通人的回馈是实实在在的——你会看到一行行代码变成能赚钱、能省人力、能解决真实问题的系统。如果你正准备迈出第一步,别再多想,打开编辑器,装好Python环境,从读一份CSV数据开始。走起来,路自然就清晰了。