Load GLM vision weights on demand
This commit is contained in:
@@ -40,6 +40,7 @@ pub(super) struct PreferenceDraft {
|
||||
pub(super) warm_weights: bool,
|
||||
pub(super) glm_mtp: bool,
|
||||
pub(super) glm_mtp_timing: bool,
|
||||
pub(super) keep_vision_loaded: bool,
|
||||
pub(super) dspark_confidence_threshold: String,
|
||||
pub(super) dspark_strict: bool,
|
||||
pub(super) dspark_exact_sampling: bool,
|
||||
@@ -104,6 +105,7 @@ impl PreferenceDraft {
|
||||
warm_weights: execution.warm_weights,
|
||||
glm_mtp: speculative.glm_mtp,
|
||||
glm_mtp_timing: speculative.glm_mtp_timing,
|
||||
keep_vision_loaded: speculative.keep_vision_loaded,
|
||||
dspark_confidence_threshold: optional_string(speculative.dspark_confidence_threshold),
|
||||
dspark_strict: speculative.dspark_strict,
|
||||
dspark_exact_sampling: speculative.dspark_exact_sampling,
|
||||
@@ -213,6 +215,7 @@ impl PreferenceDraft {
|
||||
Ok(SpeculativePreferences {
|
||||
glm_mtp: self.glm_mtp,
|
||||
glm_mtp_timing: self.glm_mtp_timing,
|
||||
keep_vision_loaded: self.keep_vision_loaded,
|
||||
dspark_enabled: self.dspark_enabled,
|
||||
dspark_confidence_threshold: parse_optional_f32(
|
||||
"DSpark confidence",
|
||||
@@ -256,6 +259,7 @@ impl PreferenceDraft {
|
||||
self.dspark_enabled = speculative.dspark_enabled;
|
||||
self.glm_mtp = speculative.glm_mtp;
|
||||
self.glm_mtp_timing = speculative.glm_mtp_timing;
|
||||
self.keep_vision_loaded = speculative.keep_vision_loaded;
|
||||
self.dspark_confidence_threshold = optional_string(speculative.dspark_confidence_threshold);
|
||||
self.dspark_strict = speculative.dspark_strict;
|
||||
self.dspark_exact_sampling = speculative.dspark_exact_sampling;
|
||||
@@ -870,6 +874,11 @@ impl App {
|
||||
}
|
||||
self.preference_error = None;
|
||||
}
|
||||
Message::PreferenceKeepVisionLoadedChanged(value) => {
|
||||
self.preference_draft.keep_vision_loaded =
|
||||
self.preference_draft.acceleration_model == ModelChoice::Glm53Flash && value;
|
||||
self.preference_error = None;
|
||||
}
|
||||
Message::PreferenceDsparkConfidenceChanged(value) => {
|
||||
self.preference_draft.dspark_confidence_threshold = value;
|
||||
if self.preference_draft.acceleration_model.supports_dspark()
|
||||
@@ -1013,10 +1022,15 @@ mod tests {
|
||||
|
||||
draft.select_acceleration(ModelChoice::Glm52).unwrap();
|
||||
assert!(!draft.ssd_streaming);
|
||||
draft.select_acceleration(ModelChoice::Glm53Flash).unwrap();
|
||||
draft.keep_vision_loaded = true;
|
||||
draft
|
||||
.select_acceleration(ModelChoice::DeepSeekV4Flash0731)
|
||||
.unwrap();
|
||||
assert!(draft.ssd_streaming);
|
||||
assert!(!draft.keep_vision_loaded);
|
||||
draft.select_acceleration(ModelChoice::Glm53Flash).unwrap();
|
||||
assert!(draft.keep_vision_loaded);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
Reference in New Issue
Block a user