开发者社区 > 大数据与机器学习 > 人工智能平台PAI > 正文

如下 请问机器学习PAI的这些问题怎么解决?

请问在使用批组件的时候,我在代码开始指定了批处理组件的并行数量为8,在对OneHotTrainBatchOp()实例化时numThreads的默认值为1,我没有修改组件的numThreads值,那么在OneHotTrainBatchOp()处理数据的时候的线程数是多少呢?parallelism参数的设置和numThreads都是指的线程数嘛?

展开
收起
乐天香橙派 2023-11-07 13:11:15 52 0
2 条回答
写回答
取消 提交回答
  • parallelism是线程数,训练的Op一般没有numThreads
    parallelism是并发度,numThreads是每个mapper里的并发—此回答来自钉群“Alink开源--用户群”

    2023-11-07 18:44:12
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    首先,让我们澄清一下几个概念。

    • 并行度:并行度是指在一个分布式系统中有多少任务同时运行的节点数量。在 Flink 中,可以设置 job 的并行度来控制 task 数量。如果并行度设为 N,则意味着最多会有 N 个子任务在不同的 slot 中运行。通常来说,增加并行度可以提高 job 执行速度,但也可能导致更多资源消耗和通信开销。
    • 线程:线程是一种操作系统级别的并发机制,允许在同一进程中执行多个并发的任务。在线程中,每个任务都可以独立地使用 CPU 时间片进行计算。在 Java 中,可以通过多线程编程来实现并发执行任务。

    针对问题一,如果您在代码中指定了批处理组件的并行数量为 8,而没有修改 OneHotTrainBatchOp 实例的 numThreads 参数,则默认情况下 OneHotTrainBatchOp 实例内部会启动 1 个工作线程进行计算。这是因为 numThreads 参数默认值为 1。在这种情况下,尽管 job 的并行度为 8,但由于 numThreads 参数限制,实际上只有 1 个工作线程进行计算。
    针对问题二,StandardScalerPredictBatchOp 是用于进行特征缩放预测的批处理算子。在这个场景下,建议您将 numThreads 参数设置为 job 的并行度,这样可以在不同的 slot 中并行地执行预测任务,从而充分利用集群资源并提高性能。不过,需要注意的是,随着 numThreads 参数增大,可能会带来更多的通信开销,因此需要权衡两者之间的利弊。

    2023-11-07 13:35:34
    赞同 展开评论 打赏

人工智能平台 PAI(Platform for AI,原机器学习平台PAI)是面向开发者和企业的机器学习/深度学习工程平台,提供包含数据标注、模型构建、模型训练、模型部署、推理优化在内的AI开发全链路服务,内置140+种优化算法,具备丰富的行业场景插件,为用户提供低门槛、高性能的云原生AI工程化能力。

相关产品

  • 人工智能平台 PAI
  • 热门讨论

    热门文章

    相关电子书

    更多
    微博机器学习平台架构和实践 立即下载
    机器学习及人机交互实战 立即下载
    大数据与机器学习支撑的个性化大屏 立即下载