五一超级课堂---Llama3-Tutorial(Llama 3 超级课堂)---第三节llama 3图片理解能力微调(xtuner+llava版)

课程文档:
https://github.com/SmartFlowAI/Llama3-Tutorial
课程视频:
https://space.bilibili.com/3546636263360696/channel/collectiondetail?sid=2892740&spm_id_from=333.788.0.0
操作平台:
https://studio.intern-ai.org.cn/console/

在这里插入图片描述
请参照第一节课完成环境配置和webdemo部署以及源码拉取和安装
https://blog.csdn.net/haidizym/article/details/138378194

conda activate llama3
cd ~
git clone https://github.com/SmartFlowAI/Llama3-Tutorial#模型准备--InternStudio
mkdir -p ~/model
cd ~/model
ln -s /root/share/new_models/meta-llama/Meta-Llama-3-8B-Instruct .
#模型准备--非 InternStudio
#mkdir -p ~/model
#cd ~/model
#git lfs install
#git clone https://code.openxlab.org.cn/MrCat/Llama-3-8B-Instruct.git Meta-Llama-3-8B-Instruct
#准备 openai/clip-vit-large-patch14-336,权重,即 Visual Encoder 权重,非 InternStudio,可以访问 https://huggingface.co/openai/clip-vit-large-patch14-336 以进行下载。
ln -s /root/share/new_models/openai/clip-vit-large-patch14-336 .
#准备 Image Projector 权重
ln -s /root/share/new_models/xtuner/llama3-llava-iter_2181.pth .#数据准备,按照 https://github.com/InternLM/Tutorial/blob/camp2/xtuner/llava/xtuner_llava.md 中的教程来准备微调数据。
cd ~
git clone https://github.com/InternLM/tutorial -b camp2
python ~/tutorial/xtuner/llava/llava_data/repeat.py \-i ~/tutorial/xtuner/llava/llava_data/unique_data.json \-o ~/tutorial/xtuner/llava/llava_data/repeated_data.json \-n 200#模型微调,算力不够,可以考虑把deepspeed zero2换成deepspeed zero2 offload
#xtuner train ~/Llama3-Tutorial/configs/llama3-llava/llava_llama3_8b_instruct_qlora_clip_vit_large_p14_336_lora_e1_finetune.py --work-dir ~/llama3_llava_pth --deepspeed deepspeed_zero2_offload
xtuner train ~/Llama3-Tutorial/configs/llama3-llava/llava_llama3_8b_instruct_qlora_clip_vit_large_p14_336_lora_e1_finetune.py --work-dir ~/llama3_llava_pth --deepspeed deepspeed_zero2
#模型转换
xtuner convert pth_to_hf ~/Llama3-Tutorial/configs/llama3-llava/llava_llama3_8b_instruct_qlora_clip_vit_large_p14_336_lora_e1_finetune.py \~/model/llama3-llava-iter_2181.pth \~/llama3_llava_pth/pretrain_iter_2181_hfxtuner convert pth_to_hf ~/Llama3-Tutorial/configs/llama3-llava/llava_llama3_8b_instruct_qlora_clip_vit_large_p14_336_lora_e1_finetune.py \~/llama3_llava_pth/iter_1200.pth \~/llama3_llava_pth/iter_1200_hf#Pretrain 模型,问题1:Describe this image. 问题2:What is the equipment in the image?
export MKL_SERVICE_FORCE_INTEL=1
xtuner chat /root/model/Meta-Llama-3-8B-Instruct \--visual-encoder /root/model/clip-vit-large-patch14-336 \--llava /root/llama3_llava_pth/pretrain_iter_2181_hf \--prompt-template llama3_chat \--image /root/tutorial/xtuner/llava/llava_data/test_img/oph.jpg#Finetune 后 模型,问题1:Describe this image. 问题2:What is the equipment in the image?
export MKL_SERVICE_FORCE_INTEL=1
xtuner chat /root/model/Meta-Llama-3-8B-Instruct \--visual-encoder /root/model/clip-vit-large-patch14-336 \--llava /root/llama3_llava_pth/iter_1200_hf \--prompt-template llama3_chat \--image /root/tutorial/xtuner/llava/llava_data/test_img/oph.jpg
注释1

“python ~/tutorial/xtuner/llava/llava_data/repeat.py
-i ~/tutorial/xtuner/llava/llava_data/unique_data.json
-o ~/tutorial/xtuner/llava/llava_data/repeated_data.json
-n 200”
这段代码是一个Python脚本,路径为~/tutorial/xtuner/llava/llava_data/repeat.py。它的作用是读取一个JSON文件~/tutorial/xtuner/llava/llava_data/unique_data.json,然后将其中的数据重复200次,并将结果保存到另一个JSON文件~/tutorial/xtuner/llava/llava_data/repeated_data.json中。

具体参数说明如下:

  • -i:指定输入文件的路径,即要重复的原始数据的JSON文件路径。
  • -o:指定输出文件的路径,即重复后的数据要保存到的JSON文件路径。
  • -n:指定重复的次数,这里设置为200次。

所以,这段代码的作用是将unique_data.json文件中的数据重复200次,然后将结果保存到repeated_data.json文件中。

注释2

“llava/llava_llama3_8b_instruct_qlora_clip_vit_large_p14_336_lora_e1_finetune.py --work-dir ~/llama3_llava_pth --deepspeed deepspeed_zero2”
这段代码是在运行一个Python脚本llava_llama3_8b_instruct_qlora_clip_vit_large_p14_336_lora_e1_finetune.py,这个脚本的路径是相对于当前工作目录的(可能是相对于用户的主目录或当前工作目录)。指定了一些参数来配置脚本的行为。下面是对参数的解释:

  • --work-dir ~/llama3_llava_pth:指定了工作目录的路径,即脚本执行时的工作目录。这个路径是用户主目录下的llama3_llava_pth目录。

  • --deepspeed deepspeed_zero2:使用DeepSpeed进行加速训练的参数配置。deepspeed_zero2可能是DeepSpeed的配置文件或者某种模式的标识,具体的含义需要参考DeepSpeed的文档或者脚本的说明。

所以,这段代码的作用是在指定的工作目录下执行llava_llama3_8b_instruct_qlora_clip_vit_large_p14_336_lora_e1_finetune.py脚本,并使用DeepSpeed进行加速训练。

注释3

“xtuner convert pth_to_hf ~/Llama3-Tutorial/configs/llama3-llava/llava_llama3_8b_instruct_qlora_clip_vit_large_p14_336_lora_e1_finetune.py
~/model/llama3-llava-iter_2181.pth
~/llama3_llava_pth/pretrain_iter_2181_hf”

这段代码是在运行一个名为xtuner的命令行工具,执行了其中的一个子命令convert,并提供了一系列参数。下面是对参数的解释:

  • pth_to_hf:这是xtuner工具的子命令,指示将PyTorch模型(.pth文件)转换为Hugging Face Transformers库所需的格式。

  • ~/Llama3-Tutorial/configs/llama3-llava/llava_llama3_8b_instruct_qlora_clip_vit_large_p14_336_lora_e1_finetune.py:指定了一个配置文件的路径,该配置文件描述了模型结构和训练参数等信息,用于指导模型转换。

  • ~/model/llama3-llava-iter_2181.pth:指定了要转换的PyTorch模型的路径,这里是llama3-llava-iter_2181.pth文件。

  • ~/llama3_llava_pth/pretrain_iter_2181_hf:指定了输出路径,即转换后的模型将保存到pretrain_iter_2181_hf目录中,用于后续在Hugging Face Transformers库中加载和使用。

所以,这段代码的作用是使用xtuner工具将PyTorch模型llama3-llava-iter_2181.pth转换为Hugging Face Transformers库所需的格式,并根据提供的配置文件进行适当的转换。

注释4

“export MKL_SERVICE_FORCE_INTEL=1
xtuner chat /root/model/Meta-Llama-3-8B-Instruct
–visual-encoder /root/model/clip-vit-large-patch14-336
–llava /root/llama3_llava_pth/pretrain_iter_2181_hf
–prompt-template llama3_chat
–image /root/tutorial/xtuner/llava/llava_data/test_img/oph.jpg”
这段代码是一系列命令行操作,其中涉及了环境变量的设置和一个名为xtuner的工具的使用,提供了一些参数。下面是对代码的注释:

  • export MKL_SERVICE_FORCE_INTEL=1:这是一个环境变量设置命令,将MKL(Math Kernel Library)服务强制指定为Intel实现。这通常用于优化数值计算的性能。

  • xtuner chat /root/model/Meta-Llama-3-8B-Instruct:这是一个使用xtuner工具的命令,其中chatxtuner工具的一个子命令。它用于启动一个交互式会话,该会话基于给定的模型进行对话。

  • --visual-encoder /root/model/clip-vit-large-patch14-336:指定了视觉编码器的模型路径,用于处理图像输入。这里使用了一个模型路径clip-vit-large-patch14-336

  • --llava /root/llama3_llava_pth/pretrain_iter_2181_hf:指定了LLAVA(LLAMA Visual-Text Attention)模型的路径,该模型经过了预训练并转换为Hugging Face Transformers库所需的格式。这个路径是pretrain_iter_2181_hf

  • --prompt-template llama3_chat:指定了对话的模板名称,用于生成对话的起始提示。

  • --image /root/tutorial/xtuner/llava/llava_data/test_img/oph.jpg:指定了一个图像文件的路径,该图像将作为对话的一部分输入到模型中。

所以,这段代码的作用是启动一个交互式会话,使用给定的视觉编码器模型和LLAVA模型,以及指定的对话模板和图像文件进行对话。

截图

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
使用不了加速
在这里插入图片描述
在这里插入图片描述
ImportError: deepspeed is not installed properly, please check.
之前安装xtuner时候是不是没有 pip install -e .[all]
重新安装xtuner用 pip install -e .[all]
在这里插入图片描述在这里插入图片描述在这里插入图片描述
重新安装xtuner用 pip install -e .[all],并且把deepspeed_zero2换成deepspeed_zero2_offload后,终于可以开始训练了
在这里插入图片描述在这里插入图片描述在这里插入图片描述
近6个小时的等待,终于快好了,今天不知道怎么这么慢,不用offload就out of memory,用offload就只能以时间换空间了,
在这里插入图片描述
庆祝漫长的等待!!!

在这里插入图片描述
模型转换
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

oom问题

①使用https://github.com/SmartFlowAI/Llama3-Tutorial/blob/main/tools/internstudio_quant_web_demo.py,原来是 streamlit run internstudio_web_demo.py xxxx,现在是 streamlit run internstudio_quant_web_demo.py xxxxx
②添加指令–device cpu,以使用cpu运行指令;
③添加指令–deepspeed deepspeed_zero2,或者–deepspeed deepspeed_zero2_offload(在配置环境时须在xtuner目录下执行指令pip install ‘.[all]’)

在这里插入图片描述

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

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

相关文章

自动镭雕机价格是多少?

自动镭雕机是一种高精度、高效率的激光雕刻设备,广泛应用于手机、电脑、玻璃等产品表面的图案雕刻。那么,自动镭雕机多少钱一台呢?本文将为您详细解析各种因素对自动镭雕机价格的影响。 一、影响自动镭雕机价格的因素 1. 品牌和质量 自动镭…

xiuno(修罗)知乎模板二开优化魔板仿网盘资源社–模板加全套插件

使用说明 以服务器为例搭建教程 ①先安装 PHP7.1 版本 再安装数据库 Mysql ②解压文件:xiunobbs_4.0.4(解压到根目录).zip ③解压②完成后找到【plugin】文件夹再解压:plugin(解压到 plugin 文件夹).zip 设置伪静态代码在上面&am…

知从科技应邀参加恩智浦技术日巡回研讨会郑州站汽车电子专场

4月18日,恩智浦技术日巡回研讨会的首个汽车电子专场在郑州成功举办。此次研讨会汇聚了众多行业专家,聚焦前沿的赋能技术,共同探讨汽车电子架构、ADAS、汽车电气化、车载信息娱乐系统、UWB超宽带等热门应用。作为恩智浦合作伙伴,知…

【python量化交易】qteasy使用教程05——创建第一个自定义交易策略

创建第一个自定义交易策略 使用qteasy创建自定义交易策略开始前的准备工作本节的目标自定义策略的实现方法使用 qteasy 的 Strategy 策略类三种不同的自定义策略基类定义一个双均线择时交易策略定义策略运行时机定义策略需要的数据自定义交易策略的实现:realize()获…

Gitee 码云与Git 交互

优质博文:IT-BLOG-CN 一、进入码云官方网站,注册用户 码云(Gitee.com)是一个类似于GitHub的在线代码托管平台。 码云提供了包括版本控制、代码托管、协作开发和代码分享等功能,基于Git开发,支持代码在线查看、历史版本查看、Fo…

回归的无分布预测推理

摘要 我们利用保形推理,开发了回归中无分布预测推理的一般框架。所提出的方法允许使用回归函数的任何估计量构建响应变量的预测带。所得的预测带在标准假设下保留了原始估计量的一致性,同时保证了有限样本边际覆盖,即使这些假设不成立。我们…

echarts-gl 离线3D地图

1、安装依赖 echarts-gl 与 echarts 版本关系: "echarts": "^5.2.0", "echarts-gl": "^2.0.8"# 执行安装 yarn add echarts-gl2、下载离线地图 免费下载实时更新的geoJson数据、行政区划边界数据、区划边界坐标集合_…

容器化Jenkins远程发布java应用(方式二:自定义镜像仓库远程拉取构建)

1.创建maven项目 2.配置git、maven 3.阿里控制台>容器镜像服务>镜像仓库>创建镜像仓库 4.执行shell脚本(推送镜像到阿里云镜像仓库) 使用到登录阿里云仓库命令 #!/bin/bash # 服务名称 SERVER_NAMEplanetflix-app # 镜像tag IMAGE_TAG1.0.0-SN…

亚马逊云科技中国峰会:与你开启云计算与前沿技术的探索之旅

亚马逊云科技中国峰会:与你开启云计算与前沿技术的探索之旅 Hello,我是科技博主Maynor,非常高兴地向你们推荐亚马逊云科技中国峰会,这是一场将于 5 月 29 日至 30 日在上海世博中心举办的科技盛会,如果你对云计算、行业发展新趋势…

Android Studio高版本安卓模拟器抓取https包

Android Studio avd 设置 证书生成 *.cer格式证书​ openssl x509 -inform DER -subject\_hash\_old -in charles-ssl-proxying-certificate.cer​ *.pem格式证书​ openssl x509 -inform PEM -subject\_hash\_old -in charles-ssl-proxying-certificate.pem会输出 2cb30a9e …

kafka系列三:生产与消费实践之旅

在本篇技术博客中,我们将深入探索Apache Kafka 0.10.0.2版本中的消息生产与消费机制。Kafka作为一个分布式消息队列系统,以其高效的吞吐量、低延迟和高可扩展性,在大数据处理和实时数据流处理领域扮演着至关重要的角色。了解如何在这一特定版…

软件设计师笔记(一)-基础要点

本文内容来自笔者学习zst 留下的笔记,虽然有点乱,但是哥已经排版过一次,将就着看吧,查缺补漏,希望大家都能通过,记得加上免费的关注!谢谢!csdn贴图真的很废人! 目录 一、…

【3dmax笔记】030:参考与冻结

一、参考 参考物体,需要是实体。例如将一个图片作为参考,导入软件中,基于图片进行二维样条线绘制。 首先绘制一个三维的平面,或者绘制一个二维的矩形,添加一个挤出修改器(将厚度设为0),勾选【生成贴图坐标】,如下图所示: 然后将图片(位于配套实验数据包中的data03…

数据治理的难题:如何化解?

在数字化转型的大潮中,数据治理成了每个企业都绕不开的话题。但是,数据治理这条路并不好走,充满了各种挑战。这些挑战不仅来自于技术,还有组织文化、流程和法律法规等方面。 挑战一:数据孤岛 在企业内部,…

容灾演练双月报|郑大一附院数据级容灾演练切换

了解更多灾备行业动态 守护数字化时代业务连续 目录 CONTENTS 01 灾备法规政策 02 热点安全事件 03 容灾演练典型案例 01 灾备法规政策 3月19日,工信部发布《工业和信息化部办公厅关于做好2024年信息通信业安全生产和网络运行安全工作的通知》。明确提出“…

如何防止WordPress网站内容被抓取

最近在检查网站服务器的访问日志的时候,发现了大量来自同一个IP地址的的请求,用站长工具分析确认了我的网站内容确实是被他人的网站抓取了,我第一时间联系了对方网站的服务器提供商投诉了该网站,要求对方停止侵权行为,…

五一超级课堂---Llama3-Tutorial(Llama 3 超级课堂)---第一节 Llama 3 本地 Web Demo 部署

课程文档: https://github.com/SmartFlowAI/Llama3-Tutorial 课程视频: https://space.bilibili.com/3546636263360696/channel/collectiondetail?sid2892740&spm_id_from333.788.0.0 操作平台: https://studio.intern-ai.org.cn/consol…

特征提取与深度神经网络(角点检测)

图像特征概述 图像特征表示是该图像唯一的表述,是图像的DNA HOG HOG (Histogram of Oriented Gradients)是一种用于目标检测的特征描述子。在行人检测中用的最多。HOG特征描述了图像中局部区域的梯度方向信息,通过计算图像中各个…

通义千问2.5正式发布,能力升级,全面赶超GPT4

简介 在人工智能的大潮中,大模型的竞争愈发激烈。今日,阿里云发布了其最新的通义千问2.5大模型,引起了业界的广泛关注。这款模型不仅在性能上全面赶超了GPT-4,还在多个基准测评中取得了优异的成绩,展现了国产AI技术的…

ARP命令

按照缺省设置,ARP高速缓存中的项目是动态的,每当发送以恶个指定的数据报且高速缓存中不存在当前项目时,ARP便会自动添加该项目。一旦高速缓存的项目被输入,就已经开始走向失效状态。因此,如果ARP高速缓存中的项目很少或…