pub trait MultiSampler: Sampler {
// Required methods
fn sample_multiple(
&self,
logits: &[f32],
num_samples: usize,
rng: &mut dyn RngCore,
) -> Result<Vec<TokenId>, FerrumError>;
fn sample_with_probabilities(
&self,
logits: &[f32],
rng: &mut dyn RngCore,
) -> Result<(TokenId, Vec<f32>), FerrumError>;
}Expand description
Multi-sample capability for beam search and parallel sampling
Required Methods§
Sourcefn sample_multiple(
&self,
logits: &[f32],
num_samples: usize,
rng: &mut dyn RngCore,
) -> Result<Vec<TokenId>, FerrumError>
fn sample_multiple( &self, logits: &[f32], num_samples: usize, rng: &mut dyn RngCore, ) -> Result<Vec<TokenId>, FerrumError>
Sample multiple tokens at once
Sourcefn sample_with_probabilities(
&self,
logits: &[f32],
rng: &mut dyn RngCore,
) -> Result<(TokenId, Vec<f32>), FerrumError>
fn sample_with_probabilities( &self, logits: &[f32], rng: &mut dyn RngCore, ) -> Result<(TokenId, Vec<f32>), FerrumError>
Sample with probabilities for each token