网站维护 公司简介,WordPress 推酷 主题,江苏省两学一做网站,做视频背景音乐网站LLaMA-Factory 模型 微调基础教程 LLaMA-FactoryLLaMA-Factory 下载 AnacondaAnaconda 环境创建软硬件依赖 详情LLaMA-Factory 依赖安装CUDA 安装量化 BitsAndBytes 安装可视化微调启动 数据集准备所需工具下载使用教程所需数据合并数据集预处理 DeepSeek-R1 可视化微调数据集处… LLaMA-Factory 模型 微调基础教程 LLaMA-FactoryLLaMA-Factory 下载 AnacondaAnaconda 环境创建软硬件依赖 详情LLaMA-Factory 依赖安装CUDA 安装量化 BitsAndBytes 安装可视化微调启动 数据集准备所需工具下载使用教程所需数据合并数据集预处理 DeepSeek-R1 可视化微调数据集处理数据详解LLaMA-Factory 基础设置模型评估与预测训练模型对话训练模型导出 LLaMA-Factory 模型 微调 概述 使用LLaMA-Factory进行模型微调具有多方面的好处。首先它简化了大模型微调的过程使得即使是没有深厚技术功底的用户也能轻松进行模型的优化和改进。此外LLaMA-Factory支持多种训练方法如全量调参、LoRA等以及不同的对齐方案如DPO、PPO等。这为用户提供了灵活性可以根据具体需求选择合适的微调策略。 LLaMA-Factory还提供了一站式服务从模型微调到量化处理再到运行整个过程一气呵成无需在不同的工具和流程之间来回切换。此外它支持多种流行的语言模型如LLaMA、BLOOM、Mistral、Baichuan等涵盖了广泛的应用场景。 在模型量化方面LLaMA-Factory能够有效地压缩模型规模减少模型运行所需的计算量和存储空间使得模型能够在性能稍弱的设备上也能流畅运行。这不仅提高了模型的可访问性也降低了运行成本。 此外LLaMA-Factory的训练过程中记录的内容比较全面除了同步输出loss曲线图以外还自带BLEU等评测指标这有助于用户更好地监控和评估模型的性能。
LLaMA-Factory
LLaMA-Factory 下载 GitHub: LLaMA-Factory
1. 进到 LLaMA-Factory 后点击code 下载就行我这边选择的是下载 zip.2. 这里也有中文的资料以及详情感兴趣的可以看看。3. 解压完成之后记录一下解压路径。Anaconda
Anaconda 环境创建
软硬件依赖 详情
软硬件依赖1. 创建虚拟环境官方给出的是 python 至少 3.9 推荐 3.102. 打开终端。3. 导航到 刚才解压的地址我的是E:\Model\LLaMA-Factory-main\LLaMA-Factory-main命令E: (导航到E盘)cd E:\Model\LLaMA-Factory-main\LLaMA-Factory-main (导航到具体文件夹)LLaMA-Factory 依赖安装
1. 依赖下载pip install -r requirements.txt2. 这个也是安装依赖最好都执行一遍 pip install -e .[torch,metrics]CUDA 安装
1. CUDA 安装conda install pytorch torchvision torchaudio pytorch-cuda11.8 -c pytorch -c nvidia
记得输入 y 继续安装量化 BitsAndBytes 安装
1. 安装 BitsAndBytes
如果要在 Windows 平台上开启量化 LoRAQLoRA需要安装预编译的 bitsandbytes 库
支持 CUDA 11.1 到 12.2, 请根据您的 CUDA 版本情况选择适合的发布版本。
pip install https://github.com/jllllll/bitsandbytes-windows-webui/releases/download/wheels/bitsandbytes-0.41.2.post2-py3-none-win_amd64.whl可视化微调启动
1. 启动命令llamafactory-cli webui2. 如果出现这个错误就说明无法访问 localhost因此需要创建一个可分享的链接但是又因为分享 Gradio share 为false 而无法正确响应所以我们需要更改一下 interface.py 代码。3. 找到 interface.py 存在路径我的是LLaMA-Factory-main\src\llamafactory\webui4. 找到 run_web_ui() 和 run_web_demo() 方法把 “sharegradio_share” 修改成“shareTrue”如下图所示4. 然后再次运行就成功了。对了有一点需要注意的是这个时候不要搭梯子不然界面会一直加载不出来。数据集准备
所需工具下载
微信风格化工具: 留痕
因为我创建的自己的风格化模型所以就用这个了其他的也可以
例如finetune_dataset_maker或者自己写一个抽时间我自己写一个也行到时候写出来再分享吧如果大家想了解更多这边有几个论文呢可以参考一下。T2D从文本自动生成虚拟代理之间的对话
个性化对话生成的最新趋势数据集、方法和评估综述
LLaMA-Factory100多种语言模型的统一高效微调
1. 回到正题哈点击下载然后解压。2. 下载第一个就行使用教程
1. 点击 教程跳转官方使用说明2. 点击导出数据跟着步骤来就行。不想看的可以跟着我的来弄
3. 解压之后找到 MemoTrace.exe 双击执行就可以。4. 点击我的登陆账号然后在工具点击解析数据5. 我这边选择的是AI 对话txt 和 json大家按需导出就行。6. 因为这边需要的数据就只是文本数据所以就只勾选了文本。7. 记一下目录哈我这边是在D:\软件\留痕\data\聊天记录找相对路径就行。8. 导出完毕之后就相对路径文件夹会有这三个文件因为我选择导出txt和json 所以会有三个文件如果只是json会有两个文件。所需数据合并
1. 在聊天记录文件夹 建立一个 merge.py 的文件2. 把下面的代码复制进去这个代码的主要作用就是合并所有的聊天记录。import os
import json# 设置目标文件夹路径
folder_path rD:\软件\留痕\data\聊天记录# 获取文件夹及其所有子文件夹中的所有 .json 文件
json_files []
for root, dirs, files in os.walk(folder_path):for file in files:if file.endswith(.json):json_files.append(os.path.join(root, file))# 合并所有 .json 文件
merged_data []
for file in json_files:with open(file, r, encodingutf-8) as f:try:data json.load(f)merged_data.append(data)except json.JSONDecodeError:print(fError decoding {file}. Skipping.)# 保存合并后的数据到一个新的 .json 文件
merged_file_path os.path.join(folder_path, merged_data.json)
with open(merged_file_path, w, encodingutf-8) as merged_file:json.dump(merged_data, merged_file, indent4, ensure_asciiFalse)print(f合并后的文件已保存至: {merged_file_path})3. 直接在地址栏前面加上 cmd 回车之后就会打开当前路径的命令提示符。4. 键入 python merge.py 执行5. 显示这个就表示执行完毕数据已经合并了。6. 内容大概就是这样数据集预处理
数据集预处理是机器学习和人工智能中不可或缺的环节其重要性体现在多个方面。
首先预处理能够提升数据质量通过清洗噪声、去除重复和无关信息以及标准化格式为模型训练提供纯净
且一致的输入。其次它有助于优化模型性能例如通过分词、去除停用词等操作让模型更容易理解和学习数
据中的关键信息同时减少过拟合的风险。此外预处理还能增强数据多样性通过数据增强技术如文本扩充、
同义词替换等提升模型的泛化能力。在对话系统中预处理尤为重要因为它需要处理多轮对话的上下文一致
性以及用户意图的多样性。通过格式化对话数据和增强对话内容可以显著提升对话系统的自然性和流畅性。总
之数据集预处理不仅提高了模型的训练效率还为模型的最终性能奠定了坚实基础是实现高质量人工智能应
用的关键步骤。1. 在聊天记录文件夹 建立一个 Data_Preprocessing.py 的文件2. 把下面的代码复制进去这个代码的主要作用就是数据清洗、脱敏、去重以及规则化成sharegpt格式。这个等会解释为什么要用 sharegpt 格式。import json
import re# 读取 merged_data.json 文件
with open(merged_data.json, r, encodingutf-8) as file:data json.load(file)# 转换后的数据格式
converted_data []# 数据清洗去除空消息清除特殊字符统一格式
def clean_data(dataset):cleaned_data []for example in dataset:messages example[messages]cleaned_messages []for message in messages:# 去除内容为空的消息if not message[content].strip():continue# 清除多余的空格、换行符等message[content] message[content].replace(\n, ).strip()cleaned_messages.append(message)if cleaned_messages:cleaned_data.append({messages: cleaned_messages})return cleaned_data# 脱敏处理替换敏感信息
def replace_sensitive_info(text):# 匹配手机号、邮箱等敏感信息text re.sub(r\d{3}[-]?\d{4}[-]?\d{4}, [PHONE_NUMBER], text) # 替换手机号text re.sub(r\S\S, [EMAIL], text) # 替换邮箱text re.sub(r\d{4}-\d{2}-\d{2}, [DATE], text) # 替换日期return text# 匿名化数据替换用户角色
def anonymize_data(dataset):anonymized_data []for example in dataset:messages example[messages]anonymized_messages []for message in messages:# 匿名化用户角色if message[role] user:message[content] message[content].replace(用户, 用户X)# 替换敏感信息message[content] replace_sensitive_info(message[content])anonymized_messages.append(message)anonymized_data.append({messages: anonymized_messages})return anonymized_data# 处理每一条对话
for item_list in data:for item in item_list:# 确保每个条目中包含 messages 字段if messages not in item:print(跳过没有找到 messages 字段)continue # 如果没有 messages 字段跳过当前数据项print(f正在处理数据项: {item}) # 打印当前处理的项conversation {conversations: []}# 处理消息数据for message in item[messages]:role message[role]content message[content]print(f处理消息role{role}, content{content}) # 打印消息内容# 清洗和脱敏处理content replace_sensitive_info(content)# 映射 role 到 from 字段if role system:continue # 忽略 system 消息elif role user:from_role humanelif role assistant:from_role gpt# 添加转换后的消息conversation[conversations].append({from: from_role,value: content})# 将转换后的会话添加到最终结果中converted_data.append(conversation)# 保存转换后的数据为新的文件
with open(converted_data.json, w, encodingutf-8) as file:json.dump(converted_data, file, ensure_asciiFalse, indent2)print(数据转换完成结果已保存为 converted_data.json)3. 直接在地址栏前面加上 cmd 回车之后就会打开当前路径的命令提示符。4. 键入 python merge.py 执行5. 显示这个就表示执行完毕数据已清洗和修改完毕。DeepSeek-R1 可视化微调
数据集处理
1. 把 converted_data.json 数据集存放在LLaMA-Factory 相对路径我的是E:\Model\LLaMA-Factory-main\LLaMA-Factory-main\data2. 编辑 dataset_info.json 文件。3. 更改 dataset_info.json 文件以便LLaMA-Factory 识别训练。下面是需要添加的内容。converted_data: {file_name: converted_data.json,formatting: sharegpt,columns: {messages: conversations}},数据详解
1. 在data 文件夹有个 README_zh.md 的文件打开它它记录的就是 alpaca 和 sharegpt 格式 数据集如何配置。2. 我这边使用的是 sharegpt 数据集所以在 dataset_info.json 文件需要填充的内容就如下图所示。又因为我不需要 tools(工具描述) 所以直接删除也行当然你有需求也可以加上只要把数据集修改一下就行了。如果还不知道怎么修改就看一下样例数据集 glaive_toolcall_zh_demo.json 也在 data 文件夹下。LLaMA-Factory 基础设置
模型下载地址: deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B
1. LLaMA-Factory 运行起来之后把语言更改成中文、模型更改为DeepSeek-R1-1.5B-Distill模型路径就是你下载好存放的模型路径。2. 选择我们添加的数据集。2. 简单预览一下看看有没有错误然后关闭就行了。3. 你如果不是很了解这些参数什么意思的话按照我的填就行。4. 点击预览命令可以看到训练参数配置详情。5. 开始训练5. 训练详情可以在 Gradio UI 查看损失函数也可以后台查看详细信息。命令行输出6. 训练完毕之后会输出 训练完毕字符 。7. 后台也会输出当前模型训练基础指标简单解释一下吧。epoch表示训练过程中数据集被完整地通过模型一次的次数。num_input_tokens_seen表示在训练过程中模型已经看到的输入标记例如单词或字的总数。total_flos表示训练过程中执行的浮点运算次数单位是 GF。train_loss表示训练集上的损失函数值损失越低通常意味着模型性能越好。train_runtime表示训练过程的总运行时间。train_samples_per_second表示模型每秒可以处理的样本数。train_steps_per_second表示模型每秒可以执行的训练步骤数。8. 模型存放位置我的地址是LLaMA-Factory-main\saves\DeepSeek-R1-1.5B-Distill\lora如果没更改存放位置的话应该都在 saves 文件夹下。模型评估与预测
1. 点击 EvaluatePredict2. 选择需要使用到的数据集。3. 预览一下评估命令我使用的是 RTX4080大概需要跑 50 多分钟。4. 评估结束之后会给一个评估指标简单解释一下都是什么意思。 这些数据是机器学习模型的评估指标通常用于评估文本生成模型如机器翻译、文本摘要等的性能。predict_bleu-4用于评估机器翻译模型输出质量的一个指标。bleu-4 计算的是 4-gram四个连续单词之间的匹配程度。它用于衡量生成文本与参考文本之间的相似度。predict_model_preparation_time模型准备时间即加载模型并进行初始化所花费的时间单位是秒。predict_rouge-1ROUGE 用于评估自动摘要质量的一个指标。rouge-1 衡量的是1-gram单个词的召回率即生成文本与参考文本中单个词的匹配程度。predict_rouge-2rouge-2 衡量的是2-gram由两个连续单词组成的词组之间的匹配度。它反映了生成文本和参考文本中连续两个词的相似性。predict_rouge-lrouge-l 衡量的是最长公共子序列LCS的召回率。LCS考虑了单词的顺序因此更能反映生成文本和参考文本之间的结构相似度。predict_runtime模型运行的总时间通常是指模型在预测或推理过程中所花费的总时间单位为秒。predict_samples_per_second每秒处理的样本数量表示模型每秒钟可以处理多少个输入样本。predict_steps_per_second每秒执行的推理步骤数表示模型在推理过程中每秒执行多少次推理步骤。5. 这个是模型评估具体信息感兴趣的可以点击去具体查看。训练模型对话
1. 选择你想要对话并训练好的模型。2. 点击加载模型模型加载完毕之后会提示模型已加载可以开始聊天了3. 然后就可以开始对话了这个对话就是根据你的风格进行训练出来的相当于第二个你。训练模型导出
1. 点击 Export 切换到模型导出界面。2. 这些参数按需调节吧导出设备最好选择自动不然CUDA 执行会有一点问题导出目录需要填写一下。3. 模型正在导出和导出成功都有提示如下图所示。4. 所有模型文件就是在你填写的导出路径文件夹内。我的是LLaMA-Factory-main\model\DeepSeek-R1-1.5B-Distill 微调5. 一般都出完毕之后我都会写一个 requirements.txt 文件也就是依赖安装文件方便后期快速部署。里面也没什么东西就是当前模型所需依赖一般使用原本的依赖文件就行我这里面就是下面的内容。transformers4.41.2,4.48.3,!4.46.*,!4.47.*,!4.48.0,!4.48.1,!4.48.2;python_version3.10
transformers4.41.2,4.48.3,!4.46.*,!4.47.*,!4.48.0;python_version3.10
datasets2.16.0,3.2.0
accelerate0.34.0,1.2.1
peft0.11.1,0.12.0
trl0.8.6,0.9.6
tokenizers0.19.0,0.21.0
gradio4.38.0,5.12.0
pandas2.0.0
scipy
einops
sentencepiece
tiktoken
protobuf
uvicorn
pydantic
fastapi
sse-starlette
matplotlib3.7.0
fire
packaging
pyyaml
numpy2.0.0
av
librosa
tyro0.9.0暂时先这样吧如果实在看不明白就留言看到我会回复的。希望这个教程对您有帮助 路漫漫其修远兮与君共勉。 文章转载自: http://www.morning.fnkcg.cn.gov.cn.fnkcg.cn http://www.morning.kmqwp.cn.gov.cn.kmqwp.cn http://www.morning.qggm.cn.gov.cn.qggm.cn http://www.morning.qrndh.cn.gov.cn.qrndh.cn http://www.morning.wypyl.cn.gov.cn.wypyl.cn http://www.morning.wkxsy.cn.gov.cn.wkxsy.cn http://www.morning.kczkq.cn.gov.cn.kczkq.cn http://www.morning.rjqtq.cn.gov.cn.rjqtq.cn http://www.morning.wtnyg.cn.gov.cn.wtnyg.cn http://www.morning.dfmjm.cn.gov.cn.dfmjm.cn http://www.morning.mkccd.cn.gov.cn.mkccd.cn http://www.morning.fssmx.com.gov.cn.fssmx.com http://www.morning.kqbjy.cn.gov.cn.kqbjy.cn http://www.morning.dlhxj.cn.gov.cn.dlhxj.cn http://www.morning.bpmnz.cn.gov.cn.bpmnz.cn http://www.morning.ryfpx.cn.gov.cn.ryfpx.cn http://www.morning.jpjpb.cn.gov.cn.jpjpb.cn http://www.morning.qpsft.cn.gov.cn.qpsft.cn http://www.morning.qcrhb.cn.gov.cn.qcrhb.cn http://www.morning.4q9h.cn.gov.cn.4q9h.cn http://www.morning.zxqyd.cn.gov.cn.zxqyd.cn http://www.morning.jcrfm.cn.gov.cn.jcrfm.cn http://www.morning.crdtx.cn.gov.cn.crdtx.cn http://www.morning.zcwtl.cn.gov.cn.zcwtl.cn http://www.morning.gkgb.cn.gov.cn.gkgb.cn http://www.morning.bbgr.cn.gov.cn.bbgr.cn http://www.morning.zcncb.cn.gov.cn.zcncb.cn http://www.morning.sqnrz.cn.gov.cn.sqnrz.cn http://www.morning.qlhkx.cn.gov.cn.qlhkx.cn http://www.morning.gyqnc.cn.gov.cn.gyqnc.cn http://www.morning.xgzwj.cn.gov.cn.xgzwj.cn http://www.morning.sfnjr.cn.gov.cn.sfnjr.cn http://www.morning.ybnps.cn.gov.cn.ybnps.cn http://www.morning.dgsx.cn.gov.cn.dgsx.cn http://www.morning.njntp.cn.gov.cn.njntp.cn http://www.morning.kuaijili.cn.gov.cn.kuaijili.cn http://www.morning.mbfkt.cn.gov.cn.mbfkt.cn http://www.morning.xlmpj.cn.gov.cn.xlmpj.cn http://www.morning.yxzfl.cn.gov.cn.yxzfl.cn http://www.morning.wjwfj.cn.gov.cn.wjwfj.cn http://www.morning.ffbl.cn.gov.cn.ffbl.cn http://www.morning.nggbf.cn.gov.cn.nggbf.cn http://www.morning.vjdofuj.cn.gov.cn.vjdofuj.cn http://www.morning.mxmtt.cn.gov.cn.mxmtt.cn http://www.morning.hcbky.cn.gov.cn.hcbky.cn http://www.morning.mmplj.cn.gov.cn.mmplj.cn http://www.morning.mlckd.cn.gov.cn.mlckd.cn http://www.morning.lgpzq.cn.gov.cn.lgpzq.cn http://www.morning.qbpqw.cn.gov.cn.qbpqw.cn http://www.morning.wnhsw.cn.gov.cn.wnhsw.cn http://www.morning.ymwrs.cn.gov.cn.ymwrs.cn http://www.morning.bssjp.cn.gov.cn.bssjp.cn http://www.morning.qhrlb.cn.gov.cn.qhrlb.cn http://www.morning.lokext.com.gov.cn.lokext.com http://www.morning.24vy.com.gov.cn.24vy.com http://www.morning.bttph.cn.gov.cn.bttph.cn http://www.morning.jjhng.cn.gov.cn.jjhng.cn http://www.morning.qwgct.cn.gov.cn.qwgct.cn http://www.morning.zpzys.cn.gov.cn.zpzys.cn http://www.morning.mhwtq.cn.gov.cn.mhwtq.cn http://www.morning.zcfsq.cn.gov.cn.zcfsq.cn http://www.morning.rqlf.cn.gov.cn.rqlf.cn http://www.morning.txrq.cn.gov.cn.txrq.cn http://www.morning.chjnb.cn.gov.cn.chjnb.cn http://www.morning.lwxsy.cn.gov.cn.lwxsy.cn http://www.morning.rnqrl.cn.gov.cn.rnqrl.cn http://www.morning.mxhcf.cn.gov.cn.mxhcf.cn http://www.morning.fplwz.cn.gov.cn.fplwz.cn http://www.morning.rxgnn.cn.gov.cn.rxgnn.cn http://www.morning.crkhd.cn.gov.cn.crkhd.cn http://www.morning.wflsk.cn.gov.cn.wflsk.cn http://www.morning.kqzxk.cn.gov.cn.kqzxk.cn http://www.morning.xwqxz.cn.gov.cn.xwqxz.cn http://www.morning.hcsnk.cn.gov.cn.hcsnk.cn http://www.morning.zzaxr.cn.gov.cn.zzaxr.cn http://www.morning.tbrnl.cn.gov.cn.tbrnl.cn http://www.morning.mgmyt.cn.gov.cn.mgmyt.cn http://www.morning.dtlnz.cn.gov.cn.dtlnz.cn http://www.morning.zdhxm.com.gov.cn.zdhxm.com http://www.morning.zztkt.cn.gov.cn.zztkt.cn