当前位置: 首页 > news >正文

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才能下载,自己注册账号即可,文件格式如下:
在这里插入图片描述

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

在这里插入图片描述

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

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

权重下载地址:点击这里
该文件可通过点击链接连接,也可在hugging face自行搜索。
在这里插入图片描述

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

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下载即可,如下图。

在这里插入图片描述

下载好对应权重,即可修改路径路径,如下:
在这里插入图片描述

2、数据准备

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

import jsonif __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)

数据图如下:
在这里插入图片描述

3、训练命令

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

finetune_lora.sh

4、报错处理

模型有可能报数据错误,此时不用担心,该问题是数据的问题,如下:
在这里插入图片描述

直接修改上面代码如下:

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_lengthsassert len(mm_indices) > 0, "Should have at least one multimodal sample."assert len(lang_indices) > 0, "Should have at least one language sample."

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

在这里插入图片描述

5、训练效果

若完成以上方式,使用训练命令,可实现如下训练效果:
在这里插入图片描述

6、训练使用wandb

llava训练自带wandb方式显示化查看,训练代码会自动提醒你,你只需注册,然后将其key复制,即可实现,其效果如下:
在这里插入图片描述

在这里插入图片描述

总结

以上便llava所有运行过程,愿踩过的坑对你有帮助。最后,我额外说下,我使用4090显卡搭建,跑测试问题不大,大概16g左右吧,跑训练一张24G卡有些够呛。

相关文章:

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

引言 本博客介绍LLava1.5多模态大模型的安装教程、训练教程、预测教程&#xff0c;也会涉及到hugging face使用与wandb使用。 源码链接:点击这里 demo链接:点击这里 论文链接:点击这里 一、系统环境 ubuntu 20.04 gpu: 2*3090 cuda:11.6 二、LLava环境安装 1、代码下载…...

一个ppt带你读懂网络安全行业四大顶会之一的ndss论文<<Large Language Model guided Protocol Fuzzing>>

论文下载地址&#xff1a; Large Language Model guided Protocol Fuzzing...

ajax调用springboot后台接口

工具 api测试工具 由于后台接口不是同一个团队编写的&#xff0c;在文档缺失的情况下&#xff0c;需要测试后台接口接收参数类型&#xff0c;可以使用这个工具&#xff0c;注册很方便 页面如下所示&#xff0c;可以选择请求方法是get&#xff0c;或者post 重点介绍两种&…...

2021-arxiv-LoRA Low-Rank Adaptation of Large Language Models

2021-arxiv-LoRA Low-Rank Adaptation of Large Language Models Paper: https://arxiv.org/abs/2106.09685 Code: https://github.com/microsoft/LoRA 大型语言模型的LoRA低秩自适应 自然语言处理的一个重要范式包括对通用领域数据的大规模预训练和对特定任务或领域的适应。…...

dockefile

文章目录 应用的部署MySql的部署Tomcat的部署 dockerfileDocker原理镜像的制作容器转镜像Dockerfile 服务编排Docker Compose Docker 私有仓库 应用的部署 搜索app的镜像拉去app的镜像创建容器操作容器中的app MySql的部署 容器内的网络服务和外部机器无法直接通信外部机器和…...

rpc入门笔记 0x02 protobuf的杂七杂八

syntax "proto3"; // 这是个proto3的文件message HelloRequest{ // 创建数据对象string name 1; // name表示名称&#xff0c;编号是1 }生成python文件 安装grpcio和grpcio-tools库 pip install grpcio #安装grpc pip install grpcio-tools #安装grpc tools生成…...

keepalived与nginx与MySQL

keepalived VRRP介绍 集群&#xff08;cluster&#xff09;技术是一种较新的技术&#xff0c;通过集群技术&#xff0c;可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益&#xff0c;其任务调度则是集群系统中的核心技术。 集群组成后&#xff0c;可…...

Pod基础概念

Pod是kubernetes中最小的资源管理组件&#xff0c;Pod也是最小化运行容器化应用的资源对象。一个Pod代表着集群中运行的一个进程。kubernetes中其他大多数组件都是围绕着Pod来进行支撑和扩展Pod功能的&#xff0c;例如&#xff0c;用于管理Pod运行的StatefulSet和Deployment等控…...

WebDAV之π-Disk派盘 + 一叶日记

推荐一款操作方便、界面简洁,记录生活点滴与心情,具有诗情画意的日记软件。 一叶日记是一款记录日记的手机软件,在这款软件中它里面有着各种不同的工具,可以方便用户去随时随地的记录日记,同时里面还有着各种不同的主题背景,可以供用户去选择使用各种功能,给用户记录带…...

在IDEA运行spark程序(搭建Spark开发环境)

建议大家写在Linux上搭建好Hadoop的完全分布式集群环境和Spark集群环境&#xff0c;以下在IDEA中搭建的环境仅仅是在window系统上进行spark程序的开发学习&#xff0c;在window系统上可以不用安装hadoop和spark&#xff0c;spark程序可以通过pom.xml的文件配置&#xff0c;添加…...

无穷级数例子

计算 lim ⁡ x → ∞ ( 1 n 1 1 n 2 1 n 3 . . . 1 n 2 n − 1 1 n 2 n ) 计算\lim _{x\to \infty} (\frac{1}{n1} \frac{1}{n2}\frac{1}{n3} ... \frac{1}{n2n-1} \frac{1}{n2n} ) 计算x→∞lim​(n11​n21​n31​...n2n−11​n2n1​) 解&#xff1a; lim ⁡ x …...

C++构造函数和析构函数详解

一、构造函数 1、概念 构造函数是特殊的成员函数&#xff0c;需要注意的是&#xff0c;构造函数虽然名叫做构造&#xff0c;但是构造函数的主要任务并不是开空间创建对象&#xff0c;而是初始化对象。 2、特征 函数名与类名相同。无返回值对象实例化时编译器自动调用对应的…...

MySQL数据库干货_16—— SQL99标准中的查询

SQL99标准中的查询 MySQL5.7 支持部分的SQL99 标准。 SQL99中的交叉连接(CROSS JOIN) 示例&#xff1a; 使用交叉连接查询 employees 表与 departments 表。 select * from employees cross join departments;SQL99中的自然连接(NATURAL JOIN) 自然连接 连接只能发生在两…...

LLM大语言模型训练中常见的技术:微调与嵌入

微调&#xff08;Fine-Tuning&#xff09;&#xff1a; 微调是一种用于预训练语言模型的技术。在预训练阶段&#xff0c;语言模型&#xff08;如GPT-3.5&#xff09;通过大规模的文本数据集进行训练&#xff0c;从而学会了语言的语法、语义和世界知识。然后&#xff0c;在微调阶…...

每日一练 | 网络工程师软考真题Day47

阅读以下关于Linux文件系统和Samba效劳的说明&#xff0c;答复以下【问题1】至【问题3】。 【说明】 Linux系统采用了树型多级目录来管理文件&#xff0c;树型结构的最上层是根目录&#xff0c;其他的所有目录都是从根目录生成的。通过Samba可以实现基于Linux操作系统的效劳器和…...

Kafka - 监控工具 Kafka Eagle:实时洞察Kafka集群的利器

文章目录 引言Kafka Eagle简介Kafka Eagle的特点Kafka Eagle的优势使用Kafka Eagle的步骤结论 引言 在现代大数据架构中&#xff0c;Apache Kafka已成为一个不可或缺的组件&#xff0c;用于可靠地处理和传输大规模的数据流。然而&#xff0c;随着Kafka集群规模的不断增长&…...

infercnv hpc东南服务器 .libpath 最终使用monocle2环境安装

安装不成功就用conda安装 conda install -c bioconda bioconductor-infercnv Installing infercnv There are several options for installing inferCNV. Choose whichever you prefer: Option A: Install infercnv from BioConductor (preferred) From within R, run the…...

【音视频 | Ogg】RFC3533 :Ogg封装格式版本 0(The Ogg Encapsulation Format Version 0)

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…...

Hadoop时代落幕,开源大数据将何去何从?

Hadoop时代落幕&#xff0c;谁是大数据的新宠儿&#xff1f; 1、 1、...

作为一名程序员面临哪些挑战?应该如何应对?

在现今互联网失业潮的大环境下&#xff0c;每一位程序员都面临着被淘汰的风险&#xff0c;但逃避没有用&#xff0c;今天我们就来总结这些挑战与风险&#xff0c;找准自己的方向与定位&#xff0c;做好职业规划&#xff0c;希望这些信息能对大家有所帮助。 一、面临的挑战 老…...

什么是设备管理系统?2026最新讲解!

设备管理系统&#xff1a;从传统台账到2026年“智慧中枢”的演进回顾设备管理的发展&#xff0c;从依赖纸质记录的手工台账时代&#xff0c;到以Excel和简单软件为代表的电子化时代&#xff0c;再到如今集感知、分析、决策于一体的智能化时代&#xff0c;其核心驱动力已发生根本…...

Qwen3.5-9B-AWQ-4bit Visual Studio开发者的AI伙伴:C#与.NET项目集成

Qwen3.5-9B-AWQ-4bit Visual Studio开发者的AI伙伴&#xff1a;C#与.NET项目集成 1. 当AI大模型遇上.NET开发 想象一下这样的场景&#xff1a;你在Visual Studio中编写一个ASP.NET Core控制器时&#xff0c;突然卡在某个LINQ查询的实现上。这时&#xff0c;你的IDE不仅能提示…...

域名过期后会不会影响网站的SEO排名

域名过期后是否会影响网站的SEO排名&#xff1a;深入探讨与解决方案 在当今互联网时代&#xff0c;域名是网站的核心标识&#xff0c;它不仅代表了网站的身份&#xff0c;还在搜索引擎优化&#xff08;SEO&#xff09;中扮演着重要角色。有时我们可能会面临域名过期的情况&…...

STM32 串口发送中文

一、汉字编码基础 1.1、汉字识别 UTF-8编码特点&#xff1a;汉字通常占3个字节&#xff1b;首字节特征&#xff1a;1110xxxx (0xE0-0xEF)&#xff08;都 > 0x7F&#xff09;&#xff1b;后续字节特征&#xff1a;10xxxxxx (0x80-0xBF)&#xff08;都 > 0x7F&#xff09; …...

OpenClaw+Qwen3-14b_int4_awq:个人博客自动化更新方案

OpenClawQwen3-14b_int4_awq&#xff1a;个人博客自动化更新方案 1. 为什么需要博客自动化更新 作为一个技术博主&#xff0c;我经常遇到这样的困境&#xff1a;好不容易挤出时间写完一篇技术文章&#xff0c;却因为各种琐事耽误了发布。要么是忘记更新Hexo的front matter&am…...

3个突破让你自由掌控数字阅读:fanqienovel-downloader全攻略

3个突破让你自由掌控数字阅读&#xff1a;fanqienovel-downloader全攻略 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 如何确保你钟爱的网络小说永不消失&#xff1f; 当你在通勤途中打…...

2026年成都上门回收黄金新趋势:安全便捷更放心

随着经济的发展和人们生活水平的提高&#xff0c;黄金作为一种重要的投资和保值手段&#xff0c;越来越受到人们的青睐。然而&#xff0c;在黄金回收的过程中&#xff0c;用户常常面临诸多痛点&#xff0c;如价格不透明、流程复杂、门店选择困难等。为了解决这些问题&#xff0…...

领导说我年终奖1.5万是全公司最高,让我别到处说,结果昨天发工资才知道:私下问了其他人,都比我多一倍,下个月我直接离职走人!

有个哥们说&#xff0c;领导拍着他肩膀跟他说&#xff1a;"你今年年终奖1.5万&#xff0c;全公司最高的&#xff0c;别到处说啊&#xff0c;影响不好。"哥们当时还挺感动&#xff0c;觉得自己被认可了&#xff0c;干了一年值了。结果昨天发工资&#xff0c;他私下一打…...

【TÜV认证级C++安全编码规范】:基于EN 50128 SIL3轨道交通项目的静态分析规则集与PC-lint+定制化配置实录

第一章&#xff1a;【TV认证级C安全编码规范】&#xff1a;基于EN 50128 SIL3轨道交通项目的静态分析规则集与PC-lint定制化配置实录在轨道交通SIL3级安全关键系统开发中&#xff0c;C代码必须满足TV认证所要求的EN 50128:2018 Annex A.3“C语言使用指南”及MISRA C:2008&#…...

Jedi-Vim 终极自定义指南:如何集成其他Python分析工具提升开发效率

Jedi-Vim 终极自定义指南&#xff1a;如何集成其他Python分析工具提升开发效率 【免费下载链接】jedi-vim Using the jedi autocompletion library for VIM. 项目地址: https://gitcode.com/gh_mirrors/je/jedi-vim Jedi-Vim 是一款强大的 Vim 插件&#xff0c;它通过集…...