千问0.5b模型基于本地电脑cpu做LoRA数据集微调问答()
千问0.5b模型基于本地电脑cpu做LoRA数据集微调问答()
·
准备工作
下载并安装必要的库和工具,包括PyTorch、Transformers和Peft。确保Python环境为3.8或更高版本。
pip install torch transformers peft datasets
数据集准备
准备一个JSON格式的数据集,包含输入文本和对应的目标输出。数据集应分为训练集和验证集。
{
"train": [
{"input": "文本1", "output": "目标输出1"},
{"input": "文本2", "output": "目标输出2"}
],
"validation": [
{"input": "文本3", "output": "目标输出3"}
]
}
模型加载
加载千问0.5b模型的基础权重和分词器。确保模型文件已下载到本地。
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "Qwen/Qwen-0.5B"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
LoRA配置
配置LoRA参数,包括秩(rank)和缩放系数(alpha)。这些参数影响模型微调的效果和计算资源消耗。
from peft import LoraConfig
lora_config = LoraConfig(
r=8,
lora_alpha=16,
target_modules=["query_key_value"],
lora_dropout=0.05,
bias="none",
task_type="CAUSAL_LM"
)
训练设置
设置训练参数,包括批次大小、学习率和训练轮次。根据CPU性能调整这些参数以避免过载。
from transformers import TrainingArguments
training_args = TrainingArguments(
output_dir="./results",
per_device_train_batch_size=1,
learning_rate=2e-5,
num_train_epochs=3,
save_steps=1000,
logging_steps=100,
evaluation_strategy="steps"
)
训练启动
使用Trainer类启动训练过程。传入模型、训练参数、数据集和LoRA配置。
from transformers import Trainer
trainer = Trainer(
model=model,
args=training_args,
train_dataset=train_dataset,
eval_dataset=val_dataset,
tokenizer=tokenizer,
peft_config=lora_config
)
trainer.train()
模型保存
训练完成后保存微调后的模型和适配器权重。
model.save_pretrained("./fine_tuned_model")
tokenizer.save_pretrained("./fine_tuned_model")
推理测试
加载微调后的模型进行推理测试,验证微调效果。
from transformers import pipeline
generator = pipeline("text-generation", model="./fine_tuned_model", tokenizer=tokenizer)
result = generator("输入文本")
print(result)
更多推荐



所有评论(0)