通过Llama-Factory对Deepseek-r1:1.5b进行微调

由于近期项目需求,我们计划在机器狗上部署对话大模型,并结合具体业务场景进行定制化回答。在技术选型过程中,我们对比了RAG(Retrieval-Augmented Generation)和模型微调两种策略。RAG虽然在知识检索方面表现优异,但需要额外部署文本嵌入模型,增加了部署复杂性和资源开销。相比之下,模型微调能够直接针对特定场景优化模型性能,避免了冗余组件的引入,因此我们最终选择了微调策略。

在微调框架的选择上,我们采用了LLaMA-Factory。这是一款开源的低代码大模型微调框架,集成了当前业界广泛使用的微调技术,能够显著简化微调流程。其核心优势在于支持通过Web UI界面实现零代码微调,大幅降低了技术门槛,同时保留了高度的灵活性。通过该框架,我们能够快速将业务场景数据注入模型,实现高效的知识定制化,最终满足项目对对话大模型的实际需求。

1. 环境配置

默认anaconda、cuda都已经安装完毕!

conda create -n Llama-Factory python=3.10

python 推荐3.10

torch推荐2.4

torch在阿里云直接下载离线版的cuda版本安装,链接

微调Deepseek-r1:1.5b需要8G左右的显存

 

git llama factory项目

git clone https://github.com/hiyouga/LLaMA-Factory.git

cd LLaMA-Factory
pip install -e ".[torch,metrics]"

验证安装

llamafactory-cli version

2. 准备数据集

[
  {
    "instruction": "人类指令",
    "input": "人类输入",
    "output": "模型回答"
  }
]

这里的“input”可以省略

再把对应的数据的文件名放入dataset_info.json里

3. 开始训练

启动llamafactory

llamafactory-cli webui

运行以上命令会自动跳转一个gradio的界面,如果报错可以尝试升级gradio

pip install --upgrade gradio

加载模型

加载数据集

查看数据集

调整参数

设置权重保存路径

 开始训练

4. 测试模型

训练结束后,会绘制loss曲线

加载训练的权重,开始对话

测试完成,微调成功

最后如果模型有用的话可导出微调的模型

再通过ollma加载导出的模型,加载自己的模型的方法可参考这篇文章

Ubuntu部署deepseek(离线版)_ubuntu离线部署deepseek-优快云博客

补充说明

  • 用于微调的数据集很关键!!! 
  • 损失下降的慢可以尝试增加学习率
### 微调 Llama-Factory 以适配 DeepSeek-R1 模型 为了使 Llama-Factory 能够适应并优化针对 DeepSeek-R1 的性能,可以遵循以下方法: #### 准备环境和依赖项 确保安装了必要的库和支持工具。对于 Python 环境而言,通常会涉及到 PyTorch 或者其他框架的支持。 ```bash pip install torch transformers datasets evaluate accelerate bitsandbytes ``` #### 加载预训练模型与数据集 加载已经存在的 `DeepSeek-R1` 预训练权重以及目标领域内的标注语料作为训练样本集合[^2]。 ```python from transformers import AutoModelForCausalLM, AutoTokenizer model_name_or_path = "path_to_deepseek_r1_14b_distill" tokenizer = AutoTokenizer.from_pretrained(model_name_or_path) model = AutoModelForCausalLM.from_pretrained(model_name_or_path) ``` #### 数据处理 定义函数用于转换原始文本输入到适合喂给神经网络的形式;这一步骤可能包括分词、编码等操作。 ```python def preprocess_function(examples): return tokenizer([" ".join(x) for x in examples["text"]], truncation=True) tokenized_datasets = dataset.map(preprocess_function, batched=True) ``` #### 设置超参数及配置文件调整 依据具体应用场景需求设定学习率、批次大小等关键参数,并修改相应配置文件中的设置以便更好地支持迁移学习过程。 ```json { "learning_rate": 5e-5, "per_device_train_batch_size": 8, "num_train_epochs": 3, ... } ``` #### 开始微调流程 利用 Hugging Face 提供的 Trainer API 来简化整个训练循环的设计工作量。 ```python from transformers import TrainingArguments, Trainer training_args = TrainingArguments( output_dir="./results", evaluation_strategy="epoch", learning_rate=2e-5, per_device_train_batch_size=8, num_train_epochs=3, weight_decay=0.01, ) trainer = Trainer( model=model, args=training_args, train_dataset=tokenized_datasets['train'], eval_dataset=tokenized_datasets['validation'] ) trainer.train() ``` 通过上述步骤完成基于 Llama-Factory 平台对 DeepSeek-R1 进行针对性改进的工作流设计[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张飞飞飞飞飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值