Retire the Qwen AR pipeline
This commit is contained in:
1 parent
5773942c8f
commit
1de78fa3ef
22 files changed
+6429
-667
No files matched your search
@@ -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) => {
|
||||
|
||||
Reference in new issue
Block a user