pub struct ColumnParallelLayer { /* private fields */ }Expand description
This layer has a weight that is parallelized along the output dimension, taking the “full” input dimension.
Implementations§
Source§impl ColumnParallelLayer
impl ColumnParallelLayer
pub fn new_with_shard( in_dim: usize, out_dim: usize, config: &Option<QuantizedConfig>, bias: bool, comm: &Arc<Comm>, shard: Shard, vb: ShardedVarBuilder, ) -> Result<Arc<dyn QuantMethod>>
pub fn new( in_dim: usize, out_dim: usize, config: &Option<QuantizedConfig>, bias: bool, comm: &Arc<Comm>, vb: ShardedVarBuilder, ) -> Result<Arc<dyn QuantMethod>>
pub fn new_matformer( in_dim: usize, out_dim: usize, orig_intermediate_size: usize, config: &Option<QuantizedConfig>, bias: bool, comm: &Arc<Comm>, vb: ShardedVarBuilder, ) -> Result<Arc<dyn QuantMethod>>
pub fn new_merged( in_dim: usize, out_dim: usize, chunks: usize, config: &Option<QuantizedConfig>, bias: bool, comm: &Arc<Comm>, vb: ShardedVarBuilder, ) -> Result<Vec<Arc<dyn QuantMethod>>>
Trait Implementations§
Source§impl Debug for ColumnParallelLayer
impl Debug for ColumnParallelLayer
Source§impl QuantMethod for ColumnParallelLayer
impl QuantMethod for ColumnParallelLayer
fn new(_method: QuantMethodConfig) -> Result<Self>where
Self: Sized,
Source§fn forward(&self, a: &Tensor) -> Result<Tensor>
fn forward(&self, a: &Tensor) -> Result<Tensor>
Compute matmul of
self and a. self should contain the weights.Source§fn add_delta_w(&self, delta: &Tensor) -> Result<Arc<dyn QuantMethod>>
fn add_delta_w(&self, delta: &Tensor) -> Result<Arc<dyn QuantMethod>>
Add a delta weight from LoRA to the weights. This should be prescaled with alpha.
fn dequantize_w(&self) -> Result<Tensor>
Source§fn dtype_and_device(&self) -> (DType, Device)
fn dtype_and_device(&self) -> (DType, Device)
Weight dtype and device
Source§fn begin_track_stats(&mut self) -> Result<()>
fn begin_track_stats(&mut self) -> Result<()>
Begin tracking stats into an ImatrixLayerStats
Source§fn end_track_stats(&self) -> Result<Tensor>
fn end_track_stats(&self) -> Result<Tensor>
End tracking stats into an ImatrixLayerStats. Returns the computed imatrix.
Source§fn quantized_act_type(&self) -> Option<DType>
fn quantized_act_type(&self) -> Option<DType>
If a quantized method, return the activation dtype.
fn unquant_weight_bias(&self) -> Option<(Tensor, Option<Tensor>)>
Source§fn apply_isq(
self: Arc<Self>,
dtype: Option<IsqType>,
device: Device,
n_quantized: &AtomicUsize,
imatrix_weight: Option<Vec<f32>>,
guard: QuantizeOntoGuard,
) -> Result<Arc<dyn QuantMethod>>
fn apply_isq( self: Arc<Self>, dtype: Option<IsqType>, device: Device, n_quantized: &AtomicUsize, imatrix_weight: Option<Vec<f32>>, guard: QuantizeOntoGuard, ) -> Result<Arc<dyn QuantMethod>>
If the quant is backed by a qmatmul.
fn is_distributed(&self) -> Option<DistributedKind>
Source§fn forward_autocast(&self, a: &Tensor) -> Result<Tensor>
fn forward_autocast(&self, a: &Tensor) -> Result<Tensor>
Compute matmul of
self and a. self should contain the weights.
Automatically cast to required quantization activation type and backSource§impl QuantizedSerde for ColumnParallelLayer
impl QuantizedSerde for ColumnParallelLayer
fn isq_serde_supported(&self) -> bool
fn name(&self) -> &'static str
fn serialize(&self) -> Result<Cow<'_, [u8]>>
fn deserialize(
data: Cow<'_, [u8]>,
device: &Device,
_comm: &Arc<Comm>,
guard: QuantizeOntoGuard,
) -> Result<Arc<dyn QuantMethod>>where
Self: Sized,
fn deserialize_ext_bias(
_data: Cow<'_, [u8]>,
_device: &Device,
_guard: QuantizeOntoGuard,
) -> Result<(Arc<dyn QuantMethod>, Option<Tensor>)>where
Self: Sized,
Auto Trait Implementations§
impl Freeze for ColumnParallelLayer
impl !RefUnwindSafe for ColumnParallelLayer
impl Send for ColumnParallelLayer
impl Sync for ColumnParallelLayer
impl Unpin for ColumnParallelLayer
impl UnsafeUnpin for ColumnParallelLayer
impl !UnwindSafe for ColumnParallelLayer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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