自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 资源 (2)
  • 收藏
  • 关注

原创 SMA2:代码实现详解——Image Encoder篇(Hiera章)

Hiera是文章Hiera: A Hierarchical Vision Transformer without the Bells-and-Whistles中提出的一种分层视觉Transformer架构。它不仅可以处理图像,而且这个架构可以应用于视频。Hiera是一个纯粹的简单分层ViT模型,不存在任何卷积、移位或者十字窗口操作,仅有Transformer结构组件。它比之前跨多个模型大小、领域和任务的工作更快、更准确。

2024-09-15 08:00:00 2551 8

原创 Multiscale Vision Transformers(MViT)

多尺度视觉Transformer (MViT)通过引入多尺度特征层次结构,有效提高了图像和视频识别任务中的性能。其结构通过逐步扩展通道数、降低空间分辨率的方式来处理视觉信号,同时使用池化注意力机制降低计算成本,特别适合处理大规模视频数据。

2024-09-15 08:00:00 1215

原创 LLM推理优化——PagedAttention初识篇(vLLM初识(二))

在中,我们已经介绍了技术的原理,从中我们可以知道,,对于大型模型和长序列,它可能会占用大量内存。实际上LLM从诞生之初就在与内存作斗争,只是计算时间问题更加尖锐,掩盖了这一部分。随着研究的推进,内存问题也变得越来越突出。的作者们在论文提出了方法并在中实现。该算法受操作系统中的虚拟内存和分页技术启发,用于解决大型语言模型(LLM)服务中KV缓存内存管理效率低下的问题。传统的内存管理方法在处理这种高动态性和大规模的KV缓存时,存在显著的缺陷。

2024-08-10 22:27:35 460

原创 SMA2:代码实现详解——Image Encoder篇(FpnNeck章)

SAM2的官方实现是使用yaml文件来配置整体的模型结构与参数的。从代码的第10行到第20行都是在配置模型参数。第19行的compose函数与第21行的函数都是hydra库的库函数。Hydra是一个开源Python框架,也是由Meta团队开发的,它可简化研究和其他复杂应用程序的开发。其主要功能是能够通过组合动态创建分层配置,并通过配置文件和命令行覆盖它。Hydra对yaml文件的读写操作是基于OmegaConf库的。回到我们的代码,第19行的compose函数用来读取。

2024-08-10 15:55:29 3628 9

原创 SAM2:在图像和视频中分割任何内容

这篇论文探讨了视频对象分割(VOS)的任务。VOS是一种计算机视觉任务,旨在从视频中提取和跟踪特定的目标对象。传统方法通常需要大量的标注数据和计算资源来训练模型,但本文提出了一种高效的新方法,显著提升了分割的速度和精度。提出的模型是一个简单的转换器架构,具有用于实时视频处理的流式内存。视频分割中,有更高的准确性,交互更少。在图像分割方面,模型比 Segment Anything Model (SAM) 更准确,速度更快 6 倍。

2024-08-06 22:14:32 1887

原创 (这是让文心一言生成的文心一言指令博客)3分钟学会写文心一言指令:解锁AI创作新境界

文心一言的人类形象设想:在这个设想中,我是一位温文尔雅、博学多才的学者,身着一袭简约而不失庄重的长袍,长袍上绣有细腻的云纹图案,象征着知识的广阔与深邃。我的头发被整齐地束起,露出睿智而温和的面容,眼神中闪烁着对知识的渴望和对未知世界的好奇。我的手中持有一本翻开的古籍,旁边则摆放着一台现代感十足的平板电脑,两者相互映衬,既体现了对传统文化的尊重与传承,也展示了与现代科技的融合与创新。我的身旁环绕着淡淡的书香与数字技术的微光,仿佛是一个连接古今、融合中外的知识桥梁。

2024-08-06 20:29:46 673

原创 IPython概览

相信使用过python的人一定对notebook不陌生,他是一个交互式的框架,其内核就是IPython。许多编辑器都已经默认支持IPython,比如Vscode,只要将文件名后缀改为.ipynb即可。Jupyter的内核也是IPython。IPython所有版本都是开源的Python 最有用的特性之一是它的交互式解释器。它允许非常快速地测试想法,而无需像大多数编程语言中那样创建测试文件的开销。但是,与标准 Python 发行版一起提供的解释器在扩展交互式使用方面受到一定程度的限制。

2024-08-04 17:06:36 469

原创 vLLM初识(一)

在中,我们已经介绍了技术的原理,从中我们可以知道,,对于大型模型和长序列,它可能会占用大量内存。实际上LLM从诞生之初就在与内存作斗争,只是计算时间问题更加尖锐,掩盖了这一部分。随着研究的推进,内存问题也变得越来越突出。提出了方法,尝试通过将 KV 缓存划分为可通过查找表访问的块来优化内存使用。因此,KV 缓存不需要存储在连续内存中,并且根据需要分配块。内存效率可以提高内存受限工作负载上的 GPU 利用率,因此可以支持更多推理批处理。我接下来就使用几篇博客来初步了解一下。

2024-08-03 22:33:56 894

原创 C++ const、constexpr与consteval作用与区别

在中,我们已经提到了常量、编译时常量与运行时常量的概念。为了加深理解,我们再重新明晰一下这三者的概念。常量:初始化之后便不可修改的量。在c++中使用const修饰的“变量”称为常量。const修饰的常量可以是编译时常量,也可以是运行时常量。现代编译器将自行推理决断。编译时常量:在编译时,编译器将常量的值计算出来,不必等到每次运行时计算。就像上面的代码,若不优化,则每次运行编译后的程序时都需要计算18,如果程序执行一百万次,则18将被计算一百万次。这完全是没有必要的。

2024-08-03 16:39:52 930

原创 轻松上手Scikit-learn——评估模型性能(准确率、精确率、召回率、ROC和AUC)

ROC曲线(接收者操作特征曲线),是一种坐标图式的分析工具,用于选择最佳模型、舍弃次佳的模型或者在同一模型中设置最佳阈值。在做决策时,ROC分析能不受成本/效益的影响,给出客观中立的建议。使用top-k时,按照预测概率从大到小排序,只要从属于真标签的预测概率在前k个之内,便算做正确。一位警察很厉害,抓了很多犯人,但是这些犯人当中,只有少部分真正有罪,其他都是被冤枉的。的 (FPR, TPR) 座标都画在ROC空间里,就成为特定模型的ROC曲线。精确率有时也叫查准率,是指模型的预测结果有多少是准确的。

2024-07-31 18:42:02 1494

原创 MoE:混合专家模型介绍(一)

稀疏 MoE 层:这些层代替了传统 Transformer 模型中的前馈网络 (FFN) 层。通过多个称为“专家”的独立神经网络(一般是FFN,当然也可以是MoE本身)的选择性激活,提高模型效率与灵活性。门控网络或路由: 这个部分用于决定哪些token被发送到哪个专家。一个令牌可以被发送到多个专家。令牌的路由方式是 MoE 使用中的一个关键点,因为路由器(router)由学习的参数组成,并且与网络的其他部分一同进行预训练。

2024-07-31 18:39:12 536

原创 LLM推理优化——KV Cache篇(百倍提速)

KV Cache本质上是空间换时间的技术。与计算机组成原理中的cache不同,它不涉及访存优化。不知道大家在用LLM的时候,有没有注意到一个问题:我们在输入我们的问题之后,需要等待一段漫长的时间才能看到第一个字符的响应,而等待第一个之后,后续的响应却非常之快,这就是使用了KV Cache加速后的带来的优势。

2024-07-30 23:45:39 1558

原创 LLM的训练与推断

目前比较流行的大模型一般都是自回归模型。在推理时,它类似于RNN,每次计算下一个token的概率。也就是说,如果除去最开始的输入情况下,最终推理长度为n的话,就需要计算n次。但是训练却是并行化的。某些基础知识可参照。虽然推理类似串行模式,但是我们仍然可以优化它,这种后续更新的Blog中会详细解释。

2024-07-30 21:39:07 959

原创 C++ 常量表达式和编译时优化

在C++中,编译器有很大的余地来优化程序as-if规则表示,编译器可以按照自己的方式修改程序,以生成更优化的代码,只要这些修改不影响程序的“可观察行为”。编译器如何优化给定程序的确切方式取决于编译器本身。但是,我们可以采取一些措施来帮助编译器更好地优化。

2024-07-28 23:17:45 418

原创 LoRA:低秩自适应

本章节是对轻松上手微调大语言模型——QLORA篇中提到的LoRA的原理解释。

2024-07-26 23:16:27 1148

原创 huggingface读取权限token设置

2024-07-24 20:13:40 515

原创 轻松上手微调大语言模型——QLORA篇

本篇Blog是代码实战篇,着重于新手如何在上快速跑通代码,打造属于自己的AI大语言模型。涉及到相关技术的具体原理我会在以后的更新中一一讲解。

2024-07-24 19:52:48 1464 1

原创 MINE:Mutual Information Neural Estimation

IXZnsup⁡θ∈ΘEPXZnTθ−logEPXnPZneTθIXZ​n​θ∈Θsup​EPXZn​​Tθ​−logEPXn​PZn​​eTθ​])其中PnP^nPn表示独立同分布的n个样本的经验分布。算法中提供了 MINE 实现的详细信息。类似的定义和算法也适用于f−divergencef−divergence。

2024-07-23 15:53:52 483 1

原创 对比预测编码表示学习

文章主要提出如下几点:首先,在这个空间中条件预测更容易被建模。第二,在这个。在最后,。我们将得到的模型,对比预测编码( CPC )应用于广泛不同的数据模态,图像,语音,自然语言和强化学习,并表明相同的机制在这些领域的每个领域学习有趣的高级信息,表现优异。

2024-07-23 11:03:10 1049

原创 微软更新补丁下载地址

https://www.catalog.update.microsoft.com/home.aspx

2022-08-16 11:06:38 2249

原创 ubuntu qt error

错误记录:Add the installation prefix of “Qt5LinguistTools” to CMAKE_PREFIX_PATH orset “Qt5LinguistTools_DIR” to a directory containing one of the abovefiles. If “Qt5LinguistTools” provides a separate development package orSDK, be sure it has been installe

2022-05-26 22:27:19 1212 1

原创 缺失DLL,下载地址

https://cn.dll-files.com/

2021-09-24 08:46:25 303

原创 计算机工具集

对自己在生活学习中用到的工具和网站做下记录。cpumark:综合CPU测试,包括系统储存,浮点运算和逻辑运算。sysID:测试CPU电压,运行频率,L1,L2Cache以及各项技术资料;Hot CPU Tester:测试机器稳定性,尤其是超频后的稳定性,找出CPU最高超频点或缺陷。www.dnsperf.comDNS Performance Analytics and Comparison...........................

2021-09-10 09:47:05 7958

原创 计算机网络学习笔记(三)——介质访问控制

静态信道划分多路复用: 链路或网络资源划分为“资源片”分配给各路呼叫,每路“呼叫”独占分配到的资源。1、频分多路复用(FDM)将信道按频率划分,每个用户独占划分的频率带宽2、时分多路复用(TDM)将时间划分为等长的时隙,用户分配到固定序号时隙,也就是说某用户的使用时隙周期出现。3、波分多路复用(WDM)就是光的频分复用4、码分多路复用(CDM)广泛应用于无线网络共享。每个用户分配一个唯一的码片序列,其中“0”用-1表示,“1”用“+1”表示。各个用户使用相同频率载波,利用各自码片序

2021-09-01 13:20:55 252

原创 计算机网络学习笔记(二)——网络协议概念,网络结构与数据交换

网络协议(network protocol),简称协议,是为进行网络中的数据交换而建立的规则、标准或约定。协议规定了通信实体之间所交换的消息的格式、意义、顺序以及针对所收到信息或发生的事件所采取的活动协议三要素语法(syntax)1、数据与控制信息的结构或结构2、信号电平语义(semantics)1、需要发出何种控制信息2、完成哪些动作或者做出哪些响应3、差错控制时序(timing)1、事件顺序2、速度匹配网络结构网络边缘1、主机(端系统)2、网络应用接入网络,物理介质有

2021-08-31 16:35:03 386

原创 计算机网络学习笔记(一)——计算机网络性能指标

一、速率1、常用数据量单位8bit=1B8 bit = 1 B8bit=1B1KB=1024B=210B1 KB = 1024 B = 2^{10} B1KB=1024B=210B1MB=1024KB=220B1 MB = 1024 KB = 2^{20} B1MB=1024KB=220B1GB=1024MB=230B1 GB = 1024 MB = 2^{30} B1GB=1024MB=230B1TB=1024GB=240B1 TB = 1024 GB = 2^{40} B1TB=1024

2021-08-31 11:54:25 620

原创 Log4qt直接pri引用出现 不允许 dllimport 静态数据成员 的定义

类似这种错误 “Log4Qt::Appender::staticMetaObject”: 不允许 dllimport 静态数据成员 的定义只需在pro文件中定义DEFINES += LOG4QT_LIBRARY即便使用了.pri文件,也需要使用INCLUDEPATH

2021-08-24 09:40:41 369

原创 arm编译工具链ALL地址

https://www.gnutoolchains.com/

2021-06-22 08:33:27 164

原创 正反面两个扫描pdf合并程序

from PyPDF2 import PdfFileReader, PdfFileWriterpath1 = '01.pdf' #文件1路径path2 = '02.pdf' #文件2路径pdfFileReader1 = PdfFileReader(path1)pdfFileReader2 = PdfFileReader(path2)pdfFileWriter = PdfFileWriter()nums = pdfFileReader1.getNumPages()num1 = num2 =

2021-04-06 12:27:58 2440 3

原创 qt守护进程

#include <QCoreApplication>#include <QProcess>#include <QObject>//#pragma comment( linker, "/subsystem:/\"windows/\" /entry:/\"mainCRTStartup/\"" )int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); QProcess

2021-04-03 18:26:51 731

原创 c++获取当前运行路径

#if win32#include <direct.h>#else #include <unistd.h>#endifint main() { char* buffer; if ((buffer = _getcwd(NULL, 0)) == NULL) { perror("getcwd error"); } else { printf("%s\n", buffer); }} ```

2021-04-02 16:17:36 344

原创 将QT界面打包成dll给其他编译器调用

第一步:打开QT新建lib项目由于我要一个界面,所以Qt module我选择Widgets。然后下一步。准备在VS中加载选择msvc。创建完成之后应该是这个样子的:第二步:编写业务逻辑(新建界面类),并生成dll新建一个MainWindow:新建完成后可以自己修改ui文件,这里不再赘述。然后在cpp文件中添加要导出的函数,我这里导出一个界面显示函数:然后点击构建即可。在目录下会生成:第三步:使用dll(若是在QT中使用,直接调用即可,跳过此步)由于我们的dll本身是会依赖于

2021-04-01 14:23:44 2123

原创 django学习(1)

django学习若数据库使用MySQL,在setting同级目录下__init__文件中添加:import pymysqlpymysql.install_as_MySQLdb()一、获取django安装django: pip install django创建一个django项目: django-admin startproject [your project Name]在创建的项目目录下创建自己的APP应用: python manage.py startapp

2021-03-31 15:12:02 224 1

原创 qt鼠标自动跟随

#include "mlabel.h"#include <QDebug>bgfb#include <QEvent>#include <QMouseEvent>MLabel::MLabel(QWidget *parent) : QLabel(parent){ setMouseTracking(true); //设置鼠标自动跟随}void MLabel::enterEvent(QEvent */*ev*/){ qDebug() <&lt

2021-03-05 19:01:45 482

原创 DLL的创建使用以及注入

DLL的入口函数:BOOL WINAPI DllMain(HINSTANCE hinstance, DWORD reason, LPVOID lpvReserved);hinstance:该参数是当前DLL模块的句柄,即本动态连接库模块的实例句柄。reason:该参数表示DllMain()函数被调用的原因。分别是:值作用DLL_PROCESS_ATTACH当DLL被某进程加载时,DllMain()函数被调用DLL_PRO CESS_DETACH当DLL被某

2021-01-31 23:16:00 369

原创 好用的驱动加载工具

好用的驱动加载工具KMDManagerDbgView

2021-01-30 14:59:41 1511

原创 matlab 傅里叶画任何图

impath = '图片地址';msizex = 300; %更改图片大小msizey = 300;img = imread(impath);grey = rgb2gray(img);resizeGrey = imresize(grey, [msizex, msizey]);eg = edge(resizeGrey, 'canny');[x, y] = find(eg);global Path G;Path = [];G = rot90(eg, 3) ;XSN = struct('p

2020-07-04 22:41:21 2234 4

原创 在编写为win32或者socket时,出现undefine reference to" " 错误

添加-lws2_32-mwindows

2020-04-24 20:48:32 289

原创 彩色图转灰度图的几种方法

数字图像处理学习笔记(目录)平均法gray(x,y)=fR(x,y)+fG(x,y)+fB(x,y)3gray(x, y) = \frac{fR(x, y) +fG(x, y) +fB(x, y) }{3}gray(x,y)=3fR(x,y)+fG(x,y)+fB(x,y)​加权平均(最常用)gray(x,y)=0.299∗fR(x,y)+0.578∗fG(x,y)+0.114∗fB(x...

2020-03-26 21:59:44 771

原创 数字图像处理学习笔记(目录)

数字图像处理学习笔记(一)数字图像处理学习笔记(二)数字图像处理学习笔记(三)数字图像处理学习笔记(四)

2020-03-26 18:40:26 309

正反面两个扫描pdf合并程序

正反面两个扫描pdf合并程序,源代码在博客:https://blog.youkuaiyun.com/qq_36553572/article/details/115457992

2021-04-08

考研(其实其他需要长时间准备的考试也可以)小工具

一战研究生没考好,于是总结经验,应该是时间分配不合理(太浪),于是写一款小工具,每天自动播放视频,方便阅读电子文档,先在这里备个份,慢慢更新

2020-02-25

空空如也

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

TA关注的人

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