Papers › Learn to Explain: Multimodal Reasoning via Thought Chains for Science Question Answering

Learn to Explain: Multimodal Reasoning via Thought Chains for Science Question Answering

20 Sep 2022arXiv:2209.09513archive 2025-07-28

Pan Lu, Swaroop Mishra, Tony Xia, Liang Qiu, Kai-Wei Chang, Song-Chun Zhu, Oyvind Tafjord, Peter Clark, Ashwin Kalyan

When answering a question, humans utilize the information available across different modalities to synthesize a consistent and complete chain of thought (CoT). This process is normally a black box in the case of deep learning models like large-scale language models. Recently, science question benchmarks have been used to diagnose the multi-hop reasoning ability and interpretability of an AI system. However, existing datasets fail to provide annotations for the answers, or are restricted to the textual-only modality, small scales, and limited domain diversity. To this end, we present Science Question Answering (ScienceQA), a new benchmark that consists of ~21k multimodal multiple choice questions with a diverse set of science topics and annotations of their answers with corresponding lectures and explanations. We further design language models to learn to generate lectures and explanations as the chain of thought (CoT) to mimic the multi-hop reasoning process when answering ScienceQA questions. ScienceQA demonstrates the utility of CoT in language models, as CoT improves the question answering performance by 1.20% in few-shot GPT-3 and 3.99% in fine-tuned UnifiedQA. We also explore the upper bound for models to leverage explanations by feeding those in the input; we observe that it improves the few-shot performance of GPT-3 by 18.96%. Our analysis further shows that language models, similar to humans, benefit from explanations to learn from fewer data and achieve the same performance with just 40% of the data. The data and code are available at https://scienceqa.github.io.

PaperPDFCodeCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="2209.09513")

Code

Syntology Ran 4 of 5 code samples harvested from 1 repository linked to this paper; 1 has no recorded run. Of those that ran: 4 ran · our draft was wrong.

By repository: official repository: 3 samples from 1 repository, 2 ran; 2 identical to code first harvested elsewhere. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

lupantech/ScienceQA officialmentioned on GitHubpytorch report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

5 samples harvested; 4 ran; 0 honoured the contract we drafted; 1 has no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

4ran · our draft was wrong
1unverified

Licence: 2 of the 5 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from lupantech/ScienceQA. Some samples are identical code Syntology first harvested from another repository; for those, this paper's copy is not located and its licence is not recorded. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: 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. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

get_acc_with_contion lupantech/ScienceQA/tools/evaluate_acc.py official repository ran · our draft was wrong MIT (permissive) · bef96bae3f74e855 · report
get_question_text lupantech/ScienceQA/models/base_prompt.py official repository ran · our draft was wrong MIT (permissive) · c86a79e229253816 · report
get_scores lupantech/ScienceQA/tools/evaluate_acc.py official repository unverified MIT (permissive) · ab3717114ec507c3 · report
get_choice_text identical code first harvested elsewhere ran · our draft was wrong licence of this copy not recorded · 7a8dffc83d89cedd · report
get_context_text identical code first harvested elsewhere ran · our draft was wrong licence of this copy not recorded · 85f084f6054a421e · report

Tasks

Multimodal Deep LearningMultimodal ReasoningMultiple-choiceOpen-Domain Question AnsweringQuestion AnsweringScience Question AnsweringVisual Commonsense ReasoningVisual Question Answering (VQA)

Datasets

Introduced by this paper, per the archive.

ScienceQA

Results from the paper archive 2025-07-28

TaskDatasetModelMetricValueRank at snapshotLeaderboardReport
Science Question Answering ScienceQA GPT-3 - CoT (QCM→ALE , 2-shot) Avg. Accuracy 75.17 #6 of 10 Archive leaderboard report
Science Question Answering ScienceQA GPT-3 - CoT (QCM→ALE , 2-shot) Grades 1-6 78.23 #6 of 10 Archive leaderboard report
Science Question Answering ScienceQA GPT-3 - CoT (QCM→ALE , 2-shot) Grades 7-12 69.68 #6 of 10 Archive leaderboard report
Science Question Answering ScienceQA GPT-3 - CoT (QCM→ALE , 2-shot) Image Context 67.43 #6 of 10 Archive leaderboard report
Science Question Answering ScienceQA GPT-3 - CoT (QCM→ALE , 2-shot) Language Science 78.09 #6 of 10 Archive leaderboard report
Science Question Answering ScienceQA GPT-3 - CoT (QCM→ALE , 2-shot) Natural Science 75.44 #6 of 10 Archive leaderboard report
Science Question Answering ScienceQA GPT-3 - CoT (QCM→ALE , 2-shot) No Context 79.93 #6 of 10 Archive leaderboard report
Science Question Answering ScienceQA GPT-3 - CoT (QCM→ALE , 2-shot) Social Science 70.87 #6 of 10 Archive leaderboard report
Science Question Answering ScienceQA GPT-3 - CoT (QCM→ALE , 2-shot) Text Context 74.68 #6 of 10 Archive leaderboard report
Science Question Answering ScienceQA GPT-3 - CoT(QCM→AE, 2-shot) Avg. Accuracy 74.61 #7 of 10 Archive leaderboard report
Science Question Answering ScienceQA GPT-3 - CoT(QCM→AE, 2-shot) Grades 1-6 78.49 #7 of 10 Archive leaderboard report
Science Question Answering ScienceQA GPT-3 - CoT(QCM→AE, 2-shot) Grades 7-12 67.63 #7 of 10 Archive leaderboard report
Science Question Answering ScienceQA GPT-3 - CoT(QCM→AE, 2-shot) Image Context 66.09 #7 of 10 Archive leaderboard report
Science Question Answering ScienceQA GPT-3 - CoT(QCM→AE, 2-shot) Language Science 77.55 #7 of 10 Archive leaderboard report
Science Question Answering ScienceQA GPT-3 - CoT(QCM→AE, 2-shot) Natural Science 76.60 #7 of 10 Archive leaderboard report
Science Question Answering ScienceQA GPT-3 - CoT(QCM→AE, 2-shot) No Context 79.58 #7 of 10 Archive leaderboard report
Science Question Answering ScienceQA GPT-3 - CoT(QCM→AE, 2-shot) Social Science 65.92 #7 of 10 Archive leaderboard report
Science Question Answering ScienceQA GPT-3 - CoT(QCM→AE, 2-shot) Text Context 75.51 #7 of 10 Archive leaderboard report
Science Question Answering ScienceQA UnifiedQA-BASE - CoT (QCM→ALE) Avg. Accuracy 74.11 #8 of 10 Archive leaderboard report
Science Question Answering ScienceQA UnifiedQA-BASE - CoT (QCM→ALE) Grades 1-6 77.06 #8 of 10 Archive leaderboard report
Science Question Answering ScienceQA UnifiedQA-BASE - CoT (QCM→ALE) Grades 7-12 68.82 #8 of 10 Archive leaderboard report
Science Question Answering ScienceQA UnifiedQA-BASE - CoT (QCM→ALE) Image Context 66.53 #8 of 10 Archive leaderboard report
Science Question Answering ScienceQA UnifiedQA-BASE - CoT (QCM→ALE) Language Science 78.91 #8 of 10 Archive leaderboard report
Science Question Answering ScienceQA UnifiedQA-BASE - CoT (QCM→ALE) Natural Science 71.00 #8 of 10 Archive leaderboard report
Science Question Answering ScienceQA UnifiedQA-BASE - CoT (QCM→ALE) No Context 81.81 #8 of 10 Archive leaderboard report
Science Question Answering ScienceQA UnifiedQA-BASE - CoT (QCM→ALE) Social Science 76.04 #8 of 10 Archive leaderboard report
Science Question Answering ScienceQA UnifiedQA-BASE - CoT (QCM→ALE) Text Context 66.42 #8 of 10 Archive leaderboard report
Science Question Answering ScienceQA GPT-3 (QCM→A, 2-shot) Avg. Accuracy 73.97 #9 of 10 Archive leaderboard report
Science Question Answering ScienceQA GPT-3 (QCM→A, 2-shot) Grades 1-6 76.80 #9 of 10 Archive leaderboard report
Science Question Answering ScienceQA GPT-3 (QCM→A, 2-shot) Grades 7-12 68.89 #9 of 10 Archive leaderboard report
Science Question Answering ScienceQA GPT-3 (QCM→A, 2-shot) Image Context 67.28 #9 of 10 Archive leaderboard report
Science Question Answering ScienceQA GPT-3 (QCM→A, 2-shot) Language Science 76.00 #9 of 10 Archive leaderboard report
Science Question Answering ScienceQA GPT-3 (QCM→A, 2-shot) Natural Science 74.64 #9 of 10 Archive leaderboard report
Science Question Answering ScienceQA GPT-3 (QCM→A, 2-shot) No Context 77.42 #9 of 10 Archive leaderboard report
Science Question Answering ScienceQA GPT-3 (QCM→A, 2-shot) Social Science 69.74 #9 of 10 Archive leaderboard report
Science Question Answering ScienceQA GPT-3 (QCM→A, 2-shot) Text Context 74.44 #9 of 10 Archive leaderboard report

Ranks are positions in the archive's leaderboards as they stood at the 2025-07-28 snapshot. Results published since then are not among these rows, so a rank here is not a current standing.

Methods

AdamCosine AnnealingDropoutGPT-3Layer NormalizationLinear Warmup With Cosine AnnealingMulti-Head AttentionResidual ConnectionSoftmax

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections