自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(286)
  • 资源 (12)
  • 收藏
  • 关注

原创 qwenvl2.5-3b模型微调

注意:需要将原始模型中的preprocessor_config.json 和chat_template.json拷贝到微调后模型的目录中。执行:python train_qwenvl.py。全参数微调需要更大的显存,因此可能需要降低。学习率通常比 LoRA 更小(例如。可以看出识别结果是对的。

2025-08-18 08:30:00 1013

原创 paddleocr训练rec、det模型环境搭建

注意:一定要加--shm-size 参数,官方的创建容器方法没有加,训练会报错。这个是创建容器的问题,没有指定--shm-size参数,重新创建个容器就行。a.导出pdiparams模型,后面转onnx会需要。b.导出pdmodel。

2025-08-11 14:32:12 396

原创 使用timm训练分类模型简单入门

cifar10,github有已经转好的数据,下载后解压即可。

2025-08-11 08:30:00 433

原创 yolov8训练简单上手

下载预训练模型yolov8m.pt。

2025-08-08 08:48:01 175

原创 Ubuntu系统使用veracrypt对文件夹进行加密

Veracrypt 中的 PIM 是指 “Personal Iterations Multiplier”,即个人迭代乘数。这是一种增强加密容器密码的方法,用于提高安全性。在创建或挂载加密容器时,Veracrypt 会要求用户输入 PIM 值。这个值用于增强主密码的复杂性,使得破解密码更加困难。选择 1) Normal。选择[1]: AES。随便输入320个字符。

2025-08-05 10:15:45 704

原创 ppocr在ubuntu上环境搭建

【代码】ppocr在ubuntu上环境搭建。

2025-07-31 10:29:53 148

原创 C++多线程相关

beginthreadex()​​ 和 ​​_endthreadex()​​ 是 ​​C运行时库(CRT)​​ 提供的线程管理函数,用于创建和终止线程,并自动初始化与C运行时相关的资源(如线程局部存储、errno 等)。1. 线程是在thread对象被定义的时候开始执行的,而不是在调用join()函数时才执行的,调用join()函数只是阻塞等待线程结束并回收资源。过小的栈可能导致栈溢出,过大会浪费内存。2. 分离的线程(执行过detach()的线程)会在调用它的线程结束或自己结束时自动释放资源。

2025-07-28 15:35:21 671

原创 Winwos上编译opencv的GPU版本推理yolov8

BUILD_DOCS、BUILD_EXAMPLES、BUILD_PACKAGE、BUILD_TESTS、BUILD_PERF_TESTS、BUILD_opencv_python不打勾(可以不要这部分);在编译选项中进行勾选:BUILD_CUDA_STUBS、OPENCV_DNN_CUDA、WITH_CUDA、OPENCV_ENABLE_NONFREE、build_opencv_world打勾;5.Generating完成后,准备工作就已经完成,接下来就是用vs2019进行编译。

2025-07-25 11:27:47 244

原创 Xorg占用显卡内存问题和编译opencv GPU版本

a. 打开文件b.用注释文件内所有内容c.重启X11服务解决!

2025-07-23 16:29:24 483

原创 Ubuntu安装docker详细步骤(绝对成功)

/ 0EBFCD88 是公钥的指纹。执行这个命令后,系统会显示与该指纹相关的公钥信息。// 如果输出“Hello from Docker!查看状态:sudo systemctl status docker。开机自启:sudo systemctl enable docker。启动:sudo systemctl start docker。sudo usermod -aG docker 你的登录名。停止:sudo systemctl stop docker。// 先使用命令 sudo -i 进入root用户。

2025-07-22 15:27:32 421

原创 nanoVLM: 简洁、轻量的纯 PyTorch 视觉-语言模型训练代码库

顾名思义,视觉语言模型 (VLM) 是一种处理两种模态的多模态模型: 视觉和文本。这些模型通常以图像和/或文本作为输入,生成文本作为输出。基于对图像和文本 (输入) 的理解来生成文本 (输出) 是一个强大的范式。它支持广泛的应用,从图像字幕生成和目标检测到回答关于视觉内容的问题 (如下表所示)。需要注意的是,nanoVLM 仅专注于视觉问答作为训练目标。

2025-07-04 16:25:28 744

原创 从零训练大模型之数据集清洗

大型语言模型(LLM)的预训练效果在很大程度上取决于训练数据的质量和预处理方法。OpenWebText数据集作为一个广泛使用的公开语料库,为LLM的预训练提供了宝贵的资源。然而,原始的OpenWebText数据集来源于网络抓取,不可避免地包含噪声、冗余信息以及格式不一致等问题。为了训练出高性能的LLM,并为了后续采用字节对编码(BPE)方式构建高效的词表,对OpenWebText数据集进行恰当的清洗至关重要。OpenWebText是一个开源的、旨在复现OpenAI的WebText语料库的数据集。

2025-07-04 16:24:58 751

原创 KL散度:90% 的 RLHF 框架都踩中了这个坑

KL散度是强化学习中常用的正则化措施,用于防止学习策略在训练过程中偏离参考策略太远。在大型语言模型的应用中,KL散度的最小化通常通过构建蒙特卡洛估计来实现,并使用自动微分来计算梯度。文章《On a few pitfalls in KL divergence gradient estimation for RL》探讨在强化学习(Reinforcement Learning, RL)中,特别是在大型语言模型(LLMs)的应用中,KL散度梯度估计实现中的一些常见陷阱。

2025-06-23 14:15:46 741

原创 通向高分辨率VLM : 原生动态分辨率

首先我们回顾一下VLM(Vision-Language Model,视觉语言模型)或称为MLLM(Multi-modal Large Language Model,多模态大语言模型)的典型设计范式。以及当前范式下处理高分辨率图像输入时存在的问题。一个最典型的MLLM的pipeline就是LLaVA:把图像resize到一个比较小的正方形,使得可以使用一个固定分辨率的ViT(一般是CLIP预训练模型)去编码视觉特征,并使用MLP connector去连接视觉特征和语言模型,把视觉特征映射后作为LLM的输入。

2025-06-23 09:51:52 561

原创 海思3519AV100上面部署yolov5-shufflenet

由于海思NNIE上transpose支持的顺序是固定的,shufflenet那种x=torch.transpose(x,1,2).contiguous() 的操作一般是不支持的。#[ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],修改为。#[ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],修改为。将.nn.SiLU()修改为nn.ReLU(),不一定会存在,需要查找下,如果有需要修改下。

2025-06-16 11:33:46 972 2

原创 多模态处理多分辨率输入有哪些方法?

但这相比传统的ViT方法(无Padding)会更慢(因为为了适配一个Batch中最长的序列,要做适当的Padding处理,导致会有些冗余计算)。传统的ViT会将任何图片数据都处理成定长的Patch序列,然后输入给Vision Encoder,这种统一定长的输入是对硬件计算非常友好的,非常好组Batch,并且不需要任何padding处理。那么一个序列中塞进了多个图像数据,怎么能互不干扰的计算呢(也就是在做ViT的Attention计算时,多个图片的Patch在一个序列中需要做计算隔离)

2025-06-16 11:05:24 426

原创 从经典论文看大模型的技术演进

过去十年间,人工智能领域的大模型取得了飞跃式的发展。从最初的词向量表示,到能够Few-Shot(少样本)学习的千亿参数模型,再到多模态、可调用工具的最新模型,每一阶段的技术创新都推动着AI能力的里程碑式提升。本文将以通俗易懂的方式,通过研究25篇经典论文,沿时间顺序梳理大模型技术演进的关键节点,总结每个阶段具有代表性的经典工作及其里程碑意义。 在深度学习兴起之前,计算机对单词的表示通常是“独热编码”(one-hot)形式,即用一个高维稀疏向量表示单词,无法体现词汇间的语义关系。2013年,Mi

2025-06-16 09:53:16 1084

原创 多阶段 RL(先数学,后代码)训练策略分析与实战启发

尽管在大规模强化学习(RL)用于推理任务方面取得了进展,但构建高性能推理模型的训练方法仍然不明确。现有的前沿模型,如 DeepSeek-R1,通常省略了关键的实现细节,如数据策划策略和 RL 训练方法。此外,对于小型和中型模型,蒸馏(distillation)通常比 RL 更有效。NVIDIA 研究团队推出了 AceReason-Nemotron的研究项目,该项目通过大规模强化学习(Reinforcement Learning, RL)显著提升了小型和中型语言模型在数学和代码推理任务上的表现。

2025-06-09 11:02:41 848

原创 PPO算法流程详解

今天介绍 PPO 流程的时候我也会把这几个区别点作为重点,进行介绍:PPO 多了个 Value Model 和输出 v(value)计算 A(Advantage) 的算法是 GAEKL 散度计算作用于 Reward Model另外,有篇科普 PPO 的文章非常经典,通过把 PPO 算法拆解为 10 个步骤进行了详细地介绍,而且对于一些算法背后的原理也做了解释。

2025-06-09 09:50:53 1050

原创 PPO和GRPO算法

verl 是现在非常火的 rl 框架,而且已经支持了多个 rl 算法(ppo、grpo 等等)。过去对 rl 的理解很粗浅(只知道有好多个角色,有的更新权重,有的不更新),也曾硬着头皮看了一些论文和知乎,依然有很多细节不理解,现在准备跟着 verl 的代码梳理一遍两个著名的 rl 算法,毕竟代码不会隐藏任何细节!虽然 GRPO 算法是基于 PPO 算法改进来的,但是毕竟更简单,所以我先从 GRPO 的流程开始学习,然后再看 PPO。

2025-06-03 14:27:25 1110

原创 InternLM2/LM2.5/ViT/VL1.5/VL2.0笔记: 核心点解析

本文主要是记录一下关于多模态大模型InternLM/InternVL系列的一些要点的理解。还是那句话,好记性,不如烂笔头。本文当成个人笔记用,行文风格和先前写的LLaVA系列一致。本文的重点是讲解多模态模型InternVL 1.5,但是InternVL 1.5选择了InternLM2作为LLM底座,以及使用InternViT-6B作为视觉理解模型。因此,本文也先从InternLM2和InternViT开始讲起。InternLM2和InternViT以简单说明为主。

2025-06-03 11:36:39 1231

原创 爱芯元智芯片推理cn-clip

cnclip_config_npu3_U8.json文件。1.下载依赖的opencv和onnxruntime。打开cmakelist.txt,在开头增加。下载feature_matmul.onnx。2.cmakelist修改。

2025-05-26 18:51:38 1067

原创 为什么要用位置编码?

在 NLP 任务中(后续拓展为多模态任务),顺序信息至关重要,例如: 我借给你 300 块与你借给我 300 块具有完全不同的含义。对于 Transformer 模型来说,由于 Attention 模块的无序性(无法区分不同位置的 Token),必须加入额外的信息来记录顺序,这里引入了位置编码。位置编码在后续基于 Transformer 架构的文章中有很多不同的实现方式,尤其是在大语言模型大行其道的现在,在面对长 token 的输入时,挑选合适的位置编码也会提升训练的效果。

2025-05-26 14:19:29 850

原创 大模型RL方向面试题90道

推理扩展定律表明,延长模型的推理时间可以显著提升其性能。模型通过更长时间的思考和自我修正,能够生成更准确的答案。然而,这种提升需要根据任务类型进行权衡。1.MC方法高方差:由于依赖完整的Episode回报,更新值可能受到随机因素的较大影响。无偏性:直接使用实际累积回报进行更新,确保了长期的准确性。2.TD方法低方差:利用每一步的即时奖励进行更新,减少了因随机性导致的波动。高偏差:依赖当前估计值进行更新,容易引入偏差,尤其是初始估计不准确时。3.GAE方法折中性。

2025-05-26 12:05:15 1288

原创 为什么大模型的损失函数采用交叉熵而不是 MSE?

这个问题不只是局限在大模型的损失函数,可以扩展为:为什么分类的损失函数采用交叉熵而不是 MSE?之所以这么做的原因,根本上是因为机器学习做的事情就是在做最大似然估计(MLE), 当然贝叶斯学派是在做最大后验概率估计(MAP)。

2025-05-21 10:16:00 390

原创 DPO的变体有哪些,主要解决DPO的什么问题?

IPO [3]:BT model旨在最大化正负response之间的reward gap,然而在实际中,我们所用的pair数据可能存在噪声,若一味扩大reward gap,就会出现不准确的情况,即对preference的pair数据产生过拟合。对此,DPOP引入一项新机制,对正例概率下降的pair进行惩罚,以促使正例概率得以提升。RSO [1]:鉴于DPO在蒙特卡洛采样上存在较大难度,导致其采样方式近乎为off-policy,RSO着重针对DPO的采样机制展开优化,以此攻克DPO所面临的问题。

2025-05-19 14:24:08 407

原创 从零开始训练一个简单的CLIP

到这里,你已经基本了解了CLIP的基本原理,并且能够自己动手训练一个简单的CLIP模型。整体上来看,代码比较简单,但是已经基本覆盖到CLIP的整体训练流程了。另外,如果需要实际的落地,建议还是使用openclip等更加成熟的框架。欢迎关注github:https://github.com/taishan1994。

2025-05-19 14:18:03 1578

原创 多模态大模型入门必读基础论文

paper地址:或项目地址:论文讲解:《An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale》论文地址:论文讲解:《Learning Transferable Visual Models From Natural Language Supervision》论文地址:代码:论文解读:《Improving Language Understanding by Generative Pre-Training》

2025-05-16 17:13:28 529

原创 论文分享 | DPO

论文标题:Direct Preference Optimization: Your Language Model is Secretly a Reward Model发表年份:2023会议/期刊:NeurIPS论文链接:>> https://proceedings.neurips.cc/paper_files/paper/2023/hash/a85b405ed65c6477a4fe8302b5e06ce7-Abstract-Conference.html。

2025-05-12 12:00:19 1019

原创 RLHF 实践:原理、代码、踩坑以及解决方案

最近倒腾了一波RLHF,从ColossalAI到TRLX以及DeepSpeed-Chat,最后基于DeepSpeed-Chat成功训练上了自己的模型,最后效果也是肉眼可见的提升。对这一部分进行下总结,包括原理,代码以及踩坑与解决方案。

2025-05-12 11:48:44 1184

原创 DPO和PPO相关

回答: 当满足以下两个条件时,DPO的优化目标与PPO的奖励最大化阶段(无KL约束时)

2025-05-08 10:04:36 190

原创 PPO 算法

PPO 是 TRPO 的一种改进算法,它在实现上简化了 TRPO 中的复杂计算,并且它在实验中的性能大多数情况下会比 TRPO 更好,因此目前常被用作一种常用的基准算法。需要注意的是,TRPO 和 PPO 都属于在线策略学习算法,即使优化目标中包含重要性采样的过程,但其只是用到了上一轮策略的数据,而不是过去所有策略的数据。PPO 是 TRPO 的第一作者 John Schulman 从加州大学伯克利分校博士毕业后在 OpenAI 公司研究出来的。

2025-05-06 14:23:46 867

原创 大模型优化利器:RLHF之PPO、DPO

现今,强化学习已成为大型模型的标配技术,特别是随着 OpenAI O1 的发布,该技术作为其核心方法,掌握并熟练运用强化学习已成为不可或缺的技能。本文简要概述了 RLHF 的基础知识,并初步介绍了 PPO 和 DPO,待日后有机会,将进一步深入学习 PPO 的其他变体。引用链接[1][2][3][4][5]朱小霖:DPO 是如何简化 RLHF 的:[6]infgrad:DPO: Direct Preference Optimization 论文解读及代码实践:[7][8]

2025-04-30 14:36:28 1161

原创 通俗理解 RLHF,以及如何实现一个 PPO 算法

Critic model:Reward_model 的一个复制。

2025-04-30 10:55:33 1104

原创 TRL(Transformer Reinforcement Learning) PPO Trainer 学习笔记

如上所述,可以使用任何针对字符串返回标量值的函数来生成奖励(the reward can be generated using any function that returns a single value for a string),无论是简单的规则(例如字符串的长度)、度量(例如 BLEU)还是基于人类偏好的奖励模型。由于 PPOTrainer 在每个执行步骤中都需要主动奖励,因此我们需要定义一种在 PPO 算法的每个步骤中获取奖励的方法。在此示例中,我们将使用上面初始化的情绪奖励模型。

2025-04-28 11:53:47 1011

原创 DPO: Direct Preference Optimization 直接偏好优化(学习笔记)

步骤2)在于优化,具体过程大概是,对于同一个question prompt,模型在两种模型:language/policy model 和 reference model下分别生成,对应chosen 和 rejected label真值标签的生成概率,因此可以获得四种概率值:policy_chosen_logps, policy_rejected_logps, reference_chosen_logps, reference_rejected_logps, 用于DPO loss计算。

2025-04-28 11:48:09 1338

原创 实现GRPO(Implementing GRPO)

GRPO是一种训练技术,旨在通过捕捉特定偏好的奖励函数来优化语言模型。与其他强化学习方法(如PPO或RLHF)不同,GRPO不需要复杂的评判模型和大量计算资源,而是直接优化语言模型,并通过在生成的响应组内计算相对优势来实现目标。这实现展示了GRPO的工作原理,以及如何利用它优化语言模型以适应特定格式和任务。数学问题解决任务与XML格式的结合,清晰地体现了该技术的能力。

2025-04-21 14:46:08 1188

原创 直观理解 KL 散度

举个例子,P(a) 表示第二年喜欢苹果的比例是 50%,Q(a) 表示第一年也是 50%,它们的比值是 1,说明偏好没有变化。换句话说,如果第二年有 50 个学生喜欢苹果、10 个喜欢香蕉、40 个喜欢哈密瓜,那么对苹果和哈密瓜的变化应该更受关注,因为更多人喜欢它们,香蕉对总体影响较小。我们不再直接使用 P(x)/Q(x),而是使用 log(P(x)/Q(x)),这可以缓解前面提到的大数问题。第二年,喜欢苹果的比例仍是 50%,但喜欢香蕉的只有 10%,而喜欢哈密瓜的上升到了 40%。这是一个很好的开始。

2025-04-21 14:07:13 663 2

原创 为什么要GRPO?

本文主要跟大家梳理 LLM 强化学习算法演进之路: MC→TD→Q-Learning→DQN→PG→AC→TRPO→PPO→DPO→GRPO。 Q 值:代表智能体选择某个动作后,一直到最终状态奖励总和的期望, Q 值评价动作。 V 值:代表智能体在这个状态下,一直到最终状态的奖励总和的期望,V 值评价状态。 如何在不知道真实环境分布的情况下估算 V 值,已经诞生了多种方法,大体归纳为基于价值、基于策略两种: 代表:MC(Monte-Car

2025-04-16 10:26:55 686

原创 彻底弄懂BERT模型

在训练的初始阶段,我们可以设置一个很大的学习率,但是我们应该在后面的迭代中设置一个较小的学习率。因为在初始的迭代时,我们远没有收敛,所以设置较大的学习率带来更大的步长是可以的,但在后面的迭代中,我们已经快要收敛了,如果学习率(导致步长)较大可能会错过收敛位置(极小值)。在初始迭代期设置较大的学习率而在之后的迭代期减少学习率的做法被称为学习率 scheduling。热身步就是用于学习率 scheduling 的。假设我们的学习率是 1e-4,然后热身步为 10000 个迭代。

2025-04-14 15:28:31 903

图像拼接算法及实现

图像拼接算法及实现,可以实现两幅图像的拼接,可以下下来看看

2014-12-12

OpenCV2.0中机器学习函数与类

OpenCV2.0中机器学习函数与类,用于学习opencv2.0及以上的版本的opencv。讲解的很详细

2014-12-12

cnn学习讲义

cnn学习讲义,入门很不错

2016-05-29

C程序设计语言(he_C_Programming_Language)

C程序设计语言(he_C_Programming_Language),一本很不错的学习C语言的书籍

2014-12-21

图像拼接算法

图像拼接方法和代码,可用于学习和参考,现在的拼接算法大致都差不多!

2014-12-20

指针和引用的区别

这个课件详细的介绍了指针和引用的区别,对于C/C++的初学者来说,有很大的帮助,值得学习!

2014-12-07

21天学通C#

21天学通C#书籍,可用于参考和学习,很不错的c#入门书籍

2014-12-20

《模式识别与智能计算的MATLAB实现》

《模式识别与智能计算的MATLAB实现》理论联系实际,较为全面地介绍了现代模式识别和智能计算方法及其应用技巧。通过大量实例,讲解了模式识别和智能计算的理论、算法及编程步骤,并提供基于MATLAB的源代码。

2015-01-10

字符识别源码

用于做字符识别的源码,可以作为学习和参考的资料!还很不错

2014-12-20

基于OpenCV的计算机视觉技术实现

基于OpenCV的计算机视觉技术实现,是一本很不错的书籍,可以学习

2014-12-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除