Skip to content

DataFlex v1.1.0

Latest

Choose a tag to compare

@Walnutes Walnutes released this 28 Sep 06:51
· 15 commits to main since this release

DataFlex v1.1.0 Release Notes

🎉 Our paper has been accepted to the NeurIPS 2026 Evaluation & Dataset Track!

This release extends DataFlex to multimodal data selection, adds two reweighting algorithms and a cluster-accelerated LESS variant, moves to transformers v5, and ships the first preview of the v2 scheduling stack.

⚠️ Breaking Changes

  • Python 3.10 is no longer supported (requires-python >= 3.11); it cannot resolve LlamaFactory 0.9.4+ (d5fb774).
  • DeepSpeed is no longer a required dependency (a611a15). Configs under examples/deepspeed now need the optional extra pip install "dataflex[deepspeed]", which is capped below 0.17 because 0.17+ fails to import on the pinned torch.

✨ New Algorithms

Component Method Reference Implementation
Selector ICONS Influence Consensus data selection for vision-language instruction tuning (arXiv:2501.00654) icons · train/selector/icons_selector.py (#64)
Selector COINCIDE Concept-skill transferability-based coreset selection for visual instruction tuning, EMNLP 2024 (arXiv:2406.10995) coincide · train/selector/coincide_selector.py (#65)
Selector Cluster-LESS Cluster-accelerated variant of LESS (arXiv:2402.04333) cluster_less · train/selector/cluster_less_selector.py (#55)
Weighter ADAPT Rethinking Data Curation in LLM Training: Online Reweighting Offers Better Generalization, ICLR 2026 adapt · train/weighter/adapt_weighter.py (#54)
Weighter Joint-Update-Aware In-house batch-aware method; no external paper joint_update_aware · train/weighter/joint_update_aware_weighter.py (#58, #59)

ICONS scores each training sample against K task validation sets by gradient influence, then aggregates the K per-task rankings by majority voting, so a sample is kept only when several tasks agree it helps.

COINCIDE is unsupervised: a small reference LVLM's internal activations group the data into concept-skill clusters, each cluster gets a sampling budget proportional to its transferability and inversely proportional to its density, and samples are drawn within a cluster by greedily minimising MMD² to the cluster distribution.

Cluster-LESS removes the per-example gradient cost of LESS: it clusters the training set on gradient-free embedding features, averages the projected gradients of a few representatives per cluster, and scores the whole cluster against the validation gradients.

ADAPT derives an absolute per-sample weight from the representation similarity between the sample and an anchor (validation) set, passed through a temperature-scaled sigmoid.

Joint-Update-Aware treats intra-batch redundancy as a proxy for joint update effects, maximising sᵀw − (β/2)·wᵀSw + τ·H(w) over the simplex, where S is the cosine Gram matrix of L2-normalised embeddings.

🧪 v2 Preview

The two modules below are the first components of the upcoming v2 scheduling stack, shipped early so that interested users can evaluate them and give feedback. Their configuration schema and component interfaces are still being finalised and may change in a later release without a deprecation cycle, so they are not recommended for production runs yet. Existing v1 trainers and algorithms are unaffected.

  • Reorder module — static and dynamic reordering of the training stream (#60, configs in #61).
  • Composable scheduling (lego) — compose selection, mixing, and reweighting into a single pipeline (d10cfa7).

🔧 Compatibility

  • Support for transformers v5 (fc1281a); 4.55 through 5.6 all work, and Qwen3.5 / Gemma 4 need 5.5+.
  • Support for LlamaFactory 0.9.4–0.9.6, fixing a bogus train_dataset on 0.9.5+ (7643f53).
  • transformers 5.3+ is recommended for train_from_scratch under DeepSpeed ZeRO-3.

🚀 Improvements & Fixes

  • Per-sample loss utility and score-sharing hooks, so selectors can reuse each other's scores instead of recomputing them (7404c73).
  • num_train_epochs now works alongside dynamic-step training (#50).
  • Each domain is tokenized only once, and tokenized_path reuses the result (5a79518).
  • Fixed reorder pool invalidation (3a39640).
  • Fixed seed_worker under transformers v5 and dropped the undefined patch_train_from_scratch_pad call (8f784a7).
  • Demo datasets realigned with upstream LlamaFactory (21b6121).

📦 Installation

pip install --index-url https://download.pytorch.org/whl/cu124 \
    torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0
pip install dataflex==1.1.0
# DeepSpeed configs:
pip install "dataflex[deepspeed]"
# LESS / Cluster-LESS selectors (need TRAK):
pip install "dataflex[less]"

Full changelog: v1.0.0...v1.1.0