Skip to main content

Model

Trait Model 

Source
pub trait Model: Send + Sync {
    type Config: ModelConfig;

    // Required methods
    fn new(config: Self::Config) -> Result<Self>
       where Self: Sized;
    fn from_weights(config: Self::Config, weights: ModelWeights) -> Result<Self>
       where Self: Sized;
    fn forward(&self, inputs: &ModelInputs) -> Result<ModelOutputs>;
    fn generate(
        &self,
        prompt: &str,
        config: &GenerationConfig,
    ) -> Result<String>;
    fn config(&self) -> &Self::Config;
    fn memory_requirements(&self) -> MemoryRequirements;
    fn to_device(&mut self, device: &Device) -> Result<()>;
}
Expand description

Core model trait - the single interface all models implement

Required Associated Types§

Source

type Config: ModelConfig

Model configuration type

Required Methods§

Source

fn new(config: Self::Config) -> Result<Self>
where Self: Sized,

Create new model instance

Source

fn from_weights(config: Self::Config, weights: ModelWeights) -> Result<Self>
where Self: Sized,

Load model with weights

Source

fn forward(&self, inputs: &ModelInputs) -> Result<ModelOutputs>

Forward pass - core inference method

Source

fn generate(&self, prompt: &str, config: &GenerationConfig) -> Result<String>

Generate text (high-level interface)

Source

fn config(&self) -> &Self::Config

Get model configuration

Source

fn memory_requirements(&self) -> MemoryRequirements

Get model memory requirements

Source

fn to_device(&mut self, device: &Device) -> Result<()>

Move model to device

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl Model for ArcticModelV2

Source§

impl Model for BLOOMModelV2

Source§

impl Model for BaichuanModelV2

Source§

impl Model for BertModelV2

Source§

impl Model for CLIPModelV2

Source§

impl Model for ChatGLMModelV2

Source§

impl Model for CodeLlamaModelV2

Source§

impl Model for CogVLMModelV2

Source§

impl Model for DbrxModelV2

Source§

impl Model for DeepSeekMoEModelV2

Source§

impl Model for DeepSeekModelV2

Source§

impl Model for EncodecModelV2

Source§

impl Model for FalconModelV2

Source§

impl Model for FlorenceModelV2

Source§

impl Model for GPT2ModelV2

Source§

impl Model for GPTJModelV2

Source§

impl Model for GPTNeoXModelV2

Source§

impl Model for GemmaModelV2

Source§

impl Model for GraniteModelV2

Source§

impl Model for GrokModelV2

Source§

impl Model for HuBERTModelV2

Source§

impl Model for IdeficsModelV2

Source§

impl Model for InternLMModelV2

Source§

impl Model for InternVLModelV2

Source§

impl Model for JambaModelV2

Source§

impl Model for LLaVAModelV2

Source§

impl Model for LlamaModelV2

Source§

impl Model for MPTModelV2

Source§

impl Model for MambaModelV2

Source§

impl Model for MiniCPMModelV2

Source§

impl Model for MistralModelV2

Source§

impl Model for MixtralModelV2

Source§

impl Model for MusicGenModelV2

Source§

impl Model for OPTModelV2

Source§

impl Model for OlmoModelV2

Source§

impl Model for Phi3VisionModelV2

Source§

impl Model for PhiModelV2

Source§

impl Model for Qwen2VLModelV2

Source§

impl Model for QwenModelV2

Source§

impl Model for RecurrentGemmaModelV2

Source§

impl Model for Rwkv4ModelV2

Source§

impl Model for Rwkv6ModelV2

Source§

impl Model for StarCoderModelV2

Source§

impl Model for T5ModelV2

Source§

impl Model for Wav2Vec2ModelV2

Source§

impl Model for WhisperModelV2

Source§

impl Model for YiModelV2