1. Celery —— 分布式任务队列

  • 定位:异步任务处理 / 分布式任务调度框架

  • 作用:把耗时的任务(发邮件、处理图片、跑模型推理等)从主程序里剥离出来,交给后台的 worker 异步执行,避免阻塞主流程

  • 典型场景:

    • Web 应用(Django/Flask)中处理耗时操作

    • 定时任务(配合 celery beat)

    • 需要横向扩展的任务分发

  • 核心概念:Broker(如 Redis/RabbitMQ)、Worker、Task、Result Backend

@app.task
def send_email(to):
    ...

send_email.delay("a@b.com")  # 异步丢给 worker

2. scikit-learn (sklearn) —— 经典机器学习库

  • 定位:传统机器学习算法库

  • 作用:提供分类、回归、聚类、降维、模型评估、特征工程等一整套工具

  • 特点:API 统一(fit / predict / transform),基于 NumPy/SciPy,适合中小规模数据和传统算法

  • 典型算法:线性回归、SVM、随机森林、KMeans、PCA、GBDT 等

from sklearn.ensemble import RandomForestClassifier
clf = RandomForestClassifier().fit(X, y)
clf.predict(X_test)

注意:sklearn 不擅长深度学习,神经网络部分已被官方标记为"不再重点发展"。

3. PyTorch (torch) —— 深度学习框架

  • 定位:深度学习 / 神经网络框架

  • 作用:构建和训练神经网络,支持自动求导、GPU 加速、动态计算图

  • 典型场景:图像识别、NLP、大模型训练与微调、强化学习等

  • 生态:torchvision(视觉)、torchaudio(音频)、transformers(预训练模型)等

  • 特点:研究友好、调试直观,目前是学术界和工业界主流

import torch
x = torch.randn(3, requires_grad=True)
y = (x ** 2).sum()
y.backward()  # 自动求导

一句话对比

库领域核心用途
Celery工程/后端异步任务、分布式调度
sklearn机器学习传统 ML 算法(非深度学习)
torch深度学习神经网络训练与推理

它们经常一起出现:比如用 Celery 把 sklearn/torch 的模型推理任务异步化,避免接口超时。

更多推荐