{"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/the-unreasonable-effectiveness-of-easy","title":"The Unreasonable Effectiveness of Easy Training Data for Hard Tasks","arxiv_id":"2401.06751","date":"2024-01-12","proceeding":null,"authors":["Peter Hase","Mohit Bansal","Peter Clark","Sarah Wiegreffe"],"abstract":"How can we train models to perform well on hard test data when hard training data is by definition difficult to label correctly? This question has been termed the scalable oversight problem and has drawn increasing attention as language models have continually improved. In this paper, we present the surprising conclusion that current pretrained language models often generalize relatively well from easy to hard data, even performing as well as oracle models finetuned on hard data. We demonstrate this kind of easy-to-hard generalization using simple finetuning methods like in-context learning, linear classifier heads, and QLoRA for seven different measures of datapoint hardness, including six empirically diverse human hardness measures (like grade level) and one model-based measure (loss-based). Furthermore, we show that even if one cares most about model performance on hard data, it can be better to collect easy data rather than hard data for finetuning, since hard data is generally noisier and costlier to collect. Our experiments use open models up to 70b in size and four publicly available question-answering datasets with questions ranging in difficulty from 3rd grade science questions to college level STEM questions and general-knowledge trivia. We conclude that easy-to-hard generalization in LMs is surprisingly strong for the tasks studied. Our code is available at: https://github.com/allenai/easy-to-hard-generalization","url_abs":"https://arxiv.org/abs/2401.06751v2","url_pdf":"https://arxiv.org/pdf/2401.06751v2.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":"the-unreasonable-effectiveness-of-easy","repo_url":"https://github.com/allenai/easy-to-hard-generalization","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"general-knowledge","task_name":"General Knowledge"},{"task_slug":"in-context-learning","task_name":"In-Context Learning"},{"task_slug":"question-answering","task_name":"Question Answering"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2401.06751","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2401.06751"}},"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/allenai/easy-to-hard-generalization","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":12,"unverified":1},"by_repo_kind":{"official":{"samples":13,"ran":12,"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":0,"samples":[{"code_sha256_prefix":"e46136d7a352b173","entry":"compute_mc_loss","repo":"allenai/easy-to-hard-generalization","repo_kind":"official","path":"utils/LM_utils.py","file_url":"https://github.com/allenai/easy-to-hard-generalization/blob/HEAD/utils/LM_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e46136d7a352b173"}},{"code_sha256_prefix":"48c9a8969754d890","entry":"force_not_dimensionless","repo":"allenai/easy-to-hard-generalization","repo_kind":"official","path":"utils/metrics.py","file_url":"https://github.com/allenai/easy-to-hard-generalization/blob/HEAD/utils/metrics.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"48c9a8969754d890"}},{"code_sha256_prefix":"0a5e30383bb5d45e","entry":"gather_item_level_stats_df","repo":"allenai/easy-to-hard-generalization","repo_kind":"official","path":"utils/utils.py","file_url":"https://github.com/allenai/easy-to-hard-generalization/blob/HEAD/utils/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"0a5e30383bb5d45e"}},{"code_sha256_prefix":"c4d81b835f803a9a","entry":"get_all_possible_hardness_col_names","repo":"allenai/easy-to-hard-generalization","repo_kind":"official","path":"utils/utils.py","file_url":"https://github.com/allenai/easy-to-hard-generalization/blob/HEAD/utils/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c4d81b835f803a9a"}},{"code_sha256_prefix":"0fbb4515a3f97b76","entry":"get_base_command","repo":"allenai/easy-to-hard-generalization","repo_kind":"official","path":"run_jobs.py","file_url":"https://github.com/allenai/easy-to-hard-generalization/blob/HEAD/run_jobs.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"0fbb4515a3f97b76"}},{"code_sha256_prefix":"872f5fe645cf2260","entry":"get_config_from_args","repo":"allenai/easy-to-hard-generalization","repo_kind":"official","path":"run_jobs.py","file_url":"https://github.com/allenai/easy-to-hard-generalization/blob/HEAD/run_jobs.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"872f5fe645cf2260"}},{"code_sha256_prefix":"99af85a870a51904","entry":"get_hardness_col_names","repo":"allenai/easy-to-hard-generalization","repo_kind":"official","path":"utils/utils.py","file_url":"https://github.com/allenai/easy-to-hard-generalization/blob/HEAD/utils/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"99af85a870a51904"}},{"code_sha256_prefix":"0a2e48585058c30c","entry":"grid_bootstrap","repo":"allenai/easy-to-hard-generalization","repo_kind":"official","path":"utils/metrics.py","file_url":"https://github.com/allenai/easy-to-hard-generalization/blob/HEAD/utils/metrics.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"0a2e48585058c30c"}},{"code_sha256_prefix":"7ed61b42e40ce4dd","entry":"load_optimizer_and_scheduler","repo":"allenai/easy-to-hard-generalization","repo_kind":"official","path":"utils/modeling_utils.py","file_url":"https://github.com/allenai/easy-to-hard-generalization/blob/HEAD/utils/modeling_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7ed61b42e40ce4dd"}},{"code_sha256_prefix":"ecdceb0edcf86391","entry":"p_value","repo":"allenai/easy-to-hard-generalization","repo_kind":"official","path":"utils/metrics.py","file_url":"https://github.com/allenai/easy-to-hard-generalization/blob/HEAD/utils/metrics.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ecdceb0edcf86391"}},{"code_sha256_prefix":"7bd4422fc24bf4a5","entry":"renormalize_mc_pred_probs","repo":"allenai/easy-to-hard-generalization","repo_kind":"official","path":"utils/LM_utils.py","file_url":"https://github.com/allenai/easy-to-hard-generalization/blob/HEAD/utils/LM_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7bd4422fc24bf4a5"}},{"code_sha256_prefix":"fd7c4aa91d08bfa9","entry":"str_clean","repo":"allenai/easy-to-hard-generalization","repo_kind":"official","path":"utils/LM_utils.py","file_url":"https://github.com/allenai/easy-to-hard-generalization/blob/HEAD/utils/LM_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"fd7c4aa91d08bfa9"}},{"code_sha256_prefix":"d2f07061f4f822d1","entry":"compare_method_learning_curves","repo":"allenai/easy-to-hard-generalization","repo_kind":"official","path":"utils/plotting_utils.py","file_url":"https://github.com/allenai/easy-to-hard-generalization/blob/HEAD/utils/plotting_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d2f07061f4f822d1"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}