pub struct CohortUsage {
pub requests: u64,
pub input_tokens: u64,
pub output_tokens: u64,
pub sum_sq_output: u64,
pub prompt_tokens: u64,
pub sum_sq_prompt: u64,
}Expand description
Cumulative holdout cohort totals. Keyed by arm name: "control" |
"treatment" for output savings (#895 Track B), "compression:control" |
"compression:treatment" for input compression (#1905). The average tokens
per turn are *_tokens / requests. Only populated while a holdout is active.
Fields§
§requests: u64§input_tokens: u64§output_tokens: u64§sum_sq_output: u64Sum of squared per-turn output tokens, enabling an online sample variance
(and therefore a confidence interval) without retaining every turn.
#[serde(default)] keeps pre-#895 files loadable.
prompt_tokens: u64Whole prompt per turn — billed input plus cache reads and writes (#1905).
Compression shrinks the prompt wherever it is billed, so the
input-compression comparison uses this, not input_tokens alone.
#[serde(default)] keeps earlier files loadable.
sum_sq_prompt: u64Sum of squared per-turn prompt_tokens, for its confidence interval.
Implementations§
Source§impl CohortUsage
impl CohortUsage
Sourcepub fn merge(&mut self, other: &Self)
pub fn merge(&mut self, other: &Self)
Adds another cohort’s running totals — every field, so the sums of squares (and with them the variance / CI) survive a proxy restart.
Sourcepub fn avg_output(&self) -> Option<f64>
pub fn avg_output(&self) -> Option<f64>
Average output tokens per turn, or None with no observations.
Sourcepub fn variance_output(&self) -> Option<f64>
pub fn variance_output(&self) -> Option<f64>
Unbiased sample variance of per-turn output tokens, or None with < 2
observations. Computed from the running sum / sum-of-squares (clamped at
0 to absorb floating-point error on near-constant samples).
Trait Implementations§
Source§impl Clone for CohortUsage
impl Clone for CohortUsage
Source§impl Debug for CohortUsage
impl Debug for CohortUsage
Source§impl Default for CohortUsage
impl Default for CohortUsage
Source§impl<'de> Deserialize<'de> for CohortUsage
impl<'de> Deserialize<'de> for CohortUsage
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for CohortUsage
impl PartialEq for CohortUsage
Source§impl Serialize for CohortUsage
impl Serialize for CohortUsage
impl StructuralPartialEq for CohortUsage
Auto Trait Implementations§
impl Forget for CohortUsage
impl Freeze for CohortUsage
impl Move for CohortUsage
impl RefUnwindSafe for CohortUsage
impl Send for CohortUsage
impl Sync for CohortUsage
impl Unpin for CohortUsage
impl UnsafeUnpin for CohortUsage
impl UnwindSafe for CohortUsage
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more