Skip to content

feat(multimodal): add COINCIDE selector and improve ICONS training - #65

Merged
Walnutes merged 1 commit into
OpenDCAI:mainfrom
tongruiliu:pr/dataflex-clean
Sep 10, 2026
Merged

Walnutes merged 1 commit into
OpenDCAI:mainfrom
tongruiliu:pr/dataflex-clean

Conversation

@tongruiliu

Copy link
Copy Markdown
Contributor

概述

新增 COINCIDE 在线动态数据选择器,通过概念与技能特征聚类、基于迁移性与密度的采样预算分配,以及簇内贪心 MMD 采样,为多模态指令微调选择训练子集。COINCIDE 论文(arXiv:2406.10995)

同时,调整 ICONS 在 DeepSpeed ZeRO-3 下的梯度采集、设备放置与分布式同步逻辑,并补充 LoRA、全参数微调及 SFT 示例配置。

主要改动

文件 改动
src/dataflex/train/selector/coincide_selector.py 新增 COINCIDE 选择器,支持特征提取、聚类、采样预算分配、MMD 采样及结果缓存
src/dataflex/train/selector/icons_selector.py 调整 ZeRO-3 局部梯度与优化器状态处理、投影梯度聚合、输入设备放置及缓存检查同步
src/dataflex/train/selector/__init__.py 导入 COINCIDE 选择器以完成注册
src/dataflex/configs/components.yaml 新增 coincide 组件及参数配置
examples/train_lora/selectors/coincide.yaml 新增 COINCIDE LoRA 微调示例
examples/train_lora/selectors/icons.yaml 更新 ICONS LoRA 微调配置
examples/train_full/selectors/coincide.yaml 新增 COINCIDE 全参数微调示例
examples/train_full/selectors/icons.yaml 新增 ICONS 全参数微调示例
examples/train_full/sft/multimodal_fullsft.yaml 新增多模态全参数 SFT 示例

使用方式

COINCIDE LoRA 微调

FORCE_TORCHRUN=1 DISABLE_VERSION_CHECK=1 \
  dataflex-cli train examples/train_lora/selectors/coincide.yaml

COINCIDE 全参数微调

FORCE_TORCHRUN=1 DISABLE_VERSION_CHECK=1 \
  dataflex-cli train examples/train_full/selectors/coincide.yaml

ICONS 全参数微调

FORCE_TORCHRUN=1 DISABLE_VERSION_CHECK=1 \
  dataflex-cli train examples/train_full/selectors/icons.yaml

Add the COINCIDE selector, component registration, and selection configs.
Update ICONS selection and DeepSpeed batch device handling.
Add full fine-tuning configs.
@tongruiliu
tongruiliu requested a review from Walnutes September 10, 2026 06:33
@tongruiliu tongruiliu self-assigned this Sep 10, 2026
@Walnutes
Walnutes merged commit 4eafac5 into OpenDCAI:main Sep 10, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants