Views
No views yet
GPU: 8 × NVIDIA A5000 (24GB VRAM)
分布式: DeepSpeed ZeRO Stage 11seq_length: 2048 # 序列长度
2batch_size: 2 # 每卡批次大小
3gradient_accumulation_steps: 16 # 梯度累积
4effective_batch_size: 256 # 2 × 8 × 16
5num_train_epochs: 1 # 训练轮数
6learning_rate: 1e-5 # 学习率
7lr_scheduler_type: cosine # 余弦调度
8warmup_ratio: 0.1 # 预热比例
9bf16: true # BF16 混合精度
10gradient_checkpointing: true # 梯度检查点
11packing: true # 序列打包1load_in_4bit: True # 4-bit 量化
2bnb_4bit_quant_type: nf4 # NF4 量化
3bnb_4bit_compute_dtype: bfloat16 # BF16 计算1r: 32 # LoRA 秩
2lora_alpha: 8 # 缩放因子 (alpha/r = 0.25)
3target_modules: [q_proj, k_proj] # Q, K 投影层
4bias: none # 不训练 bias
5trainable_params: ~26.5MB # 可训练参数 (~0.2%)1import torch
2from peft import PeftModel
3from transformers import AutoModelForCausalLM, AutoTokenizer
4
5# 加载基础模型
6base_model = AutoModelForCausalLM.from_pretrained(
7 "meta-llama/Llama-3.1-8B",
8 torch_dtype=torch.bfloat16,
9 device_map="auto"
10)
11
12# 加载 LoRA 适配器
13model = PeftModel.from_pretrained(base_model, "/path/to/pretrained-lora")
14tokenizer = AutoTokenizer.from_pretrained("/path/to/pretrained-lora")
15
16# 合并适配器(可选)
17model = model.merge_and_unload()1inputs = tokenizer("高血压是一种", return_tensors="pt").to(model.device)
2outputs = model.generate(**inputs, max_new_tokens=128)
3print(tokenizer.decode(outputs[0]))pretrained-lora/
├── adapter_config.json # LoRA 配置
├── adapter_model.safetensors # LoRA 权重 (~26.5MB)
├── special_tokens_map.json # 特殊 token 映射
├── tokenizer.json # 分词器
└── tokenizer_config.json # 分词器配置