Skip to content

10.8 本章小结和复习

从零到 AI 工程师:知识体系回顾

恭喜你完成了这个高强度、高深度的 AI/ML 章节!让我们回顾这段从科学计算基础到生产级 AI 系统的完整旅程。

💡 核心成就:你现在具备了构建工业级 AI 应用的完整技能栈,从数据处理、模型训练到部署运维,形成了闭环能力。


核心知识点总结

10.2 科学计算基石:NumPy 与 Pandas

关键概念

  • 张量(Tensor):多维数组,AI 的基本数据结构
  • 向量化计算:比 Python 循环快 100 倍的秘密
  • 广播机制(Broadcasting):NumPy 的设计哲学
  • DataFrame:结构化数据处理的标准工具

核心技能

python
# NumPy 核心操作
import numpy as np

# 创建和操作
x = np.random.randn(1000, 784)  # 1000 个 28x28 图像
x_normalized = (x - x.mean()) / x.std()  # 标准化

# 矩阵运算(神经网络的基础)
W = np.random.randn(784, 10)
y = x @ W  # 前向传播

# Pandas 数据处理
import pandas as pd

df = pd.read_csv('data.csv')
df_clean = df.dropna().drop_duplicates()
df_grouped = df.groupby('category').agg({'sales': 'sum'})

实战应用

  • 数据预处理 Pipeline
  • 特征工程
  • 批量归一化实现

10.3 机器学习实战:Scikit-Learn

关键概念

  • 监督学习 vs 无监督学习:有标签 vs 无标签
  • 偏差-方差权衡:欠拟合 vs 过拟合
  • 交叉验证:更可靠的性能评估
  • 超参数调优:Grid Search vs Random Search

核心算法

算法类别代表算法适用场景
分类Logistic Regression, Random Forest, SVM垃圾邮件检测、图像分类
回归Linear Regression, Ridge, Lasso房价预测、销量预测
聚类K-Means, DBSCAN用户分群、异常检测
降维PCA, t-SNE可视化、特征压缩

统一 API 模式

python
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split

# 1. 加载数据
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

# 2. 训练模型
model = RandomForestClassifier(n_estimators=100)
model.fit(X_train, y_train)

# 3. 预测评估
y_pred = model.predict(X_test)
accuracy = model.score(X_test, y_test)

实战应用

  • 客户流失预测
  • 信用评分模型
  • 推荐系统

10.4 深度学习框架:PyTorch 与 TensorFlow

关键概念

  • 自动微分(Autograd):深度学习的核心
  • 动态计算图 vs 静态计算图
  • GPU 加速:10-100 倍速度提升
  • nn.Module 设计模式:构建神经网络的标准方式

PyTorch 核心操作

python
import torch
import torch.nn as nn

# 1. 张量操作
x = torch.randn(64, 784, requires_grad=True)
W = torch.randn(784, 10, requires_grad=True)
y = x @ W

# 2. 自动微分
loss = (y - target).pow(2).sum()
loss.backward()  # 自动计算梯度

# 3. 构建神经网络
class Net(nn.Module):
    def __init__(self):
        super().__init__()
        self.fc1 = nn.Linear(784, 128)
        self.fc2 = nn.Linear(128, 10)

    def forward(self, x):
        x = torch.relu(self.fc1(x))
        x = self.fc2(x)
        return x

# 4. 训练循环
model = Net()
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)

for epoch in range(num_epochs):
    for batch in dataloader:
        optimizer.zero_grad()
        outputs = model(batch['x'])
        loss = criterion(outputs, batch['y'])
        loss.backward()
        optimizer.step()

实战应用

  • MNIST 手写数字识别
  • CIFAR-10 图像分类
  • 迁移学习

10.5 神经网络原理:从感知机到 Transformer

关键概念

  • 反向传播算法:链式法则的应用
  • 激活函数:引入非线性的关键
  • CNN:卷积、池化、感受野
  • RNN/LSTM:序列建模、门控机制
  • Transformer:自注意力、多头注意力、位置编码

Transformer 架构精华

python
# Self-Attention 核心公式
"""
Q = X · W_Q
K = X · W_K
V = X · W_V

Attention(Q, K, V) = softmax(Q·K^T / sqrt(d_k)) · V
"""

# 多头注意力实现
class MultiHeadAttention(nn.Module):
    def __init__(self, d_model, num_heads):
        super().__init__()
        self.d_k = d_model // num_heads
        self.num_heads = num_heads

        self.W_Q = nn.Linear(d_model, d_model)
        self.W_K = nn.Linear(d_model, d_model)
        self.W_V = nn.Linear(d_model, d_model)
        self.W_O = nn.Linear(d_model, d_model)

    def forward(self, Q, K, V, mask=None):
        # 线性变换 + 分头 + 注意力 + 合并
        # 详见 10.5 节
        pass

架构演进

感知机(1958)→ 多层神经网络(1986)→ CNN(1998)→ RNN/LSTM(2000s)
→ Transformer(2017)→ BERT/GPT(2018-2020)→ ChatGPT(2022)

实战应用

  • 从零实现 Transformer
  • 注意力可视化
  • 序列到序列模型

10.6 大语言模型:Transformers 与现代 NLP

关键概念

  • 预训练 + 微调范式:迁移学习的标准流程
  • BERT vs GPT:编码器 vs 解码器
  • Tokenization:BPE、WordPiece
  • LoRA:高效微调方法
  • Prompt Engineering:与 LLM 对话的艺术

Hugging Face 生态系统

python
from transformers import pipeline, AutoTokenizer, AutoModel

# 1. Pipeline API(最简单)
classifier = pipeline("sentiment-analysis")
result = classifier("I love this!")

# 2. 自定义模型
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
model = AutoModel.from_pretrained("bert-base-uncased")

inputs = tokenizer("Hello world", return_tensors="pt")
outputs = model(**inputs)

# 3. Fine-tuning
from transformers import Trainer, TrainingArguments

training_args = TrainingArguments(
    output_dir="./results",
    num_train_epochs=3,
    per_device_train_batch_size=16
)

trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=train_dataset
)
trainer.train()

模型选择决策树

任务类型?
├─ 理解(分类、问答、NER)
│  ├─ 资源充足 → BERT-large / RoBERTa
│  └─ 资源受限 → DistilBERT
├─ 生成(续写、对话)
│  ├─ 小规模 → GPT-2
│  └─ 大规模 → GPT-3/4(API)
└─ Seq2Seq(翻译、摘要)
   └─ T5 / BART

实战应用

  • 情感分类系统
  • 问答系统(抽取式/生成式)
  • 文本生成

10.7 综合实战:端到端 AI 应用

关键概念

  • ML 生命周期:从数据到部署的完整流程
  • RAG 架构:检索增强生成
  • MLOps:实验跟踪、版本管理、监控
  • API 服务:FastAPI + Docker
  • A/B 测试:持续改进机制

完整技术栈

数据层:Pandas, NumPy, Chroma(向量数据库)
模型层:PyTorch, Transformers, Sentence Transformers
服务层:FastAPI, Uvicorn, Docker
监控层:Prometheus, Grafana, MLflow
部署层:Kubernetes, AWS/GCP

RAG 系统架构

python
# 核心流程
class RAGSystem:
    def answer_question(self, query):
        # 1. 检索相关文档
        docs = self.retriever.search(query, top_k=5)

        # 2. 构建 prompt
        context = "\n".join([doc['content'] for doc in docs])
        prompt = f"基于以下文档回答问题:\n{context}\n\n问题:{query}\n答案:"

        # 3. LLM 生成答案
        answer = self.llm.generate(prompt)

        return answer

实战应用

  • 智能客服系统
  • 文档问答助手
  • 代码生成工具

技术栈全景图

1. 数据科学技术栈

数据收集 → 数据清洗 → 特征工程 → 模型训练 → 模型评估 → 部署上线

工具链:
┌─────────────┬──────────────┬─────────────┬──────────────┬────────────┬─────────────┐
│ 数据收集     │ 数据清洗      │ 特征工程     │ 模型训练      │ 评估        │ 部署         │
├─────────────┼──────────────┼─────────────┼──────────────┼────────────┼─────────────┤
│ Scrapy      │ Pandas       │ Pandas      │ Scikit-Learn │ Matplotlib │ FastAPI     │
│ Beautiful   │ NumPy        │ NumPy       │ PyTorch      │ Seaborn    │ Docker      │
│ Soup        │ OpenRefine   │ Scikit-     │ TensorFlow   │ TensorBoard│ Kubernetes  │
│ APIs        │              │ Learn       │ Transformers │ MLflow     │ AWS/GCP     │
└─────────────┴──────────────┴─────────────┴──────────────┴────────────┴─────────────┘

2. AI/ML 技能树

AI/ML 工程师技能树

├── 数学基础(必须)
│   ├── 线性代数:矩阵运算、特征分解
│   ├── 微积分:梯度、导数、链式法则
│   ├── 概率论:贝叶斯定理、分布
│   └── 优化理论:梯度下降、凸优化

├── 编程基础(必须)
│   ├── Python:核心语法、面向对象
│   ├── NumPy/Pandas:数据处理
│   ├── Git:版本控制
│   └── Linux:命令行操作

├── 机器学习(核心)
│   ├── 监督学习:分类、回归
│   ├── 无监督学习:聚类、降维
│   ├── 模型评估:交叉验证、指标选择
│   └── Scikit-Learn:实战应用

├── 深度学习(核心)
│   ├── 神经网络基础:前向传播、反向传播
│   ├── CNN:图像处理
│   ├── RNN/LSTM:序列建模
│   ├── Transformer:现代 NLP
│   └── PyTorch/TensorFlow:框架掌握

├── NLP(专业方向)
│   ├── 文本预处理:分词、编码
│   ├── 预训练模型:BERT、GPT
│   ├── Fine-tuning:任务适配
│   └── Hugging Face:生态系统

├── MLOps(工程能力)
│   ├── 实验跟踪:MLflow、W&B
│   ├── 模型部署:FastAPI、Docker
│   ├── 监控告警:Prometheus、Grafana
│   └── CI/CD:GitHub Actions、Jenkins

└── 领域知识(加分项)
    ├── 计算机视觉:目标检测、分割
    ├── 强化学习:策略优化
    ├── 图神经网络:关系建模
    └── 多模态:视觉 + 语言

核心概念对比表

1. 机器学习 vs 深度学习

维度机器学习深度学习
特征工程需要人工设计特征自动学习特征
数据量小数据集(< 10K)大数据集(> 100K)
计算资源CPU 足够需要 GPU
可解释性较高较低
训练时间快(分钟-小时)慢(小时-天)
适用场景结构化数据、小数据图像、文本、语音
代表算法决策树、SVM、逻辑回归CNN、RNN、Transformer

2. BERT vs GPT

特性BERTGPT
架构Transformer EncoderTransformer Decoder
注意力类型双向单向(Causal)
训练目标MLM + NSPNext Token Prediction
最佳应用理解任务(分类、问答)生成任务(续写、对话)
输入长度固定(512)可变
典型模型BERT、RoBERTa、ELECTRAGPT-2、GPT-3、GPT-4

3. 微调方法对比

方法可训练参数优点缺点适用场景
全参数微调100%性能最好资源消耗大数据充足、资源充足
冻结底层10-30%防止过拟合性能略降数据较少
LoRA< 1%极低资源需要调参资源受限
Prompt Tuning< 0.1%最快训练性能有限快速原型

高难度综合练习

练习 1:完整 ML Pipeline(难度:⭐⭐⭐)

任务:构建一个电商用户购买意向预测系统

要求

  1. 数据处理:

    • 加载用户行为数据(浏览、点击、购物车)
    • 处理缺失值和异常值
    • 特征工程(时间特征、交互特征)
    • 数据标准化
  2. 模型训练:

    • 对比至少 3 种算法(Logistic Regression, Random Forest, XGBoost)
    • 使用交叉验证评估性能
    • 超参数调优(Grid Search)
    • 特征重要性分析
  3. 模型评估:

    • 计算 Precision, Recall, F1, AUC
    • 绘制 ROC 曲线和混淆矩阵
    • 分析错误案例

评分标准

  • 代码规范性(类型注解、文档字符串):20 分
  • 数据处理完整性:30 分
  • 模型性能(AUC > 0.85):30 分
  • 分析深度:20 分

练习 2:从零实现 Transformer(难度:⭐⭐⭐⭐⭐)

任务:不使用 Hugging Face,从零实现完整的 Transformer 用于机器翻译

要求

  1. 实现组件:

    python
    - PositionalEncoding
    - MultiHeadAttention
    - TransformerEncoderLayer
    - TransformerDecoderLayer
    - TransformerEncoder
    - TransformerDecoder
    - Transformer(完整模型)
  2. 训练任务:

    • 数据:WMT14 En-De 数据集(或简化版本)
    • 实现自定义 DataLoader
    • 实现学习率预热(Warmup)+ 余弦退火
    • Label Smoothing
  3. 评估:

    • 计算 BLEU 分数
    • 可视化注意力权重
    • 分析生成质量

提示

python
# Transformer 完整架构
class Transformer(nn.Module):
    def __init__(
        self,
        src_vocab_size,
        tgt_vocab_size,
        d_model=512,
        num_heads=8,
        num_encoder_layers=6,
        num_decoder_layers=6,
        d_ff=2048,
        dropout=0.1
    ):
        super().__init__()

        # 词嵌入
        self.src_embedding = nn.Embedding(src_vocab_size, d_model)
        self.tgt_embedding = nn.Embedding(tgt_vocab_size, d_model)

        # 位置编码
        self.pos_encoding = PositionalEncoding(d_model)

        # Encoder 和 Decoder
        self.encoder = TransformerEncoder(...)
        self.decoder = TransformerDecoder(...)

        # 输出层
        self.fc_out = nn.Linear(d_model, tgt_vocab_size)

    def forward(self, src, tgt, src_mask, tgt_mask):
        # 实现前向传播
        pass

练习 3:生产级 RAG 系统(难度:⭐⭐⭐⭐)

任务:构建一个支持 1000 QPS 的文档问答系统

要求

  1. 系统架构:

    用户 → 负载均衡 → 多个 API 实例 → 向量数据库集群 → LLM 推理服务
  2. 核心功能:

    • 文档上传和索引(支持 PDF、Word、Markdown)
    • 实时向量检索(< 100ms)
    • 多轮对话支持(上下文管理)
    • 引用溯源(标注答案来源)
  3. 性能优化:

    • 向量检索优化(HNSW 索引)
    • LLM 推理加速(量化、TensorRT)
    • 缓存机制(Redis)
    • 批处理(Batch Inference)
  4. 监控和可观测性:

    • Prometheus 指标:QPS、延迟、错误率
    • 日志记录:请求日志、错误日志
    • 链路追踪:Jaeger
    • 告警规则:延迟 > 1s、错误率 > 5%
  5. 部署:

    • Docker Compose 开发环境
    • Kubernetes 生产部署
    • CI/CD Pipeline(GitHub Actions)

评分标准

  • 系统设计(架构图、技术选型):20 分
  • 核心功能实现:30 分
  • 性能达标(1000 QPS, p95 < 500ms):25 分
  • 监控和运维:15 分
  • 文档和代码质量:10 分

练习 4:多模态模型(难度:⭐⭐⭐⭐⭐)

任务:实现一个图像描述生成系统(Image Captioning)

要求

  1. 模型架构:

    • 视觉编码器:ResNet 或 ViT
    • 文本解码器:Transformer Decoder
    • 跨模态注意力
  2. 训练流程:

    • 数据集:COCO Captions
    • 损失函数:交叉熵 + CIDEr 优化
    • 训练技巧:教师强制(Teacher Forcing)、束搜索(Beam Search)
  3. 评估指标:

    • BLEU-4
    • METEOR
    • CIDEr
    • SPICE
  4. 可视化:

    • 显示图像和生成的描述
    • 可视化注意力热图

练习 5:强化学习 Agent(难度:⭐⭐⭐⭐⭐)

任务:训练一个 DQN Agent 玩 Atari 游戏

要求

  1. 算法实现:

    • Deep Q-Network (DQN)
    • Experience Replay
    • Target Network
    • 双 Q 学习(可选)
  2. 环境:

    • OpenAI Gym:Atari Breakout
    • 预处理:灰度化、裁剪、帧叠加
  3. 训练:

    • ε-greedy 探索策略
    • 学习率衰减
    • 训练至少 1M 步
  4. 可视化:

    • 训练曲线(奖励、损失)
    • Agent 游戏录像
    • Q 值分布

学习资源推荐

📚 经典教材

  1. Deep Learning by Ian Goodfellow, Yoshua Bengio, Aaron Courville

  2. Pattern Recognition and Machine Learning by Christopher Bishop

    • 机器学习经典教材
    • 概率视角,数学严谨
  3. Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow by Aurélien Géron

    • 实战导向,代码丰富
    • 适合工程师
  4. Speech and Language Processing by Jurafsky & Martin

📄 必读论文

基础架构

  1. Attention Is All You Need (Vaswani et al., 2017) - Transformer
  2. BERT: Pre-training of Deep Bidirectional Transformers (Devlin et al., 2018)
  3. Language Models are Few-Shot Learners (Brown et al., 2020) - GPT-3
  4. LoRA: Low-Rank Adaptation of Large Language Models (Hu et al., 2021)

计算机视觉: 5. ImageNet Classification with Deep CNNs (Krizhevsky et al., 2012) - AlexNet 6. ResNet (He et al., 2015) 7. Vision Transformer (Dosovitskiy et al., 2020)

强化学习: 8. Playing Atari with Deep Reinforcement Learning (Mnih et al., 2013) - DQN 9. Mastering the Game of Go with Deep Neural Networks (Silver et al., 2016) - AlphaGo

🌐 在线课程

  1. Stanford CS229: Machine Learning (Andrew Ng)

  2. Stanford CS224N: Natural Language Processing with Deep Learning

  3. MIT 6.S191: Introduction to Deep Learning

  4. Fast.ai: Practical Deep Learning for Coders

  5. Hugging Face Course

🛠️ 实用工具和库

数据处理

  • NumPy, Pandas, Polars
  • Dask(大数据), Vaex(大数据)

机器学习

  • Scikit-Learn, XGBoost, LightGBM, CatBoost

深度学习

  • PyTorch, TensorFlow, JAX
  • PyTorch Lightning(高层API)

NLP

  • Hugging Face Transformers, spaCy, NLTK
  • SentenceTransformers(嵌入)

计算机视觉

  • torchvision, OpenCV, Pillow
  • timm(预训练模型库)

实验跟踪

  • MLflow, Weights & Biases, TensorBoard

部署

  • FastAPI, Flask, Django
  • Docker, Kubernetes
  • TorchServe, TensorFlow Serving

🏆 竞赛平台

  1. Kaggle

    • 实战练习最佳平台
    • 学习 Grandmaster 的解决方案
  2. LeetCode

    • 算法面试准备
  3. Papers with Code

    • 最新论文 + 代码实现

💬 社区和论坛

  1. Reddit

    • r/MachineLearning
    • r/deeplearning
    • r/LanguageTechnology
  2. Stack Overflow

    • 技术问题求助
  3. Hugging Face Forums

    • NLP 专业讨论
  4. Discord/Slack 社区

    • PyTorch, TensorFlow 官方社区

下一步学习路径

路径 A:成为 NLP 工程师

当前基础(本章内容)

1. 深入 Transformer 变体(3-4 周)
   - BERT 变体:RoBERTa, ELECTRA, ALBERT
   - GPT 系列:GPT-2, GPT-3, GPT-4
   - T5 统一框架
   - 阅读论文并复现

2. 高级 NLP 任务(4-6 周)
   - 命名实体识别(NER)
   - 关系抽取
   - 文本生成(摘要、翻译)
   - 对话系统

3. LLM 工程实践(4-6 周)
   - Prompt Engineering 深入
   - RAG 系统优化
   - Fine-tuning 策略(LoRA, QLoRA, PEFT)
   - LLM 评估(ROUGE, BLEU, 人工评估)

4. 生产部署(4 周)
   - 模型压缩(量化、蒸馏、剪枝)
   - 推理优化(ONNX, TensorRT)
   - 大规模服务(vLLM, Text Generation Inference)

5. 前沿方向(持续学习)
   - 多模态大模型(CLIP, Flamingo)
   - Agent 和工具使用
   - 对齐技术(RLHF)

路径 B:成为 CV 工程师

当前基础(本章内容)

1. 深入 CNN 架构(3-4 周)
   - ResNet, EfficientNet, ConvNeXt
   - Vision Transformer (ViT)
   - 阅读论文并实现

2. 核心 CV 任务(6-8 周)
   - 目标检测:YOLO, Faster R-CNN
   - 图像分割:U-Net, Mask R-CNN
   - 姿态估计
   - 图像生成:GAN, Diffusion Models

3. 工业应用(4-6 周)
   - 人脸识别系统
   - 自动驾驶感知
   - 医疗影像分析

4. 部署优化(4 周)
   - 移动端部署(TensorFlow Lite, CoreML)
   - 边缘计算(NVIDIA Jetson)
   - 实时推理优化

路径 C:成为 MLOps 工程师

当前基础(本章内容)

1. 深入 MLOps 工具链(4-6 周)
   - 实验跟踪:MLflow, W&B
   - 数据版本管理:DVC
   - 特征存储:Feast

2. 模型部署(4-6 周)
   - Kubernetes 部署
   - 服务网格(Istio)
   - 蓝绿部署、金丝雀发布

3. 监控和可观测性(4 周)
   - Prometheus + Grafana
   - ELK Stack
   - 模型漂移检测

4. AutoML 和 CI/CD(4 周)
   - 超参数搜索(Optuna, Ray Tune)
   - 自动化 Pipeline(Kubeflow, Airflow)
   - GitHub Actions / Jenkins

路径 D:成为研究员

当前基础(本章内容)

1. 数学强化(6-8 周)
   - 线性代数(MIT 18.06)
   - 优化理论(凸优化)
   - 信息论

2. 深入经典论文(持续)
   - 每周精读 2-3 篇顶会论文(NeurIPS, ICML, ICLR)
   - 复现经典工作

3. 研究方向选择(3-6 个月)
   - 多模态学习
   - 强化学习
   - 联邦学习
   - 因果推理

4. 论文发表(1-2 年)
   - 确定研究问题
   - 实验验证
   - 投稿顶会

最终建议

🎯 学习策略

  1. 理论与实践结合

    • 不要只看教程,一定要动手实现
    • 每学一个概念,写一个对应的项目
  2. 从复现到创新

    • 先复现经典论文的结果
    • 再尝试改进和创新
  3. 持续跟进前沿

    • 订阅 arXiv 每日论文
    • 关注顶会(NeurIPS, ICML, ACL)
    • 参与开源社区
  4. 构建作品集

    • GitHub 上传项目代码
    • 写技术博客
    • 参加 Kaggle 竞赛
  5. 交流和分享

    • 加入技术社区
    • 参加线下 Meetup
    • 指导新手学习

💪 保持动力

AI/ML 领域变化快,学习曲线陡峭。保持动力的建议:

  1. 设定短期目标

    • 每周完成一个小项目
    • 每月学会一个新技术
  2. 记录学习过程

    • 写学习笔记
    • 制作思维导图
  3. 找到学习伙伴

    • 组建学习小组
    • 相互督促
  4. 关注实际应用

    • 解决真实问题
    • 看到技术的价值

结语

恭喜你完成了这个史诗级的 AI/ML 章节!你现在已经掌握了:

扎实的数学和编程基础(NumPy, Pandas, PyTorch) ✅ 完整的机器学习知识(Scikit-Learn, 经典算法) ✅ 深度学习核心原理(反向传播, CNN, RNN, Transformer) ✅ 现代 NLP 技术栈(Hugging Face, BERT, GPT) ✅ 生产级工程能力(API 服务, Docker, 监控)

🚀 下一步:选择一个方向深入,持续学习,不断实践。记住,成为 AI 专家不是终点,而是一个持续学习和创新的旅程。

祝你在 AI 的道路上越走越远,创造出改变世界的应用!


附录:快速参考

A. 常用命令速查

bash
# PyTorch 安装
pip install torch torchvision torchaudio

# Hugging Face
pip install transformers datasets tokenizers

# 数据科学
pip install numpy pandas scikit-learn matplotlib seaborn

# MLOps
pip install mlflow prometheus-client

# API 服务
pip install fastapi uvicorn

# 检查 GPU
python -c "import torch; print(torch.cuda.is_available())"

B. 常用代码片段

python
# 1. 标准化数据
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X_train)

# 2. 加载预训练模型
from transformers import AutoModel, AutoTokenizer
model = AutoModel.from_pretrained("bert-base-uncased")
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")

# 3. 训练循环模板
for epoch in range(num_epochs):
    model.train()
    for batch in train_loader:
        optimizer.zero_grad()
        outputs = model(batch['input'])
        loss = criterion(outputs, batch['target'])
        loss.backward()
        optimizer.step()

# 4. GPU 设备管理
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model.to(device)
data = data.to(device)

C. 调试技巧

python
# 1. 检查张量形状
print(f"Shape: {tensor.shape}, dtype: {tensor.dtype}, device: {tensor.device}")

# 2. 检查梯度
for name, param in model.named_parameters():
    if param.grad is not None:
        print(f"{name}: grad_norm = {param.grad.norm():.4f}")

# 3. 内存分析
import torch
print(f"GPU 内存已分配: {torch.cuda.memory_allocated() / 1e9:.2f} GB")
print(f"GPU 内存缓存: {torch.cuda.memory_reserved() / 1e9:.2f} GB")

# 4. 模型参数统计
total_params = sum(p.numel() for p in model.parameters())
trainable_params = sum(p.numel() for p in model.parameters() if p.requires_grad)
print(f"Total: {total_params:,}, Trainable: {trainable_params:,}")

本章关键词NumPy Pandas Scikit-Learn PyTorch TensorFlow Transformer BERT GPT Hugging Face 深度学习 机器学习 NLP MLOps RAG Fine-tuning LoRA Prompt Engineering

感谢你的学习和坚持!祝你在 AI 之路上一帆风顺!

基于 MIT 许可证发布。内容版权归作者所有。