DOUBT: Decoupled Object-level Understanding and Bridging via vMF-based Trustworthiness for Hallucination Detection in MLLMs
SAI replication review · Referee report
Summary
DOUBT is a black-box hallucination-detection framework for MLLMs that combines two ideas. Object-level Understanding and Bridging (OUB) is a two-stage prompting scheme in which the same MLLM lists up to three salient objects, then answers the question conditioned on that object list. The vMF-based trustworthiness score unit-normalizes sampled response embeddings on a hypersphere and summarizes them by the sample mean resultant length , motivated as a smoother small-sample surrogate for semantic-cluster entropy under a vMF assumption. Uncertainty from the direct and object-bridged sample sets is averaged and thresholded to flag hallucinations. The conceptual move is worth engaging with: the paper's central diagnosis is that consistency-based detectors fail when a weak visual module produces stably wrong answers, and OUB is designed to expose this hidden inconsistency by re-anchoring generation on explicit object semantics. Across four benchmarks (LLaVABench, MMVet, MMMU, ScienceQA) and ten MLLMs, DOUBT reports the best average detection accuracy in every setting, with ablations over prompt format and embedding model.
The biggest limitation is that the foundational assumption is undefended: OUB helps only if object misidentification manifests as increased response inconsistency, but on inputs where the model is confidently confused about the salient object OUB can plausibly produce a consistently wrong bridging set. Supporting claims are also softer than stated: "unbiased estimate" is the wrong property for at small ; the deterministic target is generated separately from the sampled set that scores it; sub-1-pp headline gaps are reported without seeds. On the code side, doubt.py faithfully implements the two-stage pipeline — the forward-pass count reproduces from source — but all six comparison baselines are absent from the repository, and our bounded-compute reproduction (a handful of LLaVABench/MMVet cells on small models) surfaced a benchmark-sensitivity concern for the fixed that the paper's stability claim does not engage with.
Strengths
- Conceptual contribution. The paper crisply articulates the false-consistency failure mode of sampling-based hallucination detectors — MLLM visual modules can lag their language modules, yielding low measured uncertainty on wrong answers — and proposes a targeted, model-agnostic intervention (OUB) whose stated aim is to expose that hidden inconsistency rather than to correct the underlying model.
- Metric grounded in directional statistics. The mean resultant length is a natural, cheap, geometry-aware summary of unit-normalized embeddings, and the argument that semantic similarity in RoBERTa-family encoders is primarily directional is a reasonable motivation for preferring vMF-style scoring to Euclidean or discrete-cluster entropy at small .
- Breadth of evaluation. Ten MLLMs from four families (Qwen2VL, InternVL2, LLaVA-1.5, LLaVA-NeXT) across 1B–72B, four benchmarks covering free-form and multiple-choice reasoning, and six baselines including recent uncertainty and factuality methods give a wider empirical sweep than most work in this area.
- Coverage of ancillary questions. The appendices probe sensitivity to the concentration parameter formulation ( vs. ), the recognized-object cap , the semantic embedding model, and the Stage-2 prompt format; the last three are the kind of ablations reviewers typically ask for and are already present.
- Code release faithfully implements the core method.
doubt.py, all ten MLLM wrappers, and four benchmark loaders are shipped, and code inspection confirms the pipeline is structurally consistent with Section 3 — the deterministic forward-pass count in Table 3 matches the shipped implementation exactly.
Weaknesses
- Foundational assumption on object misidentification is not defended. The paper acknowledges that Stage-1 recognition errors can propagate into Stage-2 answers, then argues "such failures typically manifest as increased response inconsistency, which our trustworthiness metric is designed to capture." But this is precisely the low-inconsistency-but-wrong failure mode the introduction says undermines consistency-based detection. No evidence is offered that misidentification flips into inconsistency rather than reinforcing a consistent error.
- "Unbiased estimate" claim for is not correct in the low- regime the paper markets. The sample mean resultant length is a consistent but positively biased estimator; the induced is well known to be biased at small samples. Since the paper's central selling point over semantic entropy is small-sample stability, invoking "unbiased" overstates the statistical guarantee at exactly the point it matters most.
- Detection target is generated separately from the sampled set used to score it. The reference answer is generated at temperature 0.1 and is what is compared against ground truth, while the trustworthiness score is computed from independently sampled sets at temperature 0.5. The assumption that the consistency of is a valid proxy for the correctness of the distinct deterministic is left implicit and not justified.
- "CoT" branding is not consistent with the actual prompt. The introduction attributes Stage-2 to a Chain-of-Thought prompt (Wei et al., 2022), but the actual bridging prompt ends with "only output your answer of the question" — the opposite of eliciting a reasoning chain. Appendix G evaluates genuine CoT variants alongside the default, confirming that the default is not CoT.
- "Consistently" overstates the ablation. Table 2 shows several per-model cells where removing OUB or removing vMF beats the full method; the paper itself acknowledges these exceptions in the same paragraph while calling the full method "consistently" best. The full method wins on the column average, not per-cell, and the average gap is <1 pp.
- Non-monotonic InternVL2 numbers are framed as "effective scalability across different model sizes". The 78.44 / 72.02 / 75.23 sequence over 1B / 8B / 26B is not monotone in scale, and 75.23 is also the row's overall average — worth double-checking for a table copy-paste. The claim of favorable scaling with size is not supported by the numbers cited.
- Statistical significance is not reported. With ~60 samples per LLaVABench cell and headline gaps below 1 pp over the best baseline, and gaps of 2–3 pp on MMMU, the paper reports no seeds, repetitions, or significance tests. Given the stochastic decoding protocol, per-run drift plausibly reaches the reported margins.
- Cost accounting silently drops the reference-answer pass in Algorithm 1. Algorithm 1 lists four generation steps totaling forward passes; Table 3's "" arithmetic excludes the low-temperature reference-answer pass. Code inspection confirms that the shipped pipeline does issue exactly MLLM calls (with the reference pass counted as a shared baseline across methods), so the convention is defensible — but it should be made explicit so Algorithm 1 and Table 3 do not read as describing different pipelines.
- Case-study explanation mischaracterizes the detection mechanism. The prose says the OUB responses "become more consistent with the visual evidence," but the displayed OUB sets in Figure 4 are precisely the diverse/inconsistent ones (yogurt: "No / Yes / Yes / No / …"; man: mixes "Elon Musk" with "I cannot identify people") — and it is that divergence that lowers and triggers the flag. The wording conflates the detection story with the mitigation story.
- Hard-case recovery is attributed to OUB without isolating OUB from vMF. The 39.10% recovery on ScienceQA hard cases (SE = 0, reference wrong) mixes two independent changes vs. the SE baseline — OUB and the vMF metric. A vMF-on--only baseline on the same subset would be needed to attribute the recovery to OUB specifically.
- Terminological drift and notation inconsistencies. The conclusion describes OUB as decoupling "visual reasoning from relational reasoning", whereas Section 3 defines it as decoupling recognition from reasoning; Appendix A describes a caption-first pipeline that does not match the objects-first pipeline of Section 3.2; is used for two entirely different quantities (evaluation samples vs. maximum recognized objects); the Bessel-ratio index is left unspecified and the display equation for the mapping does not render.
- "Plug-and-play" is oversold. The vMF metric can drop into sampling-based pipelines, but not into the white-box or external-knowledge families the paper itself catalogs; the contribution should be scoped accordingly. Relatedly, the sweeping claim that black-box methods "often rely on complete external knowledge bases" contradicts the paper's own taxonomy — DOUBT and every consistency-based baseline it compares against are counter-examples.
Reproducibility & code
The release covers the DOUBT method itself: doubt.py implements the two-stage OUB + mean-resultant-length pipeline, all ten MLLM wrappers exist, and the four benchmark loaders (LLaVABench, MMVet, MMMU, ScienceQA) are present. Direct code inspection confirmed one deterministic claim outright — the forward-pass count of matches the source exactly (one object pass plus two batches of sampling passes). The rest of the picture is more mixed: our attempted headline-table reproduction under bounded compute could execute only 6 of the 40 Table 1 DOUBT cells (LLaVABench and MMVet on small models, subsampled to of 60/218 items, and mostly on 2–3 samples where model-load or wall-clock constraints truncated the run); MMMU and ScienceQA never ran; and no baseline was runnable at all. Nothing in this is evidence that the paper is wrong — the shortfall is environmental — but the paper's headline numbers therefore remain untested here, and the gaps below are consequential for auditing them.
- Baselines absent from the repository. None of the six baselines (GAVIE, Semantic Entropy, KLE, EigenScore, VL-Uncertainty, SNNE) is shipped, so no cell in Table 1 that involves a comparison is independently verifiable from the release. The paper does not pin down implementation choices (SE clustering criterion, ES covariance regularizer, GAVIE prompt) that materially affect the numbers.
- Ablations and metric swaps require code edits. "- w/o OUB", "- w/o vMF", and "- w/o OUB & vMF" have no CLI flag; likewise Table 7's SE and ES rows require re-implementing scorers absent from
util/misc.py. The paper does not state which entropy replaces vMF in the "- w/o vMF" row (numeric identity to Table 7's SE row suggests Semantic Entropy, but this is left implicit). - CLI does not match documentation.
--top_pis parsed but not propagated to any model wrapper (lvlm/*.pyhard-codetop_p = 0.99), so Figure 3(b)'s top- sweep cannot be reproduced through the flag; is a hard-coded literal, so Figure 3(d)'s threshold sweep requires source edits or a post-hoc script that is not shipped. - Threshold 0.48 may be more benchmark-sensitive than claimed. In the subsampled runs we could execute, every LLaVABench vMF score for every model fell at or below 0.48, so the detector flagged every sample as a hallucination and accuracy collapsed to the fraction of wrong reference answers (Qwen2VL-2B: 0.50 vs. paper 0.6833); on MMVet the same code produced scores spanning 0.057–1.0 that discriminated normally (Qwen2VL-2B: 0.90 vs. 0.7385). At on the smallest model this is a signal, not a refutation, but it does not sit comfortably with the parameter-study claim that performance is "relatively stable across different threshold values" — please report per-benchmark distributions of and whether the 0.48 operating point survives per-benchmark tuning.
- Only LLaVABench is scripted.
run/run_doubt.shcovers only the LLaVABench × 10-model grid; the other three benchmarks require the reader to reconstruct the run configuration, and MMMU downloads 30 sub-datasets from HuggingFace on init with no documented disk / GPU-memory guidance (this and the ScienceQA + Qwen2VL-72B combination are exactly the cells our replication could not attempt). - Appendix experiments are not producible. Appendix A relies on MME and POPE loaders that do not exist in
benchmark/, and on a mitigation-mode entry point that is not shipped. Appendix C relies on a Qwen-VL-Plus (paid closed API) integration that is absent; no cached object lists are included. Appendix F's hard-case counts require a Semantic Entropy scorer that is absent. Appendix G's three alternative Stage-2 prompts are neither shipped nor spelled out. - No seed protocol, and no partial-result persistence. Stochastic decoding is used throughout with no fixed-seed configuration or repetition count. For headline gaps under 1 pp this is a real reproducibility risk even for the DOUBT column, quite apart from the missing baselines. Separately, the shipped code writes its log only after the entire benchmark loop finishes, so any wall-clock-truncated run produces zero artifacts — a real fragility we hit in practice, and worth patching for any future reproducer.
Recommended Changes
Essential
- Defend the misidentification story. Add an argument or an experiment showing that Stage-1 misidentification tends to increase response inconsistency in , rather than reinforce a consistent error. If the assumption fails on identifiable subsets (e.g. rare objects, small text), report performance on those subsets — this speaks directly to the "Foundational assumption" weakness.
- Correct the "unbiased" claim about . Rewrite Section 3.3 to describe as a consistent, monotone summary of concentration and characterize its small-sample bias, rather than asserting unbiasedness in exactly the low- regime the paper markets.
- Report seeds and dispersion on headline results. Rerun Table 1 (or at least the smaller-per-cell datasets LLaVABench and MMVet) over seeds, report mean ± std, and add a paired significance test versus the best baseline per cell — this addresses the "Statistical significance" and headline-gap weaknesses.
- Ship baseline implementations and ablation switches. Add the six baselines used in Table 1 (or reference exact upstream commits), and expose
--use_oub {0,1}and--score {vmf,se,es}flags indoubt.pyso Table 2 and Table 7 can be reproduced without forking the source. State explicitly which entropy replaces vMF in the "- w/o vMF" row. - Characterize the operating point of per benchmark. In light of the LLaVABench-vs-MMVet threshold-band observation, report the distribution of per benchmark and either defend the single with a wider sensitivity sweep on the full per-benchmark score distributions or provide a per-benchmark tuned threshold with the associated tuning protocol.
- Isolate OUB from vMF in the hard-case recovery. Add a vMF-on--only recovery number on the same SE = 0 subset to attribute the 39.10% recovery to OUB rather than to the change of scoring metric.
- Justify the reference/sampled split, or evaluate reliability on a sample. Either provide an argument (or empirical check) that the trustworthiness of is a valid proxy for the correctness of the separately-generated deterministic , or apply the detector to a response drawn from the same distribution used to score it.
- Fix the forward-pass accounting so Algorithm 1 and Table 3 agree. Either update the count to passes for , or state explicitly that Table 3 counts only method-specific overhead and that the deterministic reference-answer pass is shared with the baselines.
Suggested
- Rewrite the CoT framing. Remove the CoT label from the introduction / contributions, or replace the default Stage-2 prompt with one that actually elicits a reasoning chain.
- Reconcile the two OUB pipelines. Either update Appendix A to match the objects-first pipeline of Section 3.2, or state that the mitigation-mode OUB is a caption-first variant and explain the difference.
- Rewrite the case-study paragraph. Distinguish detection (OUB diversifies the bridging set, lowering ) from mitigation (individual OUB answers align more with the image) so the wording is not superficially at odds with Figure 4.
- Fix terminology and notation. In the Conclusion, say OUB decouples object recognition from relational reasoning (matching Section 3), not "visual reasoning from relational reasoning"; rename Appendix E's to something like to avoid collision with the evaluation-sample ; restore the display equation for and specify the Bessel orders / ; clean up the hypersphere-normalization notation so and are each defined independently.
- Tone down "consistently" and "effective scalability". Replace "consistently achieves the highest average scores" with an accurate phrasing about column averages (or, better, back it with significance tests); soften the InternVL2 "scalability" claim given the non-monotone numbers.
- Scope the "plug-and-play" claim, and reconcile the black-box overgeneralization. Reframe the vMF metric as a drop-in replacement for entropy-based scoring inside sampling-based detection pipelines; rewrite the introduction sentence about black-box methods to match the paper's own taxonomy (external-knowledge methods depend on knowledge bases; consistency-based methods, including DOUBT, do not).
- Fix the CLI–documentation mismatch and add run scripts. Wire
--top_pinto the model wrappers (or remove it fromparse_args); expose as a flag or ship a post-hoc thresholding script; addrun_doubt.shvariants for MMVet, MMMU, ScienceQA; and add a brief README note on MMMU disk footprint and 72B GPU requirements. - Enable appendix reproducibility. Add the MME and POPE loaders and mitigation-mode script for Appendix A; ship the cached Qwen-VL-Plus object lists (or the script that produced them) for Appendix C; ship the SE and ES in-DOUBT scorers for Appendix D; ship the hard-case aggregation script for Appendix F; and add the three verbatim alternative Stage-2 prompts for Appendix G.
- Add incremental logging for long runs. Patch
doubt.pyto write the log incrementally rather than only after the benchmark loop finishes, so a wall-clock-truncated run leaves valid partial artifacts. - Tone down "enhances the model's understanding capability". OUB is prompt-only and adds no information beyond what the same MLLM already extracts from the image; frame it as expanding the response space for consistency-based scoring, not as improving underlying understanding.