多模态 Llama-3 它来了 !![全网首发微调教程]

近日,XTuner 团队基于 meta 发布了最新版多模态大模型 LLaVA-Llama-3-8B,相比 LLaVA-1.5, 在多个评测数据集上取得显著提升。

基于此背景,机智流社区创作了基于 Llama3-8B-Instruct 和 XTuner 团队预训练好的 Image Projector ,微调自己的多模态图文理解模型 LLaVA 的教程,快一起来学习下吧~

  • XTuner:

    https://github.com/InternLM/XTuner (文末点击阅读原文可直达,欢迎 Star)

  • 微调教程:

    https://github.com/SmartFlowAI/Llama3-XTuner-CN/ (欢迎 Star)

https://www.reddit.com/r/LocalLLaMA/comments/1ca8uxo/llavallama38b_is_released/

  1. 写在前面
    ==========

随着 XTuner 团队放出了基于 Llama3-8B 的 LLaVA 模型,我们也是第一时间与 XTuner 团队取得了联系,并获得了他们已经预训练好的 Image Projector。接下来,我们将带大家基于 Llama3-8B-Instruct 和 XTuner 团队预训练好的 Image Projector 微调自己的多模态图文理解模型 LLaVA。



  



  1. 环境、模型、数据准备

2.1 配置环境


我们先来配置相关环境。使用如下指令便可以安装好一个 python=3.10 pytorch=2.1.2+cu121 的基础环境了。



`conda create -n llama3 python=3.10``conda activate llama3``conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=12.1 -c pytorch -c nvidia`


接下来我们安装 XTuner。



`cd ~git clone -b v0.1.18 https://github.com/InternLM/XTunercd XTunerpip install -e .`


2.2 模型准备


2.2.1 准备 Llama3 权重

在微调开始前,我们首先来准备 Llama3-8B-Instruct 模型权重。

  • InternStudio 环境下


`cd ~``ln -s /root/new_models/meta-llama/Meta-Llama-3-8B-Instruct .`


  • 非 InternStudio 环境下

我们选择从 OpenXLab 上下载 Meta-Llama-3-8B-Instruct 的权重。



`cd ~``git lfs install``git clone https://code.openxlab.org.cn/MrCat/Llama-3-8B-Instruct.git Meta-Llama-3-8B-Instruct`


2.2.2 准备 Visual Encoder 权重

我们接下来准备 Llava 所需要的 openai/clip-vit-large-patch14-336,权重,即 Visual Encoder 权重。

  • InternStudio 环境下


`cd ~``ln -s /root/new_models/openai/clip-vit-large-patch14-336 .`


  • 非 InternStudio 环境下

可以访问 https://huggingface.co/openai/clip-vit-large-patch14-336 进行下载。

2.2.3 准备 Image Projector 权重

然后我们准备 Llava 将要用到的 Image Projector 部分权重。

  • InternStudio 环境下


`cd ~``ln -s /root/new_models/xtuner/llama3-llava-iter_2181.pth .`


  • 非 InternStudio 环境下

由于 HuggingFace 暂时因为某些原因无法访问,所以暂时不提供基于 HuggingFace 的下载教程。

相关权重可以访问:

https://huggingface.co/xtuner/llava-llama-3-8b 以

及 https://huggingface.co/xtuner/llava-llama-3-8b-v1_1 (已经过微调,并非 Pretrain 阶段的 Image Projector)

2.3 数据准备


按照

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`


  1. 微调过程

3.1 训练启动


我们已经为大家准备好了可以一键启动的配置文件,主要是修改好了模型路径、对话模板以及数据路径。我们使用如下指令以启动训练:



`cd ~``git clone https://github.com/SmartFlowAI/Llama3-XTuner-CN``mkdir -p ~/project/llama3-ft``cd ~/project/llama3-ft``xtuner train ~/Llama3-XTuner-CN/configs/llava_llama3_8b_instruct_qlora_clip_vit_large_p14_336_lora_e1_finetune.py --work_dir ~/project/llama3-ft/llava --deepspeed deepspeed_zero2`


训练过程所需显存约为44447 MiB,在单卡A100上训练所需时间为30分钟。

在训练好之后,我们将原始 image projector 和 我们微调得到的 image projector 都转换为 HuggingFace 格式,为了下面的效果体验做准备。



`xtuner convert pth_to_hf ~/Llama3-XTuner-CN/configs/llava_llama3_8b_instruct_qlora_clip_vit_large_p14_336_lora_e1_finetune.py \`  `~/llama3-llava-iter_2181.pth \`  `~/project/llama3-ft/llava/pretrain_iter_2181_hf``   ``xtuner convert pth_to_hf ~/Llama3-XTuner-CN/configs/llava_llama3_8b_instruct_qlora_clip_vit_large_p14_336_lora_e1_finetune.py \`  `~/project/llama3-ft/llava/iter_1200.pth \`  `~/project/llama3-ft/llava/finetune_iter_1200_hf`


3.2 效果体验


在转换完成后,我们就可以在命令行简单体验一下微调后模型的效果了。

问题1:Describe this image.

问题2:What is the equipment in the image?

3.2.1 Pretrain 模型



`xtuner chat ~/Meta-Llama-3-8B-Instruct \`  `--visual-encoder ~/clip-vit-large-patch14-336 \`  `--llava ~/project/llama3-ft/llava/pretrain_iter_2181_hf \`  `--prompt-template llama3_chat \`  `--image ~/tutorial/xtuner/llava/llava_data/test_img/oph.jpg`


输出结果如下:

此时可以看到,Pretrain 模型只会为图片打标签,并不能回答问题。

3.2.2 Finetune 后模型



`xtuner chat ~/Meta-Llama-3-8B-Instruct \`  `--visual-encoder ~/clip-vit-large-patch14-336 \`  `--llava ~/project/llama3-ft/llava/finetune_iter_1200_hf \`  `--prompt-template llama3_chat \`  `--image ~/tutorial/xtuner/llava/llava_data/test_img/oph.jpg`


输出结果如下:

经过 Finetune 后,我们可以发现,模型已经可以根据图片回答我们的问题了。

如何学习大模型 AGI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

-END-


👉AGI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉AGI大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉AGI大模型视频和PDF合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

  • 15
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值