AI

您将深入了解人工智能(AI)的核心技术与应用,包括机器学习、深度学习、自然语言处理、计算机视觉等热门领域。我们提供最新的AI教程、技术文章、行业案例与实践指南,帮助您掌握AI技术,提升编程与数据分析能力。无论您是AI初学者还是专业开发者,都可以在这里找到丰富的学习资源,助力您的职业发展与技术创新。关注我们的AI板块,了解AI最新趋势,抢占未来科技先机!

第四节 查看bin权重文件内容

大模型

第四节 查看bin权重文件内容

文章目录 * * * * * * * 前言 为什么我单独用一节文章记录llava相关bin权重文件内容?原因很简单,它比较重要,我们可以通过查看权重相关变量间接感性认识llava模型结构,以便我们对模型权重含义理解。本篇文章将涉及lora权重与大语言LLM模型llama的权重,以及相应mm_project与vit图像编码权重。这样我们将从权重文件理解llava本身结构,并也给出自带lora训练权重相关内容,将对我们训练模型保存对应权重也是十分必要的,且也能帮助我们如何把lora权重更新原始权重。 一、权重bin文件读取方法 在查找了一些方法后,发现保存bin文件是使用torch完成,自然torch也可以直接读取bin文件,直接torch.load即可实现,代码如下: res = torch.load("/home/LLaVA/llava_v1.5_lora/llava-v1.5-7b/mm_projector.bin", map_location=torch.device("cpu")) 二、查看llava-v1.5-7b与llava-

By Ne0inhk
史上最全AP/mAP通用代码实现(yolov5 txt版本)-下

史上最全AP/mAP通用代码实现(yolov5 txt版本)-下

提示:通用map指标框架代码介绍,直接使用yolov5数据格式,实现论文map指标计算代码解读 文章目录 * * * 前言 “史上最全AP、mAP详解与代码实现”文章()已经介绍了map相关原理,且给出相应简单代码实现AP方法。然将AP计算融入模型求解AP结果,可能是一个较为复杂的工程量。我也在博客分享基于模型构造一个即插即用计算map的相关模块代码,使用者只需复制我的模块,即可使用。然,之前方法是需要使用xml格式,依然对yolo模型不甚友好,我再此修改为txt方式,使用yolo本身数据实现small、medium、large等相关AP或AP0.75等结果预测。本文将直接介绍计算map核心代码简单列子,在此基础上介绍整个即插即用map计算模块使用方法与代码解读。 该版本是直接使用yolo数据格式实现map计算,集成txt转json格式内容。 一、map模块整体认识 本文就是一个detection_map即插即用计算map指标模块,可计算任何模型map指标,但有效计算需要稍微修改部分代码,我后面将介绍。基于此,我将整理一份yolo模型的通用map框架代码。

By Ne0inhk
图像描述(image caption)模型简单demo(源码理解原理)

图像描述(image caption)模型简单demo(源码理解原理)

文章目录 * * * * 前言 图像描述模型简单理解是通过图像给出一段描述内容,实际也类似一种生成模式,和我一篇博客讲的对话模型相似。然而,网络很少从代码层次去说明图像描述具体做法与细节。基于此,我原创一个简单模型,旨在帮助理解原理,但不具备很好效果能力。 一、推理方式 逐字推理(word-by-word inference)和完全推理(full-sentence inference)是在自然语言处理中常见的两种生成文本的方法。 1、逐字推理(word-by-word inference) 在逐字推理中,生成文本的过程是逐字逐字地进行的。模型在每个时间步骤根据前一个时间步骤生成的单词来预测下一个单词。这种方法通常使用循环神经网络(RNN)或者长短时记忆网络(LSTM)等模型来实现。模型在每个时间步骤都会输出一个单词,直到生成完整的句子或段落。 2、完全推理(full-sentence inference) 在完全推理中,生成文本的过程是一次性完成的。模型一次性接收所有输入,并在单个步骤中生成完整的句子或段落。这种方法通常使用注意力机制(atte

By Ne0inhk
自动构建文件(exp->exp1->exp2方式,increment_path函数)

AI

自动构建文件(exp->exp1->exp2方式,increment_path函数)

这里,我将介绍一个函数用于文件夹重复筛选,该函数来源yolov5,以v5举例,训练exp文件,若遇到存在exp就建立exp2路径。我觉得这个功能比较实用,代码也比较少。我作为记录写于博客,便于快速复用。 increment_path函数 该函数来源yolov5,用于一个文件夹不重复文件构建,很适合重复保留内容而重复构建文件夹方式,该代码如下: from pathlib import Path import glob import re def increment_path(path, exist_ok=False, sep='', mkdir=False): # Increment file or directory path, i.e. runs/exp --> runs/exp{sep}

By Ne0inhk
模拟多模态大模型gradio使用教程

算法

模拟多模态大模型gradio使用教程

文章目录 * * * * * 前言 最近,在看多模态推理模块,涉及到gradio相关用法。介于此,我将介绍网页界面gradio如何与大模型结合使用,实现与模型交互。我主要用到gr.Row()与gr.Column()方法实现界面部署,使用button方法触发事件,以及如何界面输入或输出使用图片等内容。读懂该部分基本已可实现大模型界面基本设置,也能更易解读别人源码。 一、使用change监听demo 我使用change使用blocks创建网页方法,使用Markdown给出网页显示(如下图),使用Textbox构建文本,placeholder这个为文本内的提示。在使用change直接监听,实际直接调用welcome函数,直接给到out。 1、代码 import gradio as gr def welcome(name): return f"Welcome to Gradio, your input:{name}!" with gr.Blocks() as

By Ne0inhk
Mini-Gemini: Mining the Potential of Multi-modality Vision Language Models论文解读

Mini-Gemini: Mining the Potential of Multi-modality Vision Language Models论文解读

文章目录 * * * 前言 随着大型语言模型(LLMs)的快速发展,将多模态输入的强大能力融入视觉语言模型(VLMs)已成为当前模型的核心部分。为了弥合模态鸿沟,已有研究尝试将视觉与LLMs结合,从图像到视频都有涉及。尽管取得了进步,但学术界的努力与GPT-4和Gemini等成熟模型的强大性能之间仍存在显著差距,这些模型是基于大量数据和资源训练的。基于此,Mini-Gemini论文 通过高分辨率、高质量数据和结合生成模型(high-resolution visual tokens, high-quality data, and VLMguided generation),实现多模态任务与生成任务,也就是论文说任何到任何输入输出(any to any),而至于模型较小是采用gemma的2b作为LLM语言模型。介于此,我将解读本篇论文,供读者参考。 论文地址:https://arxiv.org/pdf/2403.18814.pdf 代码github:https://github.com/dvlab-research/MiniGemini demo位置:

By Ne0inhk
Groma: Localized Visual Tokenization for Grounding Multimodal Large Language Models论文解读

AI

Groma: Localized Visual Tokenization for Grounding Multimodal Large Language Models论文解读

文章目录 * * * * 前言 具有区域的多模态大模型,除了整体图像理解之外,Groma 还擅长区域级任务,例如区域描述和视觉grounding。 此类功能建立在本地化视觉标记化机制的基础上,其中图像输入被分解为感兴趣的区域,然后编码为区域标记。 通过将区域标记集成到用户指令和模型响应中,我们无缝地使 Groma 能够理解用户指定的区域输入并将其文本输出转化为图像。 此外,为了增强 Groma 的接地聊天能力,我们利用强大的 GPT-4V 和视觉提示技术,策划了一个视觉 grounded的指令数据集。 与依赖语言模型或外部模块进行定位的 MLLM 相比,Groma 在标准引用和 grounded 基准测试中始终表现出优越的性能,凸显了将本地化嵌入到图像标记化中的优势。 一、摘要 除了整体图像理解之外,Groma 还擅长区域级任务,例如区域描述和视觉grounding。 此类功能建立在本地化视觉标记化机制的基础上,其中图像输入被分解为感兴趣的区域,然后编码为区域标记。 通过将区域标记集成到用户指令和模型响应中,我们无缝地使 Groma 能够理解用户指定的区域

By Ne0inhk
第十二节 huggingface的TrainingArguments与trainner参数说明

AI

第十二节 huggingface的TrainingArguments与trainner参数说明

文章目录 * * * * * 前言 在你大致理解LLava模型的训练流程,你会发现,LLaVA模型训练采用huggingface的trainer结构,将其对应参数或模型构建完,调用trainer实现训练。这也是我为什么要补充额外文章来介绍huggingface的trainer相关内容。 在huggingface中,有关trainer内容实在太多了,想完整给出trainer相关内容需要多篇文章来阐明。我想了想,我将布局6篇文章来构建有关内容。第一篇文章介绍TrainingArguments与trainner参数;第二篇文章给出一个完整Demo,并介绍trainner(train与_inner_training_loop)源码的整体结构,呈现一个整体框架;第三篇文章介绍(_inner_training_loop)给出数据构造、优化器构建方法源码解读;第四篇篇文章介绍(_inner_training_loop)中epoch外循环训练相关源码解读;第五篇文章介绍(_inner_training_loop)中step内循环训练相关源码解读;第六篇文章介绍Resume

By Ne0inhk
第八节 LLaVA模型CLI推理构建custom推理代码Demo

AI

第八节 LLaVA模型CLI推理构建custom推理代码Demo

文章目录 * * 前言 我在第七节介绍了cli.py推理源码解读,而我也因项目需要构建了推理demo,我们是用来自动生成标签和推理需要。想了想,我还是用一节将我的代码记录于此,供有需求读者使用。本节,介绍更改cli.py代码,实现一张图像推理、也为需要grounding的读者提供如何在图上给出目标box。 一、parser 参数设定 为什么我要单独介绍参数设定?因为它很重要,正确的设定会减少模型错误概率。我将介绍三个部分设定,一个是使用lora权重,一个是合并权重,最后一个是使用量化方式。 1、lora权重推理 我们训练模型多数使用lora训练,而未将lora训练结果合并的权重加载方式的方法。如果我们是使用自己训练方法,可以使用如下方式给出参数: parser.add_argument("--model-path", type=str, default="/extend_disk/disk3/tj/LLaVA/checkpoints/llava-v1.5-13b-lora_vaild_1epoch_

By Ne0inhk
Mamba结构的Demo源码解读

python

Mamba结构的Demo源码解读

文章目录 * * * * * * 前言 深度神经网络(DNNs)在各种人工智能(AI)任务中展现出卓越的性能,其基本架构在确定模型能力方面发挥着关键作用。传统神经网络通常由多层感知器(MLP)或全连接(FC)层组成。卷积神经网络(CNNs)引入了卷积和池化层,特别适用于处理像图像这样的平移不变数据。循环神经网络(RNNs)利用循环单元处理序列或时间序列数据。为了解决CNN、RNN和GNN模型仅捕获局部关系的问题,2017年引入的Transformer在学习远距离特征表示方面表现出色。Transformer主要依赖于基于注意力的注意力机制,例如自注意力和交叉注意力,来提取内在特征并提高其表示能力。预训练的大规模基于Transformer的模型,如GPT-3,在各种NLP数据集上表现出色,在自然语言理解和生成任务中表现突出。Transformer-based模型的显著性能推动了它们在视觉应用中的广泛采用。Transformer模型的核心是其在捕获长距离依赖关系和最大化利用大型数据集方面的出色能力。特征提取模块是视觉Transformer架构的主要组成部分,它

By Ne0inhk
监听进程结束并自动运行新进程与虚拟环境智能切换的sh脚本

python

监听进程结束并自动运行新进程与虚拟环境智能切换的sh脚本

文章目录 * 前言 在编程中,等待进程结束或许是一个很长时间,特别是深度学习。那么这种等待发生在晚上是一个不友好现象,为避免等待情况。我写了一个sh脚本,帮助监听PID,一旦PID进程结束,立即启动我们想运行程序(通常为模型训练),这样我们就不必监控此进程了。当然,深度学习也会涉及自动启动虚拟环境等状况,使其更加智能,我也会在本文中给出sh文件书写方式。 一、等待进程结束自动运行新进程 在这个修改后的Shell脚本中,我们设置了要监听的PID为29455(你可以根据实际情况更改为其他PID),然后在循环中检查该PID是否在运行。如果PID不再运行,则会打印一条消息并立即运行scripts/v1_5/finetune_lora.sh文件。需要说明,如果你执行 scripts/v1_5/finetune_lora.sh此命令需要用什么环境,可提前conda activte “你的环境”,随后类似服务器命令执行方法一样。其sh文件脚本如下: # 设置要监听的PID pid_to_monitor=29455 while true;

By Ne0inhk
第十四节 huggingface的trainner的_inner_training_loop函数源码解读

第十四节 huggingface的trainner的_inner_training_loop函数源码解读

文章目录 * * * * * * * * 前言 在huggingface中,有关trainer内容实在太多了,想完整给出trainer相关内容需要多篇文章来阐明。我想了想,我将布局6篇文章来构建有关内容。第一篇文章介绍TrainingArguments与trainner参数;第二篇文章给出一个完整Demo,并介绍trainner(train与_inner_training_loop)源码的整体结构,呈现一个整体框架;第三篇文章介绍(_inner_training_loop)给出数据构造、优化器构建方法源码解读;第四篇篇文章介绍(_inner_training_loop)中epoch外循环训练相关源码解读;第五篇文章介绍(_inner_training_loop)中step内循环训练相关源码解读;第六篇文章介绍Resume方法内容,包含继承数据、继承优化器、继承模型等实现完整断点续训功能。 而本篇为第三篇文章,主要解读数据与优化器相关等细化内容 。 一、self.get_train_dataloader()函数 这个是上一个节

By Ne0inhk