Retire the Qwen AR pipeline

This commit is contained in:
Georg Bauer committed 2026-10-04 12:49:43 +02:00
1 parent 5773942c8f
commit 1de78fa3ef
22 files changed
+6429 -667

No files matched your search

+53 -3
View File
@@ -53,7 +53,6 @@ pub(super) fn server_overrides(mtp: bool, get: impl Fn(&str) -> Option<String>)
result.insert("MTPLX_SKIP_VERIFY_SNAPSHOT", "0");
}
for key in [
"MTPLX_AR_PIPELINE",
"MTPLX_FAMILY_CAPTURE_COMMIT",
"MTPLX_FUSED_HC_V3",
"MTPLX_FUSED_GDN_INPROJ",
@@ -137,7 +136,6 @@ pub(super) fn turn_options(
max_tokens: usize::MAX,
seed: 0,
stop_tokens: &[],
pipeline: flag("MTPLX_AR_PIPELINE"),
sync_eval: !flag("MTPLX_ASYNC_AR")
|| get("MTPLX_EVAL_AUDIT").is_some_and(|s| !s.is_empty()),
return_hidden: false,
@@ -182,6 +180,42 @@ pub(super) fn turn_options(
))
}
#[test]
fn retired_ar_pipeline_flag_cannot_change_server_or_turn_policy() {
let mut settings = crate::settings::effective_settings(
crate::model::ModelChoice::Qwen38FlashNext,
&crate::settings::GenerationPreferences::default(),
&crate::settings::RuntimePreferences::default(),
std::path::Path::new("/unused-policy-models"),
)
.unwrap()
.engine;
settings.speculative.glm_mtp = false;
for legacy in [None, Some("0"), Some("1")] {
let lookup = |key: &str| {
(key == "MTPLX_AR_PIPELINE")
.then_some(legacy)
.flatten()
.map(str::to_owned)
};
let overrides = server_overrides(false, lookup);
assert_eq!(overrides, server_overrides(false, |_| None));
let (options, _) = turn_options(&settings, |key| {
assert_ne!(key, "MTPLX_AR_PIPELINE", "retired option was read");
overrides
.get(key)
.map(|s| (*s).to_owned())
.or_else(|| lookup(key))
})
.unwrap();
let DecodeOptions::Ar(ar) = options.decode else {
panic!("AR request changed modes");
};
assert!(ar.sync_eval && ar.capture_final_state);
assert!(!ar.return_hidden);
}
}
#[test]
#[ignore = "requires DS4_QWEN38_POLICY_REFERENCE from pinned MTPLX; CPU-only"]
fn qwen_server_policy_matches_original_functions() {
@@ -198,6 +232,23 @@ fn qwen_server_policy_matches_original_functions() {
let mtp = case["mtp"].as_bool().unwrap();
let lookup = |key: &str| case["environment"][key].as_str().map(str::to_owned);
let overrides = server_overrides(mtp, lookup);
if case["server_only"] == true {
// This scoped comparison owns AR retirement and the existing
// defaults. New upstream features are outside #104; retain the
// complete legacy policy comparison below for its own oracle.
assert!(
!case["overrides"]
.as_object()
.unwrap()
.contains_key("MTPLX_AR_PIPELINE")
);
assert!(!overrides.contains_key("MTPLX_AR_PIPELINE"));
for (key, value) in &overrides {
assert_eq!(case["overrides"][key], *value, "default {key} case {count}");
}
count += 1;
continue;
}
assert_eq!(
serde_json::to_value(&overrides).unwrap(),
case["overrides"],
@@ -253,7 +304,6 @@ fn qwen_server_policy_matches_original_functions() {
match actual.decode {
DecodeOptions::Ar(o) => {
assert!(!mtp);
assert_eq!(o.pipeline, expected["pipeline"]);
assert_eq!(o.sync_eval, expected["sync_eval"]);
}
DecodeOptions::Mtp(o) => {