目录
- logging
- 超参数
- 模型和Tokenizer加载
- 数据处理
- 数据集加载与处理
- 训练
- 保存微调模型
- 参考
使用transformers在聊天指令数据集上使用LoRA对Phi-3语言模型进行微调,以改进会话理解和响应生成。
logging
日志记录:设置日志记录以跟踪训练过程。
import sys
import loggingimport datasets
from datasets import load_dataset
from peft import LoraConfig
import torch
import transformers
from trl import SFTTrainer
from transformers import AutoModelForCausalLM, AutoTokenizer, TrainingArguments, BitsAndBytesConfig# Logging setup (you can customize this as needed)
logging.basicConfig(format="%(asctime)s - %(levelname)s - %(name)s - %(message)s",datefmt="%Y-%m-%d %H:%M:%S",handlers=[logging.StreamHandler(sys.stdout)],
)
logger = logging.getLogger(__name__)
超参数
超参数:定义两个字典,training_config
和peft_config
,分别存储用于训练和PEFT(Parameter-Efficient Fine-Tuning)的超参数。
训练参数:从training_config字典中创建一个TrainingArguments
对象。
PEFT配置:从peft_config
字典创建一个LoraConfig
对象,指定LoRA (Low-Rank Adaptation)设置以进行有效的微调。
# Training hyperparameters
training_config = {"bf16": True, # Use mixed precision"do_eval": False,"learning_rate": 5.0e-06,"log_level": "info","logging_steps": 20,"logging_strategy": "steps","lr_scheduler_type": "cosine","num_train_epochs": 1