Skip to content

并行学习指南

这是一篇 LightGBM 的并行学习教程.

点击 快速入门 来学习怎样使用 LightGBM.

选择合适的并行算法

LightGBM 现已提供了以下并行学习算法.

Parallel Algorithm How to Use
Data parallel tree_learner=data
Feature parallel tree_learner=feature
Voting parallel tree_learner=voting

这些算法适用于不同场景,如下表所示:

  #data is small #data is large
#feature is small Feature Parallel Data Parallel
#feature is large Feature Parallel Voting Parallel

在 optimization in parallel learning 了解更多并行算法的细节.

构建并行版本

默认的并行版本支持基于 socket 的并行学习.

如果你想构建基于 MPI 的并行版本, 请参考 安装指南.

准备工作

Socket 版本

它需要收集所有想要运行并行学习的机器的所有 IP 并且指定一个 TCP 端口号 (假设是 12345 ) , 更改防火墙使得这个端口可以被访问 (12345). 然后把这些 IP 和端口写入一个文件中 (假设是 mlist.txt), 如下所示:

machine1_ip 12345
machine2_ip 12345

MPI 版本

它需要收集所有想要运行并行学习机器的 IP (或 hostname) . 然后把这些IP写入一个文件中 (例如 mlist.txt) 如下所示:

machine1_ip
machine2_ip

Note: 对于 windows 用户, 需要安装 “smpd” 来开启 MPI 服务. 更多细节点击 here.

运行并行学习

Socket 版本

  1. 在配置文件中编辑以下参数:

    tree_learner=your_parallel_algorithm, 在这里编辑 your_parallel_algorithm (e.g. feature/data) .

    num_machines=your_num_machines, 在这里编辑 your_num_machines (e.g. 4) .

    machine_list_file=mlist.txt, mlist.txt 在 准备工作 生成.

    local_listen_port=12345, 12345 在 准备工作 分配.

  2. 拷贝数据文件, 可执行文件, 配置文件和 mlist.txt 到所有机器.

  3. 在所有机器上运行以下命令, 你需要更改 your_config_file 为真实配置文件.

    Windows: lightgbm.exe config=your_config_file

    Linux: ./lightgbm config=your_config_file

MPI 版本

  1. 在配置中编辑以下参数:

    tree_learner=your_parallel_algorithm, 在这里编辑 your_parallel_algorithm (e.g. feature/data) .

    num_machines=your_num_machines, 在这里编辑 your_num_machines (e.g. 4) .

  2. 拷贝数据文件, 可执行文件, 配置文件和 mlist.txt 到所有机器.

    Note: MPI 需要运行在 所有机器的相同路径上.

  3. 在机器上运行以下命令 (不需要运行所有机器), 需要更改 your_config_file 为真实的配置文件.

    Windows:

mpiexec.exe /machinefile mlist.txt lightgbm.exe config=your_config_file

Linux:
mpiexec --machinefile mlist.txt ./lightgbm config=your_config_file

例子



回到顶部