Research log Small Model Experimentation
GitHub

Full-Table Consistency Reranker

A trained judge never beat the first answer

The one idea you need

A model fills a table by answering each row twice. You stitch those tries into every possible complete table and train a judge to pick the one where the rows agree best, betting that internal agreement flags the fully-correct table.

The question

If a model answers each table row a few times, can a trained scorer pick the one complete table that gets every single row right?

What we found

No. The trained scorer got every row right on half the tasks, exactly what you get by just keeping the model's first answer, and barely better than scoring tables at random. A flawless table was reachable on five more tasks, but the scorer picked none: it ranked good tables above bad ones well, yet that never became a single extra solve.

Why it matters

When you sample many drafts and rerank whole tables, the payoff hinges on the selector picking the winner. Here the winner was in the pile yet the scorer missed it, so fix selection before spending more on drafts.

Tasks fully solved, first answer vs trained scorer20 of 40 either waykeeping the first answer already matches the scorer
Best possible if the winning table were always chosen25 of 40the ceiling the scorer never reached
How reliably the scorer ranked good tables over badabout 93% vs 36% at randomstrong ranking that won zero extra tasks
Reachable-but-missed tasks the scorer captured0 of 5a perfect table sat in the candidates, never chosen
On this page
  1. Results at a glance
  2. Overview
  3. Report
    1. Question
    2. Setup
    3. Main Result
    4. Interpretation
    5. Diagnostic Findings
    6. Charts
    7. Fold Diagnostics
    8. Family Breakdown
    9. Task-Level Reachability
    10. Reachable Headroom Tasks
    11. Learned Selection Changes
    12. Selected Tables
    13. Files
  4. Experiment log
  5. Figures
  6. Data files
  7. Reproduce
  8. Related

Results at a glance 7

Fully-solved tables: each picking method against the best-possible ceiling

How to read

Bars show the share of tasks where every row is correct, one per selection method; taller is better. The leftmost bar is the best reachable table in the candidate pile (the ceiling); the rest are real methods, including the trained scorer and a random-scoring control.

0%20%40%60%80%oracle (best reachable table)oracle (best reachable table)62.5%greedy rowsgreedy rows50%heuristicheuristic50%learned rerankerlearned reranker50%row majorityrow majority50%shuffled-label controlshuffled-label control47.5%

Takeaway → The ceiling bar stands well above the rest while the trained scorer sits level with plain first-answer picking, so the extra machinery added nothing.

Data table
selection methodfull-task exact
oracle (best reachable table)62.5%
greedy rows50%
heuristic50%
learned reranker50%
row majority50%
shuffled-label control47.5%

Numbers from experiments/qwen_full_table_consistency_reranker/analysis/summary.csv

Technical framing

Full-task exact accuracy: table selection methods vs the oracle ceiling — The exact table is reachable on 62.5% of tasks, but no selector - learned or not - beats greedy row decoding at 50%.

Getting single rows right versus getting the whole table right

How to read

For each method, one bar is the share of individual rows correct and the other the share of tasks where every row is correct; taller is better. The gap shows how punishing all-rows-correct scoring is.

0%25%50%75%100%oracle (best reachable table)oracle (best reachable table)82.5%62.5%greedy rowsgreedy rows72.3%50%heuristicheuristic72.7%50%learned rerankerlearned reranker72.3%50%row majorityrow majority72.7%50%shuffled-label controlshuffled-label control72.5%47.5%

Takeaway → Rows are about 72% correct but whole-table scores fall to 50% for every method except the ceiling, so one wrong row sinks the task.

Data table
selection methodrow exactfull-task exact
oracle (best reachable table)82.5%62.5%
greedy rows72.3%50%
heuristic72.7%50%
learned reranker72.3%50%
row majority72.7%50%
shuffled-label control72.5%47.5%

Numbers from experiments/qwen_full_table_consistency_reranker/analysis/summary.csv

Technical framing

Row-level vs strict full-task accuracy by method — Rows are ~72% correct but strict all-rows-correct scoring drops every non-oracle method to 50% or below.

Can the scorer tell good tables from bad: real versus scrambled labels

How to read

Across four data splits, one bar is how well the scorer ranks correct tables above wrong ones and the other is the same scorer trained on scrambled labels; higher is better, and about 50% means random guessing.

0%25%50%75%100%97.4%26.7%fold 089.8%50%fold 196.7%58.5%fold 287.9%10.5%fold 3

Takeaway → Real-label bars tower near 90% over the scrambled ones, proving the scorer ranks tables well, yet it still solves no extra tasks.

Data table
cross-validation foldlearned reranker AUCshuffled-label AUC
fold 097.4%26.7%
fold 189.8%50%
fold 296.7%58.5%
fold 387.9%10.5%

Numbers from report table (Fold Diagnostics, from runs/main_qwen_table_40/fold_diagnostics.csv)

Technical framing

Reranker discrimination per cross-validation fold: real vs shuffled labels — The reranker genuinely ranks correct tables highly (AUC ~93% vs chance), yet that never converts into solving extra tasks.

Which data types leave room to improve whole tables

How to read

For five data types, one bar is first-answer whole-table accuracy and the other the best reachable whole-table accuracy; taller is better and a gap means untapped room.

0%25%50%75%100%0%0%Address50%50%City56.2%62.5%DateTime30%70%Number100%100%Phone

Takeaway → Only Number tables show a real gap, 30% versus 70%, so nearly all the missed opportunity lives in numeric tables.

Data table
Data family (families with 2+ tasks)Direct greedy rowsTable oracle
Address0%0%
City50%50%
DateTime56.2%62.5%
Number30%70%
Phone100%100%

Numbers from reports/qwen_full_table_consistency_reranker_report.md, Family Breakdown table

Technical framing

Full-task accuracy by data family: where the oracle headroom lives — Nearly all reachable headroom sits in Number tasks (30% vs 70%); Address and Phone families leave the oracle nothing to add.

Which data types get more rows right from extra drafts

How to read

For five data types, one bar is first-answer row accuracy and the other the best reachable row accuracy; taller is better and a gap means extra drafts recovered rows.

0%25%50%75%100%50%50%Address87.5%87.5%City72.9%81.2%DateTime61.7%89.2%Number100%100%Phone

Takeaway → Number rows jump from about 62% to 89% with better drafts while Address and City rows never move, so draft variety helps only some types.

Data table
Data family (families with 2+ tasks)Direct greedy rowsTable oracle
Address50%50%
City87.5%87.5%
DateTime72.9%81.2%
Number61.7%89.2%
Phone100%100%

Numbers from reports/qwen_full_table_consistency_reranker_report.md, Family Breakdown table

Technical framing

Row-level accuracy by data family: sampled candidates fix Number rows — Candidate sampling recovers many Number rows (61.7% to 89.2%) and some DateTime rows, but Address and City rows never improve.

Five winnable tasks the scorer still got wrong

How to read

For five tasks where a perfect table existed in the pool, three bars each show first-answer, trained-scorer, and best-possible row accuracy; the best-possible reaches full accuracy and higher is better for the others.

0%25%50%75%100%Number.000015Number.00001533.3%33.3%100%Number.000077Number.00007733.3%33.3%100%DateTime.000076DateTime.00007666.7%66.7%100%Number.000075Number.00007566.7%66.7%100%Number.000016Number.00001683.3%83.3%100%

Takeaway → The first-answer and scorer bars are identical and short on every task, so the scorer picked the same imperfect table and captured none of the five wins.

Data table
Task (oracle-solvable, direct-greedy-unsolved)Direct greedyLearned rerankerOracle table
Number.00001533.3%33.3%100%
Number.00007733.3%33.3%100%
DateTime.00007666.7%66.7%100%
Number.00007566.7%66.7%100%
Number.00001683.3%83.3%100%

Numbers from reports/qwen_full_table_consistency_reranker_report.md, Reachable Headroom Tasks table

Technical framing

The five reachable-headroom tasks the learned reranker failed to capture — On every task where a perfect candidate table exists, the learned reranker picks the same table as greedy and captures 0 of 5 wins.

How the share of correct tables shifts between data splits

How to read

For four data splits, one bar is the share of correct tables in the training portion and the other in the testing portion; the point is how unequal the two are, not which is taller.

0%20%40%60%15.7%9.2%Fold 09.6%48.2%Fold 111.7%20.6%Fold 216.1%6.5%Fold 3

Takeaway → The testing-side share of correct tables swings from about 7% up to 48% across splits, an instability that helps explain why a strong ranker still can't reliably pick winners.

Data table
Cross-validation foldTrain splitTest split
Fold 015.7%9.2%
Fold 19.6%48.2%
Fold 211.7%20.6%
Fold 316.1%6.5%

Numbers from reports/qwen_full_table_consistency_reranker_report.md, Fold Diagnostics table

Technical framing

Cross-validation label shift: positive-candidate rate per fold — Test positive rates swing from 6.5% to 48.2% across folds, so high candidate AUC coexists with unstable task-level selection.

In the author’s words from the Overview · “Summary”

Can multiple row-level model guesses be converted into task-level consistency by selecting an entire candidate output table?

Overview

This top-level README was generated during repository normalization because the imported experiment did not include one.

How To Read

Start with the primary report, then inspect data/, reports/, analysis/, src/, and scripts/ as available. This folder remains self-contained; do not move its run data into shared directories.

Summary

Can multiple row-level model guesses be converted into task-level consistency by selecting an entire candidate output table?

Report

Rendered from reports/qwen_full_table_consistency_reranker_report.md

Question

Can multiple row-level model guesses be converted into task-level consistency by selecting an entire candidate output table?

The experiment generates several candidate outputs for each held-out row, enumerates full-table candidates, and trains a task-held-out consistency scorer to choose one table. The primary metric is strict full-task exactness: every held-out row for a task must be correct.

Setup

  • Benchmark root: /workspace/large_artifacts/qwen_full_table_consistency_reranker/prose-benchmarks
  • Run: main_qwen_table_40
  • Tasks: 40
  • Train rows per task: 4
  • Held-out cap per task: 6
  • Row samples per row: 2
  • Max candidate tables per task: 512
  • Cross-validation folds: 4

Main Result

methodtasksrow_exactfull_task_exacttable_oracle_raterow_oracle_ratemedian_candidate_tables
table_oracle4082.5%62.5%62.5%62.5%9.50
direct_row_greedy4072.3%50.0%62.5%62.5%9.50
heuristic4072.7%50.0%62.5%62.5%9.50
learned_reranker4072.3%50.0%62.5%62.5%9.50
row_majority4072.7%50.0%62.5%62.5%9.50
shuffled_label_reranker4072.5%47.5%62.5%62.5%9.50

Interpretation

The generated row-candidate sets make the exact table reachable on 62.5% of tasks after enumeration, while the per-row oracle is 62.5%. The learned reranker changes full-task exact by 0.0 points relative to direct greedy row inference. The learned reranker is separated from the shuffled-label control by 2.5 points. Mean candidate-level AUC is 92.9% versus 36.4% for shuffled labels, but that discrimination does not translate into task-level headroom capture.

If oracle reachability is high but the learned reranker does not improve over direct row inference, the bottleneck is table selection. If oracle reachability is low, the bottleneck is generation diversity.

Diagnostic Findings

  • Direct greedy solves 20 of 40 tasks.
  • The table oracle solves 25 of 40 tasks, leaving 5 tasks of reachable headroom beyond direct greedy.
  • The learned reranker solves 20 of 40 tasks and captures 0 of the 5 reachable-headroom tasks.
  • The learned reranker changes the selected output table on 3 tasks: 0 helped, 3 tied, and 0 hurt on strict full-task exactness.

Charts

Full-task exact by method

Row versus task accuracy

Oracle reachability

Oracle headroom

Candidate table counts

Fold AUC

Learned selection changes

Family heatmap

Fold Diagnostics

foldtrain_taskstest_taskstrain_candidatestest_candidatestrain_positive_ratetest_positive_ratecandidate_aucshuffled_candidate_auc
0301075062015.7%9.2%97.4%26.7%
1301012581129.6%48.2%89.8%50.0%
23010121016011.7%20.6%96.7%58.5%
3301089247816.1%6.5%87.9%10.5%

Family Breakdown

methodfamilytasksrow_exactfull_task_exact
direct_row_greedyAddress250.0%0.0%
direct_row_greedyBillingCode133.3%0.0%
direct_row_greedyCity287.5%50.0%
direct_row_greedyColumn1100.0%100.0%
direct_row_greedyDateTime1672.9%56.2%
direct_row_greedyFilePath1100.0%100.0%
direct_row_greedyGender166.7%0.0%
direct_row_greedyLanguage1100.0%100.0%
direct_row_greedyName1100.0%100.0%
direct_row_greedyNumber1061.7%30.0%
direct_row_greedyPhone2100.0%100.0%
direct_row_greedyShippingCode133.3%0.0%
direct_row_greedyUserAgent1100.0%100.0%
heuristicAddress250.0%0.0%
heuristicBillingCode133.3%0.0%
heuristicCity287.5%50.0%
heuristicColumn1100.0%100.0%
heuristicDateTime1674.0%56.2%
heuristicFilePath1100.0%100.0%
heuristicGender166.7%0.0%
heuristicLanguage1100.0%100.0%
heuristicName1100.0%100.0%
heuristicNumber1061.7%30.0%
heuristicPhone2100.0%100.0%
heuristicShippingCode133.3%0.0%
heuristicUserAgent1100.0%100.0%
learned_rerankerAddress250.0%0.0%
learned_rerankerBillingCode133.3%0.0%
learned_rerankerCity287.5%50.0%
learned_rerankerColumn1100.0%100.0%
learned_rerankerDateTime1672.9%56.2%
learned_rerankerFilePath1100.0%100.0%
learned_rerankerGender166.7%0.0%
learned_rerankerLanguage1100.0%100.0%
learned_rerankerName1100.0%100.0%
learned_rerankerNumber1061.7%30.0%
learned_rerankerPhone2100.0%100.0%
learned_rerankerShippingCode133.3%0.0%
learned_rerankerUserAgent1100.0%100.0%
row_majorityAddress250.0%0.0%
row_majorityBillingCode133.3%0.0%
row_majorityCity287.5%50.0%
row_majorityColumn1100.0%100.0%
row_majorityDateTime1674.0%56.2%
row_majorityFilePath1100.0%100.0%
row_majorityGender166.7%0.0%
row_majorityLanguage1100.0%100.0%
row_majorityName1100.0%100.0%
row_majorityNumber1061.7%30.0%
row_majorityPhone2100.0%100.0%
row_majorityShippingCode133.3%0.0%
row_majorityUserAgent1100.0%100.0%
shuffled_label_rerankerAddress250.0%0.0%
shuffled_label_rerankerBillingCode133.3%0.0%
shuffled_label_rerankerCity287.5%50.0%
shuffled_label_rerankerColumn1100.0%100.0%
shuffled_label_rerankerDateTime1672.9%56.2%
shuffled_label_rerankerFilePath1100.0%100.0%
shuffled_label_rerankerGender166.7%0.0%
shuffled_label_rerankerLanguage1100.0%100.0%
shuffled_label_rerankerName1100.0%100.0%
shuffled_label_rerankerNumber1062.5%20.0%
shuffled_label_rerankerPhone2100.0%100.0%
shuffled_label_rerankerShippingCode133.3%0.0%
shuffled_label_rerankerUserAgent1100.0%100.0%
table_oracleAddress250.0%0.0%
table_oracleBillingCode133.3%0.0%
table_oracleCity287.5%50.0%
table_oracleColumn1100.0%100.0%
table_oracleDateTime1681.2%62.5%
table_oracleFilePath1100.0%100.0%
table_oracleGender166.7%0.0%
table_oracleLanguage1100.0%100.0%
table_oracleName1100.0%100.0%
table_oracleNumber1089.2%70.0%
table_oraclePhone2100.0%100.0%
table_oracleShippingCode133.3%0.0%
table_oracleUserAgent1100.0%100.0%

Task-Level Reachability

task_idfamilyheldout_rowsdirect_row_exactdirect_full_exactrow_candidate_oracletable_candidate_oraclecandidate_tablesrow_candidate_median
City.000011City475.0%FalseFalseFalse121.50
Address.000013Address666.7%FalseFalseFalse171.00
Gender.000001Gender366.7%FalseFalseFalse111.00
Number.000029Number366.7%FalseFalseFalse142.00
DateTime.000027DateTime650.0%FalseFalseFalse882.00
DateTime.000081DateTime650.0%FalseFalseFalse141.00
DateTime.000116DateTime650.0%FalseFalseFalse91.00
Address.000002Address333.3%FalseFalseFalse91.00
BillingCode.000007BillingCode333.3%FalseFalseFalse162.00
DateTime.000051DateTime333.3%FalseFalseFalse122.00
Number.000008Number633.3%FalseFalseFalse161.50
ShippingCode.000008ShippingCode333.3%FalseFalseFalse91.00
DateTime.000114DateTime616.7%FalseFalseFalse5124.00
DateTime.000115DateTime60.0%FalseFalseFalse91.00
Number.000049Number40.0%FalseFalseFalse562.50
City.000010City3100.0%TrueTrueTrue91.00
Column.000001Column6100.0%TrueTrueTrue91.00
DateTime.000004DateTime6100.0%TrueTrueTrue91.00
DateTime.000007DateTime6100.0%TrueTrueTrue91.00
DateTime.000017DateTime6100.0%TrueTrueTrue442.00
DateTime.000025DateTime6100.0%TrueTrueTrue161.50
DateTime.000034DateTime6100.0%TrueTrueTrue91.00
DateTime.000094DateTime4100.0%TrueTrueTrue91.00
DateTime.000104DateTime6100.0%TrueTrueTrue91.00
DateTime.000108DateTime6100.0%TrueTrueTrue91.00
DateTime.000111DateTime6100.0%TrueTrueTrue101.00
FilePath.000001FilePath6100.0%TrueTrueTrue91.00
Language.000002Language6100.0%TrueTrueTrue91.00
Name.000028Name6100.0%TrueTrueTrue91.00
Number.000022Number6100.0%TrueTrueTrue322.00
Number.000028Number3100.0%TrueTrueTrue91.00
Number.000043Number6100.0%TrueTrueTrue91.00
Phone.000008Phone6100.0%TrueTrueTrue91.00
Phone.000011Phone3100.0%TrueTrueTrue91.00
UserAgent.000003UserAgent6100.0%TrueTrueTrue91.00
Number.000016Number683.3%FalseTrueTrue402.00
DateTime.000076DateTime666.7%FalseTrueTrue141.00
Number.000075Number666.7%FalseTrueTrue161.00
Number.000015Number633.3%FalseTrueTrue2242.50
Number.000077Number333.3%FalseTrueTrue263.00

Reachable Headroom Tasks

task_idfamilyfeaturesdirect_row_exactdirect_full_task_exactlearned_row_exactlearned_full_task_exactoracle_row_exactoracle_full_task_exactlearned_sourceoracle_sourcecandidate_tables
Number.000015NumberNumeric,NumericRounding33.3%False33.3%False100.0%Truerow_comborow_combo224
Number.000077NumberNumeric,NumericRounding33.3%False33.3%False100.0%Truerow_sample0row_combo26
DateTime.000076DateTimeDateTimeRange,DateTimeRounding,DateTime66.7%False66.7%False100.0%Truerow_sample0row_combo14
Number.000075NumberConcatenation,Numeric66.7%False66.7%False100.0%Truerow_sample0batch_plain16
Number.000016NumberNumeric,NumericRounding83.3%False83.3%False100.0%Truerow_comborow_combo40

Learned Selection Changes

task_idfamilydirect_row_exactlearned_row_exactdirect_full_task_exactlearned_full_task_exactlearned_sourcescorecandidate_tablestable_candidate_oracle
Address.000013Address66.7%66.7%FalseFalsebatch_plain0.9517False
DateTime.000027DateTime50.0%33.3%FalseFalserow_combo0.9988False
DateTime.000114DateTime16.7%33.3%FalseFalserow_combo0.01512False

Selected Tables

task_idmethodsourcerow_exactfull_task_exactscorecandidate_tablestable_candidate_oracle
Address.000002direct_row_greedyrow_greedy33.3%False0.009False
Address.000013direct_row_greedyrow_greedy66.7%False0.0017False
BillingCode.000007direct_row_greedyrow_greedy33.3%False0.0016False
City.000010direct_row_greedyrow_greedy100.0%True0.009True
City.000011direct_row_greedyrow_greedy75.0%False0.0012False
Column.000001direct_row_greedyrow_greedy100.0%True0.009True
DateTime.000004direct_row_greedyrow_greedy100.0%True0.009True
DateTime.000007direct_row_greedyrow_greedy100.0%True0.009True
DateTime.000017direct_row_greedyrow_greedy100.0%True0.0044True
DateTime.000025direct_row_greedyrow_greedy100.0%True0.0016True
DateTime.000027direct_row_greedyrow_greedy50.0%False0.0088False
DateTime.000034direct_row_greedyrow_greedy100.0%True0.009True
DateTime.000051direct_row_greedyrow_greedy33.3%False0.0012False
DateTime.000076direct_row_greedyrow_greedy66.7%False0.0014True
DateTime.000081direct_row_greedyrow_greedy50.0%False0.0014False
DateTime.000094direct_row_greedyrow_greedy100.0%True0.009True
DateTime.000104direct_row_greedyrow_greedy100.0%True0.009True
DateTime.000108direct_row_greedyrow_greedy100.0%True0.009True
DateTime.000111direct_row_greedyrow_greedy100.0%True0.0010True
DateTime.000114direct_row_greedyrow_greedy16.7%False0.00512False
DateTime.000115direct_row_greedyrow_greedy0.0%False0.009False
DateTime.000116direct_row_greedyrow_greedy50.0%False0.009False
FilePath.000001direct_row_greedyrow_greedy100.0%True0.009True
Gender.000001direct_row_greedyrow_greedy66.7%False0.0011False
Language.000002direct_row_greedyrow_greedy100.0%True0.009True
Name.000028direct_row_greedyrow_greedy100.0%True0.009True
Number.000008direct_row_greedyrow_greedy33.3%False0.0016False
Number.000015direct_row_greedyrow_greedy33.3%False0.00224True
Number.000016direct_row_greedyrow_greedy83.3%False0.0040True
Number.000022direct_row_greedyrow_greedy100.0%True0.0032True
Number.000028direct_row_greedyrow_greedy100.0%True0.009True
Number.000029direct_row_greedyrow_greedy66.7%False0.0014False
Number.000043direct_row_greedyrow_greedy100.0%True0.009True
Number.000049direct_row_greedyrow_greedy0.0%False0.0056False
Number.000075direct_row_greedyrow_greedy66.7%False0.0016True
Number.000077direct_row_greedyrow_greedy33.3%False0.0026True
Phone.000008direct_row_greedyrow_greedy100.0%True0.009True
Phone.000011direct_row_greedyrow_greedy100.0%True0.009True
ShippingCode.000008direct_row_greedyrow_greedy33.3%False0.009False
UserAgent.000003direct_row_greedyrow_greedy100.0%True0.009True
Address.000002heuristicrow_greedy33.3%False1.379False
Address.000013heuristicrow_greedy66.7%False1.6517False
BillingCode.000007heuristicrow_greedy33.3%False1.4916False
City.000010heuristicrow_greedy100.0%True2.199True
City.000011heuristicrow_greedy75.0%False1.7612False
Column.000001heuristicrow_greedy100.0%True2.209True
DateTime.000004heuristicrow_greedy100.0%True2.209True
DateTime.000007heuristicrow_greedy100.0%True2.209True
DateTime.000017heuristicrow_greedy100.0%True1.9144True
DateTime.000025heuristicrow_greedy100.0%True2.0916True
DateTime.000027heuristicrow_greedy50.0%False1.7788False
DateTime.000034heuristicrow_greedy100.0%True2.209True
DateTime.000051heuristicrow_greedy33.3%False2.0512False
DateTime.000076heuristicrow_greedy66.7%False2.0514True
DateTime.000081heuristicrow_greedy50.0%False2.0214False
DateTime.000094heuristicrow_greedy100.0%True2.209True
DateTime.000104heuristicrow_greedy100.0%True3.009True
DateTime.000108heuristicrow_greedy100.0%True2.209True
DateTime.000111heuristicrow_greedy100.0%True2.1210True
DateTime.000114heuristicrow_majority33.3%False1.49512False
DateTime.000115heuristicrow_greedy0.0%False2.209False
DateTime.000116heuristicrow_greedy50.0%False2.199False
FilePath.000001heuristicrow_greedy100.0%True2.209True
Gender.000001heuristicrow_greedy66.7%False2.0611False
Language.000002heuristicrow_greedy100.0%True3.009True
Name.000028heuristicrow_greedy100.0%True2.999True
Number.000008heuristicrow_greedy33.3%False1.3416False
Number.000015heuristicrow_greedy33.3%False1.12224True
Number.000016heuristicrow_greedy83.3%False1.9140True
Number.000022heuristicrow_greedy100.0%True1.8732True
Number.000028heuristicrow_greedy100.0%True2.199True
Number.000029heuristicrow_greedy66.7%False1.9014False
Number.000043heuristicrow_greedy100.0%True2.209True
Number.000049heuristicrow_greedy0.0%False1.7656False
Number.000075heuristicrow_greedy66.7%False1.9916True
Number.000077heuristicrow_greedy33.3%False1.6926True
Phone.000008heuristicrow_greedy100.0%True2.209True
Phone.000011heuristicrow_greedy100.0%True2.209True
ShippingCode.000008heuristicrow_greedy33.3%False1.669False
UserAgent.000003heuristicrow_greedy100.0%True1.529True
Address.000002learned_rerankerbatch_plain33.3%False1.009False
Address.000013learned_rerankerbatch_plain66.7%False0.9517False
BillingCode.000007learned_rerankerrow_combo33.3%False0.0016False
City.000010learned_rerankerbatch_plain100.0%True1.009True
City.000011learned_rerankerrow_combo75.0%False0.0012False
Column.000001learned_rerankerbatch_plain100.0%True0.969True
DateTime.000004learned_rerankerrow_sample0100.0%True0.999True
DateTime.000007learned_rerankerrow_sample0100.0%True0.999True
DateTime.000017learned_rerankerrow_combo100.0%True0.8944True
DateTime.000025learned_rerankerbatch_plain100.0%True0.9716True
DateTime.000027learned_rerankerrow_combo33.3%False0.9988False
DateTime.000034learned_rerankerbatch_plain100.0%True0.999True
DateTime.000051learned_rerankerrow_sample033.3%False0.4212False
DateTime.000076learned_rerankerrow_sample066.7%False0.8614True
DateTime.000081learned_rerankerrow_sample050.0%False0.4714False
DateTime.000094learned_rerankerrow_combo100.0%True0.819True
DateTime.000104learned_rerankerbatch_plain100.0%True1.009True
DateTime.000108learned_rerankerrow_sample0100.0%True0.989True
DateTime.000111learned_rerankerrow_sample0100.0%True0.9810True
DateTime.000114learned_rerankerrow_combo33.3%False0.01512False
DateTime.000115learned_rerankerbatch_plain0.0%False0.829False
DateTime.000116learned_rerankerrow_combo50.0%False1.009False
FilePath.000001learned_rerankerrow_sample0100.0%True0.959True
Gender.000001learned_rerankerrow_combo66.7%False0.0211False
Language.000002learned_rerankerbatch_plain100.0%True1.009True
Name.000028learned_rerankerrow_sample0100.0%True1.009True
Number.000008learned_rerankerrow_sample133.3%False0.0816False
Number.000015learned_rerankerrow_combo33.3%False0.03224True
Number.000016learned_rerankerrow_combo83.3%False0.7140True
Number.000022learned_rerankerrow_combo100.0%True0.9032True
Number.000028learned_rerankerbatch_plain100.0%True0.929True
Number.000029learned_rerankerbatch_json66.7%False0.8714False
Number.000043learned_rerankerbatch_plain100.0%True0.989True
Number.000049learned_rerankerbatch_json0.0%False0.6956False
Number.000075learned_rerankerrow_sample066.7%False0.1616True
Number.000077learned_rerankerrow_sample033.3%False0.1426True
Phone.000008learned_rerankerbatch_plain100.0%True1.009True
Phone.000011learned_rerankerrow_combo100.0%True0.369True
ShippingCode.000008learned_rerankerbatch_plain33.3%False0.809False
UserAgent.000003learned_rerankerrow_sample0100.0%True0.109True

Files

  • runs/main_qwen_table_40/row_candidates.csv
  • runs/main_qwen_table_40/table_candidates.csv
  • runs/main_qwen_table_40/selected_tables.csv
  • runs/main_qwen_table_40/oracle_summary.csv
  • runs/main_qwen_table_40/fold_diagnostics.csv
  • analysis/summary.csv
  • analysis/family_summary.csv
  • analysis/selected_tables.csv
  • analysis/oracle_summary.csv

Experiment log 7

Show the running log (7 entries, 2026-06-27)

Objective

Test whether multiple row-level model guesses can be converted into task-level consistency by scoring entire candidate output tables against the examples.

The unit of selection is the full held-out output vector, not a natural-language rule, a deterministic program, or one row at a time.

Initial Plan

  1. Create a new standalone experiment directory.
  2. Load public text-transformation tasks.
  3. Generate multiple candidate outputs per held-out row using Qwen prompt and sampling variants.
  4. Build full-table candidates from method outputs, majority vote, and frequency-ranked row-candidate combinations.
  5. Measure oracle coverage:

    • row-candidate oracle: each row has the gold answer somewhere in its candidate set.
    • table-candidate oracle: the exact gold table appears in the enumerated table candidates.
  6. Train a cross-validated consistency reranker on task-level candidates.
  7. Include shuffled-label and heuristic controls.
  8. Write CSVs, charts, Markdown report, and HTML report.

Run Notes

2026-06-27 07:19 UTC - Scaffold and no-Qwen smoke

  • Created the standalone experiment directory.
  • Added a runner that loads public text-transformation tasks, generates row candidates, enumerates full-table candidates, trains cross-validated rerankers, writes CSVs, charts, Markdown, and HTML.
  • Ran smoke_no_qwen to test the non-model path. The run used no Qwen candidates, so the metrics were intentionally meaningless, but the pipeline produced all expected artifacts.

2026-06-27 07:21 UTC - Real-Qwen pilot

  • Ran pilot_qwen_6 on 6 tasks, 4 held-out rows, one sampled row candidate per row, and 128 max table candidates.
  • Candidate generation made the exact table reachable on all 6 pilot tasks.
  • Direct greedy solved 4/6 tasks; the table oracle solved 6/6.
  • The learned reranker solved 3/6 and underperformed direct on this small split, while the heuristic tied direct.
  • Fixed candidate bookkeeping so row_majority remains represented even when it produces the same output table as another method.

2026-06-27 07:31 UTC - Main run

  • Ran main_qwen_table_40 on 40 tasks, 4 train rows, up to 6 held-out rows, two sampled row candidates per row, and 512 max table candidates.
  • Generated 1,100 Qwen candidate calls into the run-local cache.
  • Main results:

    • direct_row_greedy: 72.3% row exact, 50.0% full-task exact.
    • row_majority: 72.7% row exact, 50.0% full-task exact.
    • heuristic: 72.7% row exact, 50.0% full-task exact.
    • learned_reranker: 72.3% row exact, 50.0% full-task exact.
    • shuffled_label_reranker: 72.5% row exact, 47.5% full-task exact.
    • table_oracle: 82.5% row exact, 62.5% full-task exact.
  • Interpretation:

    • The candidate generator creates real headroom: exact full tables are reachable on 25/40 tasks versus 20/40 solved by direct greedy.
    • The learned reranker does not capture that headroom: it solves 20/40 and captures 0/5 reachable-headroom tasks.
    • Candidate-level discrimination is strong (mean AUC 92.9% versus 36.4% for shuffled-label control), but task-level selection remains unsolved.

2026-06-27 07:32 UTC - Report hardening

  • Added explicit headroom-capture diagnostics.
  • Added learned-selection-change diagnostics.
  • Regenerated the standalone Markdown and HTML reports with eight charts.

Figures 8

candidate table counts
candidate table counts · analysis/figures/
family heatmap
family heatmap · analysis/figures/
fold auc
fold auc · analysis/figures/
full task by method
full task by method · analysis/figures/
learned selection changes
learned selection changes · analysis/figures/
oracle headroom
oracle headroom · analysis/figures/
oracle reachability
oracle reachability · analysis/figures/
row vs task
row vs task · analysis/figures/

Data files 12

Result tables and metrics copied from the experiment folder — preview inline or open the raw file.

Reproduce

The run commands are documented inside the experiment folder (see the README).

Browse the experiment folder on GitHub ↗