Files
DS4Server/docs/issue106-final-primary/baseline-save.patch
T

23 lines
1.6 KiB
Diff

--- a/src/engine/metal/qwen_mtplx/issue103_analysis.rs
+++ b/src/engine/metal/qwen_mtplx/issue103_analysis.rs
@@ -407,6 +407,19 @@
"{}",
serde_json::json!({"case":"mtp_final","exit":if stop_exit {"first_primary_stop"} else {"max_tokens"},"depth":depth,"temperature":temperature,"prompt_ids":ids,"tokens":result.tokens,"key_length":key.len(),"restored_cached_tokens":reused,"trunk_offsets":offsets,"mtp_offset":execution.mtp_offset().unwrap(),"pending":result.pending,"final_state_error":result.final_state_error})
);
+ if depth == 1 && temperature == 0.6 && !stop_exit {
+ let path = std::env::var_os("DS4_ISSUE106_BAD_CHECKPOINT").unwrap();
+ let metadata = crate::engine::qwen::QwenMetadata::open(&root, true).unwrap();
+ let identity = super::session_checkpoint::Identity {
+ model: metadata.checkpoint_identity(), context: 4096,
+ vocabulary: metadata.tokenizer.vocab_size() as u32, mtp: true,
+ };
+ let mut live = super::request::LiveSession {
+ current: Some(snapshot), ..Default::default()
+ };
+ live.save_checkpoint(std::path::Path::new(&path), identity,
+ [106; 32], &execution.streams, execution.stream, |_| {}, || false).unwrap();
+ }
assert_eq!(offsets, vec![3; 12]);
assert_eq!(reused, 4);
assert!(result.pending.is_none() && result.final_state_error.is_none());