AWS Trainium & Inferentia 文档

LoRA for Neuron

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

LoRA for Neuron

为在 AWS Trainium 设备上进行分布式训练而优化的 LoRA(低秩自适应)实现。该模块提供高效的参数高效微调,并支持张量并行和序列并行。

PEFT 模型类

NeuronPeftModel

class optimum.neuron.peft.NeuronPeftModel

< >

( model: PreTrainedModel peft_config: PeftConfig adapter_name: str = 'default' autocast_adapter_dtype: bool = True **kwargs: Any )

NeuronPeftModelForCausalLM

class optimum.neuron.peft.NeuronPeftModelForCausalLM

< >

( model: PreTrainedModel peft_config: PeftConfig adapter_name: str = 'default' autocast_adapter_dtype: bool = True **kwargs: Any )

LoRA 层实现

基础 LoRA 层

class optimum.neuron.peft.tuners.lora.layer.NeuronLoraLayer

< >

( base_layer: Module ephemeral_gpu_offload: bool = False **kwargs )

并行线性 LoRA

class optimum.neuron.peft.tuners.lora.layer.ParallelLinear

< >

( base_layer adapter_name: str r: int = 0 lora_alpha: int = 1 lora_dropout: float = 0.0 fan_in_fan_out: bool = False is_target_conv_1d_layer: bool = False init_lora_weights: bool | str = True use_rslora: bool = False use_dora: bool = False lora_bias: bool = False **kwargs )

GQA QKV 列并行 LoRA

class optimum.neuron.peft.tuners.lora.layer.GQAQKVColumnParallelLinear

< >

( base_layer adapter_name: str r: int = 0 lora_alpha: int = 1 lora_dropout: float = 0.0 fan_in_fan_out: bool = False is_target_conv_1d_layer: bool = False init_lora_weights: bool | str = True use_rslora: bool = False use_dora: bool = False lora_bias: bool = False **kwargs )

并行嵌入 LoRA

class optimum.neuron.peft.tuners.lora.layer.ParallelEmbedding

< >

( base_layer: Module adapter_name: str r: int = 0 lora_alpha: int = 1 lora_dropout: float = 0.0 fan_in_fan_out: bool = False init_lora_weights: bool | str = True use_rslora: bool = False use_dora: bool = False lora_bias: bool = False **kwargs )

LoRA 模型

NeuronLoraModel

class optimum.neuron.peft.tuners.NeuronLoraModel

< >

( model config adapter_name low_cpu_mem_usage: bool = False )

实用函数

get_peft_model

optimum.neuron.peft.get_peft_model

< >

( model: PreTrainedModel peft_config: PeftConfig adapter_name: str = 'default' mixed: bool = False autocast_adapter_dtype: bool = True revision: str | None = None low_cpu_mem_usage: bool = False )

架构支持

Neuron LoRA 实现支持以下并行层类型

  • ColumnParallelLinear:用于沿输出维度拆分权重的层
  • RowParallelLinear:用于沿输入维度拆分权重的层
  • ParallelEmbedding:用于在不同等级之间分布的嵌入层
  • GQAQKVColumnParallelLinear:用于具有挑战性张量并行配置的分组查询注意力投影

每种层类型都有相应的 LoRA 实现,在增加低秩自适应功能的同时保持并行化策略。

主要功能

  • 分布式训练:完全支持张量并行和序列并行
  • 检查点合并:分片和合并检查点之间的自动转换
  • 权重转换:与模型权重转换规范无缝集成
  • 兼容性:适用于 Optimum Neuron 中所有支持的自定义建模架构