前阵子有个朋友来问我:AI培训到底学什么?他已经在某家机构试听了几节课,越听越懵——一会儿讲Python,一会儿讲线性代数,一会儿又冒出大模型、微调、RAG这些词。这还真不是他一个人遇到的困惑,我见过太多人课程报完了,方向还没定。这篇就把AI培训里最常见的问题拆开说清楚:AI学习大体分三个方向,每个方向从入门到高阶要掌握的技术栈分别是什么,以及你自己更适合走哪条。不管你是打算转行、在校准备找实习,还是已经自学了一段时间但总觉得知识是散的,这篇都能帮你把路线捋直。
1. 为什么聊AI学习,总要先分成三大方向
1.1 一个让人迷路的原因:关键词太多
AI这个词在市面上被塞进了太多东西。数据分析岗位也叫AI,做推荐系统的也叫AI,训模型的也叫AI,做智能客服的还叫AI。但真到学习层面,这几类工作的核心知识差异极大。你让一个做表格数据分析的人去背Transformer的注意力公式,大概率用不上;让一个大模型应用开发的人去手推SVM对偶问题,也不是他日常工作的刚需。
培训机构最喜欢把所有这些词揉进一份大纲里,看上去很全:先是Python,然后数学,然后机器学习,然后深度学习,再挂一个大模型应用开发。问题是,人的时间和精力是有限的,体系太全的结果往往是什么都沾一点,什么都不深入。我见过不少学员,上完三个月课,能背出一堆名词,却没法独立完成任何一个端到端的项目。
所以学习AI的第一步不是急着买课,而是先定位。定位的本质是搞清楚:你未来要处理的数据长什么样,你做出来的东西给谁用,解决什么类型的实际问题。这三个问题一旦有了答案,学习路径就清晰了一大半。
1.2 三大方向的分界线在哪儿
我自己习惯把AI学习路径分成三条:数据分析与机器学习、深度学习(计算机视觉与自然语言处理)、大模型与AIGC应用开发。这不是学术上的严格分类,而是从“学习者最常面对的真实工作场景”出发的一种实用划分。
第一条线的核心是结构化数据,就是Excel表格、数据库里那些规规矩矩的字段:用户ID、注册时间、消费金额、点击次数。典型任务是预测(下个月销售额是多少)、分类(这个用户会不会流失)、聚类(把用户分成几类)以及规则发现。这条线以经典机器学习算法为主,对数学的要求偏应用,对业务理解能力要求高。
第二条线的核心是非结构化数据:图像、文本、语音、视频。典型任务是图像分类、目标检测、语音识别、文本翻译、情感分析。这条线以深度学习为主,需要理解神经网络、卷积、注意力机制等概念,也需要接触大量数据和算力。
第三条线是最近两年增长最快的一块,核心是使用已经训练好的大语言模型,通过提示词、检索增强生成(RAG)、智能体(Agent)、微调等手段,构建对话、内容生成、知识问答一类的应用。它更偏工程和产品思维,算法门槛反而不像第二条线那么硬,但工具链复杂得多。
这三条线当然不是完全隔离的,到了高阶都会交叉。但在起步阶段,我强烈建议你只选一条主攻,把这条线的完整技术栈摸透,再考虑横向扩展。贪多嚼不烂,在AI学习上尤其明显。
1.3 对照表:哪条路更适合你
为了让你更直观地判断,我做一个简单的对照。注意这只是面向初学者的画像,不是职业发展的天花板。
| 对比维度 | 数据分析与机器学习 | 深度学习(CV/NLP) | 大模型与AIGC应用开发 |
|---|---|---|---|
| 主要数据形态 | 表格、数据库等结构化数据 | 图像、文本、语音等非结构化数据 | 文本、文档、知识库、接口数据 |
| 典型工作内容 | 报表分析、风险预测、用户画像、推荐策略 | 训练/微调模型,图像识别,文本分类,语音处理 | 提示工程、知识库问答、智能体开发、模型微调 |
| 核心课程 | Python、统计学、机器学习算法、特征工程 | 深度学习理论、卷积网络、循环网络、Transformer | Prompt、RAG、Agent、模型部署、微调 |
| 数学要求 | 中等,重统计和线性代数应用 | 较高,重微积分、线性代数和概率 | 较低,能理解基本概念即可 |
| 上手速度 | 较快,两三个月能做出像样分析 | 较慢,需要积累训练和调参经验 | 最快,API调用几天就能做出demo |
| 进阶瓶颈 | 业务理解和特征工程 | 算力、数据质量和训练经验 | 工程稳定性、效果评估、成本控制 |
表格只是参考。我见过学数学出身的人做AIGC做得极顺,也见过纯业务背景的人在机器学习方向做到资深。关键在于你愿不愿意在这个方向上持续积累至少一年。下面我把三个方向的技术栈逐个拆开讲。
2. 方向一:数据分析与机器学习,把表格数据吃透
2.1 入门要打的两层地基
这个方向的第一层地基是应用数学,不是数学系那套理论。你需要掌握的核心知识点其实很少:微积分里的导数与梯度(用来理解优化过程),线性代数里的矩阵乘法(数据是怎么被批量计算的),概率论里的分布、期望、方差(数据规律怎么描述),数理统计里的假设检验与置信区间(结论靠不靠谱)。这些不用一上来就啃厚厚的教材,可以用小例子推着学。比如你用Excel算过均价和标准差,再去看概率论里的均值方差公式,感受完全不一样。
第二层地基是Python的数据处理能力。框架层面的东西可以晚点学,但pandas和NumPy这两个库必须熟练,因为它们是你以后接触任何表格数据的基本操作工具。再加上matplotlib或seaborn做可视化,scikit-learn里跑模型。很多零基础的朋友在Python语法上浪费时间,深究装饰器、元类这种高级特性,其实对于机器学习入门来说,会写函数、会处理列表和字典、会用pandas的groupby,就够了。
我的建议是:数学和Python不用分开学,找一份真实的表格数据,边清洗边理解统计概念,效率能高一倍。比如你拿一份电商订单表,自己去计算不同地区用户的复购率差异,这个过程中你会自然用到分组、透视、均值、方差,比背公式有意义得多。
2.2 机器学习项目是怎么转起来的
很多人以为机器学习就是调一个库跑个模型,其实完整的项目流程是:数据获取、数据清洗、特征工程、模型训练、模型评估、调参优化、上线与监控。
数据清洗是最脏最累但最关键的一步。真实数据里一定有缺失值、重复值、异常值、格式不一致。你得决定某列缺失是直接删掉、填充均值、还是用模型预测填充。这个决策没有标准答案,完全取决于业务场景。比如用户年龄缺失,如果只是做个粗粒度分析,填充中位数可以;如果要做精准的信用评估,可能需要单独把“缺失”本身当成一个特征,因为缺失可能有含义。
特征工程是机器学习里最“手艺活”的部分。同样的数据,有人做出来AUC是0.7,有人能做到0.85,差别往往不在模型,而在特征。特征是模型的输入,输入质量直接决定输出上限。你可以把数值列做标准化(公式就是$x'=(x-\mu)/\sigma$),把类别列做编码,把时间列拆成年月日星期,再结合业务构造一些交叉特征和生活常识特征。比如预测用户会不会复购,光有“消费次数”和“平均客单价”还不够,你还需要“最近一次消费距今多少天”“优惠券使用频率”这类能反映用户当下状态的指标。
模型训练阶段,我建议先从scikit-learn里的线性模型和树模型开始。不要一上来就追求深度学习。决策树和随机森林对表格数据的表现往往非常好,而且可解释性强,出了问题容易排查。训练完成后,评估环节要分清楚:分类任务看准确率、精确率、召回率、F1、AUC;回归任务看MAE、MSE、RMSE。其中AUC特别值得理解,它衡量的是模型把正样本排在负样本前面的能力,对类别不平衡的情况比准确率可靠得多。比如一个欺诈检测场景里99%都是正常交易,模型全预测正常就能拿到99%准确率,但AUC会很差,这个模型实际没法用。
2.3 从会跑流程到能接业务:进阶脉络
能完整跑通一个流程只是入门结束,进阶的路标大概是这样的:先学会做更细的特征工程,能主动构造交叉特征、目标编码、时序特征;然后学模型调参,理解树模型的深度、叶子节点数、学习率、正则化参数对结果的影响;再往后是模型解释性,SHAP值和特征重要性图要会读,不然业务方问你“为什么这个用户被判定为高风险”,你答不上来。
等你积累一段时间,会发现单模型的套路不够用了,需要接触集成学习、模型融合、交叉验证这些进阶玩法。再往后,如果你所在环境的数据规模变大,可能还要接触分布式计算的基本概念,比如用Spark处理几亿行的数据。这一阶段的核心已经不是“会不会调库”,而是“能不能把控一个机器学习系统从数据到决策的完整链路”。
还有一个容易忽略但很重要的进阶方向是因果推断与AB实验。机器学习模型给出的往往是相关性,但业务决策需要因果关系。这个用户被推荐了商品所以买了,还是因为他本来就打算买?想搞清楚,就绕不开实验设计和因果推断。这部分内容在入门阶段可以先不了解,但到了中高阶,它就是区分普通分析师和资深算法工程师的关键。
2.4 一个立得住的项目:复购预测
我拿一个特别经典的项目来演示完整流程:预测电商用户下个月会不会再次下单。数据字段大概长这样:用户ID、注册时间、最近一次下单时间、历史下单次数、历史消费总额、平均客单价、最近30天访问次数、优惠券使用次数、商品品类偏好等。
第一步是清洗。检查有没有重复用户ID,把下单时间字段统一成标准时间格式,处理负的消费金额,决定缺失的访问次数怎么补。第二步是构造标签。你要预测的是“下个月会不会下单”,所以标签应该是在样本截止日期之后30天内是否下单。这里有个极其容易犯的错,叫时间穿越,就是训练数据里不小心用了截止日期之后的信息。比如你用“这个月已经下单”去预测“这个月会不会下单”,模型指标会好看到离谱,但上线就废。做时间序列类项目时,必须严格把特征时间窗口和标签时间窗口切开。
第三步是特征工程。把“最近一次下单距今多少天”算出来,把“平均下单间隔”算出来,把“近90天消费金额趋势”(是增长还是下滑)用斜率表达。第四步是建模。可以先跑逻辑回归做基线,再上随机森林或XGBoost。用交叉验证评估,主要看AUC和不同阈值下的精确率召回率。第五步是解释结果。你会发现“最近一次下单距今的天数”几乎总是最重要的特征,这个结论业务上也站得住:超过一定时间没来的用户,复购概率断崖式下降,催收召回的价值也更高。
做完这个项目,你不仅练了技术,还能讲清楚一个完整的业务故事。这是作品集里最有价值的部分,比刷十道练习题有用得多。
3. 方向二:深度学习,冲图像、文本、语音这类非结构化数据
3.1 先搞懂深度学习在解决什么问题
传统机器学习面对图像和人类语言时有个很难解决的瓶颈:特征太复杂,靠人来设计根本不现实。比如给一张猫的照片,你要怎么用程序描述“猫”这个特征?边缘、颜色、纹理、形状,这些信息交织在一起,规则写不完。深度学习解决这个问题的方式是让模型自己从大量样本中学特征,你只需要给它原始像素或原始文本,它自己一层一层抽象,从边缘、纹理到局部形状,再到完整的物体概念。
所以深度学习的理论基础集中在几个点上:神经元和激活函数(为什么要有非线性)、损失函数(如何衡量预测和真实值的差距)、反向传播与梯度下降(如何更新参数)、卷积神经网络(如何提取图像局部特征)、循环网络和注意力机制(如何处理序列数据)、过拟合与正则化(模型为什么记性好但泛化差)。
Transformer是绕不开的核心,它最初用于文本,后来也被用到视觉和语音。它的核心是注意力机制,一句话说就是:在处理每个词的时候,模型会动态地看这句话里其他所有词,计算它们跟当前词的相关程度,然后加权融合信息。这个机制让长距离依赖问题比循环网络解决得更好,也是后来大模型的基础。
3.2 框架和工具怎么选、训练要准备什么
深度学习的框架选择,我建议以PyTorch为主。它的好处是动态图模式,调试直观,写起来接近原生Python,学术界和工业界的生态都很活跃。另一个框架在特定部署场景仍有优势,但新手从PyTorch入门会更平缓。学习的时候不要只读教程,要能默写出一个完整的训练循环:定义模型、定义损失函数、定义优化器、前向传播、计算loss、反向传播、更新参数、记录指标。
动手训练之前有几件基础工作要做:准备数据加载器,把图像数据读进来并做归一化;做数据增强,比如随机裁剪、翻转、颜色抖动,目的是让模型见过更多样的情况;设置好GPU环境。没有GPU的话,本地小模型可以用CPU跑,但真正的图像或者文本数据集,建议租个云GPU实例,按小时计费,训练几个小模型成本完全可以接受。
训练过程中,损失函数的选择要跟任务匹配。图像分类用交叉熵,目标框回归用Smooth L1,图像生成用感知损失等。评估指标也一样,分类看准确率,检测看mAP(mean Average Precision),分割看mIoU。不要一个套路打天下。
3.3 从训练到落地:迁移学习、优化、部署
深度学习项目里,真正从零训练一个模型的场景极少。绝大多数情况是用预训练模型做迁移学习。所谓预训练模型,就是别人用海量数据(比如上亿张图片)先训练好的模型,它已经学会了通用的视觉特征。你要做的只是把它的最后一层分类头换掉,变成你自己的类别数,然后在自己的数据集上微调。这种方式的优点是数据需求小、训练快、效果好。
我做过一个小项目,用预训练模型做工业零件的缺陷分类。我们只有几千张图,如果从零训练,效果很不稳定;但加载预训练权重,冻结前面大部分层只微调最后两层,迭代二三十轮,准确率就到了90%以上。这也解释了为什么想入门深度学习,不需要一上来就搭一个很大很复杂的网络,而是要学会站在巨人肩上。
真正到落地部署,挑战又不一样。训练时用FP32精度,模型文件可能几百兆;部署到线上要求低延迟和更低显存,就需要做优化。常见手段包括模型导出成推理引擎格式、用FP16甚至INT8量化、批处理合并。如果是手机或嵌入式设备,还要考虑模型蒸馏、剪枝这类压缩手段。这一阶段需要你了解推理框架和硬件特性,属于工程经验积累。
3.4 一个完整的视觉小项目跑通示例
我给你一个可复现的路线:做一个猫狗分类器。数据集就用经典的猫狗图片集,大概两万多张,你也可以自己收集几千张。第一步,把图片统一缩放到224x224,标签整理成文件夹结构。第二步,加载一个在ImageNet上预训练好的模型,把分类头改成二分类。第三步,做数据增强和归一化。第四步,设置训练参数:batch size 32,学习率用较小的1e-4,冻结前层微调后层,训练20到30轮,同时监控验证集loss防止过拟合。
中间一定会遇到的坑包括:loss不下降、显存溢出、过拟合严重。loss不下降先排查学习率是否太大或太小,再确认数据归一化是否做到位;显存溢出就调小batch size或者用梯度累积;过拟合就加数据增强、加正则化、早停。这个项目本身不大,但把整个训练、评估、调优过程完整走一遍,你对深度学习的体感会完全不一样。
4. 方向三:大模型与AIGC,当前竞争最激烈的赛道
4.1 为什么大模型学习路径和传统NLP完全不同
我接触过不少学过传统NLP的人,刚接触大模型应用时会觉得过去很多功夫白费了。以前做一个情感分析,要自己准备数据集、训练词向量、搭建TextCNN或者Bert微调;现在直接调用大模型接口,给它几个例子,它就能输出相当不错的情感判断。这背后的变化是:重训练模型的任务被转移给了专门做预训练的大团队,普通开发者和业务方更多是使用已经训练好的模型能力来构建应用。
所以大模型方向的学习曲线跟传统深度学习很不一样。你不需要从头写Transformer,但你要理解模型的基本特性和边界:Token是模型处理文本的基本单位,不同模型对中文Token切分方式不同;上下文窗口决定模型一次能看多长文本;温度参数控制输出的随机性;模型会幻觉,会在不知道答案时一本正经编造。这些理解直接决定你调出一个可用的应用。
从学习节奏看,大模型方向是最容易出成果的。一个人第一天就能通过API调通对话功能,做出一个像样的demo,这种正反馈是做其他方向很难获得的。但别高兴太早,做完demo和做成可用的产品之间,隔着工程稳定性、效果评估、安全合规、成本控制这几座大山。这些也是这个方向真正的进阶壁垒。
4.2 开发者先掌握四件事
第一件事是模型接口调用。你需要熟悉对话补全、流式输出、结构化输出这些基本能力。比如让模型返回一段JSON而不是一句自然语言,通过约束输出格式来对接业务系统;再比如做流式输出,让用户看到打字机效果,而不是等完整回复。接口还会涉及超时、重试、并发限制、成本统计,这些工程细节决定了你写的代码在真实环境能不能活下来。
第二件事是上下文管理。大模型有上下文窗口限制,你不能把一本十万字的合同全部塞进对话里让它总结。你需要估算Token消耗,做到长文本截断、分段总结、关键片段摘要、对话历史滑动窗口。上下文管理做得好的应用,效果稳定而且成本可控,这个能力非常值钱。
第三件事是RAG(检索增强生成)。这是目前大模型应用落地最主流的技术之一。思路很简单:你有一个知识库,用户提问后,先从知识库里检索出相关片段,再把这些片段连同问题一起交给大模型,让它基于这些材料回答。它解决的是大模型知识更新难、模型会编造、私有知识无法覆盖的问题。RAG不是搭一个向量数据库就完了,你要处理文档解析、切片大小、向量化模型选择、检索排序、重写查询、引用溯源、答案生成,每一个环节都有参数要调。
第四件事是智能体(Agent)。Agent可以理解为让大模型成为“大脑”,自主决定调用什么工具,执行什么步骤。例如一个人想查天气并订餐厅,Agent会先调用天气工具,拿到结果后再调用订餐工具,中间还需要管理任务状态和记忆。做Agent最关键的是让它“不动歪脑筋”,需要用严格的任务规划、工具描述、结果校验和人工兜底来控制行为边界。这部分属于新兴方向,但已经是大模型培训里最热门的内容之一。
4.3 进阶:微调和部署什么时候才需要
很多人学到大模型应用后强烈想学微调,觉得用别人的模型不高级。但我的建议是:能不用微调就不用,先用RAG和工程手段解决问题。微调适合三种场景:一是要求模型输出固定格式,比如必须按企业内部合同模板生成条款;二是需要学习特定领域的词汇和表达方式,比如医疗、法律、工程术语;三是私有数据太多、RAG检索效果始终上不去,需要把知识注入模型参数。前两种用少量样本就能做,第三种要谨慎评估。
微调的主流方式现在基本是参数高效微调,代表方法是LoRA和QLoRA。原理不展开讲,你只需要知道它是在冻结原模型参数的情况下,额外训练一组很小的低秩矩阵,效果接近全量微调但显存和成本低得多。实操时LoRA的秩参数(通常16到64)、学习率、训练轮次都需要试。做完微调一定要做评估,不要只看一两个例子顺眼。更好的做法是准备一个固定的黄金测试集,里面包含几十个典型问题和边界情况,微调前后跑一遍对比,用数据说话。
部署层面,你要了解推理加速框架的基本思路:通过连续批处理、显存优化、KV Cache等手段提高吞吐量。如果你的应用并发量只有几十个人同时用,直接部署原模型就好;如果并发上千,就需要考虑量化、多卡并行、负载均衡。这里面的工程问题比算法还多。
4.4 文档问答机器人:一个RAG项目的完整拆解
为了让你对AIGC项目有具体概念,我拆一个最常见的RAG项目:企业内部合同知识库问答机器人。
第一步是文档加载与解析。合同可能是PDF、Word,需要先把文字提取出来,处理表格、页眉页脚、乱码。这里最麻烦的是PDF表格,简单的文本提取会丢结构,用解析工具又可能引入多余空格。第二步是切片。不是简单按固定字符数切就完事,而是尽量按标题和语义边界切,让每个片段是相对完整的意思。切片太大会检索不准,太小会丢失上下文,我的经验是一段200到600个汉字左右比较平衡,具体要通过测试调。
第三步是向量化。把每个切片用向量模型转成高维向量,存到向量数据库里。用户提问时,把问题也转成向量,用近似最近邻搜索找出最相关的若干片段。这里有几个参数:召回数量k、相似度阈值、是否需要重排序。第四步是组装Prompt,把检索到的片段和用户问题一起交给大模型,同时要求它“只根据提供的资料回答,资料不足时明确说明不知道”,这样可以大幅降低幻觉。第五步是给出引用来源,用户能看到答案来自合同第几页,这个细节非常影响信任度。
这个项目里最大的坑是“检索到了但没用上”。很多时候相关片段确实被召回,但大模型在生成时没参考它,或者多个片段之间信息冲突。解决办法是优化切片、调整Prompt结构、引入重排序模型。做完这个项目,你会深刻理解“大模型应用开发,一半是调模型,一半是调工程”。
5. 三条路的公共地基和学习节奏
5.1 无论走哪条路,这些基础躲不掉
三条方向各有侧重,但有几样东西是公共的,最好在起步阶段就补上。
编程基础是第一位的。Python至少要达到能写函数、处理异常、理解类和对象、会用列表推导式的程度。数据结构里数组、字典、集合的概念要熟,栈和队列也要知道。这不需要系统学完计算机专业课程,但要够你用。
Linux基本命令很关键。模型训练和部署绝大多数都在Linux服务器上,你要会看文件、装环境、查GPU状态、看日志。Git也是必需品,代码版本管理、回滚、分支协作,这是团队工作的基本仪式感。你可以理解为写文档要会保存备份,写代码就要会Git。
还有一项容易被忽视的是“实验记录习惯”。AI项目有大量参数实验,今天改batch size,明天换学习率,如果不记录每次实验的配置和结果,一周后你看着一堆结果文件根本不知道哪次是好的。维护一个实验日志,哪怕只是用表格记下日期、模型、参数、指标、备注,都能帮你少走很多弯路。
5.2 参考时间表:三个月、六个月、一年
很多学员问我要一个时间表,我的回答是:看你能投入多少时间,比看日历更有效。假设你每周能投入10到15小时,下面这个节奏供参考。
| 阶段 | 主要做的事 | 输出成果 |
|---|---|---|
| 0-3个月 | 打基础:Python数据处理、核心数学概念、完成一个入门项目 | 能独立做数据清洗和简单预测 |
| 3-6个月 | 系统学方向核心:机器学习算法或深度学习基础或大模型应用 | 完成1-2个完整方向项目 |
| 6-12个月 | 做有难度的综合项目,补工程化能力:部署、监控、优化 | 可展示的完整项目作品集,能讲清楚项目取舍 |
这个时间表有一个核心原则:每个阶段都要有一个能拿得出手的产出。基础没打牢不丢人,丢人的是学了三个月还在学基础,没有做过一个哪怕很小的项目。知识学得再多,不落到项目上,都是悬浮的。
5.3 项目作品集的正确做法
AI岗位的简历和面试,现在几乎必看项目经历。但很多人的项目经历写得太虚:“使用机器学习算法进行用户分析”——分析谁?用什么数据?效果怎么样?你做了什么取舍?面试官看到这种话术就知道是包装出来的。真项目不是把跑通的代码扔到GitHub上,而是要有完整的故事线:业务背景是什么,数据从哪来、有多大、有什么坑,你做了哪些特征和模型选择,结果指标是多少,踩了什么坑,如果再让你做一次会怎么改进。
我建议新手从三类项目里选:一是自己感兴趣的领域,比如你爱看电影就做一个电影推荐系统;二是能接触到真实数据的场景,哪怕是小范围调查数据,也比用现成数据集更能锻炼数据清洗能力;三是模仿优秀开源项目,完整复现一遍后,把思路讲清楚。项目数量不需要多,一到两个做深了,远比五个浅demo有说服力。
6. 学习路上的常见问题与排查实录
6.1 选错方向怎么办
很多人最焦虑的问题是:我学了一个月发现自己不喜欢这个方向,是不是浪费了?我的看法是,刚起步一个月就发现不合适,其实是好事。你花了一个月排除了一个选项,总比花了三年做不喜欢的工作强。而且公共基础没有白学,数学和编程能力在任何方向都通用。
调整的方法是先停下来,问自己不喜欢的是具体哪一块。是不喜欢数学推导,还是不喜欢清洗脏数据,还是不喜欢调试代码调不出来?如果是不喜欢数据清洗的琐碎,那深度学习方向的预处理也很琐碎;如果是不喜欢写代码,那三个方向可能都需要重新考虑。别因为一次挫败就推翻整个方向,先解决具体卡点再说。
6.2 环境和算力问题
环境配置是新手劝退的重灾区。Python版本冲突、依赖库版本不兼容、GPU驱动没装对、显存不足,每一个都能卡住好几天。我的建议是别在环境上死磕,优先学会用虚拟环境隔离项目,把常用的环境配置写成一个脚本保存下来。遇到报错先看最后一行错误,再复制到搜索工具里查,不要自己瞎试。
算力问题同样常见。没有GPU不是不学习的理由,小规模实验用CPU也能跑,云GPU按小时租用成本并不高。真正需要注意的是训练到一半显存溢出,这种时候要先调小batch size,再考虑梯度累积,最后才是换更小的模型。不要一上来就加硬件,硬件往往不是第一瓶颈。
6.3 训练阶段的几个经典坑
训练模型时有几个反复出现的坑,我做个速查表。
| 现象 | 可能原因 | 排查方向 |
|---|---|---|
| Loss不下降 | 学习率太小或太大、数据未归一化、标签有错 | 尝试不同学习率,检查数据预处理 |
| Loss变成NaN | 学习率过大、出现除零、梯度爆炸 | 降低学习率,加梯度裁剪 |
| 显存溢出 | batch size过大、序列过长、模型过大 | 减小batch size,使用梯度累积,换小模型 |
| 过拟合严重 | 模型太复杂、数据太少、训练轮次过多 | 加数据增强、加正则化、早停 |
| 训练指标好但测试差 | 数据泄漏、样本分布不一致 | 检查特征是否包含未来信息,检查测试集分布 |
| 类别不均衡 | 正负样本比例悬殊 | 用加权损失、重新采样、关注AUC而非准确率 |
这些坑每个人都会踩,不用怕。关键是每次踩坑都记录下来,下一次遇到同样现象就能快速定位。
6.4 关于就业和“项目经验”的几句实话
网上有很多“三个月速成AI工程师”的说法,我的态度是:能速成的是工具使用,速成不了的是解决问题的经验和判断力。培训机构的宣传里常有“保证就业”的字眼,本质上是销售话术。真正对就业起作用的是你能否在面试中把一个项目的来龙去脉讲得清清楚楚,能否在拿到一个模糊业务问题时理出解决思路。
我建议从第一天就以“未来要和别人协作”的标准要求自己:代码规范、注释清晰、文档完整、实验可复现。这些都是项目经验的一部分。更不建议为了简历好看去编造实习经历,面试官一问细节就露馅,而且对自己后续的职业信用伤害很大。真实做过一个很小的问题,远胜过虚假的大项目。
最后说一点个人体会。我带过不少从零起步的人,走得最快的往往不是天赋最高的,而是方向选得早、动手下手早的那批。AI这个领域现在确实信息密度爆炸,但不管别人在讨论什么新名词,你先选定一个方向,把一个项目从头做到尾,再回头去补理论,学习效率会高很多。我早期在这个事上吃过亏,总想先把所有基础都学扎实再动手,结果光数学就啃了两个月,项目还是不会写。如果你正在起步,建议先跑通一个真实的小项目,哪怕是完完整整复刻一个开源案例,也比多听十节课管用。