pub trait InferenceBackend: Send + Sync {
// Required methods
fn name(&self) -> &str;
fn load_model(&mut self, path: &Path) -> Result<f64>;
fn generate(
&mut self,
prompt: &str,
max_tokens: usize,
) -> Result<GenerationResult>;
fn memory_usage(&self) -> u64;
fn unload(&mut self);
}Expand description
Trait for inference backends that can be benchmarked
Required Methods§
Sourcefn load_model(&mut self, path: &Path) -> Result<f64>
fn load_model(&mut self, path: &Path) -> Result<f64>
Load model from path, return load time in milliseconds
Sourcefn generate(
&mut self,
prompt: &str,
max_tokens: usize,
) -> Result<GenerationResult>
fn generate( &mut self, prompt: &str, max_tokens: usize, ) -> Result<GenerationResult>
Generate text from prompt, return generation result
Sourcefn memory_usage(&self) -> u64
fn memory_usage(&self) -> u64
Get current memory usage in bytes
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".