Support DeepSeek V4 Flash 0731
This commit is contained in:
@@ -6,7 +6,7 @@ impl App {
|
||||
let legacy_mtp_toggle: Option<fn(bool) -> Message> = self
|
||||
.preference_draft
|
||||
.acceleration_model
|
||||
.supports_dspark()
|
||||
.supports_legacy_mtp()
|
||||
.then_some(Message::PreferenceLegacyMtpChanged);
|
||||
let legacy_mtp = hint(
|
||||
toggle(self.preference_draft.legacy_mtp_enabled)
|
||||
@@ -36,6 +36,11 @@ impl App {
|
||||
.acceleration_model
|
||||
.supports_dspark()
|
||||
.then_some(Message::PreferenceDsparkStrictChanged);
|
||||
let dspark_exact_toggle: Option<fn(bool) -> Message> = self
|
||||
.preference_draft
|
||||
.acceleration_model
|
||||
.supports_dspark()
|
||||
.then_some(Message::PreferenceDsparkExactSamplingChanged);
|
||||
let effective = self
|
||||
.preference_draft
|
||||
.effective_for(
|
||||
@@ -74,7 +79,7 @@ impl App {
|
||||
text_input("Automatic", &self.preference_draft.directional_steering_ffn);
|
||||
let mut steering_attn = text_input("0", &self.preference_draft.directional_steering_attn);
|
||||
let mut dspark_confidence = text_input(
|
||||
"0.9 (DS4 default)",
|
||||
"0.6 (DS4 default)",
|
||||
&self.preference_draft.dspark_confidence_threshold,
|
||||
);
|
||||
if self.preference_draft.model != ModelChoice::Glm52 {
|
||||
@@ -509,7 +514,7 @@ impl App {
|
||||
dspark,
|
||||
preference_input_row(
|
||||
"DSpark confidence threshold",
|
||||
"How sure the draft model must be, from 0 to 1, before its token is handed to the verifier. Lower forwards more guesses for more speed and more rejected work; blank uses DS4's 0.9.",
|
||||
"How sure the draft model must be, from 0 to 1, before its token is handed to the verifier. Lower forwards more guesses for more speed and more rejected work; blank uses DS4's 0.6, or 0.8 for exact sampling.",
|
||||
dspark_confidence,
|
||||
),
|
||||
hint(
|
||||
@@ -518,6 +523,12 @@ impl App {
|
||||
.on_toggle_maybe(dspark_strict_toggle),
|
||||
"Lets the draft model only propose, never decide: every token is sampled by the full model. Gives up some of the speedup in exchange for output identical to non-speculative decoding.",
|
||||
),
|
||||
hint(
|
||||
toggle(self.preference_draft.dspark_exact_sampling)
|
||||
.label("Use exact DSpark sampling")
|
||||
.on_toggle_maybe(dspark_exact_toggle),
|
||||
"For non-zero temperatures, applies DS4's exact acceptance and corrected rejection sampling. Off uses the faster opportunistic mode: sample a boundary token, then accept DSpark tokens only while they match the target's greedy path.",
|
||||
),
|
||||
text(if self.preference_draft.acceleration_model.supports_dspark() {
|
||||
"Legacy MTP and DSpark use separate managed support artifacts; entering a DSpark threshold or enabling strict mode selects DSpark."
|
||||
} else if self.preference_draft.acceleration_model == ModelChoice::Glm52 {
|
||||
@@ -532,7 +543,7 @@ impl App {
|
||||
|engine| {
|
||||
let settings = engine.speculative;
|
||||
format!(
|
||||
"Engine: MTP draft {} • margin {} • legacy MTP {} • GLM MTP {} • timing {} • DSpark {} • confidence {}{} • target-only {}",
|
||||
"Engine: MTP draft {} • margin {} • legacy MTP {} • GLM MTP {} • timing {} • DSpark {} • confidence {}{} • target-only {} • exact sampling {}",
|
||||
settings.mtp_draft_tokens,
|
||||
settings.mtp_margin,
|
||||
if self.preference_draft.legacy_mtp_enabled { "on" } else { "off" },
|
||||
@@ -542,6 +553,7 @@ impl App {
|
||||
settings.dspark_confidence_threshold,
|
||||
if settings.dspark_confidence_threshold_set { " explicit" } else { " default" },
|
||||
if settings.dspark_strict { "on" } else { "off" },
|
||||
if settings.dspark_exact_sampling { "on" } else { "off" },
|
||||
)
|
||||
},
|
||||
))
|
||||
|
||||
Reference in New Issue
Block a user