pub trait InferenceModel {
// Required methods
fn forward_step(
&mut self,
input_ids: &Tensor,
seqlen_offset: usize,
) -> Result<Tensor>;
fn clear_cache(&mut self);
fn stop_token_ids(&self) -> Vec<u32>;
// Provided method
fn forward_initial(
&mut self,
input_ids: &Tensor,
seqlen_offset: usize,
data: MultiModalData,
) -> Result<Tensor> { ... }
}Required Methods§
Sourcefn forward_step(
&mut self,
input_ids: &Tensor,
seqlen_offset: usize,
) -> Result<Tensor>
fn forward_step( &mut self, input_ids: &Tensor, seqlen_offset: usize, ) -> Result<Tensor>
后续前向传播(自回归步骤)
Sourcefn clear_cache(&mut self)
fn clear_cache(&mut self)
清理 KV cache
Sourcefn stop_token_ids(&self) -> Vec<u32>
fn stop_token_ids(&self) -> Vec<u32>
获取结束 token IDs
Provided Methods§
Sourcefn forward_initial(
&mut self,
input_ids: &Tensor,
seqlen_offset: usize,
data: MultiModalData,
) -> Result<Tensor>
fn forward_initial( &mut self, input_ids: &Tensor, seqlen_offset: usize, data: MultiModalData, ) -> Result<Tensor>
初始前向传播(考虑多模态输入) 默认实现无特殊数据
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".