模型训练流程

模型训练全流程

一、训练流程全景图

  1. 部署阶段
    模型导出
    模型压缩
    服务部署
    监控维护
  2. 调优阶段
    超参数调优
    模型优化
    集成学习
  3. 训练阶段
    模型选择
    超参数配置
    训练循环
    验证评估
  4. 数据预处理
    特征工程
    数据增强
    数据加载器
  5. 准备阶段
    问题定义
    数据收集
    数据清洗
    数据标注
    数据划分

二、数据准备

2.1 问题定义

核心问题:明确要解决什么问题,输入输出是什么。
问题定义
业务目标: 自动分类客服工单
输入: 工单标题+内容
输出: 工单类别
评估指标: 准确率

问题定义清单

维度 问题
业务目标 要解决什么业务问题?
输入输出 模型的输入和输出是什么?
数据来源 数据从哪里来?
成功标准 如何衡量模型效果?
约束条件 延迟、成本、隐私等要求?

2.2 数据收集

合成数据
数据增强
模拟生成
外部数据
公开数据集
爬虫采集
数据购买
内部数据
业务数据库
日志文件
用户反馈
数据整合

2.3 数据清洗

原始数据
清洗
去除重复
处理缺失值
异常值处理
格式统一
可用数据

常见清洗操作

操作 说明 后端类比
去重 删除重复记录 SQL DISTINCT
缺失值处理 填充或删除 NULL处理
异常值处理 修正或删除 数据校验
格式统一 标准化格式 数据规范化
文本清洗 去除噪声字符 字符串处理

2.4 数据标注

标注工具
Label Studio
Doccano
Prodigy
标注方式
人工标注

质量高,成本高
半自动标注

模型预标注+人工校验
众包标注

成本低,需质检

2.5 数据划分

70% 15% 15% 数据集划分比例 训练集 70% 验证集 15% 测试集 15%

数据集 用途 后端类比
训练集 训练模型参数 开发环境
验证集 调整超参数 测试环境
测试集 最终评估 生产验证

三、数据预处理

3.1 特征工程

时间特征
周期编码
时间差
时间组件提取
文本特征
分词
去停用词
向量化
类别特征
One-Hot编码
Label编码
Embedding编码
数值特征
归一化: 缩放到0-1
标准化: 均值0方差1
分箱: 连续变离散

3.2 数据增强

理解:通过变换创造更多训练数据,提升模型泛化能力。
文本增强
同义词替换
随机删除
回译
LLM改写
图像增强
旋转/翻转
裁剪/缩放
颜色调整
噪声添加

3.3 数据加载器

后端类比:数据加载器类似于数据库连接池,批量获取数据。
数据存储 数据加载器 训练循环 数据存储 数据加载器 训练循环 loop [每个Epoch] 请求一个Batch 读取数据 返回原始数据 预处理 返回Batch数据

关键参数

  • Batch Size:每次训练的样本数量
  • Shuffle:是否打乱数据顺序
  • Num Workers:并行加载数据的进程数

四、模型训练

4.1 模型选择




分类
回归
生成
任务类型
数据量大小?
传统机器学习

SVM/随机森林
预训练模型微调

BERT/ResNet
从头训练深度模型
任务类型
分类模型
回归模型
生成模型

4.2 超参数配置

理解:超参数是训练前设置的参数,控制训练过程。
核心超参数
学习率

Learning Rate
批次大小

Batch Size
训练轮数

Epochs
正则化

Regularization

超参数 说明 常见值 影响
Learning Rate 参数更新步长 1e-5 ~ 1e-2 收敛速度和稳定性
Batch Size 每批样本数 16, 32, 64 训练速度和泛化
Epochs 训练轮数 10 ~ 100 拟合程度
Dropout 随机丢弃比例 0.1 ~ 0.5 防止过拟合
Weight Decay 权重衰减 0.01 ~ 0.1 正则化强度

4.3 训练循环





开始训练
初始化模型参数
Epoch循环
Batch循环
前向传播
计算损失
反向传播
更新参数
还有Batch?
验证集评估
还有Epoch?
测试集评估
训练完成

4.4 损失函数选择

任务类型 损失函数 说明
二分类 Binary Cross-Entropy 两个类别
多分类 Cross-Entropy 多个类别
回归 MSE/MAE 连续值预测
序列标注 CRF Loss 标签依赖关系
生成任务 负对数似然 序列生成

4.5 优化器选择

SGD

最简单
Momentum

加速收敛
Adam

自适应学习率
AdamW

权重衰减

推荐:大多数情况下使用Adam或AdamW。


五、模型评估与调优

5.1 评估指标

生成指标
BLEU 翻译质量
ROUGE 摘要质量
Perplexity 困惑度
回归指标
MAE 平均绝对误差
MSE 均方误差
RMSE 均方根误差
R² 决定系数
分类指标
准确率 Accuracy
精确率 Precision
召回率 Recall
F1分数
AUC-ROC

5.2 超参数调优

贝叶斯优化
基于历史结果
智能搜索
随机搜索
随机采样组合
效率更高
网格搜索
遍历所有组合
全面但慢

5.3 过拟合处理

过拟合症状:

训练好,测试差
增加数据
数据增强
正则化
Dropout
早停 Early Stop
简化模型

5.4 学习曲线分析

欠拟合
训练损失下降缓慢
验证损失下降缓慢
两者都很高
过拟合
训练损失持续下降
验证损失先降后升
差距越来越大
正常学习
训练损失持续下降
验证损失先降后稳
两者差距适中


六、微调技术

6.1 微调 vs 从头训练

微调
加载预训练权重
少量数据即可
计算成本低
从头训练
随机初始化
需要大量数据
计算成本高

6.2 微调策略

高效微调
LoRA/AdaLoRA
只更新少量参数
效果接近全量
冻结微调
冻结底层参数
只更新顶层
资源需求小
全量微调
更新所有参数
效果最好
资源需求大

6.3 LoRA原理

理解:LoRA通过低秩分解,只训练少量参数。
LoRA分解
矩阵A

(d×r)
矩阵B

(r×d)
原始权重矩阵

W (d×d)
W' = W + A×B

只训练A和B

优势

  • 可训练参数减少90%以上
  • 不降低模型性能
  • 多个LoRA可以切换

七、模型部署

7.1 部署流程

监控
性能监控
效果监控
告警
部署
容器化
服务化
负载均衡
优化
量化
剪枝
蒸馏
导出
模型保存
格式转换

7.2 模型优化技术

技术 说明 效果
量化 降低参数精度(FP32→INT8) 减少模型大小,加速推理
剪枝 移除不重要的连接 减少计算量
知识蒸馏 小模型学习大模型 模型压缩
模型编译 针对硬件优化 加速推理

7.3 服务架构

基础设施
服务层
API层
客户端
Web/App
API Gateway
请求队列
模型服务

(多副本)
模型服务
模型服务
GPU集群
模型存储
监控告警

7.4 推理优化

流式输出
逐Token返回
降低首字延迟
缓存
KV缓存
结果缓存
批处理
合并多个请求
提高GPU利用率


八、常见问题与解决方案

8.1 训练问题

欠拟合
模型太简单
增加复杂度
特征不足
特征工程
训练不够
增加训练轮数
过拟合
数据太少
增加数据/增强
模型太复杂
简化模型/正则化
不收敛
学习率太大
降低学习率
梯度爆炸
梯度裁剪
数据问题
检查数据

8.2 部署问题

问题 解决方案
推理慢 量化、批处理、模型编译
内存不足 量化、模型切分、CPU卸载
并发低 异步处理、请求队列
成本高 Spot实例、自动扩缩容

九、训练清单

9.1 训练前检查清单

配置
超参数合理
损失函数正确
评估指标确定
环境
GPU可用
依赖安装正确
路径配置正确
数据
数据量充足
标签质量OK
数据分布合理

9.2 训练中监控

监控项 正常表现 异常表现
损失曲线 持续下降 震荡/不降/NaN
学习率 按计划变化 异常波动
GPU利用率 80%以上 经常0%
梯度 数值稳定 爆炸/消失

9.3 训练后验证

  • 测试集指标达标
  • 案例测试通过
  • 边界情况处理
  • 性能指标满足要求
  • 模型大小符合预期

十、后端工程师实践建议

10.1 训练 vs 后端开发

模型训练
概率性输出
调试: 实验分析
测试: 评估指标
发布: 持续迭代
后端开发
确定性逻辑
调试: 断点+日志
测试: 单元测试
发布: 一次完成

10.2 推荐工具

阶段 工具 用途
实验 tracking MLflow/Weights & Biases 记录实验结果
数据处理 Pandas/Dask 数据清洗
模型训练 PyTorch/TensorFlow 深度学习框架
超参调优 Optuna/Ray Tune 自动调参
模型部署 TorchServe/Triton 模型服务化
监控 Prometheus/Grafana 性能监控

10.3 最佳实践

  1. 版本控制:代码、数据、模型都要版本管理
  2. 实验记录:每次实验的配置和结果都要记录
  3. 基线先行:先建立简单基线,再逐步优化
  4. 小步快跑:从小数据集开始验证,再扩大规模
  5. 持续监控:部署后持续监控模型效果

10.4 训练流程总结

训练阶段
模型阶段
数据阶段
继续
停止
加载数据
数据清洗
特征工程
划分数据集
创建DataLoader
定义模型类
初始化模型
选择损失函数
选择优化器
配置学习率调度
训练循环
前向传播
计算损失
反向传播
更新参数
验证评估
早停检查
保存模型

恭喜你完成了AI理论知识的学习!建议结合实践加深理解。

相关推荐
zhangshuang-peta1 分钟前
MCP:把不确定性变成工程能力
人工智能·ai agent·mcp·peta
m0_5648768412 分钟前
提示词工程手册学习
人工智能·python·深度学习·学习
AI精钢37 分钟前
谷歌时隔一年发布“更加开源“的 Gemma 4,意图何为?
人工智能·云原生·开源·aigc
洞见新研社1 小时前
从算力到电力,谁在搭建AI时代的“能源基座”?
人工智能·能源
小程故事多_801 小时前
自然语言智能体控制框架,重塑AI Agent的协作与执行范式
人工智能·架构·aigc·ai编程·harness
2501_933329551 小时前
技术深度拆解:Infoseek舆情系统的全链路架构与核心实现
开发语言·人工智能·分布式·架构
aosky1 小时前
OmniVoice:支持 600+ 语言的零样本语音克隆 TTS 系统
人工智能·tts
无忧智库1 小时前
数字化转型 | 全面揭秘企业经营的数字化解决方案 —— 从挑战到突破
大数据·人工智能
Circle Studio2 小时前
AI算力发展的未来趋势
大数据·人工智能
算家云2 小时前
OpenClaw进阶玩法:多飞书机器人部署指南
人工智能·飞书·openclaw