mlx_rs::nn

Struct Transformer

Source
pub struct Transformer { /* private fields */ }
Expand description

Implements a standard Transformer model.

The implementation is based on “Attention Is All You Need” https://arxiv.org/abs/1706.03762.

The Transformer model contains an encoder and a decoder. The encoder processes the input sequence and the decoder generates the output sequence. The interaction between encoder and decoder happens through the attention mechanism.

Implementations§

Source§

impl Transformer

Source

pub fn new() -> Result<Self, <<Self as Buildable>::Builder as Builder<Self>>::Error>

Creates a new instance of Transformer.

Source§

impl Transformer

Source

pub const DEFAULT_DIMENSIONS: i32 = 512i32

Default value for dimensions

Source

pub const DEFAULT_NUM_HEADS: i32 = 8i32

Default value for num_heads

Source

pub const DEFAULT_ENCODER_LAYERS_COUNT: usize = 6usize

Default number of encoder layers

Source

pub const DEFAULT_DECODER_LAYERS_COUNT: usize = 6usize

Default number of decoder layers

Source

pub const DEFAULT_DROPOUT: f32 = 0f32

Default value for dropout

Source

pub const DEFAULT_NORM_FIRST: bool = false

Default value for activation

Trait Implementations§

Source§

impl Buildable for Transformer

Source§

type Builder = TransformerBuilder

The builder type for this buildable type
Source§

impl Builder<Transformer> for TransformerBuilder

Source§

type Error = TransformerBulidError

Error with building
Source§

fn build(self) -> Result<Transformer, Self::Error>

Build the type
Source§

impl Clone for Transformer

Source§

fn clone(&self) -> Transformer

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Transformer

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a, Input> Module<Input> for Transformer
where Input: Into<TransformerInput<'a>>,

Source§

type Error = Exception

Error type for the module.
Source§

type Output = Array

Output type of the module.
Source§

fn forward(&mut self, input: Input) -> Result<Self::Output, Self::Error>

Forward pass of the module.
Source§

fn training_mode(&mut self, mode: bool)

Set whether the module is in training mode. Read more
Source§

impl ModuleParameters for Transformer

Source§

fn freeze_parameters(&mut self, recursive: bool)

Freeze all parameters in the module.
Source§

fn unfreeze_parameters(&mut self, recursive: bool)

Unfreeze all parameters in the module.
Source§

fn parameters(&self) -> ModuleParamRef<'_>

Get references to the module parameters.
Source§

fn parameters_mut(&mut self) -> ModuleParamMut<'_>

Get mutable references to the module parameters.
Source§

fn trainable_parameters(&self) -> ModuleParamRef<'_>

Get references to the trainable parameters. A parameter is trainable if it is NOT frozen.
Source§

fn all_frozen(&self) -> Option<bool>

Check if all parameters in the module are frozen. Returns None if there are no parameters.
Source§

fn any_frozen(&self) -> Option<bool>

Check if any parameter in the module is frozen. Returns None if there are no parameters.
Source§

fn update(&mut self, parameters: ModuleParam)

Update the module parameters.
Source§

fn update_flattened(&mut self, flattened_parameters: FlattenedModuleParam)

Update the module parameters from a flattened representation.
Source§

impl Quantizable for Transformer

Source§

type Quantized = Transformer

The quantized type.
Source§

type QuantizationError = Exception

The error type for quantization.
Source§

fn try_into_quantized( self, group_size: i32, bits: i32, ) -> Result<Self::Quantized, Self::QuantizationError>

Quantize the module with the specified group size and number of bits.
Source§

const DEFAULT_GROUP_SIZE: i32 = 64i32

The default group size for quantization.
Source§

const DEFAULT_BITS: i32 = 4i32

The default number of bits for quantization.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> IntoOption<T> for T

Source§

fn into_option(self) -> Option<T>

Convert into an Option.
Source§

impl<T> IntoStrideBy for T

Source§

fn stride_by(self, stride: i32) -> StrideBy<T>

Create a stride indexing operation.
Source§

impl<T> ModuleParametersExt for T

Source§

fn eval(&self) -> Result<(), Exception>

Evaluate the module parameters.
Source§

fn load_safetensors(&mut self, path: impl AsRef<Path>) -> Result<(), IoError>

Load module parameters from a safetensors file.
Source§

fn save_safetensors(&self, path: impl AsRef<Path>) -> Result<(), IoError>

Save module parameters to a file in safetensors format.
Source§

impl<T> Parameter for T

Source§

fn freeze(&mut self, recursive: bool)

Freeze the parameter.
Source§

fn unfreeze(&mut self, recursive: bool)

Unfreeze the parameter.
Source§

fn is_frozen(&self) -> Option<bool>

Check if the parameter is frozen. Returns None if the parameter is a module that has no parameters.
Source§

fn as_nested_value(&self) -> NestedValue<Rc<str>, &Array>

Get the parameter as a nested value.
Source§

fn as_nested_value_mut(&mut self) -> NestedValue<Rc<str>, &mut Array>

Get the parameter as a mutable nested value.
Source§

fn as_trainable_nested_value(&self) -> Option<NestedValue<Rc<str>, &Array>>

Get the parameter as a nested value if it is trainable.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> Updatable for T

Source§

fn updatable_states(&self) -> impl IntoIterator<Item = &Array>

Returns a list of references to the updatable states. Read more
Source§

fn updatable_states_mut(&mut self) -> impl IntoIterator<Item = &mut Array>

Returns a list of mutable references to the updatable states. Read more