Repository navigation
v1.3.0
Major Features and Improvements
Train/Eval/Predict/Export
- AOTInductor
- Cache feature-permute order during export to avoid per-forward H2D sync in #527
- Support
keep_checkpoint_maxwith async checkpoint pruning in #528 - [WIP] Support model delta tracker to track incremental embedding rows in #546
Model
- HSTUMatch:
- DlrmHSTU / UltraHSTU
- Support
stu.scaling_seqlenand drop autotune assert strip in #500 - Thread
contextual_seq_lenfrom 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
ptxas12.9.86 to fix the HSTU WGMMA shared-memory OOB on sm_90/H20 in #551
- Support
- SID:
Embedding
- Add
FeatureGroupConfig.embedding_name_suffixto 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_converttool 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_timesto 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
- [bugfix] update dynemb doc by @eric-gecheng in #496
- [bugfix] add cc<7.0 dist.barrier() at TrainPipelineSparseDist.progress() entry by @tiankongdeguiji in #497
- [ci] H20 unit test lane: workflow, Hopper-specific fixes, --scope filter by @tiankongdeguiji in #494
- [bugfix] replace deprecated torch._check_is_size with torch._check by @tiankongdeguiji in #503
- [bugfix] aoti: backport pytorch/pytorch#178147 int_array dedup key by @tiankongdeguiji in #512
- [fix] sampler: emit scalar negs for sequence-positive item-side fields by @tiankongdeguiji in #514
- [bugfix] code_review.yml: replace PR's .claude/ instead of nesting (GHSA-f9x3-9rgg-92p7) by @tiankongdeguiji in #515
- [chore] bump dynamicemb to 0.1.0+20260519.e0c1fbb by @tiankongdeguiji in #516
- fix(pepnet): fix domain output overwrite in _select_domain_task_output by @zhpjunfei in #524
- [fix] H20 CI: cutlass WGMMA bwd + unified-AOT int_array races; add test-skip infra by @tiankongdeguiji in #531
- [ci][feat] PPU: add unittest CI lane + framework adaptations + DLC/ODPS tutorial by @tiankongdeguiji in #529
- [chore] standardize OSS host on oss-accelerate by @tiankongdeguiji in #533
- [bugfix] RTP export: keep dense-embedding modules as FX leaves so AutoDis/MLP params restore by @tiankongdeguiji in #534
- [doc] PAI deployment docs: ENABLE_AOT export + serving processor params by @tiankongdeguiji in #536
- [bugfix] ODPS reader: pin pyodps==0.12.5.1 (retry connection resets) + log session/table context on errors by @tiankongdeguiji in #537
- [bugfix] fix flaky TRT test: align engine TF32 with baseline, run strict FP32 by @tiankongdeguiji in #535
- [bugfix] DlrmHSTU predict: keep candidate split key in original order for descending timestamps by @tiankongdeguiji in #540
- [doc] fix grouped sequence_fields default rule; drop epoch/wall-clock note from train.md by @tiankongdeguiji in #542
- [ci] code review: disable Remote Control in headless Claude run by @tiankongdeguiji in #548
- [bugfix] fix flaky TRT predict test by making the mock model confident by @tiankongdeguiji in #549
- [ci] resolve externals symlink for DSW authZ mount allowlist by @tiankongdeguiji in #550
- [ci] cut GPU + H20 unit-test CI toward 1 hour (cache persistence, derandomize, GPU scoping) by @tiankongdeguiji in #553
- [bugfix] fail fast when graphlearn sampler server dies by @tiankongdeguiji in #554
New Contributors
- @zhpjunfei made their first contribution in #524
- @WhiteSwan1 made their first contribution in #538
Full Changelog: v1.2.0...v1.3.0