{"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/active-instruction-tuning-improving-cross","title":"Active Instruction Tuning: Improving Cross-Task Generalization by Training on Prompt Sensitive Tasks","arxiv_id":"2311.00288","date":"2023-11-01","proceeding":null,"authors":["Po-Nien Kung","Fan Yin","Di wu","Kai-Wei Chang","Nanyun Peng"],"abstract":"Instruction tuning (IT) achieves impressive zero-shot generalization results by training large language models (LLMs) on a massive amount of diverse tasks with instructions. However, how to select new tasks to improve the performance and generalizability of IT models remains an open question. Training on all existing tasks is impractical due to prohibiting computation requirements, and randomly selecting tasks can lead to suboptimal performance. In this work, we propose active instruction tuning based on prompt uncertainty, a novel framework to identify informative tasks, and then actively tune the models on the selected tasks. We represent the informativeness of new tasks with the disagreement of the current model outputs over perturbed prompts. Our experiments on NIV2 and Self-Instruct datasets demonstrate that our method consistently outperforms other baseline strategies for task selection, achieving better out-of-distribution generalization with fewer training tasks. Additionally, we introduce a task map that categorizes and diagnoses tasks based on prompt uncertainty and prediction probability. We discover that training on ambiguous (prompt-uncertain) tasks improves generalization while training on difficult (prompt-certain and low-probability) tasks offers no benefit, underscoring the importance of task selection for instruction tuning.","url_abs":"https://arxiv.org/abs/2311.00288v1","url_pdf":"https://arxiv.org/pdf/2311.00288v1.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":"active-instruction-tuning-improving-cross","repo_url":"https://github.com/pluslabnlp/active-it","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"informativeness","task_name":"Informativeness"},{"task_slug":"out-of-distribution-generalization","task_name":"Out-of-Distribution Generalization"},{"task_slug":"zero-shot-generalization","task_name":"Zero-shot Generalization"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2311.00288","atlas_url":"https://app.syntology.ai/?focus=2311.00288","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2311.00288"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/pluslabnlp/active-it","reach":{"status":"ok"}}],"summary":{"ran":11,"unverified":2},"by_repo_kind":{"official":{"samples":13,"ran":11,"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":13,"samples":[{"code_sha256_prefix":"e168ce39d04b76f1","entry":"exact_match_score","repo":"pluslabnlp/active-it","repo_kind":"official","path":"ActiveIT/src/compute_metrics.py","file_url":"https://github.com/pluslabnlp/active-it/blob/HEAD/ActiveIT/src/compute_metrics.py","link_basis":"harvester_set","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":"e168ce39d04b76f1"}},{"code_sha256_prefix":"92f078bd17e5c0c2","entry":"get_id_to_label_dict","repo":"pluslabnlp/active-it","repo_kind":"official","path":"ActiveIT/src/ni_dataset.py","file_url":"https://github.com/pluslabnlp/active-it/blob/HEAD/ActiveIT/src/ni_dataset.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":"92f078bd17e5c0c2"}},{"code_sha256_prefix":"fb39453511d8515b","entry":"get_row_column","repo":"pluslabnlp/active-it","repo_kind":"official","path":"ActiveIT/utils.py","file_url":"https://github.com/pluslabnlp/active-it/blob/HEAD/ActiveIT/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":"fb39453511d8515b"}},{"code_sha256_prefix":"a1c9c2c64ca67704","entry":"get_uncertainty_mean_var","repo":"pluslabnlp/active-it","repo_kind":"official","path":"ActiveIT/taskmap.py","file_url":"https://github.com/pluslabnlp/active-it/blob/HEAD/ActiveIT/taskmap.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":"a1c9c2c64ca67704"}},{"code_sha256_prefix":"e893d4c0d181ae60","entry":"get_uncertainty_mean_var_bald","repo":"pluslabnlp/active-it","repo_kind":"official","path":"ActiveIT/taskmap.py","file_url":"https://github.com/pluslabnlp/active-it/blob/HEAD/ActiveIT/taskmap.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":"e893d4c0d181ae60"}},{"code_sha256_prefix":"ec2c295ce69f340a","entry":"is_cls","repo":"pluslabnlp/active-it","repo_kind":"official","path":"ActiveIT/utils.py","file_url":"https://github.com/pluslabnlp/active-it/blob/HEAD/ActiveIT/utils.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":"ec2c295ce69f340a"}},{"code_sha256_prefix":"52a9f448d8cbd82a","entry":"normalize_answer","repo":"pluslabnlp/active-it","repo_kind":"official","path":"ActiveIT/src/compute_metrics.py","file_url":"https://github.com/pluslabnlp/active-it/blob/HEAD/ActiveIT/src/compute_metrics.py","link_basis":"harvester_set","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":"52a9f448d8cbd82a"}},{"code_sha256_prefix":"5323425f1ca6d514","entry":"parse_PI_uncertainty","repo":"pluslabnlp/active-it","repo_kind":"official","path":"ActiveIT/my_scripts/TLAL/TLAL_utils.py","file_url":"https://github.com/pluslabnlp/active-it/blob/HEAD/ActiveIT/my_scripts/TLAL/TLAL_utils.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":"5323425f1ca6d514"}},{"code_sha256_prefix":"9198407e11ebfe48","entry":"plot_line_graph_var","repo":"pluslabnlp/active-it","repo_kind":"official","path":"ActiveIT/utils.py","file_url":"https://github.com/pluslabnlp/active-it/blob/HEAD/ActiveIT/utils.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":"9198407e11ebfe48"}},{"code_sha256_prefix":"031234703877c2b7","entry":"random_drop_word","repo":"pluslabnlp/active-it","repo_kind":"official","path":"ActiveIT/src/ni_dataset.py","file_url":"https://github.com/pluslabnlp/active-it/blob/HEAD/ActiveIT/src/ni_dataset.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":"031234703877c2b7"}},{"code_sha256_prefix":"99dc5cfaa39d6239","entry":"split_cls_gen","repo":"pluslabnlp/active-it","repo_kind":"official","path":"ActiveIT/my_scripts/TLAL/TLAL_utils.py","file_url":"https://github.com/pluslabnlp/active-it/blob/HEAD/ActiveIT/my_scripts/TLAL/TLAL_utils.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":"99dc5cfaa39d6239"}},{"code_sha256_prefix":"b4f50dd0af01fdd5","entry":"get_selected_tasks","repo":"pluslabnlp/active-it","repo_kind":"official","path":"ActiveIT/taskmap.py","file_url":"https://github.com/pluslabnlp/active-it/blob/HEAD/ActiveIT/taskmap.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":"b4f50dd0af01fdd5"}},{"code_sha256_prefix":"44fc237ca08b7b18","entry":"load_file","repo":"pluslabnlp/active-it","repo_kind":"official","path":"ActiveIT/my_scripts/write_cls_split_into_tasks.py","file_url":"https://github.com/pluslabnlp/active-it/blob/HEAD/ActiveIT/my_scripts/write_cls_split_into_tasks.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":"44fc237ca08b7b18"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}