使用LLaMA-Factory对LLM大模型进行微调!训练专属于你的模型!

前言

如今也是出现了各种各样的大模型,如果想要针对性的让他扮演某个角色我们通常采用的是给他输入prompt(提示词)。

但是如果遇到一些"思想钢印"较深的大模型,使用提示词洗脑可能效果并不好。

那我们有没有其他方法来解决这个问题?

当然有,那就是自行微调一个大模型!

本篇文章,就带大家走一遍微调大模型的全流程

所用项目

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

qwen2.5:7b:https://huggingface.co/Qwen

(因为目前LLaMA-Factory支持的模型有限,所以并没有采用腾讯开源的混元模型,但总体教程是一样的)

所用设备

因为涉及到模型训练,所需要的算力也比较大,同时,因为模型训练过程中也会产生许多其他文件,所以内存和存储也尽量大一些

本次使用的是腾讯云的HAI服务器

本次选择的显存大小为32G(实际显卡型号为v100)

如果你的显存过小,训练过程中需要使用qlora进行训练

这里地区选择可以根据自己需要选择,因为目前国内部分地区也有学术加速,不会说在下部分文件的时候出现无法下载的情况

开启学术加速(非必需)

服务器创建后,在控制台首页右侧会有一个学术加速按钮,我们点击,选择对应地区即可开启

安装LLaMA-Factory(必须)

服务器创建完成后,我们点击算力连接,我们这里使用cloud studio进行演示

进入后首先建一个终端

conda环境创建

因为是自带conda的,我们直接创建我们需要的环境即可

官方是推荐使用python3.11的,我们直接在终端输入下面命令

代码语言:txt

复制

conda create -n LLaMa python=3.11

随后就会自动开始安装我们所需要的东西

完成后,我们输入

代码语言:txt

复制

conda activate LLaMa   

即可进入我们这个虚拟环境

LLaMA-Factory安装

我们按照官方给的文档,依次输入下面三条指令

代码语言:txt

复制

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

第一条为下载github仓库内的代码,如果遇到网络不畅,可以尝试下载到本地然后手动上传到云端,或者将官方地址替换为镜像站地址

完成后我们进入文件夹安装依赖

此过程需要下载大量文件还请耐心等待~

如果不显示报错,并且和图示一样即可证明安装完成

自定义数据集(非必需)

我们本次训练的主要是LLM模型的自我认识(身份),其数据集格式为下

代码语言:txt

复制

  {
    "instruction": "",
    "input": "",
    "output": ""
  },

你可以在程序的data文件夹下找到这个文件

如果你需要使用其他数据集,可以根据这个格式进行编辑

我们这里创建一个zhongerbing.json文件,用它来进行训练模型的自我认知

注:

使用自定义数据集时,请更新data/dataset_info.json文件。

请务必注意路径不要错误

模型下载(必须)

在魔搭官网,我们在模型右侧可以看到模型下载教程

如果您是国内用户,我们推荐使用魔搭进行模型下载

如果您是海外用户,我们推荐使用hugging face进行模型下载

模型移动(非必需)

因为默认下载路径为/root/.cache/modelscope/hub/

我们可以把它移动到方便修改的路径,可以使用下面这个指令

代码语言:txt

复制

sudo mv /root/.cache/modelscope/hub/Qwen/ /workspace/qwen

训练模型

启动webui

在控制台输入

代码语言:txt

复制

llamafactory-cli webui

即可启动webui

我们根据自己服务器的ip,和输出的对应端口,使用浏览器即可进入

进入后我们选择对应的模型,填写好路径

验证模型路径是否正确(非必需)

我们点击chat,选择加载模型,如果没有报错可以正常出现内容即为正常

另外,如果您选择了量化,可能需要手动配置部分依赖,具体情况请看控制台报错

使用完毕后记得点击卸载模型,否则会一直占用显存

开始训练

我们返回train,选择我们需要的数据集(你可以点击预览查看数据集)然后我们下滑直接点击开始训练即可

开始训练后,我们稍等片刻可以看到训练进度

右侧为loss,loss尽量低一些,但同时也不能过低,过低会出现过拟合的情况,适得其反

我们也可以适当添加训练次数,每次完成后通过chat验证一下效果

模型训练不是不是越多越好,需根据具体情况分析

单次训练完成后会出现如图提示

验证训练结果

训练完成后,我们在上方检查点选择我们的一个数据

随后在chat处加载我们的模型,进行对话

然后我们进行问答,就可以得到想要的结果

右侧参数可以根据自己需要进行调整

我们可以将训练好的检查点,融入到模型之中,可以在其他地方使用

LLaMA-Factory支持的模型

模型名模型大小Template
Baichuan 27B/13Bbaichuan2
BLOOM/BLOOMZ560M/1.1B/1.7B/3B/7.1B/176B
ChatGLM36Bchatglm3
Command R35B/104Bcohere
DeepSeek (Code/MoE)7B/16B/67B/236Bdeepseek
Falcon7B/11B/40B/180Bfalcon
Gemma/Gemma 2/CodeGemma2B/7B/9B/27Bgemma
GLM-49Bglm4
Index1.9Bindex
InternLM2/InternLM2.57B/20Bintern2
Llama7B/13B/33B/65B
Llama 27B/13B/70Bllama2
Llama 3-3.21B/3B/8B/70Bllama3
LLaVA-1.57B/13Bllava
LLaVA-NeXT7B/8B/13B/34B/72B/110Bllava_next
LLaVA-NeXT-Video7B/34Bllava_next_video
MiniCPM1B/2B/4Bcpm/cpm3
Mistral/Mixtral7B/8x7B/8x22Bmistral
OLMo1B/7B
PaliGemma3Bpaligemma
Phi-1.5/Phi-21.3B/2.7B
Phi-34B/7B/14Bphi
Pixtral12Bpixtral
Qwen (1-2.5) (Code/Math/MoE)0.5B/1.5B/3B/7B/14B/32B/72B/110Bqwen
Qwen2-VL2B/7B/72Bqwen2_vl
StarCoder 23B/7B/15B
XVERSE7B/13B/65Bxverse
Yi/Yi-1.5 (Code)1.5B/6B/9B/34Byi
Yi-VL6B/34Byi_vl
Yuan 22B/51B/102Byuan

硬件需要

估算值

方法精度7B13B30B70B110B8x7B8x22B
FullAMP120GB240GB600GB1200GB2000GB900GB2400GB
Full1660GB120GB300GB600GB900GB400GB1200GB
Freeze1620GB40GB80GB200GB360GB160GB400GB
LoRA/GaLore/BAdam1616GB32GB64GB160GB240GB120GB320GB
QLoRA810GB20GB40GB80GB140GB60GB160GB
QLoRA46GB12GB24GB48GB72GB30GB96GB
QLoRA24GB8GB16GB24GB48GB18GB48GB

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

下面这些都是我当初辛苦整理和花钱购买的资料,现在我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

### 访问通过API使用llama-factory微调后的模型 为了通过API访问经过`llama-factory`微调的大规模语言模型,需遵循特定的设置流程。确保已成功完成模型训练与保存,并按照如下方法配置API服务。 #### 配置环境变量并启动API服务器 在终端环境中设定必要的CUDA设备以及API端口: ```bash export CUDA_VISIBLE_DEVICES=0,1 export API_PORT=8000 ``` 随后利用指定配置文件来启动API服务[^2]: ```bash llamafactory-cli api examples/inference/llama3_vllm.yaml ``` 此命令会依据给定路径下的YAML配置文件初始化Web服务接口,使得外部程序能够向该地址发送HTTP请求从而交互式地获取由微调过后的LLM产生的响应数据。 #### 发送推理请求至API 一旦API处于运行状态,在客户端侧可以通过POST HTTP请求的方式提交待处理文本到上述开启的服务端口中。通常情况下,这涉及到构建JSON格式的有效载荷(payload),其中至少应包含输入提示(prompt)字段以及其他可能影响生成行为的超参数选项(比如温度temperature、最大长度max_length等)。下面给出Python脚本作为示例说明如何构造这样的请求: ```python import requests import json url = 'http://localhost:8000/generate' headers = {'Content-Type': 'application/json'} data = { "prompt": "Once upon a time", "max_tokens": 50, "temperature": 0.7 } response = requests.post(url=url, headers=headers, data=json.dumps(data)) print(response.json()) ``` 这段代码片段展示了怎样创建一个简单的HTTP POST请求去触发远程API执行一次基于预定义模板的文本续写任务,并打印返回的结果对象。 #### 错误排查指南 如果遇到异常情况如线程错误,则可能是由于内部分析函数未能正常工作引起的问题。此时建议检查日志输出寻找更多线索或者尝试更新软件包版本以解决潜在兼容性冲突[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值