adaptive_rank(), with one-spoke and multi-spoke
hub-and-spoke run modes for placing separately ranked sets on a shared
scale.link_stage_log, and explicit blocker and
invalid-judgment reporting for auditable long-running workflows.backend = "vertex" with VERTEX_API_KEY.
backend = "vertex" explicitly rather than routing it
through Gemini batch helpers.service_tier behavior for
Gemini Developer API and Vertex AI Gemini API in the package docs,
README, and vignettes.build_btl_results_data() to convert
conventional ID1/ID2/better_id
outcomes into the canonical input required by
fit_bayes_btl_mcmc().temperature = 1.max_output_tokens limit.temperature and top_p
controls to use model/provider defaults instead of injecting
deterministic sampling values. Provider-required reasoning constraints
are still enforced.Introduced an adaptive pairing / adaptive ranking framework designed to reduce unnecessary comparisons through uncertainty-aware pair selection and Bayesian inference.
Added adaptive_rank(), the primary user-facing
wrapper that runs the complete adaptive workflow end-to-end, including
warm start, adaptive pairing rounds, Bayesian BTL refits, diagnostics,
and stopping.
Advanced control is available via:
adaptive_rank_start() — initialize an adaptive run and
stateadaptive_rank_run_live() — execute live adaptive
comparisonsadaptive_rank_resume() — resume interrupted or
long-running runsAdaptive pairing is organized into rounds that balance global scale identification and local refinement using a mixture of anchor, long-range, mid-range, and local comparisons.
The adaptive controller tracks a global identifiability state based on Bayesian diagnostics and agreement between online (TrueSkill) and global (BTL) rankings. Once the global scale is identified:
Long-range comparisons are additionally posterior-gated in later stages, preventing wasted comparisons on pairs that are already decisively ordered.
Late-stage local pairing prioritizes near-tie pairs, with limited, auditable overrides to degree caps when especially informative comparisons are blocked.
Adaptive runs produce fully auditable step-, round-, and refit-level logs, recording candidate generation, fallbacks, gating decisions, quota reallocations, and stopping criteria.
All adaptive workflows use standardized configuration, state, and logging contracts to ensure reproducibility and future extensibility.
fit_bayes_btl_mcmc() enables direct
posterior inference from pairwise comparison data, independent of or
integrated with adaptive workflows.summarize_items(),
summarize_refits()), serving as the statistical backbone
for adaptive pairing decisions.gemini-3-flash-preview for live pairwise comparisons.service_tier for applicable live models.
"flex" and
"priority" when supported by the selected model.submit_llm_pairs() and backend-specific live functions
(OpenAI, Anthropic, Gemini, Together, Ollama) now support parallel
execution via parallel = TRUE and workers = n
(requires the {future} package).save_path argument to live submission functions.
Results are saved to CSV incrementally, allowing interrupted jobs to
resume automatically by skipping previously processed pairs.estimate_llm_pairs_cost() to estimate costs in
live and batch mode.llm_submit_pairs_multi_batch() and
llm_resume_multi_batches() to split large comparison sets
across multiple batches and resume polling later. These helpers support
writing per‑batch and combined results, along with an optional jobs
registry.submit_llm_pairs() and its backend-specific
counterparts now return a list containing two elements:
$results (a tibble of successful comparisons) and
$failed_pairs (a tibble of inputs that failed). Previous
versions returned a single tibble.gpt-5.2-2025-12-11verbose option in fit_bt_model() and
summarize_bt_fit()