IT评测·应用市场-qidao123.com

标题: 广告行业中那些趣事系列84:基于LLaMA Factory做一个AI版听泉鉴宝 [打印本页]

作者: 徐锦洪    时间: 2025-3-7 22:40
标题: 广告行业中那些趣事系列84:基于LLaMA Factory做一个AI版听泉鉴宝
导读:本文是“数据拾光者”专栏的第八十四篇文章,这个系列将先容在广告行业中天然语言处理和推荐体系实践。本文重要调研LLaMA Factory框架以及如何利用该框架来构建一个AI版听泉鉴宝。   
欢迎转载,转载请注明出处以及链接,更多关于天然语言处理、推荐体系优质内容请关注如下频道。   
知乎专栏:数据拾光者   
公众号:数据拾光者    01 背景先容

  前一段时间有个叫"听泉鉴宝"(现在叫"听泉赏宝")的火起来了,半年多涨粉2000万。现在粉丝凌驾3100万,网友点评段子:“直播间十万人,三万盗墓的,三万便衣警察,三万同行,剩下一万是观众。”这个主播用搞笑、浮夸和隐晦的方式帮大家鉴宝,风格独特,轻松娱乐的同时还能学点赏宝知识,照旧挺好玩的。下面是大V听泉赏宝的抖V:
  
  那么问题来了,自从以Chatgpt为代表的大模型火了之后,我们能不能用大模型来做一个AI版的"听泉鉴宝"呢?答案是肯定的。可以考虑使用Qwen2-VL多模态学习模型微调一下,我们就有可能做一个AI版"听泉鉴宝"。微调框架可以考虑用当前很火的LLaMA Factory,简单,易用,甚至可以做到零代码微调大模型。
  02 LLaMA Factory先容

  LLaMA Factory是一个开源低代码用来微调大模型的框架,集成了当前业界广泛使用的微调技能。我们甚至可以通过Web UI界面实现零代码微调大模型。现在github项目有4.2K的fork和33.7K的star(停止20241107),名副其实的明星项目。LLaMA Factory的github地址如下:
  https://github.com/hiyouga/LLaMA-Factory
  
  项目特色显着,支持多种模型,同时集成多种方法等,可谓功能齐备,简单好用。下面是引用官网的项目特色先容:
  
  性能方面也不错,与 ChatGLM 官方的 P-Tuning 微调相比,LLaMA Factory 的 LoRA 微调提供了 3.7 倍的加快比,同时在广告文案天生任务上取得了更高的 Rouge 分数。结合 4 比特量化技能,LLaMA Factory 的 QLoRA 微调进一步降低了 GPU 显存消耗。
  
  支持很多大语言模型,下面是部分截图:
  
  训练方法也很全面:
  
  安装LLaMA Factory指令:
  1. cd /home/notebook/data/Fine-tune/
  2. # 下载项目和解压
  3. !git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
  4. cd /home/notebook/data/Fine-tune/LLaMA-Factory
  5. # 激活虚拟环境   必须设置,否则报错
  6. conda activate llama_factory
  7. # 安装依赖
  8. pip install -r requirements.txt
复制代码
启动 LLaMA Factory 的 WebUI 页面来微调,执行下令如下:
  1. CUDA_VISIBLE_DEVICES=0 python src/train_web.py
复制代码
输入上面启动web页面之后假如出现如下页面则启动乐成:
  
  在欣赏器输入如下url即可使用UI界面微调LLM。
  LLaMA Board页面url:https://f6e72ebb5113af707a.gradio.live/
  03 使用LLaMA Factory实现文旅模型示例

  3.1 使用的数据集及示例

  使用如下下令下载多轮对话数据集:
  1. !wget https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/release/llama_factory/Qwen2-VL-History.zip
复制代码
数据集中有261条样本,每条样本由一条体系提示、用户指令和模型答复组成。通过微调多模态学习模型Qwen2-VL不停学习样本中的答复风格,从而达到学习文旅知识的目的。数据示比方下:
  
  基于LLaMA Factory微调一个Qwen2-VL 多模态学习模型,收集听泉鉴宝相关的古玩图片数据以及对应的文本数据拿来微调,就可以实现一个AI版本的听泉鉴宝了。
  3.2 模型微调相关设置设置

  3.2.1 模型选择以及微调方法

  模型选择以及微调方法设置如下:
  
  这里使用的是Qwen2VL-2B-Chat模型,微调方法是full。
  微调方式重要有以下三种,可以根据必要进行选择:
  
  对于特别大的模型一般使用lora方式,只微调部分参数,在特定层上进行微调。假如模型比较小,可以选择full方式。
  3.2.2 设置数据集和训练方式

  设置数据集和训练方式如下:
  
  训练方式有如下几种:
  
  3.2.3 设置学习率

  设置学习率为 1e-4,训练轮数为 10,更改计算范例为 pure_bf16,梯度累积为 2,有利于模型拟合。
  
  关于学习率这块,AdamW优化器中的学习率(learning rate)是指控制模型参数更新步长的超参数。学习率决定了在每次参数更新时权重应该调整的幅度,从而影响模型在训练过程中的收敛速度和最终性能。在AdamW优化器中,学习率是一个重要的超参数,通常初始化为一个较小的值,它可以随着训练的进行而动态调整。选择符合的学习率有助于制止模型陷入局部最优解或发散,同时还可以进步模型的泛化能力。调整学习率的过程通常会在训练过程中进行,可能会使用学习率衰减策略(比方指数衰减、余弦退火等)来渐渐减小学习率,以便模型更好地探索损失函数的空间并获得更好的收敛性能。下面是几种常用的学习率选择:
  
  3.2.4 最大梯度范数

  关于最大梯度范数,最大梯度范数用于对梯度进行裁剪,限制梯度的巨细,以防止梯度爆炸(梯度过大)的问题。选择符合的最大梯度范数取决于您的模型、数据集以及训练过程中碰到的情况。一般来说,常见的最大梯度范数取值在1到5之间,但具体取值要根据您的模型结构和训练数据的情况进行调整。以下是一些常见的最大梯度范数取值建议:
  
  选择最大梯度范数时,建议根据实际情况进行试验和调整,在训练过程中观察模型的体现并根据必要进行调整。但通常情况下,一个合理的初始范围在1到5之间可以作为起点进行尝试。
  3.2.5 设置计算范例

  关于计算范例的选择:
  
  在深度学习训练中,使用更低精度(比方FP16或BF16)可以降低模型的内存和计算需求,加快训练速度,尤其对于大规模模型和大数据集是有益的。然而,较低精度也可能带来数值稳固性问题,特别是在训练过程中必要小心处理梯度的表达范围,制止梯度消散或爆炸的问题。
  3.2.6 设置学习率调治器

  学习率调治器重要有以下几种:
  
  在其他参数设置区域修改保存间隔为 1000,节省硬盘空间。
  
  3.3 开始微调

  将输出目次修改为 train_qwen2vl,训练后的模型权重将会保存在此目次中。点击「预览下令」可展示所有已设置的参数,点击「开始」启动模型微调。
  
  启动微调后必要等待一段时间,待模型下载完毕后可在界面观察到训练进度和损失曲线。模型微调大约必要 14 分钟,表现“训练完毕”代表微调乐成。
  
  3.4 模型对话

  选择「Chat」栏,将检查点路径改为 train_qwen2vl,点击「加载模型」即可在 Web UI 中和微调后的模型进行对话。
  
  输入prompt文本"你是一个导游,请生动有趣的答复有课提出的问题",在image那里上传一张图片,然后输入文本“给我讲讲这个地方”,点击提交即可。
  
  下面是模型输出的答案,可以发现模型学习到了数据集中的内容,可以或许适当地模拟导游的语气先容图中的山西博物院。
  
  假如想对比下微调模型前后的效果差异,可以先卸载模型,然后点击检查点路径输入框取消勾选检查点路径,再次点击「加载模型」,即可与微调前的原始模型谈天。
  
  卸载之后的模型输出如下:
  04 小结

  上面使用LLaMA Factory框架,基于full方式微调了 Qwen2-VL-2B 模型,构建了文旅范畴多模态大模型。假如想做一个AI版的听泉鉴宝,可以参考上面的方式,收集听泉直播间里的各种古玩照片以及听泉的笔墨数据进行整理,使用多模态学习模型进行微调就可以针对实际的业务场景构建本地范畴的大模型应用了。
  参考资料

  [1]https://github.com/hiyouga/LLaMA-Factory/
  [2]https://gallery.pai-ml.com/#/preview/deepLearning/nlp/llama_factory_qwen2vl
  最新最全的文章请关注我的微信公众号或者知乎专栏:数据拾光者。
  码字不易,欢迎小同伴们关注和分享。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4