{"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/ipo-your-language-model-is-secretly-a","title":"IPO: Your Language Model is Secretly a Preference Classifier","arxiv_id":"2502.16182","date":"2025-02-22","proceeding":null,"authors":["Shivank Garg","Ayush Singh","Shweta Singh","Paras Chopra"],"abstract":"Reinforcement learning from human feedback (RLHF) has emerged as the primary method for aligning large language models (LLMs) with human preferences. While it enables LLMs to achieve human-level alignment, it often incurs significant computational and financial costs due to its reliance on training external reward models or human-labeled preferences. In this work, we propose \\textbf{Implicit Preference Optimization (IPO)}, an alternative approach that leverages generative LLMs as preference classifiers, thereby reducing the dependence on external human feedback or reward models to obtain preferences. We conduct a comprehensive evaluation on the preference classification ability of LLMs using RewardBench, assessing models across different sizes, architectures, and training levels to validate our hypothesis. Furthermore, we investigate the self-improvement capabilities of LLMs by generating multiple responses for a given instruction and employing the model itself as a preference classifier for Direct Preference Optimization (DPO)-based training. Our findings demonstrate that models trained through IPO achieve performance comparable to those utilizing state-of-the-art reward models for obtaining preferences.","url_abs":"https://arxiv.org/abs/2502.16182v1","url_pdf":"https://arxiv.org/pdf/2502.16182v1.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":"ipo-your-language-model-is-secretly-a","repo_url":"https://github.com/shivank21/Implicit_Preference_Optimization","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"language-modeling","task_name":"Language Modeling"},{"task_slug":"language-modelling","task_name":"Language Modelling"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2502.16182","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2502.16182"}},"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/shivank21/Implicit_Preference_Optimization","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":25},"by_repo_kind":{"official":{"samples":25,"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":"d875a4cee73a8ae3","entry":"calculate_accuracy","repo":"shivank21/Implicit_Preference_Optimization","repo_kind":"official","path":"Preference_Comparison/RM_Bench/reward_model.py","file_url":"https://github.com/shivank21/Implicit_Preference_Optimization/blob/HEAD/Preference_Comparison/RM_Bench/reward_model.py","link_basis":"harvester_set","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":"d875a4cee73a8ae3"}},{"code_sha256_prefix":"561b617d33eab7c1","entry":"calculate_accuracy","repo":"shivank21/Implicit_Preference_Optimization","repo_kind":"official","path":"Preference_Comparison/Reward_Bench/reward_model.py","file_url":"https://github.com/shivank21/Implicit_Preference_Optimization/blob/HEAD/Preference_Comparison/Reward_Bench/reward_model.py","link_basis":"harvester_set","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":"561b617d33eab7c1"}},{"code_sha256_prefix":"9ecad9de140393f0","entry":"extract_better_response","repo":"shivank21/Implicit_Preference_Optimization","repo_kind":"official","path":"Preference_Comparison/RM_Bench/binary_gpt.py","file_url":"https://github.com/shivank21/Implicit_Preference_Optimization/blob/HEAD/Preference_Comparison/RM_Bench/binary_gpt.py","link_basis":"harvester_set","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":"9ecad9de140393f0"}},{"code_sha256_prefix":"7204c024b35e7517","entry":"extract_score","repo":"shivank21/Implicit_Preference_Optimization","repo_kind":"official","path":"Preference_Comparison/RM_Bench/self_reward.py","file_url":"https://github.com/shivank21/Implicit_Preference_Optimization/blob/HEAD/Preference_Comparison/RM_Bench/self_reward.py","link_basis":"harvester_set","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":"7204c024b35e7517"}},{"code_sha256_prefix":"25d1aecfb6d7b2f5","entry":"generate_score","repo":"shivank21/Implicit_Preference_Optimization","repo_kind":"official","path":"Preference_Comparison/RM_Bench/self_reward_gpt.py","file_url":"https://github.com/shivank21/Implicit_Preference_Optimization/blob/HEAD/Preference_Comparison/RM_Bench/self_reward_gpt.py","link_basis":"harvester_set","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":"25d1aecfb6d7b2f5"}},{"code_sha256_prefix":"dc7744fced223d2a","entry":"generate_yes_no_probability","repo":"shivank21/Implicit_Preference_Optimization","repo_kind":"official","path":"Preference_Comparison/RM_Bench/ours.py","file_url":"https://github.com/shivank21/Implicit_Preference_Optimization/blob/HEAD/Preference_Comparison/RM_Bench/ours.py","link_basis":"harvester_set","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":"dc7744fced223d2a"}},{"code_sha256_prefix":"053a3fb2bb607df3","entry":"generate_yes_no_probability","repo":"shivank21/Implicit_Preference_Optimization","repo_kind":"official","path":"Preference_Comparison/RM_Bench/ours_gpt.py","file_url":"https://github.com/shivank21/Implicit_Preference_Optimization/blob/HEAD/Preference_Comparison/RM_Bench/ours_gpt.py","link_basis":"harvester_set","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":"053a3fb2bb607df3"}},{"code_sha256_prefix":"95b2ab26aea8dd62","entry":"generate_yes_no_probability","repo":"shivank21/Implicit_Preference_Optimization","repo_kind":"official","path":"Preference_Comparison/Reward_Bench/ours.py","file_url":"https://github.com/shivank21/Implicit_Preference_Optimization/blob/HEAD/Preference_Comparison/Reward_Bench/ours.py","link_basis":"harvester_set","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":"95b2ab26aea8dd62"}},{"code_sha256_prefix":"9845e7da046c8213","entry":"generate_yes_no_probability","repo":"shivank21/Implicit_Preference_Optimization","repo_kind":"official","path":"Preference_Comparison/Reward_Bench/ours_gpt.py","file_url":"https://github.com/shivank21/Implicit_Preference_Optimization/blob/HEAD/Preference_Comparison/Reward_Bench/ours_gpt.py","link_basis":"harvester_set","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":"9845e7da046c8213"}},{"code_sha256_prefix":"855ec284c57a0044","entry":"generate_yes_no_probability","repo":"shivank21/Implicit_Preference_Optimization","repo_kind":"official","path":"Preference_Comparison/Reward_Bench/ours_prompt_shuffle.py","file_url":"https://github.com/shivank21/Implicit_Preference_Optimization/blob/HEAD/Preference_Comparison/Reward_Bench/ours_prompt_shuffle.py","link_basis":"harvester_set","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":"855ec284c57a0044"}},{"code_sha256_prefix":"f2ad6c08380eeb10","entry":"generate_yes_no_probability","repo":"shivank21/Implicit_Preference_Optimization","repo_kind":"official","path":"Preference_Comparison/Reward_Bench/ours_same_prompt.py","file_url":"https://github.com/shivank21/Implicit_Preference_Optimization/blob/HEAD/Preference_Comparison/Reward_Bench/ours_same_prompt.py","link_basis":"harvester_set","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":"f2ad6c08380eeb10"}},{"code_sha256_prefix":"3827aff7483f70c2","entry":"get_comparative_prompt","repo":"shivank21/Implicit_Preference_Optimization","repo_kind":"official","path":"Preference_Comparison/RM_Bench/binary_gpt.py","file_url":"https://github.com/shivank21/Implicit_Preference_Optimization/blob/HEAD/Preference_Comparison/RM_Bench/binary_gpt.py","link_basis":"harvester_set","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":"3827aff7483f70c2"}},{"code_sha256_prefix":"2ad1767584ad93f2","entry":"get_comparative_prompt","repo":"shivank21/Implicit_Preference_Optimization","repo_kind":"official","path":"Preference_Comparison/Reward_Bench/binary_gpt.py","file_url":"https://github.com/shivank21/Implicit_Preference_Optimization/blob/HEAD/Preference_Comparison/Reward_Bench/binary_gpt.py","link_basis":"harvester_set","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":"2ad1767584ad93f2"}},{"code_sha256_prefix":"fb680509d54ec383","entry":"get_eval_prompt","repo":"shivank21/Implicit_Preference_Optimization","repo_kind":"official","path":"Preference_Comparison/RM_Bench/ours.py","file_url":"https://github.com/shivank21/Implicit_Preference_Optimization/blob/HEAD/Preference_Comparison/RM_Bench/ours.py","link_basis":"harvester_set","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":"fb680509d54ec383"}},{"code_sha256_prefix":"82a651b301705bf7","entry":"get_eval_prompt","repo":"shivank21/Implicit_Preference_Optimization","repo_kind":"official","path":"Preference_Comparison/RM_Bench/self_reward.py","file_url":"https://github.com/shivank21/Implicit_Preference_Optimization/blob/HEAD/Preference_Comparison/RM_Bench/self_reward.py","link_basis":"harvester_set","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":"82a651b301705bf7"}},{"code_sha256_prefix":"5872d962ae64a265","entry":"get_eval_prompt","repo":"shivank21/Implicit_Preference_Optimization","repo_kind":"official","path":"Preference_Comparison/Reward_Bench/ours.py","file_url":"https://github.com/shivank21/Implicit_Preference_Optimization/blob/HEAD/Preference_Comparison/Reward_Bench/ours.py","link_basis":"harvester_set","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":"5872d962ae64a265"}},{"code_sha256_prefix":"649ba55ab2123d60","entry":"get_eval_prompt","repo":"shivank21/Implicit_Preference_Optimization","repo_kind":"official","path":"Preference_Comparison/Reward_Bench/ours_gpt.py","file_url":"https://github.com/shivank21/Implicit_Preference_Optimization/blob/HEAD/Preference_Comparison/Reward_Bench/ours_gpt.py","link_basis":"harvester_set","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":"649ba55ab2123d60"}},{"code_sha256_prefix":"b0058549b2665f96","entry":"get_eval_prompt","repo":"shivank21/Implicit_Preference_Optimization","repo_kind":"official","path":"Preference_Comparison/Reward_Bench/ours_prompt_shuffle.py","file_url":"https://github.com/shivank21/Implicit_Preference_Optimization/blob/HEAD/Preference_Comparison/Reward_Bench/ours_prompt_shuffle.py","link_basis":"harvester_set","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":"b0058549b2665f96"}},{"code_sha256_prefix":"06f0f449fb2674d5","entry":"get_eval_prompt","repo":"shivank21/Implicit_Preference_Optimization","repo_kind":"official","path":"Preference_Comparison/Reward_Bench/ours_same_prompt.py","file_url":"https://github.com/shivank21/Implicit_Preference_Optimization/blob/HEAD/Preference_Comparison/Reward_Bench/ours_same_prompt.py","link_basis":"harvester_set","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":"06f0f449fb2674d5"}},{"code_sha256_prefix":"be3a2b51c3f2cfc0","entry":"get_reward","repo":"shivank21/Implicit_Preference_Optimization","repo_kind":"official","path":"Preference_Comparison/RM_Bench/reward_model.py","file_url":"https://github.com/shivank21/Implicit_Preference_Optimization/blob/HEAD/Preference_Comparison/RM_Bench/reward_model.py","link_basis":"harvester_set","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":"be3a2b51c3f2cfc0"}},{"code_sha256_prefix":"499246b2aadf2aa3","entry":"get_reward","repo":"shivank21/Implicit_Preference_Optimization","repo_kind":"official","path":"Preference_Comparison/Reward_Bench/reward_model.py","file_url":"https://github.com/shivank21/Implicit_Preference_Optimization/blob/HEAD/Preference_Comparison/Reward_Bench/reward_model.py","link_basis":"harvester_set","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":"499246b2aadf2aa3"}},{"code_sha256_prefix":"49ed59d60f1dd003","entry":"setup_gpt_client","repo":"shivank21/Implicit_Preference_Optimization","repo_kind":"official","path":"Preference_Comparison/RM_Bench/binary_gpt.py","file_url":"https://github.com/shivank21/Implicit_Preference_Optimization/blob/HEAD/Preference_Comparison/RM_Bench/binary_gpt.py","link_basis":"harvester_set","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":"49ed59d60f1dd003"}},{"code_sha256_prefix":"1432935085f1d85a","entry":"setup_gpt_client","repo":"shivank21/Implicit_Preference_Optimization","repo_kind":"official","path":"Preference_Comparison/Reward_Bench/binary_gpt.py","file_url":"https://github.com/shivank21/Implicit_Preference_Optimization/blob/HEAD/Preference_Comparison/Reward_Bench/binary_gpt.py","link_basis":"harvester_set","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":"1432935085f1d85a"}},{"code_sha256_prefix":"a1ec72396ee0f3c5","entry":"setup_model","repo":"shivank21/Implicit_Preference_Optimization","repo_kind":"official","path":"Preference_Comparison/RM_Bench/ours.py","file_url":"https://github.com/shivank21/Implicit_Preference_Optimization/blob/HEAD/Preference_Comparison/RM_Bench/ours.py","link_basis":"harvester_set","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":"a1ec72396ee0f3c5"}},{"code_sha256_prefix":"aff799719ba11c19","entry":"setup_model","repo":"shivank21/Implicit_Preference_Optimization","repo_kind":"official","path":"Preference_Comparison/Reward_Bench/ours.py","file_url":"https://github.com/shivank21/Implicit_Preference_Optimization/blob/HEAD/Preference_Comparison/Reward_Bench/ours.py","link_basis":"harvester_set","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":"aff799719ba11c19"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}