机器学习工具与资源全指南

本文整理机器学习学习和实践中常用的工具、框架、资源,保持持续更新。

1. 开发环境

1.1 IDE 与编辑器

工具特点推荐场景
VS Code轻量、插件丰富、Jupyter 集成日常开发首选
PyCharm专业 Python IDE、调试强大大型项目开发
CursorAI 原生 IDE、代码补全智能AI 辅助开发
Jupyter Lab交互式、可视化、适合探索数据分析、实验
Google Colab免费 GPU、云端 Notebook学习、快速验证

1.2 VS Code 推荐插件

- Python (Microsoft)
- Jupyter (Microsoft)
- Pylance (智能补全)
- GitHub Copilot (AI 补全)
- GitLens (Git 增强)
- Remote - SSH (远程开发)

1.3 环境管理

工具用途命令示例
conda环境 + 包管理conda create -n ml python=3.11
venvPython 原生虚拟环境python -m venv .venv
uv超快的 Python 包管理器uv pip install torch
Poetry依赖管理 + 打包poetry add numpy

2. 深度学习框架

2.1 主流框架对比

框架优势劣势推荐指数
PyTorch动态图、调试友好、研究主流部署相对复杂⭐⭐⭐⭐⭐
TensorFlow生产部署强、生态完整API 复杂、学习曲线陡⭐⭐⭐⭐
JAX函数式、JIT 编译、科研前沿学习曲线高⭐⭐⭐⭐
Keras简单易用、快速原型灵活性受限⭐⭐⭐

2.2 PyTorch 生态(推荐)

# 核心安装(CUDA 12.4)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

关键库:

用途安装
torchvision计算机视觉随 torch 安装
torchaudio音频处理随 torch 安装
torchtext文本处理pip install torchtext
torch-geometric图神经网络pip install torch-geometric
lightning训练框架pip install lightning

2.3 Hugging Face 生态(必备)

pip install transformers datasets accelerate evaluate
pip install peft  # 参数高效微调
pip install trl   # RLHF 训练

核心组件:

组件用途
transformers预训练模型库(BERT、GPT、LLaMA 等)
datasets数据集加载与处理
accelerate分布式训练
peftLoRA、QLoRA 等高效微调
trlRLHF、DPO 训练
diffusers扩散模型(Stable Diffusion)

3. 数据处理工具

3.1 数据操作

用途特点
NumPy数值计算基础必学
Pandas表格数据处理必学
Polars高性能 DataFrame大数据量首选
Dask分布式计算超大数据集

3.2 数据增强

# 图像增强
from torchvision import transforms
from albumentations import Compose, RandomCrop, HorizontalFlip
 
# 文本增强
import nlpaug  # 文本数据增强
 
# 音频增强
import audiomentations

3.3 数据标注工具

工具类型特点
Label Studio通用开源、支持多种任务
CVAT图像/视频专业 CV 标注
ProdigyNLP高效、可编程
Labelbox商业企业级、团队协作

4. 可视化工具

4.1 数据可视化

import matplotlib.pyplot as plt  # 基础绑图
import seaborn as sns           # 统计可视化
import plotly.express as px     # 交互式图表

4.2 模型可视化

工具用途
TensorBoard训练曲线、模型图
Weights & Biases实验跟踪、可视化、协作
MLflow实验管理、模型注册
Netron神经网络结构可视化

4.3 实验跟踪配置

# Weights & Biases
import wandb
wandb.init(project="my-ml-project")
wandb.log({"loss": loss, "accuracy": acc})
 
# MLflow
import mlflow
mlflow.log_metric("loss", loss)
mlflow.log_artifact("model.pt")

5. 模型部署

5.1 推理优化

工具用途特点
ONNX Runtime跨平台推理通用
TensorRTNVIDIA GPU 优化最快
vLLMLLM 高效推理PagedAttention
llama.cppCPU 推理量化、本地部署
Ollama本地 LLM 服务简单易用

5.2 服务化框架

# FastAPI(推荐)
from fastapi import FastAPI
app = FastAPI()
 
@app.post("/predict")
async def predict(data: InputData):
    return model.predict(data)
 
# Gradio(快速 Demo)
import gradio as gr
gr.Interface(fn=predict, inputs="text", outputs="text").launch()
 
# Streamlit(数据应用)
import streamlit as st
st.title("ML Demo")

5.3 容器化

# Dockerfile 示例
FROM pytorch/pytorch:2.2.0-cuda12.1-cudnn8-runtime
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . /app
CMD ["python", "serve.py"]

6. 计算资源

6.1 免费 GPU 资源

平台GPU限制推荐
Google ColabT4/V10012h 连续⭐⭐⭐⭐⭐
Kaggle NotebooksP100/T430h/周⭐⭐⭐⭐⭐
Lightning AI免费额度有限制⭐⭐⭐⭐

6.2 付费云平台

平台特点适用场景
AWS SageMaker完整 ML 平台企业级
Google Cloud Vertex AITPU 支持大规模训练
Azure ML微软生态集成企业级
Lambda LabsGPU 专注、价格低研究/中小团队
Vast.aiGPU 市场、最便宜预算有限
RunPod简单易用快速部署

6.3 国内平台

平台特点
阿里云 PAI国内主流、ModelScope 集成
腾讯云 TI完整 ML 平台
华为云 ModelArts昇腾支持
AutoDL便宜、简单、推荐
恒源云价格实惠

7. 学习资源

7.1 在线课程(推荐排序)

入门必看:

课程平台特点
吴恩达机器学习Coursera经典入门,概念清晰
fast.aifast.ai实践导向,代码优先
李宏毅机器学习YouTube/B站中文、生动、前沿
Stanford CS229YouTube理论扎实

深度学习:

课程平台特点
吴恩达深度学习专项Coursera系统全面
Stanford CS231nYouTubeCV 圣经
Stanford CS224nYouTubeNLP 圣经
Hugging Face Course官网Transformers 实战

前沿方向:

课程内容
Stanford CS224W图神经网络
Berkeley CS285深度强化学习
Stanford CS25Transformers

7.2 经典书籍

入门:

  • 《机器学习》周志华 - 西瓜书,中文经典
  • 《统计学习方法》李航 - 理论扎实
  • 《Hands-On Machine Learning》- 实践导向

进阶:

  • 《Deep Learning》Goodfellow - 深度学习圣经
  • 《Pattern Recognition and Machine Learning》Bishop - PRML
  • 《Dive into Deep Learning》- 动手学深度学习,代码完整

数学基础:

  • 《Mathematics for Machine Learning》- 免费在线
  • 《Linear Algebra Done Right》- 线性代数

7.3 必读论文

基础架构:

大语言模型:

论文阅读平台:

7.4 技术博客

博客特点
Lil’Log深入浅出的技术总结
Jay Alammar可视化讲解 Transformer
The Gradient深度技术文章
Distill.pub交互式可视化
机器之心中文 AI 资讯

8. 数据集与基准

8.1 通用数据集平台

平台特点
Hugging Face Datasets最全、易用
Kaggle Datasets竞赛数据
Papers With Code Datasets论文关联
UCI ML Repository经典数据集
OpenML自动化 ML 数据

8.2 按领域分类

计算机视觉:

  • ImageNet - 图像分类基准
  • COCO - 目标检测/分割
  • LAION-5B - 图文对(扩散模型)

自然语言处理:

  • GLUE/SuperGLUE - NLU 基准
  • SQuAD - 问答
  • CommonCrawl - 大规模文本

语音:

  • LibriSpeech - 语音识别
  • Common Voice - 多语言语音

8.3 LLM 评测基准

基准评测内容
MMLU多任务语言理解
HumanEval代码生成
GSM8K数学推理
TruthfulQA真实性
MT-Bench多轮对话

9. 社区与资讯

9.1 技术社区

社区特点
Hugging Face Hub模型/数据/空间
GitHub代码协作
Stack Overflow问答
Reddit r/MachineLearning讨论前沿
Discord (各框架)实时交流

9.2 中文社区

  • 知乎 - 技术讨论
  • 机器之心 - AI 资讯
  • PaperWeekly - 论文解读
  • 夕小瑶的卖萌屋 - NLP 科普

9.3 保持更新

来源用途
arXiv (cs.LG/cs.CL)最新论文
Twitter/X研究者动态
Newsletter (The Batch等)周报总结
YouTube (Yannic Kilcher等)论文讲解

10. 实用工具速查

10.1 一键安装脚本

# 基础 ML 环境
pip install numpy pandas scikit-learn matplotlib seaborn jupyter
 
# PyTorch 深度学习
pip install torch torchvision torchaudio
pip install lightning wandb
 
# NLP/LLM
pip install transformers datasets accelerate
pip install peft trl bitsandbytes
 
# CV
pip install opencv-python albumentations timm
 
# 部署
pip install fastapi uvicorn gradio streamlit onnx onnxruntime

10.2 常用代码片段

# 设置随机种子(可复现)
import torch
import numpy as np
import random
 
def set_seed(seed=42):
    random.seed(seed)
    np.random.seed(seed)
    torch.manual_seed(seed)
    torch.cuda.manual_seed_all(seed)
    torch.backends.cudnn.deterministic = True
 
# 检查 GPU
print(f"CUDA available: {torch.cuda.is_available()}")
print(f"GPU: {torch.cuda.get_device_name(0)}")
print(f"GPU Memory: {torch.cuda.get_device_properties(0).total_memory / 1e9:.1f} GB")
 
# 自动混合精度训练
from torch.cuda.amp import autocast, GradScaler
scaler = GradScaler()
with autocast():
    output = model(input)
    loss = criterion(output, target)
scaler.scale(loss).backward()
scaler.step(optimizer)
scaler.update()

相关笔记