llava1.5模型安装、预测、训练详细教程

这篇具有很好参考价值的文章主要介绍了llava1.5模型安装、预测、训练详细教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引言

本博客介绍LLava1.5多模态大模型的安装教程、训练教程、预测教程,也会涉及到hugging face使用与wandb使用。

源码链接:点击这里

demo链接:点击这里

论文链接:点击这里

一、系统环境

ubuntu 20.04
gpu: 2*3090
cuda:11.6

二、LLava环境安装

1、代码下载

git clone https://github.com/haotian-liu/LLaVA.git
cd LLaVA

2、虚拟环境构建

conda create -n llava python=3.10 -y
conda activate llava
pip install --upgrade pip  # enable PEP 660 support

3、模型预测安装

pip install -e .

4、模型训练环境安装

pip install -e ".[train]"
pip install flash-attn --no-build-isolation  # 可能安装失败

5、flash-attn离线环境安装

根据对应环境格式下载相应flash-attn,
flash-attn下载链接点击这里
实际为whl的离线文件,在使用pip install *.whl 即可

三、LLava推理运行

1、启动网页预测(类似服务端与客户端)

Launch a controller

python -m llava.serve.controller --host 0.0.0.0 --port 10000

Launch a gradio web server.

python -m llava.serve.gradio_web_server --controller http://localhost:10000 --model-list-mode reload

注:host 0.0.0.0表示自动填充本机ip,网页将其替换本机ip即可,web server启动后会有网页ip,若在其它电脑将其0.0.0.0替换运行服务器的ip即可。

2、推理权重下载

我们使用llava-v1.5-7b模型做推理。

llava-v1.5-7b权重下载

权重下载地址:点击这里

权重下载,需要使用hugging face才能下载,自己注册账号即可,文件格式如下:
llava1.5模型安装、预测、训练详细教程,语言模型-多模态大模型,自然语言处理,语言模型,transformer,视觉检测,多模态大模型,llava

将图示文件全部下载,内有一个config.json文件,该文件很重要,部分内容如下:

llava1.5模型安装、预测、训练详细教程,语言模型-多模态大模型,自然语言处理,语言模型,transformer,视觉检测,多模态大模型,llava

该文件可看出视觉编码也缺少相应权重,需下载如下内容,并将其路径修改本地权重保存文件。

clip-vit-large-patch14-336权重下载

权重下载地址:点击这里
该文件可通过点击链接连接,也可在hugging face自行搜索。
llava1.5模型安装、预测、训练详细教程,语言模型-多模态大模型,自然语言处理,语言模型,transformer,视觉检测,多模态大模型,llava

同理,也是全部下载,放到一个文件夹中。

3、启动预测模型

若已完成权重下载,便可执行以下模型启动命令,而–model-path后面需跟模型权重路径文件,若联网能范文hugging face便可无需修改直接使用官方给定命令。

python -m llava.serve.model_worker --host 0.0.0.0 --controller http://localhost:10000 --port 40000 --worker http://localhost:40000 --model-path liuhaotian/llava-v1.5-13b

–load-4bit: 该指令也可加上,使用4bit模型推理

四、LLava的lora训练

1、权重下载

根据下图的finetune_lora.sh文件指定权重在hugging face下载即可,如下图。

llava1.5模型安装、预测、训练详细教程,语言模型-多模态大模型,自然语言处理,语言模型,transformer,视觉检测,多模态大模型,llava

下载好对应权重,即可修改路径路径,如下:
llava1.5模型安装、预测、训练详细教程,语言模型-多模态大模型,自然语言处理,语言模型,transformer,视觉检测,多模态大模型,llava

2、数据准备

使用官网也行,若不想下载太多,使用下面代码准备部分也行,如下:

import json

if __name__ == '__main__':
    json_root=r'*\llava_v1_5_mix665k.json'
    with open(json_root, 'r') as f:
        json_info = json.load(f)
    save_info=json_info[:1000]+json_info[480000:481000]+json_info[620000:621000]
    with open('info.json', 'w') as fp:
        json.dump(save_info, fp, indent=4)

数据图如下:
llava1.5模型安装、预测、训练详细教程,语言模型-多模态大模型,自然语言处理,语言模型,transformer,视觉检测,多模态大模型,llava

3、训练命令

我是将其移动到LLAVA文件内,直接执行此命令:

finetune_lora.sh

4、报错处理

模型有可能报数据错误,此时不用担心,该问题是数据的问题,如下:
llava1.5模型安装、预测、训练详细教程,语言模型-多模态大模型,自然语言处理,语言模型,transformer,视觉检测,多模态大模型,llava

直接修改上面代码如下:

def get_modality_length_grouped_indices(lengths, batch_size, world_size, generator=None):
    # We need to use torch for the random part as a distributed sampler will set the random seed for torch.
    assert all(l != 0 for l in lengths), "Should not have zero length."
    mm_indices, mm_lengths = zip(*[(i, l) for i, l in enumerate(lengths) if l > 0])
    # lang_indices, lang_lengths = zip(*[(i, -l) for i, l in enumerate(lengths) if l < 0])

    lang_indices, lang_lengths=mm_indices, mm_lengths

    assert len(mm_indices) > 0, "Should have at least one multimodal sample."
    assert len(lang_indices) > 0, "Should have at least one language sample."

也有可能有其它数据问题,是可能无eval数据,添加以下红色框即可,如下:

llava1.5模型安装、预测、训练详细教程,语言模型-多模态大模型,自然语言处理,语言模型,transformer,视觉检测,多模态大模型,llava

5、训练效果

若完成以上方式,使用训练命令,可实现如下训练效果:
llava1.5模型安装、预测、训练详细教程,语言模型-多模态大模型,自然语言处理,语言模型,transformer,视觉检测,多模态大模型,llava

6、训练使用wandb

llava训练自带wandb方式显示化查看,训练代码会自动提醒你,你只需注册,然后将其key复制,即可实现,其效果如下:
llava1.5模型安装、预测、训练详细教程,语言模型-多模态大模型,自然语言处理,语言模型,transformer,视觉检测,多模态大模型,llava

llava1.5模型安装、预测、训练详细教程,语言模型-多模态大模型,自然语言处理,语言模型,transformer,视觉检测,多模态大模型,llava

总结

以上便llava所有运行过程,愿踩过的坑对你有帮助。最后,我额外说下,我使用4090显卡搭建,跑测试问题不大,大概16g左右吧,跑训练一张24G卡有些够呛。文章来源地址https://www.toymoban.com/news/detail-741363.html

到了这里,关于llava1.5模型安装、预测、训练详细教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于transformer的Seq2Seq机器翻译模型训练、预测教程

    机器翻译(Machine Translation, MT)是一类将某种语言(源语言,source language)的句子 x x x 翻译成另一种语言(目标语言,target language)的句子 y y y 的任务。机器翻译的相关研究早在上世纪50年代美苏冷战时期就开始了,当时的机器翻译系统是基于规则的,利用两种语言的单词、

    2024年02月03日
    浏览(40)
  • Stable Diffusion Lora模型训练详细教程

    通过Lora小模型可以控制很多特定场景的内容生成。 但是那些模型是别人训练好的,你肯定很好奇,我也想训练一个自己的专属模型(也叫炼丹~_~)。 甚至可以训练一个专属家庭版的模型(family model),非常有意思。 将自己的训练好的Lora模型放到stableDiffusion lora 目录中,

    2024年02月02日
    浏览(51)
  • 【 stable diffusion LORA模型训练最全最详细教程】

    个人网站:https://tianfeng.space/ 其实想写LORA模型训练很久了,一直没时间,总结一下现在主流的两种LORA模型训练方式,分别是朱尼酱的赛博丹炉和秋叶大佬的训练脚本,训练效果应该是赛博丹炉更好,我个人更推荐朱尼酱的赛博丹炉,界面炫酷,操作简单,作者也是花了很多

    2024年02月09日
    浏览(54)
  • so-vits-svc4.0 中文详细安装、训练、推理使用教程

    本帮助文档为项目 so-vits-svc 的详细中文安装、调试、推理教程,您也可以直接选择官方README文档 撰写:Sucial 点击跳转B站主页 本项目需要的环境: NVIDIA-CUDA Python = 3.10 Pytorch FFmpeg - Cuda 在cmd控制台里输入 nvidia-smi.exe 以查看显卡驱动版本和对应的cuda版本 前往 NVIDIA-Developer 官网

    2024年02月05日
    浏览(46)
  • so-vits-svc3.0 中文详细安装、训练、推理使用教程

    2023-3-12文档更新说明: 由于特殊原因,本项目文档将停止更新,详情请见原作者首页,感谢各位的支持! 本文档的Github项目地址 点击前往 本帮助文档为项目 so-vits-svc补档 的详细中文安装、调试、推理教程,您也可以直接选择官方README文档 撰写:Sucial 点击跳转B站主页 本项

    2024年01月21日
    浏览(47)
  • AI:DeepSpeed Chat(一款帮用户训练自己模型的工具且简单/低成本/快 RLHF 训练类ChatGPT高质量大模型)的简介、安装、使用方法之详细攻略

    AI:DeepSpeed Chat(一款帮用户训练自己模型的工具且简单/低成本/快 RLHF 训练类ChatGPT高质量大模型)的简介、安装、使用方法之详细攻略 目录 DeepSpeed Chat的简介 DeepSpeed-Chat的产生背景 DeepSpeed-Chat的简介 DeepSpeed-Chat的三大功能 DeepSpeed-RLHF 系统三大优势 DeepSpeed Chat的安装和使用方法

    2023年04月22日
    浏览(52)
  • 三、yolov8训练结果查看和模型预测

    1、在模型训练结束后,如下图所示,找到该文件夹。 2、然后找到weights文件夹中的best.pt文件,这就是该数据训练后的模型。 1、在assets文件夹下创建FPC-2文件夹,放入一些同类FPC预测结果。 2、和训练同级文件夹,找到predict.py文件,即为模型预测文件。 3、修改model路径,修改

    2024年01月23日
    浏览(53)
  • R 语言的安装(详细教程)

    我不生产知识,我只是知识的搬运工,以下内容是源于 B站 - 徐州更 的安装教程:可能是最好的R语言安装指南哔哩哔哩bilibili 个人是觉得 R 的安装是比较麻烦的,所以我将他讲的安装视频稍作修饰写成文档的形式,方便今后我或者其他人查阅 R语言是用于统计分析、绘图的语

    2023年04月09日
    浏览(34)
  • 模型预测笔记(一):数据清洗分析及可视化、模型搭建、模型训练和预测代码一体化和对应结果展示(可作为baseline)

    KNNImputer的默认算法是基于K最近邻算法来填充缺失值。具体步骤如下: 对于每个缺失值,找到其最近的K个邻居样本。 使用这K个邻居样本的非缺失值来计算缺失值的近似值。可以使用均值、中位数或加权平均值等方法来计算近似值。 将计算得到的近似值填充到缺失值的位置。

    2024年02月12日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包