lora训练超参

lora训练超参

### model
model_name_or_path: pt_Qwen-Qwen2.5-7B-Instruct

### method
stage: sft
do_train: true
finetuning_type: lora
lora_target: all
lora_rank: 16
lora_alpha: 32
lora_dropout: 0.1
# additional_target: embed_tokens, lm_head
create_new_adapter: true

### dataset
dataset: v7.0_train_data
dataset_dir: data
template: qwen
cutoff_len: 4096
max_samples: 99999999
overwrite_cache: true
preprocessing_num_workers: 16

### output
output_dir: ./saves/Qwen2.5-7B-Instruct/lora/sft_2
logging_steps: 10
save_strategy: steps
save_steps: 500
plot_loss: true
overwrite_output_dir: true

### train
per_device_train_batch_size: 8
gradient_accumulation_steps: 1
learning_rate: 1.0e-4
num_train_epochs: 10
lr_scheduler_type: cosine
warmup_ratio: 0.1
#fp16: true
bf16: true
ddp_timeout: 180000000
seed: 42
optim: adamw_torch
gradient_checkpointing: true
# use_unsloth: true

### eval
do_eval: true
val_size: 0.02
per_device_eval_batch_size: 1
eval_strategy: steps
eval_steps: 500
### 使用 DeepSeek 进行 LoRA 训练 为了利用 DeepSeek 框架进行低秩适应(LoRA训练,需先理解该框架支持本地运行的相关配置[^2]。具体实现过程中,可以借鉴其他平台上的 LoRA 实现方法并迁移至 DeepSeek 中。 #### 准备工作环境 确保已安装必要的依赖库以及访问 DeepSeek 的最新版本仓库来获取最新的功能和支持。对于 LoRA 特定的支持,可照 Hugging Face 提供的状态前沿数高效微调(PEFT)库中的更新说明[^4]。 #### 配置模型与数据集 定义所使用的预训练基础模型,并准备用于微调的数据集。此部分操作通常涉及加载 tokenizer 和 dataset,在 PyTorch 或 TensorFlow 环境下完成初始化设置。 ```python from transformers import AutoTokenizer, TFAutoModelForSequenceClassification tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased') model = TFAutoModelForSequenceClassification.from_pretrained('bert-base-uncased', num_labels=2) ``` #### 应用 LoRA 修改 引入 PEFT 库提供的工具函数以修改原始模型架构,使其能够执行低秩分解从而减少所需调整的数量。这一步骤是使常规 Transformer 架构兼容于 LoRA 关键所在。 ```python import peft # 假设已经通过 pip 安装了peft包 lora_config = { "r": 8, "alpha": 16, } model = peft.get_peft_model(model, lora_config) ``` #### 开始训练过程 最后按照标准流程编写训练循环逻辑,包括但不限于定义优化器、损失函数等组件;同时注意保存最佳权重以便后续评估或部署使用。 ```python optimizer = tf.keras.optimizers.Adam(learning_rate=5e-5) def compute_loss(labels, logits): loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True) return loss_fn(labels, logits) for epoch in range(num_epochs): for batch in training_dataset: with tf.GradientTape() as tape: outputs = model(batch['input_ids'], attention_mask=batch['attention_mask']) loss = compute_loss(batch['labels'], outputs.logits) gradients = tape.gradient(loss, model.trainable_variables) optimizer.apply_gradients(zip(gradients, model.trainable_variables)) print(f'Epoch {epoch} completed.') ``` 上述代码片段展示了如何集成 LoRA 技术到基于 DeepSeek 平台的工作流当中。值得注意的是实际编码时还需考虑更多细节如调节等问题。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值