dyweb / papers-notebook

:page_facing_up: :cn: :page_with_curl: 论文阅读笔记(分布式系统、虚拟化、机器学习)Papers Notebook (Distributed System, Virtualization, Machine Learning)
https://github.com/dyweb/papers-notebook/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+-label%3ATODO-%E6%9C%AA%E8%AF%BB
Apache License 2.0
2.13k stars 244 forks source link

Pretzel: Opening the Black Box of Machine Learning Prediction Serving Systems #110

Open gaocegege opened 5 years ago

gaocegege commented 5 years ago

OSDI'18

https://www.usenix.org/system/files/osdi18-lee.pdf

https://www.usenix.org/sites/default/files/conference/protected-files/osdi18_slides_lee.pdf

gaocegege commented 5 years ago

这篇文章首先是批判了一番现有的 serving 系统,目前几乎所有的系统都是把模型当做黑盒 serving 起来,因此只能支持批处理,缓存预测结果等等面向黑盒的优化方式。因此本文提出了一个可能的白盒方式,支持端到端的优化,以及针对多模型的场景进行了优化。

gaocegege commented 5 years ago

Pretzel 是基于 ML.NET 的一个实验性系统,有这么几个组件:

Pretzel 有两个阶段,离线和在线阶段。在离线阶段的时候,系统会把 ML.NET 的 pipelines 转化为 Flour 接受的表示,然后 Oven 会对其进行优化编译为由 stage 组成的 model plan。stage 是 ahead of time 编译好的,然后 model plan 会被注册到 runtime 中,其中相似的 plan 会共享 stage 和参数。在线阶段就是调度器和 Obejct Store 在干活了,会负责调度 stage 到具体的执行单元去执行,以及参数分配等。

image

gaocegege commented 5 years ago

PRETZEL implementation is a mix of C# and C++. In its current version, the system comprises 12.6K LOC (11.3K in C#, 1.3K in C++) and supports about two dozens of ML.Net operators, among which linear models (e.g., linear/logistic/Poisson regression), tree-based models, clustering models (e.g., K-Means), Principal Components Analysis (PCA), and several featurizers.

gaocegege commented 5 years ago

Evaluation 主要是针对了内存,延迟,吞吐,以及混合各种条件这几个点进行了验证。各方面都有提高,但由于我还没看懂 Flour 和 Oven 以及论文中的各个抽象都是干啥的所以看不懂为什么提高了。

这篇论文不了解 ML.NET 读起来似乎有点难度,很多概念不知道是啥