本地模型微调、deepseek模型微调


一、下载CUDA

https://developer.nvidia.com/cuda-12-6-2-download-archive

在这里插入图片描述

根据提示安装,安装完成后输入 nvcc -V 显示如下即安装成功
在这里插入图片描述

二、安装Pytorch

使用nvidia-smi查看CUDA版本

在这里插入图片描述

安装Pytorch 选择合适的版本安装

https://pytorch.org/

在这里插入图片描述

三、安装conda

下载地址:https://www.anaconda.com/download

在这里插入图片描述

配置环境变量

在这里插入图片描述

检查版本,有输出即安装成功

在这里插入图片描述

修改.condarc文件

envs_dirs:
  - F:\conda3\envs
pkgs_dirs:
  - F:\conda3\pkgs

四、安装LLaMA-Factory

项目地址:https://github.com/hiyouga/LLaMA-Factory

下载

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

创建环境、使用环境

conda create -n llama_factory python=3.10
conda activate llama_factory

安装依赖,运行llamafactory-cli version出现版本信息安装成功

pip install -e ".[torch,metrics]"
llamafactory-cli version

启动项目 llamafactory-cli webui

在这里插入图片描述

五、下载模型

下载地址:https://modelscope.cn/models

这里我下载的是 Qwen2.5-1.5B 模型

在这里插入图片描述

下载好后配置模型名称和路径

在这里插入图片描述

六、训练

设置数据路径

在这里插入图片描述

仿照data目录下alpaca_zh_demo.json格式注册自己的数据集,例如:

在这里插入图片描述
在这里插入图片描述

在训练页面选择该数据集,点击开始

在这里插入图片描述

训练完成

在这里插入图片描述

导出

在这里插入图片描述

问题

如果出现为检测到CUDA环境,可能是torch是cpu版本,需要先卸载在安装gpu版本

查看版本

import torch
print(torch.__version__)

在这里插入图片描述

重新安装

pip uninstall torch
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126

在这里插入图片描述

### Ollama 模型 DeepSeek 微调方法教程 #### 背景介绍 Ollama 是一种用于本地部署大型语言模型的强大工具,它支持多种深度学习框架和模型的快速集成与应用。DeepSeek 则是一系列高性能的大规模预训练语言模型,在自然语言处理任务上表现出色。为了满足特定应用场景的需求,可以对 DeepSeek 模型进行微调 (Fine-tuning),从而优化其性能并适配具体业务逻辑。 以下是关于如何基于 Ollama 平台实现 DeepSeek微调操作指南: --- #### 准备工作 1. **安装依赖项** 需要先完成 Ollama 工具链及其运行环境的配置。如果尚未设置好开发环境,请参考官方文档或相关资料[^1]。 2. **获取目标数据集** 微调过程离不开高质量的数据源作为输入材料。这些数据应经过清洗、标注等前期准备工作以便于后续建模阶段使用。 3. **加载基础模型** 使用 `ollama pull` 命令下载所需的 DeepSeek 变体版本至本地存储位置: ```bash ollama pull deepseek/... # 替换为实际名称如deepseek-7b 或其他变种型号 ``` --- #### 实施步骤概述 ##### 数据准备 构建适合目标任务类型的结构化文件格式(JSONL),每条记录包含提示词 (`prompt`) 和相应回复内容(`completion`)字段定义样例展示如下所示: ```jsonl {"prompt":"介绍一下自己","completion":"你好!我是由DeepSeek团队打造的一个超大规模人工智能助手..." } ``` ##### 创建自定义镜像 由于标准发行版可能不完全匹配个性化需求场景下的功能扩展要求,因此建议重新打包一个新的 Docker 容器实例来承载定制化的改动部分。此环节涉及修改启动脚本参数以及引入额外库资源等内容。 执行命令序列创建专属副本: ```bash docker build -t my-deepseek-finetune . ``` > 注明:上述路径需指向含有必要调整后的配置说明文档根目录下。 ##### 启动服务端口映射 确保外部能够正常访问内部网络接口地址之后再继续下一步动作之前确认监听状态无误即可顺利推进流程发展下去啦! 通过指定主机IP加端口号的方式暴露出来供客户端连接请求交互之用处所设定了固定的数值范围之内选取未被占用过的空闲编号组合而成最终呈现形式即:“<your_host>:8080”。 示例如下: ```bash docker run --rm -p 8080:8080/tcp my-deepseek-finetune serve ``` 此时便可以在浏览器或者 Postman 类似工具里发起 POST 请求测试效果咯~ ##### 编写训练代码片段 下面给出一段简单的 Python 脚本来演示整个 fine-tuning 过程的核心思路要点所在之处何方呢?让我们一起来看看吧~ ```python import jsonlines from transformers import AutoTokenizer, TrainerCallback, TrainingArguments, TrainerState, TrainerControl, Trainer from datasets import load_dataset def read_jsonl(file_path): with open(file_path, 'r', encoding='utf-8') as f: reader = jsonlines.Reader(f) data = list(reader) return [{"input_text": item["prompt"], "target_text": item["completion"]} for item in data] tokenizer = AutoTokenizer.from_pretrained("deepseek/...") dataset = load_dataset('my_custom_dataset.jsonl') training_args = TrainingArguments( output_dir="./results", num_train_epochs=3, per_device_train_batch_size=4, save_steps=10_000, logging_dir='./logs', ) class CustomTrainer(Trainer): def compute_loss(self, model, inputs, return_outputs=False): pass trainer = CustomTrainer( model=model, args=training_args, train_dataset=train_data, tokenizer=tokenizer, ) if __name__ == "__main__": trainer.train() ``` 以上仅提供了一个大致方向性的指引仅供参考而已哦~更多细节还需要查阅对应框架手册深入探究才行呀😊 --- ### 注意事项 - 硬件条件限制可能会显著影响收敛速度甚至无法顺利完成全部周期迭代次数等情况发生时应该考虑降低批次大小或者其他缓解措施加以应对解决办法哟~ - 如果遇到任何异常错误信息记得及时查看日志记录定位问题根源迅速修复恢复正常运转轨道上去哈😄 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

李子木、

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

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

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

打赏作者

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

抵扣说明:

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

余额充值