LlamaFactory可视化模型微调-Deepseek模型微调+CUDA Toolkit+cuDNN安装

LlamaFactory

https://llamafactory.readthedocs.io/zh-cn/latest/

在这里插入图片描述

安装

必须保证版本匹配,否则到训练时,找不到gpu cuda。
否则需要重装。下面图片仅供参考。因为cuda12.8装了没法用,重新搞12.6

cudacudnnpytorch
12.69.612.6
最新:12.89.7.1
Windows

CUDA 安装

打开 设置 ,在 关于 中找到 Windows 规格 保证系统版本在以下列表中:
windows11 如下
在这里插入图片描述

支持版本号

Microsoft Windows 11 21H2
Microsoft Windows 11 22H2-SV2
Microsoft Windows 11 23H2
Microsoft Windows 10 21H2
Microsoft Windows 10 22H2
Microsoft Windows Server 2022

安装之前确认版本
在命令提示符也就是cmd中输入nvidia-smi.exe,查看你电脑支持的cuda最高版本。(第一行最后)

这个的话必须要有显卡!
在这里插入图片描述

选择对应的版本下载并根据提示安装。
在这里插入图片描述
在这里插入图片描述
如果自己使用不了最新版本,根据自己配置,下载对应的版本,如下图:
在这里插入图片描述

安装CUDA完成

打开 cmd 输入 nvcc -V ,若出现类似内容则安装成功。
在这里插入图片描述

否则,检查系统环境变量,保证 CUDA 被正确导入。

cuDNN安装

‌cuDNN(CUDA Deep Neural Network library)是一个由NVIDIA开发的深度学习GPU加速库,旨在为深度学习任务提供高效、标准化的原语(基本操作)来加速深度学习框架在NVIDIA GPU上的运算。

在这里插入图片描述
选择对应版本进行下载。如果当前界面没有你需要的版本,可访问如下历史版本页面进行下载:

https://developer.nvidia.com/rdp/cudnn-archive
解压后,目录结构如图:

在这里插入图片描述
将目录bin、lib、include复制到CUDA的安装目录下(LICENSE除外),可以先对CUDA安装目录下的这三个目录做备份,以免出现覆盖无法恢复。如图:
默认安装:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8
在这里插入图片描述
最后将如下path添加到环境变量Path中:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\include
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\lib
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\libnvvp

验证

配置完成后,我们可以验证是否配置成功,主要使用CUDA内置的deviceQuery.exe 和 bandwithTest.exe:
首先win+R启动cmd,cd到CUDA安装目录下的 …\extras\demo_suite,然后分别执行bandwidthTest.exedeviceQuery.exe,应该得到下图:
在这里插入图片描述
执行测试CUDA是否可用GPU
在这里插入图片描述

LLaMA-Factory 安装

在安装 LLaMA-Factory 之前,请确保您安装了下列依赖:
运行以下指令以安装 LLaMA-Factory 及其依赖:

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]"

如果出现环境冲突,请尝试使用 pip install --no-deps -e . 解决

LLaMA-Factory 校验

完成安装后,可以通过使用 llamafactory-cli version 来快速校验安装是否成功

如果您能成功看到类似下面的界面,就说明安装成功了。
在这里插入图片描述
Windows

QLoRA

如果您想在 Windows 上启用量化 LoRA(QLoRA),请根据您的 CUDA 版本选择适当的 bitsandbytes 发行版本。
pip install https://github.com/jllllll/bitsandbytes-windows-webui/releases/download/wheels/bitsandbytes-0.41.2.post2-py3-none-win_amd64.whl

FlashAttention-2

如果您要在 Windows 平台上启用 FlashAttention-2,请根据您的 CUDA 版本选择适当的 flash-attention 发行版本。

其他依赖

在这里插入图片描述

数据处理

https://llamafactory.readthedocs.io/zh-cn/latest/getting_started/data_preparation.html

目前我们支持 Alpaca 格式和 ShareGPT 格式的数据集。

Alpaca

  • 指令监督微调数据集

    指令监督微调(Instruct Tuning)通过让模型学习详细的指令以及对应的回答来优化模型在特定指令下的表现。

    instruction 列对应的内容为人类指令, input 列对应的内容为人类输入, output 列对应的内容为模型回答。下面是一个例子

    "alpaca_zh_demo.json"
    {"instruction": "计算这些物品的总费用。 ","input": "输入:汽车 - $3000,衣服 - $100,书 - $20。","output": "汽车、衣服和书的总费用为 $3000 + $100 + $20 = $3120。"
    },
    

    进行指令监督微调时, instruction 列对应的内容会与 input 列对应的内容拼接后作为最终的人类输入,即人类输入为 instruction\ninput。而 output 列对应的内容为模型回答。 在上面的例子中,人类的最终输入是:

    计算这些物品的总费用。
    输入:汽车 - $3000,衣服 - $100,书 - $20。
    

    模型的回答是:

    汽车、衣服和书的总费用为 $3000 + $100 + $20 = $3120。
    

    如果指定, system 列对应的内容将被作为系统提示词。

    history 列是由多个字符串二元组构成的列表,分别代表历史消息中每轮对话的指令和回答。注意在指令监督微调时,历史消息中的回答内容也会被用于模型学习。

    [{"instruction": "人类指令(必填)","input": "人类输入(选填)","output": "模型回答(必填)","system": "系统提示词(选填)","history": [["第一轮指令(选填)", "第一轮回答(选填)"],["第二轮指令(选填)", "第二轮回答(选填)"]]}
    ]
    

    下面提供一个 alpaca 格式 多轮 对话的例子,对于单轮对话只需省略 history 列即可。

    [{"instruction": "今天的天气怎么样?","input": "","output": "今天的天气不错,是晴天。","history": [["今天会下雨吗?","今天不会下雨,是个好天气。"],["今天适合出去玩吗?","非常适合,空气质量很好。"]]}
    ]
    

    对于上述格式的数据, dataset_info.json 中的 数据集描述 应为:

    
    ```"数据集名称": {"file_name": "data.json","columns": {"prompt": "instruction","query": "input","response": "output","system": "system","history": "history"}
    }
    
  • 预训练数据集
    在这里插入图片描述

  • 偏好数据集

  • KTO 数据集

  • 多模态数据集

ShareGPT

  • 指令监督微调数据集
  • 偏好数据集
  • OpenAI格式

WebUI

LLaMA-Factory 支持通过 WebUI 零代码微调大语言模型。 在完成 安装 后,您可以通过以下指令进入 WebUI:

llamafactory-cli webui

在这里插入图片描述
http://localhost:7860/
WebUI 主要分为四个界面:训练、评估与预测、对话、导出。
在这里插入图片描述

训练模型

在开始训练模型之前,您需要指定的参数有:

  1. 模型名称及路径
  2. 训练阶段
  3. 微调方法
  4. 训练数据集
  5. 学习率、训练轮数等训练参数
  6. 微调参数等其他参数
  7. 输出目录及配置路径

随后,您可以点击 开始 按钮开始训练模型。

关于断点重连:适配器断点保存于 output_dir 目录下,请指定 适配器路径 以加载断点继续训练。

如果您需要使用自定义数据集,请在 data/data_info.json 中添加自定义数据集描述并确保 数据集格式 正确,否则可能会导致训练失败。

示例

在example目录中有大量的示例可供参考。
参照配置
在这里插入图片描述

NOTE: 学习率 5e-5 = 0.0005 太小了,梯度下降慢。这里调整到0.001.下图是0.001 的loss函数下降的图。

  • 梯度下降就是对损失函数求最小值的过程。
    在这里插入图片描述

LLaMA-Factory\examples\README_zh.md记录各种微调配置和执行脚本

数据集例子
这里直接使用原有的identity文件微调
替换原LLaMA-Factory\data\identity.json文件中:{{name}} 为 小羽,{{author}} 为 嘉羽很烦
预览片段:

[{"instruction": "hi","input": "","output": "Hello! I am 小羽, an AI assistant developed by 嘉羽很烦. How can I assist you today?"},{"instruction": "hello","input": "","output": "Hello! I am 小羽, an AI assistant developed by 嘉羽很烦. How can I assist you today?"},...

对话模板选择deepseek3,官方有说明
在这里插入图片描述
这里注意一下

  1. 需要LlamaFactory在那个目录启动,这里test-dataset就放在那个目录
  2. 目录下需要包含dataset_info.json. 这是数据集描述文件。参考:安装目录下data/dataset_info.json
    {"identity": {"file_name": "identity.json"}
    }
    

在这里插入图片描述
预览一下数据集,是否争取正确在这里插入图片描述 修改输出目录
在这里插入图片描述
修改配置后,点击开始按钮,等待进度条训练完毕即可。CPU也能训练,但是时间太慢,有条件的最好用GPU,速度快

评估预测与对话

评估预测选项卡:
模型训练完毕后,您可以通过在评估与预测界面通过指定 模型 及 适配器 的路径在指定数据集上进行评估。

您也可以通过在对话界面指定 模型、 适配器 及 推理引擎 后输入对话内容与模型进行对话观察效果。
【windows 报错】,不影响之下 chat步骤可以回答出期望的结果即可

chat选项卡:
在这里插入图片描述
在这里插入图片描述

到这一步,已经加载 训练后模型了。进行问题测试。
在这里插入图片描述
可以看到,我们的 身份识别 训练微调数据已经整合进 模型中了。

导出

如果您对模型效果满意并需要导出模型,您可以在导出界面通过指定 模型、 适配器、 分块大小、 导出量化等级及校准数据集、 导出设备、 导出目录 等参数后点击 导出 按钮导出模型。

在这里插入图片描述
到处文件目录
在这里插入图片描述

Ollama安装教程

Ollama教程

Ollama部署微调模型步骤

1. 模型构建
  • 使用 ModelFile 文件定义模型参数和上下文。
  • 通过 ollama create 命令将模型导入到 Ollama 中。

将生成的ModelFile文件放到外部:
在这里插入图片描述
如果没有新建:
内容进入到ollama 模型页 https://ollama.com/library/deepseek-r1:1.5b/blobs/369ca498f347
copy template内容
在这里插入图片描述
下面内容导出时,llamafactory自动生成的。因为本地装了ollama。
需要修改From ,默认是 . 【自测不行】,可能需要修改成绝对路径【可行】
temperature参数DeepSeek-R1官方建议给0.6

# ollama modelfile auto-generated by llamafactory
# 必须是model.safetersors文件的目录。即我们导出的目录
FROM D:\model\fine-tune\DeepSeek-R1-1.5B-Distill-kong-idendityTEMPLATE """<|begin▁of▁sentence|>{{ if .System }}{{ .System }}{{ end }}{{ range .Messages }}{{ if eq .Role "user" }}<|User|>{{ .Content }}<|Assistant|>{{ else if eq .Role "assistant" }}{{ .Content }}<|end▁of▁sentence|>{{ end }}{{ end }}"""PARAMETER stop "<|end▁of▁sentence|>"
PARAMETER num_ctx 4096
进入cmd中执行命令
```shell
ollama create DeepSeek-R1-1.5B-Distill-kong-idendity -f ModelFile
```

在这里插入图片描述
可以看到,模型已经导入到ollama中。我们就可以ollama启动运行我们微调的大模型,提供open ai 接口调用了

3. 模型启动
  • 使用 ollama run 命令启动微调后的模型 DeepSeek-R1-1.5B-Distill-kong-idendity:latest

执行启动命令:
ollama run DeepSeek-R1-1.5B-Distill-kong-idendity:latest
在这里插入图片描述

4. API调用Ollama

在这里插入图片描述
调用地址:POST localhost:11434/api/chat
body: 修改自己的微调模型测试

{"model":"DeepSeek-R1-1.5B-Distill-kong-idendity",  // 模型名称,ollama上显示的名字"stream": true,						  // 是否流式,true流式返回"temperature": 0.6,						  // 思维发散程度"top_p":0.95,                             // 一种替代温度采样的方法,称为核采样,其中模型考虑具有 top_p 概率质量的标记的结果"messages":[                              // 上下文{"role":"user","content":"你是谁?"}]
}

通过以上步骤,我们成功地将微调后的模型部署到 Ollama 中,并通过 API 接口进行调用和测试。

下一站

完成了LlamaFactory webui 可视化模型微调的所有步骤

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/21064.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【GPT】从GPT1到GPT3

every blog every motto: Although the world is full of suffering&#xff0c; it is full also of the overcoming of it 0. 前言 从GPT1 到GPT3 1. GPT1 论文&#xff1a; https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-unsupervised/lan…

Jredis和SpringDataRedis学习笔记

jredis基础操作 jredis连接池 其中有个静态方法getJedis能够将练级池中的连接拿取出来并返回 通过setMaxWaitMitllis设置一个响应时间&#xff0c;如果连接池里面没有连接&#xff0c;那么请求连接方在等待超过响应时间时就会报错 springDataRedis 通过这样一个代码将redisTe…

【HarmonyOS Next】鸿蒙监听手机按键

【HarmonyOS Next】鸿蒙监听手机按键 一、前言 应用开发中我们会遇到监听用户实体按键&#xff0c;或者扩展按键的需求。亦或者是在某些场景下&#xff0c;禁止用户按下某些按键的业务需求。 这两种需求&#xff0c;鸿蒙都提供了对应的监听事件进行处理。 onKeyEvent 默认的…

vite调试node_modules下面插件

在使用vite进行开发的时候,我们可能想要修改node_modules中插件的源码.特别是集成一个SDK&#xff0c;需要调试去判断问题时&#xff0c;或者研究第三方源码时后; vite默认是走缓存的&#xff0c;所以当修改后不会看到你打印的日志&#xff0c;这个时候有几种方法可以选择; 方式…

大数据开发治理平台~DataWorks(核心功能汇总)

目录 数据集成 功能概述 使用限制 功能相关补充说明 数据开发 功能概述 数据建模 功能概述 核心技术与架构 数据分析 功能概述 数据治理 数据地图 功能概述 数据质量 功能概述 数据治理资产 功能概述 使用限制 数据服务 功能概述 数据集成 DataWorks的数据…

JAVA生产环境(IDEA)排查死锁

使用 IntelliJ IDEA 排查死锁 IntelliJ IDEA 提供了强大的工具来帮助开发者排查死锁问题。以下是具体的排查步骤&#xff1a; 1. 编写并运行代码 首先&#xff0c;我们编写一个可能导致死锁的示例代码&#xff1a; public class DeadlockExample {private static final Obj…

【DeepSeek】Mac m1电脑部署DeepSeek

一、电脑配置 个人电脑配置 二、安装ollama 简介&#xff1a;Ollama 是一个强大的开源框架&#xff0c;是一个为本地运行大型语言模型而设计的工具&#xff0c;它帮助用户快速在本地运行大模型&#xff0c;通过简单的安装指令&#xff0c;可以让用户执行一条命令就在本地运…

挑战一星期复现一个项目——安全帽项目

本项目为识别安全帽项目&#xff0c;基于yoloV5模型&#xff0c;接下来&#xff0c;我将一步一步展示我的完整复现过程以及遇到的问题和解决方案。 前言 我们在利用GPU进行深度学习的时候&#xff0c;都要去NVIDIA的官网下载CUDA的安装程序和cudnn的压缩包&#xff0c;然后再…

基于java新闻管理系统,推荐一款开源cms内容管理系统ruoyi-fast-cms

一、项目概述 1.1 项目背景 在信息高速流通的当下&#xff0c;新闻媒体行业每天都要处理和传播海量信息。传统的新闻管理模式依赖人工操作&#xff0c;在新闻采集、编辑、发布以及后续管理等环节中&#xff0c;不仅效率低下&#xff0c;而且容易出现人为失误。同时&#xff0…

.NET SixLabors.ImageSharp v1.0 图像实用程序控制台示例

使用 C# 控制台应用程序示例在 Windows、Linux 和 MacOS 机器上处理图像&#xff0c;包括创建散点图和直方图&#xff0c;以及根据需要旋转图像以便正确显示。 这个小型实用程序库需要将 NuGet SixLabors.ImageSharp包&#xff08;版本 1.0.4&#xff09;添加到.NET Core 3.1/ …

图论(四):图的中心性——度中心性介数中心性紧密中心性

图的中心性&#xff1a;描述节点在图中有多“中心” 度中心性 以节点的度数度量中心性 用nx.degree_centrality(G)计算 介数中心性 量化节点在图中承担“桥梁”程度。计算 节点v 出现在其他任意两个节点对 (s,t) 之间的最短路径的次数&#xff08;下式V 是无向图节点集合。(…

在项目中调用本地Deepseek(接入本地Deepseek)

前言 之前发表的文章已经讲了如何本地部署Deepseek模型&#xff0c;并且如何给Deepseek模型投喂数据、搭建本地知识库&#xff0c;但大部分人不知道怎么应用&#xff0c;让自己的项目接入AI模型。 文末有彩蛋哦&#xff01;&#xff01;&#xff01; 要接入本地部署的deepsee…

DeepSeek服务器繁忙 多种方式继续优雅的使用它

前言 你的DeepSeek最近是不是总是提示”服务器繁忙,请稍后再试。”&#xff0c;尝试过了多次重新生成后&#xff0c;还是如此。之前DeepSeek官网连续发布2条公告称&#xff0c;DeepSeek线上服务受到大规模恶意攻击。该平台的对话框疑似遭遇了“分布式拒绝服务攻击”&#xff0…

利用亚马逊AI代码助手生成、构建和编译一个游戏应用(下)

在上篇文章中中&#xff0c;我们介绍了如何通过亚马逊AI代码生成助手 - Amazon Q Developer代理的代码生成、构建和测试功能&#xff0c;让开发者可以更高效地交付高质量代码项目&#xff0c;同时减少代码中bug错误&#xff0c;提升整体开发体验。在本篇中&#xff0c;我们将通…

网络安全技术pat实验 网络安全 实验

&#x1f345; 点击文末小卡片 &#xff0c;免费获取网络安全全套资料&#xff0c;资料在手&#xff0c;涨薪更快 网络安全实验3 前言Kali 常用指令工具教程 ettercap 基本使用 一、口令破解 John the ripper 破解 linux 密码l0phtcrack7 破解 windows 密码John 破解 zip 压…

网络行为管理系统是什么?有什么功能?

​简单来说&#xff0c;网络行为管理系统就是对网络进行有效的规范约束和调整&#xff0c;关于网络行为管理系统的相关问题整理了一些详细介绍供大家参考。 一、什么是网络行为管理系统&#xff1f; 在数据网络和数据通信业务发展非常迅速&#xff0c;在数据网络和通信业务迅…

毕业设计—基于Spring Boot的社区居民健康管理平台的设计与实现

&#x1f393; 毕业设计大揭秘&#xff01;想要源码和文章&#xff1f;快来私信我吧&#xff01; Hey小伙伴们~ &#x1f44b; 毕业季又来啦&#xff01;是不是都在为毕业设计忙得团团转呢&#xff1f;&#x1f914; 别担心&#xff0c;我这里有个小小的福利要分享给你们哦&…

垃圾回收器

一、GC分类与性能指标 1.垃圾回收器概述: 垃圾收集器没有在规范中进行过多的规定&#xff0c;可以由不同的厂商、不同版本的JVM来实现。 由于JDK的版本处于高速迭代过程中&#xff0c;因此Java发展至今已经衍生了众多的GC版本。 从不同角度分析垃圾收集器&#xff0c;可以将…

Java基础——代理模式

代理模式是一种比较好理解的设计模式。简单来说就是 我们使用代理对象来代替对真实对象(real object)的访问&#xff0c;这样就可以在不修改原目标对象的前提下&#xff0c;提供额外的功能操作&#xff0c;扩展目标对象的功能。 一、代理模式的主要作用 控制访问&#xff1a;通…

微软宣布 Windows 11 将不再免费升级:升级需趁早

大家都知道如果你现在是Windows 10 系统&#xff0c;其实可以免费升级到正版 Windows 11&#xff0c;只要你的电脑配置满足 TPM2.0要求。 而最近微软已经公布了 Windows 10 的最后支持时间&#xff0c;也就是今年10月14日&#xff0c;在这之后微软将不再对Windows 10负责&#…