Diversify and Conquer: Diversity-Centric Data Selection with Iterative Refinement
<|reference_start|>Diversify and Conquer: Diversity-Centric Data Selection with Iterative Refinement: Finetuning large language models on instruction data is crucial for enhancing pre-trained knowledge and improving instruction-following capabilities. As instruction datasets proliferate, selecting optimal data for effective training becomes increasingly important. This work addresses the question: How can we determine the optimal subset of data for effective training? While existing research often emphasizes local criteria like instance quality for subset selection, we argue that a global approach focused on data diversity is more critical. Our method employs k-means clustering to ensure the selected subset effectively represents the full dataset. We propose an iterative refinement method inspired by active learning techniques to resample instances from clusters, reassessing each cluster's importance and sampling weight in every training iteration. This approach reduces the effect of outliers and automatically filters out clusters containing low-quality data. Through extensive evaluation across natural language reasoning, general world knowledge, code and math reasoning tasks, and by fine-tuning models from various families, we observe consistent improvements, achieving a 7% increase over random selection and a 3.8% improvement over state-of-the-art sampling methods. Our work highlights the significance of diversity-first sampling when finetuning LLMs to enhance performance across a broad array of evaluation tasks. Our code is available at https://github.com/for-ai/iterative-data-selection.<|reference_end|>
@article{yu2024diversify,
    title={Diversify and Conquer: Diversity-Centric Data Selection with Iterative
  Refinement},
    author={Simon Yu and Liangyu Chen and Sara Ahmadian and Marzieh Fadaee},
    journal={arXiv preprint arXiv:2409.11378},
    year={2024},
    archivePrefix={arXiv},
    eprint={2409.11378},
    primaryClass={cs.CL cs.AI}
}