Ventor-QTest: Threat-Model-Driven Verification of Vendor-Hosted LLM APIs
Organizations: Tencent Zhuque Lab
Abstract
As large language models become increasingly widespread, third-party providers that deploy open-weight models have become an important part of the ecosystem. Auditing the quality of their inference APIs is therefore an open problem. We formalize hosted model routing as a stochastic process and propose \mbox{Ventor-QTest}, a composite black-box audit that requires no probability information from the target API. Its repeated-request component sends each frozen constrained context to the target multiple times, reconstructs a categorical output distribution from the returned text counts, and reports average fidelity loss (AFL) as a null-bias-corrected, within-window mean coarsened-KL statistic. Its long-sequence component uses independent runs to report extreme fidelity loss (EFL) through the empirical upper tail of a run-level reference-centered-surprisal statistic. Across three logprob-capable route conditions, AFL shows strong linear descriptive agreement with a logprob-derived coarsened-KL comparator. Across seven route snapshots, 20-run sequence probes reveal route-specific EFL variation. AFL and EFL have little detectable route-level association with GPQA-Diamond accuracy. In contrast, pronounced EFL coincides with a decline in Terminal-Bench pass rate as task exposure increases. This pattern may arise because correctness in long-horizon tasks is more sensitive to extreme fidelity loss. These results motivate reporting AFL and EFL jointly, particularly when auditing long-horizon agentic tasks. The open-source implementation is available at https://github.com/Tencent/AI-Infra-Guard/tree/main/services/api_checker/ventor_qtest.
Figures & tables
| Object | Meaning | Directly estimated here? |
|---|---|---|
| Cross-window mean latent coarsened KL | No; most routes have one repeated-request window | |
| AFL: within-window, across-context bias-corrected coarsened-KL statistic | Yes | |
| Expected excess maximum of latent window KL | No | |
| , | EFL: run-level centered-surprisal statistic and its observed empirical upper tail | Yes; neither is KL |
| Route | [95% CrI] | Logprob comparator | Holm |
|---|---|---|---|
| Official self-check | [ , ] | 0.515 | |
| Aliyun 0731 | [ , ] | – | 0.00035 |
| Ark 0731 | [ , ] | – | 0.00035 |
| Baidu Qianfan 0731 | [ , ] | – | 0.00035 |
| StreamLake | [ , ] | 0.00035 | |
| DeepInfra FP8 | [ , ] | – | 0.00035 |
| Route | Median | SD | Empirical | Maximum |
|---|---|---|---|---|
| Official self-check | 0.00545 | 0.00835 | 0.02484 | 0.03498 |
| Aliyun 0731 | 0.00754 | 0.00819 | 0.02190 | 0.02924 |
| Ark 0731 | 0.00679 | 0.00881 | 0.02633 | 0.02901 |
| Baidu Qianfan 0731 | 0.00612 | 0.00534 | 0.01693 | 0.01975 |
| StreamLake | 0.00409 | 0.01390 | 0.04817 | 0.04969 |
| DeepInfra FP8 | 0.00517 | 0.00806 | 0.01996 | 0.03497 |
| Method | Target calls | Reference/setup | Audit objective and limitation |
|---|---|---|---|
| Gao et al. [ 17 ] | 200–250 per single test; 10 tests/verdict | Matched 200–250 reference samples per test | Distributional equality/distance; adaptive routing not explicit |
| RUT [ 58 ] | 100 | 10,000 local generations and logits | Rank uniformity on user-like prompts; probabilistic substitution model |
| LLMmap [ 39 ] | 3–8 online | About 1,200 sourcing calls per reference model over train/test; trained classifier | Closed-set version identity; analyzes query-informed defenses |
| FLIPS [ 42 ] | 8 | 40 extraction calls; trained classifier | Closed/open-set instance identity; assumes a non-adaptive target |
| KVV [ 34 , 36 ] | 4,000 | Official responses and labels | Functional behavior; a finite suite can be recognized |
| Ventor-QTest | Mean: 600 one-token; run level: 20 sequences | Mean: 12 shared probability calls; run level: 10,000 prefix-rescoring calls/route | Finite-probe mean statistic plus empirical run tail; no guarantee against perfect recognition |
Appendix figures & tables5 assets
Supplementary material from the paper’s appendix.
Appendix
| Route snapshot | Access path | Precision status | Target logprobs |
|---|---|---|---|
| Official self-check | Official API | not declared | yes |
| Aliyun 0731 | Aliyun Model Studio | not declared | no |
| Ark 0731 | Volcengine Ark | not declared | no |
| Baidu Qianfan 0731 | Baidu Qianfan | not declared | no |
| StreamLake | OpenRouter | not declared | yes |
| DeepInfra FP8 | OpenRouter | provider-declared FP8 | no |
| Route | Passes | Pass rate | Errors | |
|---|---|---|---|---|
| Official | 48 | 53.9% | 22 | |
| Aliyun 0731 | 45 | 50.6% | 26 | |
| Ark 0731 | 53 | 59.6% | 14 | |
| Baidu Qianfan 0731 | 38 | 42.7% | 32 | |
| StreamLake | 52 | 58.4% | 22 | |
| DeepInfra FP8 | 46 | 51.7% | 23 |
| Exposure quartile | Tasks | DO pass rate | Comparator pass rate | DO agent timeouts |
|---|---|---|---|---|
| Q1 (shortest) | 23 | 82.6% | 76.5% | 4 |
| Q2 | 22 | 31.8% | 62.7% | 10 |
| Q3 | 22 | 18.2% | 37.3% | 16 |
| Q4 (longest) | 22 | 13.6% | 28.2% | 17 |
| Minimum mean coarsened KL, | Repeats/context, | Target calls/route | |
| 159 | 1,908 | 26 | |
| 79 | 948 | 25 | |
| 52 | 624 | 24 | |
| 30 | 360 | 21 | |
| 15 | 180 | 19 |
LLM Auditing
Large language model auditing tests models and deployed systems for bias, safety, privacy, reliability, and provenance using behavioral and internal evidence.
See all 621 papers