Skip to content

Releases: alibaba/TorchEasyRec

v1.3.0

Choose a tag to compare

@tiankongdeguiji tiankongdeguiji released this 02 Jul 07:06
ee3ef09

Major Features and Improvements

Train/Eval/Predict/Export

  • AOTInductor
    • Optimize AOTI performance with export knobs for fp32 unbacked floats, sample-input autotune, and TF32 from export config in #498
    • AOTInductor support match models in #509
  • Cache feature-permute order during export to avoid per-forward H2D sync in #527
  • Support keep_checkpoint_max with async checkpoint pruning in #528
  • [WIP] Support model delta tracker to track incremental embedding rows in #546

Model

  • HSTUMatch:
    • Optimize HSTUMatch with STUStack, UIHPreprocessor, and block-suffix candidates to support efficient triton hstu ops in #505 #506 #510 #519 #520 #526
    • Support scalar item-tower export view for HSTUMatch in #518
  • DlrmHSTU / UltraHSTU
    • Support stu.scaling_seqlen and drop autotune assert strip in #500
    • Thread contextual_seq_len from preprocessor to STULayer with proto sentinel, truncation total_uih_len, and AOTI-friendly SLA builder in #501
    • Bundle a repackaged Triton 3.7.1 wheel with ptxas 12.9.86 to fix the HSTU WGMMA shared-memory OOB on sm_90/H20 in #551
  • SID:
    • Add SidRqkmeans model with FAISS-trained residual K-Means in #538 #539
    • Add SidRqvae model with STE/Gumbel-Softmax and CLIP support in #545 #552

Embedding

  • Add FeatureGroupConfig.embedding_name_suffix to break embedding sharing across groups in #504
  • Add planner support to pick DynamicEmbedding HYBRID vs CACHING from topology budgets in #508
  • Add zch_to_dynamicemb_convert tool to migrate ZCH checkpoints to DynamicEmbedding in #511

Dataset

  • Add Kafka event-time driven checkpointing from message timestamp in #541
  • Support dataloader checkpoint resume across forked workers and epochs in #544
  • Batch and retry Kafka offsets_for_times to survive broker timeouts in #547

Optimizer and Metrics

  • Add Adadelta and RMSprop sparse and dense optimizers in #499
  • Add NormalizedEntropy metric for binary classification in #507

Upgrade

  • Upgrade PyTorch to v2.12.1, TorchRec to v1.7.0, FBGEMM to v1.7.0, support NumPy 2, and add CUDA 13.0 TensorRT image support in #551
  • Allow pandas >= 3 in #556

Note

For TorchEasyRec 1.3.x, you should use Docker image version 1.3.

  • For the GPU version (CUDA 13.0) with tensorrt:
    • mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easyrec/tzrec-devel:1.3-cu130
    • PyTorch: v2.12.1 CUDA: v13.0 FBGEMM: v1.7.0 TorchRec: v1.7.0 TensorRT: v10.16 Python: v3.11
    • Supported GPUs: sm_75 / 80 / 86 / 90 / 100 / 120, It supports Turing (T4), Ampere/Ada (A10/A30/A100/L4/L20), Hopper (H100/H200), Blackwell (B100/B200), and other GPUs with CC 7.5-12.0.
    • Driver requirement: NVIDIA driver R580 or later is recommended. For older drivers, set LD_LIBRARY_PATH=/usr/local/cuda-13.0/compat.
  • For the GPU version (CUDA 12.9):
    • mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easyrec/tzrec-devel:1.3-cu129
    • PyTorch: v2.12.1 CUDA: v12.9 FBGEMM: v1.7.0 TorchRec: v1.7.0 Python: v3.11
    • Supported GPUs: sm_75 / 80 / 86 / 90 / 100 / 120. It supports Turing (T4), Ampere/Ada (A10/A30/A100/L4/L20), Hopper (H100/H200), Blackwell (B100/B200), and other GPUs with CC 7.5-12.0.
  • For the GPU version (CUDA 12.6):
    • mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easyrec/tzrec-devel:1.3-cu126
    • PyTorch: v2.12.1 CUDA: v12.6 FBGEMM: v1.7.0 TorchRec: v1.7.0 Python: v3.11
    • Supported GPUs: sm_60 / 70 / 75 / 80 / 86 / 90. It supports Pascal (P100), Volta (V100), Turing (T4), Ampere/Ada (A10/A30/A100/L4/L20), Hopper (H100), and other GPUs with CC 6.0-9.0. It does not support Blackwell GPUs.
  • For the CPU version:
    • mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easyrec/tzrec-devel:1.3-cpu
    • PyTorch: v2.12.1 FBGEMM: v1.7.0 TorchRec: v1.7.0 Python: v3.11

Bug Fixes and Other Changes

New Contributors

Full Changelog: v1.2.0...v1.3.0

v1.2.0

Choose a tag to compare

@tiankongdeguiji tiankongdeguiji released this 02 May 03:16
cceb2be

Major Features and Improvements

Train/Eval/Predict/Export

  • Enhance HSTU export in #443
  • Support unified one-stage AOTI export with torch.export compatibility fixes in #475
  • Support generic --additional_export_config JSON for export in #481
  • Reduce AOTI compile memory usage by releasing verify-forward activations before compile in #491

Model

  • DlrmHSTU:
    • Add CUTLASS kernel backend for HSTU attention in #465
    • Add concat_contextual_features option in #459
    • Support scaling_seqlen in HSTU attention stack in #480
    • Support per-task loss weight in FusionSubTaskConfig in #453
  • ULTRA-HSTU:
    • Add Semi-Local Attention and selective activation rematerialization in #486
    • Add mid-stack attention truncation in #488
    • Add Mixture of Transducers in #492
  • Add label smoothing support to BinaryCrossEntropy loss in #455

Embedding

  • Update DynamicEmbedding to use align_to_table_size in #460
  • Integrate DynamicEmbedding table fusion in #466

Feature

  • Add CombineFeature support in #447
  • Support TokenizeFeature as token-level sequence input in #470

Dataset

  • Add start.timestamp.ms support to KafkaDataset in #446
  • Add heartbeat thread to prevent Kafka MAX_POLL_EXCEEDED in #471

Optimizer

  • Add CosineAnnealingLR and CosineAnnealingWarmRestartsLR schedules in #454

Upgrade

  • Upgrade PyTorch to v2.11, TorchRec to v1.6.0, and FBGEMM to v1.6.0 in #479

Note

For TorchEasyRec 1.2.x, you should use Docker image version 1.2.

  • For the GPU version (CUDA 12.9) with tensorrt:
    • mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easyrec/tzrec-devel:1.2-cu129
    • PyTorch: v2.11 CUDA: v12.9 FBGEMM: v1.6.0 TorchRec: v1.6.0 Python: v3.11
    • Supported GPUs: sm_75 / 80 / 86 / 90 / 100 / 120. It supports Turing (T4), Ampere/Ada (A10/A30/A100/L4/L20), Hopper (H100/H200/H20), Blackwell (B100/B200), and other GPUs with CC 7.5-12.0.
  • For the GPU version (CUDA 12.6) with tensorrt:
    • mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easyrec/tzrec-devel:1.2-cu126
    • PyTorch: v2.11 CUDA: v12.6 FBGEMM: v1.6.0 TorchRec: v1.6.0 Python: v3.11
    • Supported GPUs: sm_70 / 75 / 80 / 86 / 90. It supports Volta (V100), Turing (T4), Ampere/Ada (A10/A30/A100/L4/L20), Hopper (H100/H20), and other GPUs with CC 7.0-9.0. It does not support Blackwell GPUs.
  • For the CPU version:
    • mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easyrec/tzrec-devel:1.2-cpu
    • PyTorch: v2.11 FBGEMM: v1.6.0 TorchRec: v1.6.0 Python: v3.11

Bug Fixes and Other Changes

Full Changelog: v1.1.0...v1.2.0

v1.1.0

Choose a tag to compare

@tiankongdeguiji tiankongdeguiji released this 23 Mar 02:32
0f58bef

Major Features and Improvements

Train/Eval/Predict/Export

  • Support grad clipping for dense params in #424
  • Refactor AOTInductor export with split model in #394
  • Support env configs for reproducibility in #361
  • Support ignore restore optimizer option for train_eval in #389

Model

  • Add PE-LTR model in #381
  • Add WuKong model in #372
  • Add PEPNet model in #402
  • Improve DlrmHSTU model in #352 #395 #393 #359
    • support num_class > 1
    • support descending order sequence
    • support jagged label
    • support time_bucket_increments in PositionEncoder
  • DLRM and WuKong model support only one sparse group in #385

Embedding

  • Add AdmissionStrategy support for DynamicEmbedding in #362
  • Add storage estimate for dynamic embedding kv counter in #391

Feature

  • Support sequence cross features in #375
  • Support convert compatible feature configs of EasyRec in #392

Dataset

  • Add Kafka dataset with checkpoint support in #401 #408 #413
  • Add checkpointable Parquet dataset in #410
  • Add checkpointable ODPS dataset in #409
  • Support input fields str in #412

Optimizer

  • Support initial_accumulator_value for FusedSparseAdagradOptimizer & add additional optimizer configuration options in #382

Upgrade

  • Upgrade torchrec to v1.5.0 in #405

Note

For TorchEasyRec 1.1.x, you should use Docker image version 1.1.

  • For the GPU version (CUDA 12.9) with tensorrt:
    • mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easyrec/tzrec-devel:1.1-cu129
    • PyTorch: v2.10 CUDA: v12.9 FBGEMM: v1.5.0 TorchRec: v1.5.0 Python: v3.11
  • For the GPU version (CUDA 12.6) w/o tensorrt:
    • mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easyrec/tzrec-devel:1.1-cu126
    • PyTorch: v2.10 CUDA: v12.6 FBGEMM: v1.5.0 TorchRec: v1.5.0 Python: v3.11
  • For the CPU version:
    • mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easyrec/tzrec-devel:1.1-cpu
    • PyTorch: v2.10 FBGEMM: v1.5.0 TorchRec: v1.5.0 Python: v3.11

Bug Fixes and Other Changes

New Contributors

Full Changelog: v1.0.0...v1.1.0

v1.0.0

Choose a tag to compare

@tiankongdeguiji tiankongdeguiji released this 15 Dec 03:47
135c843

Major Features and Improvements

Train/Eval/Predict/Export

  • Support training with dynamic batch size by sample cost in #343
  • Support logging train metrics in #310
  • Support predicting checkpoint in #320 #322 #324
  • [EXPERIMENTAL] Support exporting with AOTInductor in #239 #274
  • Support exporting with TensorRT in #318
  • Support exporting the best model in #294
  • Support exporting to RTP in #298 #307 #329 #332 #339
  • Support AdamW optimizer and label smoothing in #297
  • Support setting an optimizer for a subset of parameters in #297
  • Support PanguDFS in #311 #348 #349 #350

Embedding

Model

  • Optimize and refactor DlrmHSTU preprocessor to support MTGR style preprocessing in #290 #296 #300 #314
  • Decouple contextual feature dimension from sequence id embedding dimension in DlrmHSTU in #302
  • DlrmHSTU support uih and contextual share embedding in #337
  • DlrmHSTU support global average loss option in #334
  • Add TMA support for hstu attn in #336
  • Optimize gpu memory usage of GAUC metric in #312

Feature

  • Support kv dot product feature in #276
  • Support bool mask feature in #285
  • Support farm hash in #295

Upgrade

  • Upgrade pytorch to v2.9 and torchrec to v1.4.0 in #345

Note

For TorchEasyRec 1.0.x, you should use Docker image version 1.0.

  • For the GPU version (CUDA 12.6):
    • mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easyrec/tzrec-devel:1.0-cu126
    • PyTorch: v2.9 CUDA: v12.6 FBGEMM: v1.4.0 TorchRec: v1.4.0 Python: v3.11
    • We drop support for the 470 GPU driver version. If you still want to use the 470 GPU driver version, you can set LD_LIBRARY_PATH=/usr/local/cuda-12.6/compat
  • For the CPU version:
    • mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easyrec/tzrec-devel:1.0-cpu
    • PyTorch: v2.9 FBGEMM: v1.4.0 TorchRec: v1.4.0 Python: v3.11

Bug Fixes and Other Changes

Full Changelog: v0.9.0...v1.0.0

v0.9.0

Choose a tag to compare

@tiankongdeguiji tiankongdeguiji released this 16 Sep 08:24
1c18866

Major Features and Improvements

Train/Eval/Export

  • Support get null value for int/float dtype features when use negative sampler #202
  • Support freeze embedding parameters #206
  • Add mixed_precision bf16/fp16 and gradient accumulation support #220
  • Add fp16 embedding dtype support #221
  • Add TrainPipelineBase to support model w/o sparse parameters #222
  • Add EmbeddingCollection quant support #265
  • Optimize sequence emb inference speed #266

Model

  • Add DlrmHSTU model #224 #227 #231 #232 #237 #250 #257
  • Add DCN_V1 model #235
  • Add DCN_V2 and xDeepFM model #242
  • Add WideAndDeep model and wide init_fn #212
  • Add sequence self_attention encoder #251
  • Add binary focal loss #208
  • Add xauc and grouped xauc #252
  • Add feature selection for DSSM_V2 #219
  • Add use_ln option for MLP module #223

Feature

  • Add const input for feature #210
  • Expr feature support value_dim #216
  • Support feature only used as fg dag intermediate result (stub_type=true) #218

Dataset

  • Sampler support odps schema #267

Upgrade

  • Upgrade pytorch to v2.8 and torchrec to v1.3.0 #241

Python

Note

For TorchEasyRec 0.9.x, you should use Docker image version 0.9.

  • For the GPU version (CUDA 12.6):
    • mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easyrec/tzrec-devel:0.9-cu126
    • PyTorch: v2.8 CUDA: v12.6 FBGEMM: v1.3.0 TorchRec: v1.3.0 Python: v3.11
    • We drop support for the 470 GPU driver version. If you still want to use the 470 GPU driver version, you can set LD_LIBRARY_PATH=/usr/local/cuda-12.6/compat
  • For the CPU version:
    • mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easyrec/tzrec-devel:0.9-cpu
    • PyTorch: v2.8 FBGEMM: v1.3.0 TorchRec: v1.3.0 Python: v3.11

Bug Fixes and Other Changes

Full Changelog: v0.8.0...v0.9.0

v0.8.0

Choose a tag to compare

@tiankongdeguiji tiankongdeguiji released this 13 Jun 13:05
b1824f7

Major Features and Improvements

Train/Eval/Export

  • Support eval and save checkpoint by epoch #116
  • Support export fp32/fp16/int8/int4/int2 ebc embedding quant model #137
  • Enhance export efficiency by restoring state dict directly instead of copying and gathering #177
  • Add faiss gpu support for evaluation #170
  • Enhance optimizer state loading for changed plans with plan checkpoint #185
  • Support tensorboard log for model parameters #181
  • Add restore ckpt check for continue train #180
  • Add allow_tf32 flag and global embedding param constraint #188

Model

  • Add MIND model #119 #123 #157 #172
  • Add RocketLaunching model #129
  • Add DLRM model #148
  • Add MaskNet #179 #187
  • Add dice activation and support bn for sequence mlp #107
  • Add regression and multi-classification metric #149
  • Optimize distributed GAUC memory use #127
  • Add SequenceEmbeddingGroup and support jagged forward #152
  • Support max sequence length setting for sequence encoder #184
  • Support hard negative sampler #195
  • Optimize HSTU training and sampling process and add triton ops (WIP) #93 #154

Feature

  • Support custom feature and custom sequence feature #144
  • Weighted id feature support map dtype #190
  • Dump parsed inputs support weighted id and multi-value sequence feature #191

Dataset

  • Support dataset shuffle #114
  • Optimize performance of ParquetDataset and Rebalance parquet files dynamically #125 #126
  • Add odps read session refresh to extend odps session expired time #132
  • Add more alibaba cloud credentials for odps dataset #115
  • Add odps_data_compression (ZSTD) config for OdpsDataset #146
  • Always lazy init odps writer #178

Upgrade

  • Upgrade pytorch to v2.7 and torchrec to v1.2.0 #197

Note

For TorchEasyRec 0.8.x, you should use Docker image version 0.8.

  • For the GPU version (CUDA 12.6):
    • mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easyrec/tzrec-devel:0.8-cu126
    • PyTorch: v2.7 CUDA: v12.6 FBGEMM: v1.2.0 TorchRec: v1.2.0 Python: v3.11
    • We drop support for the 470 GPU driver version. If you still want to use the 470 GPU driver version, you can set LD_LIBRARY_PATH=/usr/local/cuda-12.6/compat
  • For the CPU version:
    • mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easyrec/tzrec-devel:0.8-cpu
    • PyTorch: v2.7 FBGEMM: v1.2.0 TorchRec: v1.2.0 Python: v3.11

Bug Fixes and Other Changes

Read more

v0.7.0

Choose a tag to compare

@tiankongdeguiji tiankongdeguiji released this 10 Feb 07:54
a5dc775

Major Features and Improvements

Train/Eval/Export

Model

  • Optimize TDM gen tree speed #33
  • TDM Support string id #72
  • Rank and Match models support sample weight #50 #57 #63 #65
  • Add zero collision hash embedding #60
  • Add intervention methods for multi-target learning #49
  • Add Autodis and MLP embedding for raw features #73 #75
  • Add task space for multi-target learning loss #82
  • Add dual augmented two-tower match model #83
  • Add HSTU (WIP) #55

Feature

  • pyfg support CPU without avx512 #20
  • ExprFeature support l2_norm|dot|euclid_dist #35
  • Add fg bucketize only mode & refactor fg_encoded to fg_mode #62
  • Make default bucketize value configurable #94
  • Support multi-value sequence #96
  • Support vocab file #97

Dataset

  • Enhance stability for credential of OdpsDataset #45
  • Add complex type and credential support for sampler when use odps dataset #52
  • Support CsvDataset with null columns #56
  • Negative sampler support string id #70

Config

  • Support easyrec config convert to tzrec config #37 #39 #51 #90

Upgrade

  • Release official dlc image #26
  • Upgrade pytorch to v2.6 torchrec to v1.1.0 #99

Note

For TorchEasyRec 0.7.x, you should use Docker image version 0.7.

  • For the GPU version (CUDA 12.4):
    • mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easyrec/tzrec-devel:0.7-cu124
    • PyTorch: v2.6 CUDA: v12.4 FBGEMM: v1.1.0 TorchRec: v1.1.0 Python: v3.11
  • For the CPU version:
    • mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easyrec/tzrec-devel:0.7-cpu
    • PyTorch: v2.6 FBGEMM: v1.1.0 TorchRec: v1.1.0 Python: v3.11

Bug Fixes and Other Changes

New Contributors

Full Changelog: v0.6.0...v0.7.0

v0.6.0

Choose a tag to compare

@tiankongdeguiji tiankongdeguiji released this 30 Oct 03:10
0d34ca6

We are excited to announce the release of TorchEasyRec 0.6.0, the first public release for TorchEasyRec.

Major Features and Improvements

  • High-performance training, evaluation, and prediction with GPUs.
  • Supported a variety of input data types, including MaxCompute Table, OSS files, CSV files, Parquet files doc here.
  • Supported a variety of feature types, including IdFeature, RawFeature, ComboFeature, LookupFeature, MatchFeature, ExprFeature, OverlapFeature, TokenizeFeature, SequenceIdFeature, SequenceRawFeature, and SequenceFeature. The feature generation operations is also efficient and robust doc here.
  • Supported a variety of models, including DSSM, TDM, DeepFM, MultiTower, DIN, MMoE, DBMTL, PLE. It is also easy to implement customized models.
  • Supported a variety of loss, including binary_cross_entropy, softmax_cross_entropy, l2_loss, jrc_loss doc here.
  • Supported VariationalDropout feature selection.
  • Easy to deploy a TorchEasyRec model as a high-performance inference service using the TorchEasyRec Processor.

Bug Fixes and Other Changes

  • [bugfix] fix train_eval may hang when use OdpsDataset and set is_orderby_partition=true by @tiankongdeguiji in
  • [bugfix] fix offline predict input tile model with sequence by @tiankongdeguiji in #14

Note

For TorchEasyRec 0.6.x, you should use Docker image version 0.6.

  • For the GPU version (CUDA 12.1):
    • mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easyrec/tzrec-devel:0.6-cu121
  • For the CPU version:
    • mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easyrec/tzrec-devel:0.6-cpu

New Contributors

Full Changelog: https://github.com/alibaba/TorchEasyRec/commits/v0.6.0