我是Spark(以及集群计算框架)的新手,我想知道用于机器学习的并行算法(MLlib)所遵循的一般原则。它们本质上更快,因为Spark在多个节点上分发训练数据吗?如果是,我想所有节点共享同一组参数对吗?并且他们必须在常规基础上结合(例如:求和)中间计算(例如:渐变),我错了吗?
其次,假设我想用一组模型拟合我的数据(例如:10)。在这个特定的环境中,在10台机器上独立运行我的旧机器学习程序,而不是必须为Spark群集中的训练编写复杂的代码(对我来说至少!),这不是更简单吗?
推论问题:Spark(或其他集群计算框架)是否仅适用于大数据应用程序,对于这些应用程序,我们无法承受多个模型的培训,而且单个计算机上的培训时间太长?
答案 0 :(得分:1)
MLlib算法不一定更快。他们试图解决两个问题:
如果您可以在单个节点上处理数据,这比使用ML / MLlib快几个数量级。
最后一个问题很难回答,但是:
训练合奏并不复杂:
my_reg