microsoft / microsoft/SynapseML
[BUG] LightGBM | Required time to fit is too long
Nobody has claimed this yet.
- Dominant language
- Scala
- Stars
- 5.2k
- Forks
- 868
- Avg merge
- 22h 9m
- Merged PRs (30d)
- 45
Description
### SynapseML version
1.0.4
### System information
- **Language version** (e.g. python 3.8, scala 2.12):
- **Spark Version** (e.g. 3.5.0):
- **Spark Platform** (e.g. Synapse, Databricks):
### Describe the problem
Hello, folks!
I facing some troubles to train a LightGBM Model. The model fits until a certain point and after that, somehow models stop to train. It is not indicating any kind of error, the model just stop to load and stays in the same place forever. As you can seen below: I've been using features such as: numTasks, numThreads, numBatches, useSingleDatasetMode and useBarrierExecutionMode in order to improve fit performance.
My dataset has about 418 millions lines to train and 18 millions for validation. I've been dealing of with about 21 features, 10 categorical and rest are continuous variables.
DataBricks Cluster Configuration:
--- Single Node
--- 256 GB Ram Memory | 32 Cores
You guys have any idea why I'm having such issue?
### Code to reproduce issue
dic_params_reg_model_0 = {'learningRate' : 0.10686341357711826 ,
'featureFraction': 0.9064118023259887,
'maxBin' : 5,
'minDataInLeaf' : 6,
'numIterations' : 53,
'numLeaves' : 147,
'lambdaL2' : 45.405492626469716,
'lambdaL1' : 0.0015480184927416942}
model_cluster_0 = LightGBMRegressor(metric = 'mae', earlyStoppingRound=1, labelCol='target',
dataTransferMode='streaming', numTasks=32, numThreads=32, validationIndicatorCol='validation_col', numBatches=500, useSingleDatasetMode=True, useBarrierExecutionMode=True
).setParams(**dic_params_reg_model_0).fit(train_0)
### Other info / logs
Spark Configuration:
spark.master local[*, 8]
spark.databricks.cluster.profile singleNode
spark.driver.maxResultSize 150g
spark.jars.repositories https://mmlspark.azureedge.net/maven
### What component(s) does this bug affect?
- [ ] `area/cognitive`: Cognitive project
- [ ] `area/core`: Core project
- [ ] `area/deep-learning`: DeepLearning project
- [X] `area/lightgbm`: Lightgbm project
- [ ] `area/opencv`: Opencv project
- [ ] `area/vw`: VW project
- [ ] `area/website`: Website
- [ ] `area/build`: Project build system
- [ ] `area/notebooks`: Samples under notebooks folder
- [ ] `area/docker`: Docker usage
- [ ] `area/models`: models related issue
### What language(s) does this bug affect?
- [ ] `language/scala`: Scala source code
- [X] `language/python`: Pyspark APIs
- [ ] `language/r`: R APIs
- [ ] `language/csharp`: .NET APIs
- [ ] `language/new`: Proposals for new client languages
### What integration(s) does this bug affect?
- [X] `integrations/synapse`: Azure Synapse integrations
- [ ] `integrations/azureml`: Azure ML integrations
- [X] `integrations/databricks`: Databricks integrations
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the provided LightGBMRegressor reproduction code and Spark configuration, then investigate where fitting stops progressing for the reported dataset and cluster setup. Compare the configured task, thread, batch, dataset, and barrier settings with observable training behavior; done means identifying a reproducible cause and confirming a documented fix or clear limitation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- machine-learning
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100