深度学习的管道抽象
项目描述
PADL
深度学习的管道抽象
此处的完整文档:https ://lf1-io.github.io/padl/
正如程序的阅读频率高于编写频率一样,深度学习模型的使用频率也高于其训练频率。
PyTorch 生态系统有许多用于训练模型的工具。然而,这仅仅是旅程的开始。一旦模型经过训练,它就会被共享,并在数据科学家的操作、评估、比较和实验中用于多种环境中,通常是每天使用。训练模型的使用是如何从其权重中提取价值的。尽管有这个重要的事实,但到目前为止,在 PyTorch 生态系统及其他生态系统中,对使用深度学习模型的支持非常少。PADL 是填补这一空白的工具。
PADL
非常适合:
- 服务模型预测
- 在 Jupyter 笔记本和交互式会话中使用预训练模型进行实验
- 检查和可视化中间模型特征
- 评估和监控模型在指标和传入测试数据上的性能
- 计算模型输出作为进一步数据科学任务的预处理步骤
这是它的工作原理:
- PADL 是PyTorch的管道构建器。
- 可以与您用于编写层的所有出色的PyTorch功能一起使用。
- 允许用户在管道中构建预处理、前向传递、损失函数和后处理。
- 模型可能具有任意拓扑并使用来自 python 生态系统的任意包。
- 允许使用单个关键字将标准函数转换为PADL
transform组件。
PADL 管道:
- 可以在 PyTorch Lightning 中使用最少的样板进行训练
- 然后可以与 TorchServe 在一条线上服务
- 与整个 PyTorch 生态系统良好交互(例如 Hugging Face)
PADL由位于德国柏林的人工智能创新实验室LF1开发。
入门
安装
pip install padl
PADL 目前支持 python 3.7、3.8和3.9。
Python 版本 >= 3.8是首选,因为在3.7中创建和加载转换(不是执行)可能会更慢。
警告:PADL 转换在基本 Python 解释器环境中不起作用,因为我们依赖检查模块来查找源代码(在保存 PADL 转换时使用)。不幸的是,在此交互式提示下键入的源代码一经解析就被丢弃。因此,我们建议使用 IPython 解释器或 Jupyter Notebooks 进行交互式会话。
你的第一个 PADL 程序
from padl import transform, batch, unbatch
import torch
from torch import nn
nn = transform(nn)
@transform
def prepare(x):
return torch.tensor(x)
@transform
def post(x):
return x.topk(1)[1].item()
my_pipeline = prepare >> batch >> nn.Linear(10, 20) >> unbatch >> post
在 Colab 笔记本中试用 PADL
资源
- 阅读https://lf1-io.github.io/padl/上的文档。
- 在https://github.com/lf1-io/padl/tree/main/notebooks中查找示例。
- 在https://github.com/lf1-io/padl/issues发布问题。
开发博客
在PADL 开发人员的博客上阅读有关 PADL 的更多信息
贡献
如果您有兴趣为 PADL 做出贡献,请查看当前问题
许可
PADL 在 Apache 许可证 2.0 版下获得许可。有关完整的许可证文本,请参阅许可证。