@@ -24,6 +24,10 @@ fn default_max_tokens() -> u32 {
2424 16
2525}
2626
27+ fn default_p_less ( ) -> bool {
28+ false
29+ }
30+
2731///
2832/// Parameters for detecting repetitive N-gram patterns in output tokens.
2933///
@@ -96,6 +100,9 @@ pub struct EngineCoreSamplingParams {
96100 pub prompt_logprobs : Option < i32 > ,
97101 /// Minimum probability threshold for token sampling.
98102 pub min_p : f32 ,
103+ /// Whether to use p-less sampling. p-less sampling is hyperparameter free.
104+ #[ serde( default = "default_p_less" ) ]
105+ pub p_less : bool ,
99106 /// Frequency penalty applied by the sampler.
100107 pub frequency_penalty : f32 ,
101108 /// Presence penalty applied by the sampler.
@@ -161,6 +168,7 @@ impl EngineCoreSamplingParams {
161168 logprobs : None ,
162169 prompt_logprobs : None ,
163170 min_p : 0.0 ,
171+ p_less : false ,
164172 frequency_penalty : 0.0 ,
165173 presence_penalty : 0.0 ,
166174 repetition_penalty : 1.0 ,
@@ -231,6 +239,7 @@ mod tests {
231239 assert_eq ! ( sampling. max_tokens, 16 ) ;
232240 assert_eq ! ( sampling. min_tokens, 0 ) ;
233241 assert_eq ! ( sampling. min_p, 0.0 ) ;
242+ assert_eq ! ( sampling. p_less, false ) ;
234243 assert_eq ! ( sampling. frequency_penalty, 0.0 ) ;
235244 assert_eq ! ( sampling. presence_penalty, 0.0 ) ;
236245 assert_eq ! ( sampling. repetition_penalty, 1.0 ) ;
0 commit comments