tangjunjun-owen
从事人工智能行业,已从事工业检测行业、智慧交通行业、智慧城市行业,已有如下经验:
ARM/jetson部署、NVIDIA性能优化、道路感知2D、单目3D、点云3D、目标跟踪、lidar/radar/vison多传感融合、中间件ROS2开发、相机标定、工业2D检测/分类/分割、数据增强、attention、transformer、模型压缩加速
计算机技能:C++、Python、cuda、tensorrt、ros2
展开
-
第一节 LLaVA模型安装、预测、训练详细教程
本博客介绍LLava1.5多模态大模型的安装教程、训练教程、预测教程,也会涉及到hugging face使用与wandb使用。原创 2023-11-02 21:29:59 · 9528 阅读 · 21 评论 -
第二节 大模型的deepspeed使用vscode运行或调试debug的环境配置与解读(补充-vscode)
最近在研究deepspeed相关内容,但使用命令方式无法单步调式调用代码的问题,若直接离线看代码,在一定程度上降低效率。同时,使用deepspeed方式debug代码内容较少。为此,我特意在少有信息中和代码实验验证完成基于vscode对deepspeed进行debug方法。特别的,该方式不仅适合deepspeed命令debug,也适用torchrun命令debug,更能延伸其它命令debug模式。本文内容分为三部分,第一部分介绍如何使用vscode传递参数debug;原创 2023-12-14 17:11:37 · 983 阅读 · 1 评论 -
第三节 vscode环境对llava模型debug方式教程
之前博客这里介绍LLava1.5多模态大模型的安装、训练、预测等。但对于你想查看源码或多或少都有些麻烦,也不利于代码调试。基于此,本文是一篇基于vscode框架调试llava大模型的教程。原创 2024-01-10 00:00:00 · 595 阅读 · 0 评论 -
第四节 查看bin权重文件内容
为什么我单独用一节文章记录llava相关bin权重文件内容?原因很简单,它比较重要,我们可以通过查看权重相关变量间接感性认识llava模型结构,以便我们对模型权重含义理解。本篇文章将涉及lora权重与大语言LLM模型llama的权重,以及相应mm_project与vit图像编码权重。这样我们将从权重文件理解llava本身结构,并也给出自带lora训练权重相关内容,将对我们训练模型保存对应权重也是十分必要的,且也能帮助我们如何把lora权重更新原始权重。从权重中,你该明白了吧!原创 2024-03-07 14:51:00 · 144 阅读 · 0 评论 -
第五节 LLaVA模型推理命令(包含lora训练权重推理方法)
LLAVA模型训练方式有预训练、微调训练,而预训练需要大量算力与数据支持,我们将不在重点考虑。对于微调,也因其计算资源导致成本较高,一般不会采用全量微调方式,而是多采用PEFT方式完成,而PEFT代表的Lora微调模型性价比较高。介于此,Lora微调需要合并权重方可实现,在于我个人摸索下实现了LLAVA模型lora训练的推理。为此,我将LLAVA所有推理方式记录于此。。原创 2024-03-07 15:07:47 · 610 阅读 · 0 评论 -
第六节 LLaVA模型数据处理源码解读(input_ids/labels/attention_mask/image,上篇)
本篇文章直接介绍llava模型数据加工部分,整体结构说明llava多模态模型输入数据格式,其中包含input_ids/labels/attention_mask与image格式,并给出对应代码位置与整个数据加工流程。最重要,通过debug给出数据解释与代码解读,也通过一个真实数据给出模型输入格式说明。当你阅读完此篇文章,绝对透彻理解llava数据加工过程与内容。显然,一篇博客是无法呈现整个数据细节,我将继续下篇博客呈现数据细节处理。result = input.ne(3) # torch.ne函数调用。原创 2024-04-02 15:29:45 · 546 阅读 · 0 评论 -
第七节 LLaVA模型CLI推理源码解读(多轮对话推理方式与原理(prompt与assistant))
为什么介绍cli.py方式进行推理呢?答案很简单,我想通过这个代码告知读者,模型是如何进行推理的,明确输入内容处理方式和模型输出内容,以及多轮对话输入与模型输出内容,而借助推理等方式是需要使用服务啥的客户端或服务端等,是比较麻烦的工程问题。因此,本文将介绍cli推理方式,露骨告知其推理原理与整个数据流程。同时,我也将使用列子与结果,实现三轮对话,说明模型如何工作或完成对话能力。然而,这部分内容和我之前数据章节有些关联,请大家自行查阅。原创 2024-04-09 20:45:00 · 387 阅读 · 0 评论 -
第八节 LLaVA模型CLI推理构建custom推理代码Demo
我在第七节介绍了cli.py推理源码解读,而我也因项目需要构建了推理demo,我们是用来自动生成标签和推理需要。想了想,我还是用一节将我的代码记录于此,供有需求读者使用。本节,介绍更改cli.py代码,实现一张图像推理、也为需要grounding的读者提供如何在图上给出目标box。我测试官方提供lora与非lora权重,我发现非lora效果会比lora好。当然这是我测试工程数据得到结论,只做参考。原创 2024-04-29 22:55:32 · 96 阅读 · 0 评论 -
第九节 基于huggingface加载openai/clip-vit-large-patch14-336视觉模型demo
本文介绍如何使用huggingface加载视觉模型openai/clip-vit-large-patch14-336,我之所以记录此方法源于现有大模型基本采用huggingface库来加载视觉模型和大语言模型,我也是在做LLava模型等模型。基于此,本节将介绍如何huggingface如何加载vit视觉模型。原创 2024-02-26 20:26:04 · 1458 阅读 · 0 评论 -
第十节 LLAVA模型训练流程与方法
最近,有些忙,正在处理相关实验。很多东西我已实现,但没有时间组成文章。很抱歉。我之所以写一篇模型训练流程方式,是想借此告知LLAVA模型训练流程,不至于我下次说到模块细节而大脑没有整体结构。因此,我写了此篇文章,本文主要介绍如何训练模型以及训练模型步骤是哪些,最终构成模型训练完整流程与源码完整流程。只有语言模型结构。原创 2024-04-19 22:30:00 · 205 阅读 · 0 评论 -
第十一节 LLAVA模型lora训练(包含lora权重预加载与源码解读)
前面文章,基本已经给出LLaVA的推理相关内容,也给出相应训练等命令内容,以及相关权重等查看与比较内容。却没有与训练相关源码解读。为此,本篇文章介绍LLaVA模型是如何构建model,也是如何加载相应权重内容。我将会结合源码,详细梳理。我相信,看了此篇文章将不在为模型训练而困惑,也能帮助读者进一步理解源码,以此作为基准,方便后续对模型更改或使用其它架构大模型。当然,后面会涉及到很多与huggingface的trainer相关内容,我也会在后面篇章中给与介绍。原创 2024-05-09 21:00:00 · 100 阅读 · 0 评论 -
第十二节 huggingface的TrainingArguments与trainner参数说明
在你大致理解LLava模型的训练流程,你也会发现,LLaVA模型训练采用huggingface的trainer结构,将其对应参数或模型构建完,调用trainer实现训练。这也是我为什么要补充额外文章来介绍huggingface的trainer相关内容。我将此内容划分2篇文章来介绍,本篇文章介绍trainer的参数与其对应的TrainingArguments参数,并给出部分参数使用方式。TrainingArguments是模型训练相关参数控制或按照自己想法设计trainer训练过程,而trainer则****原创 2024-04-26 11:08:22 · 109 阅读 · 0 评论 -
第十三节 huggingface的trainner解读与Demo
在你大致理解LLava模型的训练流程,你也会发现,LLaVA模型训练采用huggingface的trainer结构,将其对应参数或模型构建完,调用trainer实现训练。这也是我为什么要补充额外文章来介绍huggingface的trainer相关内容。我将此内容划分3篇文章来介绍,在上篇基础上,本篇介绍trainer使用的demo以及trianer训练相关源码解读(十分重要)。我先给出一个完整Hugging Face库Trainer方式训练列子。该列子从数据准备,划分训练集和验证集到训练与预测的完整过程。原创 2024-05-13 16:48:12 · 38 阅读 · 0 评论 -
第十四节 huggingface的trainner的_inner_training_loop函数源码解读
huggingface的trainer的训练方法确实有太多内容,本想着使用一个博客这里来解读,但确实内容太多。为此,本节是对上一节内容的细化或补充,主要内容包含,主要是数据相关与优化器相关等内容的细化与解读。本来也想把相关训练细节也在本节进行解读,但实在内容太多,我将在写一个章节专门对其进行解读。注:本节博客都是下方链接博客中trainer的细分类函数解读!博客链接1、返回2个值optimizer_cls, optimizer_kwargs,第一个值是优化器,第二个值是对应参数,特别重要是学习率。原创 2024-05-15 22:45:00 · 57 阅读 · 0 评论