{"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/calibrate-before-use-improving-few-shot","title":"Calibrate Before Use: Improving Few-Shot Performance of Language Models","arxiv_id":"2102.09690","date":"2021-02-19","proceeding":null,"authors":["Tony Z. Zhao","Eric Wallace","Shi Feng","Dan Klein","Sameer Singh"],"abstract":"GPT-3 can perform numerous tasks when provided a natural language prompt that contains a few training examples. We show that this type of few-shot learning can be unstable: the choice of prompt format, training examples, and even the order of the training examples can cause accuracy to vary from near chance to near state-of-the-art. We demonstrate that this instability arises from the bias of language models towards predicting certain answers, e.g., those that are placed near the end of the prompt or are common in the pre-training data. To mitigate this, we first estimate the model's bias towards each answer by asking for its prediction when given the training prompt and a content-free test input such as \"N/A\". We then fit calibration parameters that cause the prediction for this input to be uniform across answers. On a diverse set of tasks, this contextual calibration procedure substantially improves GPT-3 and GPT-2's average accuracy (up to 30.0% absolute) and reduces variance across different choices of the prompt.","url_abs":"https://arxiv.org/abs/2102.09690v2","url_pdf":"https://arxiv.org/pdf/2102.09690v2.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":"calibrate-before-use-improving-few-shot","repo_url":"https://github.com/tonyzhaozh/few-shot-learning","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"calibrate-before-use-improving-few-shot","repo_url":"https://github.com/chicagohai/active-example-selection","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"calibrate-before-use-improving-few-shot","repo_url":"https://github.com/crazydigger/Callibration-of-GPT","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"unanswered"}},{"paper_slug":"calibrate-before-use-improving-few-shot","repo_url":"https://github.com/fywalter/label-bias","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"calibrate-before-use-improving-few-shot","repo_url":"https://github.com/soheeyang/unified-prompt-selection","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"few-shot-learning","task_name":"Few-Shot Learning"}],"methods":[{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"attention-dropout","method_name":"Attention Dropout"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"cosine-annealing","method_name":"Cosine Annealing"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"gpt-3","method_name":"GPT-3"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"linear-warmup-with-cosine-annealing","method_name":"Linear Warmup With Cosine Annealing"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"weight-decay","method_name":"Weight Decay"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2102.09690","atlas_url":"https://app.syntology.ai/?focus=2102.09690","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2102.09690"}},"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":"deterministic:regex_extraction","url":"https://github.com/tonyzhaozh/few-shot-learning","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/fywalter/label-bias","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/crazydigger/Callibration-of-GPT","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/chicagohai/active-example-selection","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/soheeyang/unified-prompt-selection","reach":null}],"summary":{"unverified":4},"by_repo_kind":{"official":{"samples":4,"ran":0,"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":"e1d89d7579eaaeec","entry":"em_accuracy_helper","repo":"tonyzhaozh/few-shot-learning","repo_kind":"official","path":"run_extraction.py","file_url":"https://github.com/tonyzhaozh/few-shot-learning/blob/HEAD/run_extraction.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":"e1d89d7579eaaeec"}},{"code_sha256_prefix":"7753000f9482cac5","entry":"eval_accuracy","repo":"tonyzhaozh/few-shot-learning","repo_kind":"official","path":"run_classification.py","file_url":"https://github.com/tonyzhaozh/few-shot-learning/blob/HEAD/run_classification.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":"7753000f9482cac5"}},{"code_sha256_prefix":"77347b697708c203","entry":"get_label_probs","repo":"tonyzhaozh/few-shot-learning","repo_kind":"official","path":"run_classification.py","file_url":"https://github.com/tonyzhaozh/few-shot-learning/blob/HEAD/run_classification.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":"77347b697708c203"}},{"code_sha256_prefix":"d09226e56c2085ea","entry":"get_p_content_free","repo":"tonyzhaozh/few-shot-learning","repo_kind":"official","path":"run_classification.py","file_url":"https://github.com/tonyzhaozh/few-shot-learning/blob/HEAD/run_classification.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":"d09226e56c2085ea"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}