Skip to content

Commit 870d7d2

Browse files
committed
chore: bump version to 0.17.2; upgrade torch stack and automl defaults
- Require torch>=2.11, torchaudio>=2.11, torchvision>=0.26, transformers>=5.0 in core deps to match torchao>=0.17.0 (which requires torch>=2.11); fixes LLM fine-tuning crash caused by torchao/torch version mismatch in Docker images - Update all four Docker images to pin torch==2.12.0, torchvision==0.27.0, torchaudio==2.11.0 (latest stable, cu124 for GPU images) - Drop redundant torch>=2.7 pin from the llm extra; torchao>=0.17.0 replaces old >=0.9.0 - Change AutoML default tabular combiner from tabnet to ft_transformer; add ft_transformer and tabtransformer to combiner_defaults with tuned hyperopt configs
1 parent 2da38ae commit 870d7d2

11 files changed

Lines changed: 92 additions & 13 deletions

File tree

docker/ludwig-gpu/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ RUN if [ -n "${LUDWIG_VERSION}" ]; then \
3636
else \
3737
pip install --no-cache-dir '.[full]' --extra-index-url https://download.pytorch.org/whl/cu124; \
3838
fi
39-
RUN pip install --no-cache-dir --force-reinstall torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --extra-index-url https://download.pytorch.org/whl/cu124
39+
RUN pip install --no-cache-dir --force-reinstall torch==2.12.0 torchvision==0.27.0 torchaudio==2.11.0 --extra-index-url https://download.pytorch.org/whl/cu124
4040

4141
WORKDIR /data
4242

docker/ludwig-ray-gpu/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,4 @@ RUN if [ -n "${LUDWIG_VERSION}" ]; then \
3737
else \
3838
pip install --no-cache-dir '.[full]' --extra-index-url https://download.pytorch.org/whl/cu124; \
3939
fi
40-
RUN pip install --no-cache-dir --force-reinstall torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --extra-index-url https://download.pytorch.org/whl/cu124
40+
RUN pip install --no-cache-dir --force-reinstall torch==2.12.0 torchvision==0.27.0 torchaudio==2.11.0 --extra-index-url https://download.pytorch.org/whl/cu124

docker/ludwig-ray/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,4 @@ RUN if [ -n "${LUDWIG_VERSION}" ]; then \
3636
else \
3737
pip install --no-cache-dir '.[full]' --extra-index-url https://download.pytorch.org/whl/cpu; \
3838
fi
39-
RUN pip install --no-cache-dir --force-reinstall torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --extra-index-url https://download.pytorch.org/whl/cpu
39+
RUN pip install --no-cache-dir --force-reinstall torch==2.12.0 torchvision==0.27.0 torchaudio==2.11.0 --extra-index-url https://download.pytorch.org/whl/cpu

docker/ludwig/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ RUN if [ -n "${LUDWIG_VERSION}" ]; then \
3232
else \
3333
pip install --no-cache-dir '.[full]' --extra-index-url https://download.pytorch.org/whl/cpu; \
3434
fi
35-
RUN pip install --no-cache-dir --force-reinstall torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --extra-index-url https://download.pytorch.org/whl/cpu
35+
RUN pip install --no-cache-dir --force-reinstall torch==2.12.0 torchvision==0.27.0 torchaudio==2.11.0 --extra-index-url https://download.pytorch.org/whl/cpu
3636

3737
WORKDIR /data
3838

ludwig/automl/automl.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ def _model_select(
307307
):
308308
"""Performs model selection based on dataset or user specified model.
309309
310-
Note: Current implementation returns tabnet by default for tabular datasets.
310+
Note: Current implementation returns ft_transformer by default for tabular datasets.
311311
"""
312312
fields = dataset_info.fields
313313

ludwig/automl/base_config.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@
5959
"concat": os.path.join(CONFIG_DIR, "combiner/concat_config.yaml"),
6060
"tabnet": os.path.join(CONFIG_DIR, "combiner/tabnet_config.yaml"),
6161
"transformer": os.path.join(CONFIG_DIR, "combiner/transformer_config.yaml"),
62+
"ft_transformer": os.path.join(CONFIG_DIR, "combiner/ft_transformer_config.yaml"),
63+
"tabtransformer": os.path.join(CONFIG_DIR, "combiner/tabtransformer_config.yaml"),
6264
}
6365

6466
encoder_defaults = {"text": {"bert": os.path.join(CONFIG_DIR, "text/bert_config.yaml")}}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
combiner:
2+
type: ft_transformer
3+
num_layers: 3
4+
num_heads: 8
5+
hidden_size: 64
6+
transformer_output_size: 64
7+
dropout: 0.1
8+
fc_dropout: 0.1
9+
10+
trainer:
11+
batch_size: auto
12+
learning_rate: auto
13+
optimizer:
14+
type: adam
15+
16+
hyperopt:
17+
parameters:
18+
trainer.learning_rate:
19+
space: loguniform
20+
lower: 0.0001
21+
upper: 0.001
22+
trainer.batch_size:
23+
space: choice
24+
categories: [32, 64, 128, 256]
25+
combiner.num_layers:
26+
space: choice
27+
categories: [2, 3, 4]
28+
combiner.hidden_size:
29+
# Must be divisible by num_heads (8). Valid values: 32, 64, 128, 256.
30+
space: choice
31+
categories: [32, 64, 128, 256]
32+
combiner.dropout:
33+
space: uniform
34+
lower: 0.0
35+
upper: 0.3
36+
combiner.fc_dropout:
37+
space: uniform
38+
lower: 0.0
39+
upper: 0.3
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
combiner:
2+
type: tabtransformer
3+
num_layers: 4
4+
num_heads: 8
5+
hidden_size: 64
6+
transformer_output_size: 64
7+
dropout: 0.1
8+
fc_dropout: 0.1
9+
10+
trainer:
11+
batch_size: auto
12+
learning_rate: auto
13+
optimizer:
14+
type: adam
15+
16+
hyperopt:
17+
parameters:
18+
trainer.learning_rate:
19+
space: loguniform
20+
lower: 0.0001
21+
upper: 0.001
22+
trainer.batch_size:
23+
space: choice
24+
categories: [32, 64, 128, 256]
25+
combiner.num_layers:
26+
space: choice
27+
categories: [2, 4, 6]
28+
combiner.hidden_size:
29+
# Must be divisible by num_heads (8). Valid values: 32, 64, 128, 256.
30+
space: choice
31+
categories: [32, 64, 128, 256]
32+
combiner.dropout:
33+
space: uniform
34+
lower: 0.0
35+
upper: 0.3
36+
combiner.fc_dropout:
37+
space: uniform
38+
lower: 0.0
39+
upper: 0.3

ludwig/constants.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@
254254
IMBALANCE_DETECTION_RATIO = 0.05
255255

256256
TABULAR = "tabular"
257-
AUTOML_DEFAULT_TABULAR_MODEL = "tabnet"
257+
AUTOML_DEFAULT_TABULAR_MODEL = "ft_transformer"
258258
AUTOML_DEFAULT_TEXT_ENCODER = "bert"
259259
AUTOML_SMALLER_TEXT_ENCODER = "distilbert"
260260
AUTOML_TEXT_ENCODER_MAX_TOKEN_LEN = 512

ludwig/globals.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
# limitations under the License.
1515
# ==============================================================================
1616

17-
LUDWIG_VERSION = "0.17.1"
17+
LUDWIG_VERSION = "0.17.2"
1818

1919
MODEL_FILE_NAME = "model"
2020
MODEL_WEIGHTS_FILE_NAME = "model_weights" # legacy pickle format

0 commit comments

Comments
 (0)