{"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/towards-logically-consistent-language-models","title":"Towards Logically Consistent Language Models via Probabilistic Reasoning","arxiv_id":"2404.12843","date":"2024-04-19","proceeding":null,"authors":["Diego Calanzone","Stefano Teso","Antonio Vergari"],"abstract":"Large language models (LLMs) are a promising venue for natural language understanding and generation tasks. However, current LLMs are far from reliable: they are prone to generate non-factual information and, more crucially, to contradict themselves when prompted to reason about beliefs of the world. These problems are currently addressed with large scale fine-tuning or by delegating consistent reasoning to external tools. In this work, we strive for a middle ground and introduce a training objective based on principled probabilistic reasoning that teaches a LLM to be consistent with external knowledge in the form of a set of facts and rules. Fine-tuning with our loss on a limited set of facts enables our LLMs to be more logically consistent than previous baselines and allows them to extrapolate to unseen but semantically similar factual knowledge more systematically.","url_abs":"https://arxiv.org/abs/2404.12843v1","url_pdf":"https://arxiv.org/pdf/2404.12843v1.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":[],"tasks":[{"task_slug":"natural-language-understanding","task_name":"Natural Language Understanding"}],"methods":[{"method_slug":"set","method_name":"SET"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2404.12843","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2404.12843"}},"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":"deterministic:regex_extraction","url":"https://github.com/eric-mitchell/concord","reach":{"status":"ok"}}],"summary":{"ran":13,"ran_draft_wrong":1,"unverified":2},"by_repo_kind":{"found_in_text":{"samples":16,"ran":14,"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":16,"samples":[{"code_sha256_prefix":"03667527e2bd9b0f","entry":"consistency","repo":"eric-mitchell/concord","repo_kind":"found_in_text","path":"cbqa/metrics.py","file_url":"https://github.com/eric-mitchell/concord/blob/HEAD/cbqa/metrics.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":"03667527e2bd9b0f"}},{"code_sha256_prefix":"801c26d7705c0d50","entry":"create_dataset_from_full_fact_file","repo":"eric-mitchell/concord","repo_kind":"found_in_text","path":"cbqa/preprocess.py","file_url":"https://github.com/eric-mitchell/concord/blob/HEAD/cbqa/preprocess.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":"801c26d7705c0d50"}},{"code_sha256_prefix":"7251a242edb3cb63","entry":"create_datum","repo":"eric-mitchell/concord","repo_kind":"found_in_text","path":"cbqa/preprocess.py","file_url":"https://github.com/eric-mitchell/concord/blob/HEAD/cbqa/preprocess.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":"7251a242edb3cb63"}},{"code_sha256_prefix":"64b8712ec11eb61b","entry":"dict_to","repo":"eric-mitchell/concord","repo_kind":"found_in_text","path":"qa_conversion/fine_tune_t5.py","file_url":"https://github.com/eric-mitchell/concord/blob/HEAD/qa_conversion/fine_tune_t5.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":"64b8712ec11eb61b"}},{"code_sha256_prefix":"d08dab8dd64a2ce2","entry":"filter_c_list","repo":"eric-mitchell/concord","repo_kind":"found_in_text","path":"nlic/nli.py","file_url":"https://github.com/eric-mitchell/concord/blob/HEAD/nlic/nli.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":"d08dab8dd64a2ce2"}},{"code_sha256_prefix":"79995f06afb27b47","entry":"get_idxs","repo":"eric-mitchell/concord","repo_kind":"found_in_text","path":"qa_conversion/fine_tune_t5.py","file_url":"https://github.com/eric-mitchell/concord/blob/HEAD/qa_conversion/fine_tune_t5.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":"79995f06afb27b47"}},{"code_sha256_prefix":"a34e716b1eca944c","entry":"in_f_macaw","repo":"eric-mitchell/concord","repo_kind":"found_in_text","path":"nlic/qa.py","file_url":"https://github.com/eric-mitchell/concord/blob/HEAD/nlic/qa.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":"a34e716b1eca944c"}},{"code_sha256_prefix":"ba17c58e4e8855f9","entry":"in_f_macaw_yn","repo":"eric-mitchell/concord","repo_kind":"found_in_text","path":"cbqa/qa_score_dataset.py","file_url":"https://github.com/eric-mitchell/concord/blob/HEAD/cbqa/qa_score_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":"ba17c58e4e8855f9"}},{"code_sha256_prefix":"1ae14e3114a53e8d","entry":"log_inv_prob","repo":"eric-mitchell/concord","repo_kind":"found_in_text","path":"nlic/solver.py","file_url":"https://github.com/eric-mitchell/concord/blob/HEAD/nlic/solver.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":"1ae14e3114a53e8d"}},{"code_sha256_prefix":"99546c746e19128a","entry":"log_odds","repo":"eric-mitchell/concord","repo_kind":"found_in_text","path":"nlic/solver.py","file_url":"https://github.com/eric-mitchell/concord/blob/HEAD/nlic/solver.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":"99546c746e19128a"}},{"code_sha256_prefix":"a559d8be7541e989","entry":"mask_hf_labels","repo":"eric-mitchell/concord","repo_kind":"found_in_text","path":"nlic/qa.py","file_url":"https://github.com/eric-mitchell/concord/blob/HEAD/nlic/qa.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a559d8be7541e989"}},{"code_sha256_prefix":"d56ac9ef2b304589","entry":"noun_fluenterer","repo":"eric-mitchell/concord","repo_kind":"found_in_text","path":"cbqa/preprocess.py","file_url":"https://github.com/eric-mitchell/concord/blob/HEAD/cbqa/preprocess.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":"d56ac9ef2b304589"}},{"code_sha256_prefix":"e503cfb1653fd290","entry":"out_f_macaw","repo":"eric-mitchell/concord","repo_kind":"found_in_text","path":"nlic/qa.py","file_url":"https://github.com/eric-mitchell/concord/blob/HEAD/nlic/qa.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":"e503cfb1653fd290"}},{"code_sha256_prefix":"dd78da5d08b371c0","entry":"validate_probability","repo":"eric-mitchell/concord","repo_kind":"found_in_text","path":"nlic/solver.py","file_url":"https://github.com/eric-mitchell/concord/blob/HEAD/nlic/solver.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":"dd78da5d08b371c0"}},{"code_sha256_prefix":"69b14331f9a42ad1","entry":"read_tsv","repo":"eric-mitchell/concord","repo_kind":"found_in_text","path":"qa_conversion/fine_tune_t5.py","file_url":"https://github.com/eric-mitchell/concord/blob/HEAD/qa_conversion/fine_tune_t5.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":"69b14331f9a42ad1"}},{"code_sha256_prefix":"0e866c56f34df832","entry":"tau_single_subject","repo":"eric-mitchell/concord","repo_kind":"found_in_text","path":"cbqa/metrics.py","file_url":"https://github.com/eric-mitchell/concord/blob/HEAD/cbqa/metrics.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":"0e866c56f34df832"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}