{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/instruct-skillmix-a-powerful-pipeline-for-llm","title":"Instruct-SkillMix: A Powerful Pipeline for LLM Instruction Tuning","arxiv_id":"2408.14774","date":"2024-08-27","proceeding":null,"authors":["Simran Kaur","Simon Park","Anirudh Goyal","Sanjeev Arora"],"abstract":"We introduce Instruct-SkillMix, an automated approach for creating diverse, high quality SFT data. The Instruct-SkillMix pipeline involves two stages, each leveraging an existing powerful LLM: (1) Skill extraction: uses the LLM to extract core \"skills\" for instruction-following, either from existing datasets, or by directly prompting the model; (2) Data generation: uses the powerful LLM to generate (instruction, response) data that exhibit a randomly chosen pair of these skills. Here, the use of random skill combinations promotes diversity and difficulty. Vanilla SFT (i.e., no PPO, DPO, or RL methods) on data generated from Instruct-SkillMix leads to strong gains on instruction following benchmarks such as AlpacaEval 2.0, MT-Bench, and WildBench. With just $4$K examples, LLaMA-3-8B-Base achieves 42.76% length-controlled win rate on AlpacaEval 2.0. To our knowledge, this achieves state-of-the-art performance among all models that have only undergone SFT (no RL methods) and competes with proprietary models such as Claude 3 Opus and LLaMA-3.1-405B-Instruct. Ablation studies also suggest plausible reasons for why creating open instruction-tuning datasets via naive crowd-sourcing has proved difficult. Introducing low quality answers (\"shirkers\") in $20\\%$ of Instruct-SkillMix examples causes performance to plummet, sometimes catastrophically. The Instruct-SkillMix pipeline is flexible and is adaptable to other settings.","url_abs":"https://arxiv.org/abs/2408.14774v3","url_pdf":"https://arxiv.org/pdf/2408.14774v3.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"instruct-skillmix-a-powerful-pipeline-for-llm","repo_url":"https://github.com/princeton-pli/Instruct-SkillMix","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"instruction-following","task_name":"Instruction Following"}],"methods":[{"method_slug":"dpo","method_name":"DPO"},{"method_slug":"entropy-regularization","method_name":"Entropy Regularization"},{"method_slug":"ppo","method_name":"PPO"},{"method_slug":"sft","method_name":"SFT"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2408.14774","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2408.14774"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/princeton-pli/Instruct-SkillMix","reach":{"status":"ok"}}],"summary":{"ran":6,"ran_draft_wrong":1,"unverified":1},"by_repo_kind":{"official":{"samples":8,"ran":7,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":8,"samples":[{"code_sha256_prefix":"5997e26073b93ac2","entry":"clear_output","repo":"princeton-pli/Instruct-SkillMix","repo_kind":"official","path":"WildBench/src/unified_utils.py","file_url":"https://github.com/princeton-pli/Instruct-SkillMix/blob/HEAD/WildBench/src/unified_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5997e26073b93ac2"}},{"code_sha256_prefix":"2af9961564288355","entry":"convert_number_format","repo":"princeton-pli/Instruct-SkillMix","repo_kind":"official","path":"src/convert_weights_hf.py","file_url":"https://github.com/princeton-pli/Instruct-SkillMix/blob/HEAD/src/convert_weights_hf.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2af9961564288355"}},{"code_sha256_prefix":"24928c85e8add8b2","entry":"extract_relevant_info_claude","repo":"princeton-pli/Instruct-SkillMix","repo_kind":"official","path":"src/data_generation/1_generate_data.py","file_url":"https://github.com/princeton-pli/Instruct-SkillMix/blob/HEAD/src/data_generation/1_generate_data.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"24928c85e8add8b2"}},{"code_sha256_prefix":"4bc5117fd932f06f","entry":"extract_relevant_info_gpt","repo":"princeton-pli/Instruct-SkillMix","repo_kind":"official","path":"src/data_generation/1_generate_data.py","file_url":"https://github.com/princeton-pli/Instruct-SkillMix/blob/HEAD/src/data_generation/1_generate_data.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4bc5117fd932f06f"}},{"code_sha256_prefix":"b8da2903e93e99b5","entry":"get_query_and_def","repo":"princeton-pli/Instruct-SkillMix","repo_kind":"official","path":"src/data_generation/1_generate_data.py","file_url":"https://github.com/princeton-pli/Instruct-SkillMix/blob/HEAD/src/data_generation/1_generate_data.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b8da2903e93e99b5"}},{"code_sha256_prefix":"d07d04439cd1d44f","entry":"jload","repo":"princeton-pli/Instruct-SkillMix","repo_kind":"official","path":"MAmmoTH/utils.py","file_url":"https://github.com/princeton-pli/Instruct-SkillMix/blob/HEAD/MAmmoTH/utils.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d07d04439cd1d44f"}},{"code_sha256_prefix":"8526e7d6eb6a6bd3","entry":"sanitize_args","repo":"princeton-pli/Instruct-SkillMix","repo_kind":"official","path":"WildBench/src/unified_infer.py","file_url":"https://github.com/princeton-pli/Instruct-SkillMix/blob/HEAD/WildBench/src/unified_infer.py","link_basis":"plan_row","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8526e7d6eb6a6bd3"}},{"code_sha256_prefix":"5cb43a8f85ec84a6","entry":"get_conv_template","repo":"princeton-pli/Instruct-SkillMix","repo_kind":"official","path":"WildBench/src/fastchat_conversation.py","file_url":"https://github.com/princeton-pli/Instruct-SkillMix/blob/HEAD/WildBench/src/fastchat_conversation.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5cb43a8f85ec84a6"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}