自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 transformer之位置编码

Transformer 位置编码描述了一个实体在序列中的位置,它为每个位置分配一个独特的表示。在 Transformer 模型中,有很多原因导致我们不使用单个数字(例如索引值)来表示项目的位置。对于长序列,索引值可能会变得非常大。如果将索引值归一化到 0 到 1 之间,则可能会对不同长度的序列造成问题,因为它们的归一化方式不同。Transformer 使用一种巧妙的位置编码方案,其中每个位置/索引都被映射到一个向量。

2024-06-21 15:05:19 1078

原创 torch.unflod与torch.nn.unfold用法

和。类似于函数类也用于沿着指定维度滑动提取窗口并将每个窗口展平。与函数不同的是,是一个可学习的层,可以作为神经网络的一部分进行训练。torch.nn.Unfold (以及底层的 torch.unfold) 不支持 torch.LongTensor 类型的数据。它们主要用于处理图像等浮点型数据。将张量沿着指定维度滑动提取窗口,并将每个窗口展平成向量,形成一个新的张量。这在卷积操作的实现中特别有用。在这个例子中,我们在维度 2 (高度) 上以大小为 2、步长为 1 的窗口滑动提取数据,并将每个窗口展平。

2024-06-21 13:44:14 518

原创 transformers之text generation解码策略

文本生成对于许多NLP任务至关重要,例如开放式文本生成、摘要、翻译等。它还在各种混合模态应用程序中发挥作用,这些应用程序将文本作为输出,如语音到文本和视觉到文本。一些可以生成文本的模型包括GPT2、XLNet、OpenAI GPT、CTRL、TransformerXL、XLM、Bart、T5、GIT、Whisper。请注意,generate方法的输入依赖于模型的模态。它们由模型的preprocessor类返回,例如AutoTokenizer或AutoProcessor。

2024-06-12 13:14:48 856

原创 Accelerate之大模型显存计算

大模型训练显存需求计算。并查看在给定 GPU 限制和 LoRA 配置的情况下是否可以运行特定的 LLM。时,您需要传入要使用的模型的名称、可能使用的模型框架(如果无法自动找到)以及要加载模型的数据类型。在探索要在您的机器上使用的潜在模型时,一个非常困难的方面是了解在您当前的显卡下,多大的模型可以。

2024-06-12 13:09:34 921

原创 使用vscode调试c++、python、torchrun、deepspeed程序

在Visual Studio Code(VS Code)中调试c++和python程序,主要通过launch.json和tasks.json是两个重要的配置文件进行程序调试和任务管理,通过合理的配置,可以极大地提升开发体验和效率。launch.json用于配置调试会话,允许开发者自定义调试环境、设置断点和观察点、管理环境变量等。tasks.json用于配置任务,实现自动化构建、测试、运行等操作,提高开发效率。

2024-05-30 14:21:28 1074 1

原创 c++调用python和numpy混合编程

在现代软件开发中,跨语言编程和混合编程的需求日益增长。C++作为一种高效、强大的编程语言,广泛应用于底层开发、游戏引擎、高性能计算等领域。而Python则因其简洁的语法、丰富的库和易于学习的特性,在数据科学、机器学习、Web开发等领域占据重要地位。NumPy是Python中一个用于数值计算的库,提供了大量的数学函数以及多维数组和矩阵运算的功能,是数据科学领域的核心工具之一。

2024-05-30 13:32:03 590

原创 fine-tune Microsoft/Phi-3-mini-128k-instruct

使用transformers在聊天指令数据集上使用LoRA对Phi-3语言模型进行微调,以改进会话理解和响应生成。

2024-05-28 18:22:45 713

原创 window与linux常用操作

linux与window中常用操作,持续更新~~~~~

2024-05-22 18:21:38 848

原创 Eigen::svd和 np.linalg.svd的不同之处

SVD动画图解–Eigen Svd 和 np.linalg.svd都可以用于SVD计算,但两者却存在细微的差别。

2024-04-26 13:02:42 839

原创 C++之模板函数编译技巧

在C++中,模板的编译和链接过程需要特别注意。

2024-04-25 00:48:38 312

原创 transformers之SFT和VLLM部署Llama3-8b模型

Llama3 微调

2024-04-22 15:57:48 1232

原创 SVD奇异值分解与PCA主成分分析

奇异值分解(singular value decomposition, SVD),将矩阵分解为奇异向量(singular vector)和奇异值(singular value)。PCA主成分分析

2024-04-18 14:33:23 323

原创 常用相似度计算公式

但上述的公式存在一个问题,如果物品y是热门物品,有很多人都喜欢,则会导致W(x, y)很大,接近于1。因此会造成任何物品都和热门物品交有很大的相似度。公式中分母是喜欢物品x的用户数,而分子则是同时对物品x和物品y感兴趣的用户数。Tanimoto相似度也称为Jaccard系数,是Cosine相似度扩展,多用于文档相似度就算。利用多维空间两点与所设定的点形成夹角的余弦值范围为[-1,1],值越大,说明夹角越大,两点相距就越远,相似度就越小。这个格式惩罚了物品y的权重,因此减轻了热门物品和很多物品相似的可能性。

2024-04-16 15:26:51 961

原创 igraph在linux环境中安装

igraph在linux环境中安装。

2024-04-15 13:32:35 222 1

原创 pytorch训练之数据并行技术

DDP比DP更快、更灵活。DDP所做的基本事情是将模型复制到多个gpu上,从它们收集梯度,平均梯度以更新模型,然后在所有K个进程上同步模型(数据并行)。

2024-04-03 16:31:34 508 1

原创 pytorch之多进程与分布式

无论是哪一种分布式技术一个核心的关键就是如何进行communication,这是实现分布式训练的基础,因此要想掌握分布式训练或当前流行的大模型训练务必对worker间的通信方式有所了解。如果用于GPU训练,这个数字需要小于或等于当前系统(nproc_per_node)上的GPU数量,并且每个进程从GPU 0到GPU (nproc_per_node - 1)将在单个GPU上操作。该方式下,使用 torchrun在每台主机上,为其创建多进程,其中:nproc_per_node 参数指定为当前主机创建的进程数。

2024-04-03 16:26:25 1339 1

原创 python之线程和进程

python线程和进程使用指南。将锁用于同步某些共享状态的权限,那些对状态的某些特定改变感兴趣的线程,它们重复调用 wait() 方法,直到看到所期望的改变发生;notify() 方法和 notify_all() 方法并不会释放锁,这意味着被唤醒的线程不会立即从它们的 wait() 方法调用中返回,而是会在调用了 notify() 方法或 notify_all() 方法的线程最终放弃了锁的所有权后返回。普通的全局变量是不能被子进程所共享的,只有通过Multiprocessing组件构造的数据结构可以被共享。

2024-04-03 16:24:50 633 1

原创 C++之生产者-消费者模式

本文将综合运用 C++11 中的新的基础设施(主要是多线程、锁、条件变量)来阐述一个经典问题——生产者消费者模型,并给出完整的解决方案。生产者消费者问题是多线程并发中一个非常经典的问题。本文将就四种情况分析并介绍生产者和消费者问题,它们分别是:单生产者-单消费者模型,单生产者-多消费者模型,多生产者-单消费者模型,多生产者-多消费者模型。

2024-04-01 12:36:00 970

原创 线程与进程基本概念

多线程和多进程都是为了解决程序的并发性问题。

2024-04-01 12:30:54 818

原创 多模态模型学习策略

多模态模型的学习策略

2024-03-26 16:43:47 1116

原创 AIGC领域综述

AIGC综述文章汇总~持续更新中

2024-03-26 15:21:03 1114

原创 Transformers之设计理念与模型编码结构

现在,您可以开始编码了 😃. 在 src/transformers/models/brand_new_bert/modeling_brand_new_bert.py 中生成的代码将具有与 BERT 相同的架构,如果是仅编码器模型,或与 BART 相同的架构,如果是编码器-解码器模型。贡献者在添加新模型时,如果新模型用到了现有的某个模型,我们经常强制要求他们把该现有模型的所有代码复制到新模型代码中,连一个小小的逻辑调整也不例外。另一方面,新模型的代码在逻辑上可能对其前面的模型有一定的依赖性。

2024-03-18 18:09:59 997

原创 Transformers之环境安装

自定义安装,主要是为了在docker中使用conda虚拟环境。

2024-03-18 14:16:27 3637 2

原创 pytorch训练之TP PP ZeRO

克服GPU内存限制。例如:适应非常大的模型 - 例如,t5-11b仅在模型参数方面就达到了45GB适应非常长的序列显著加快训练速度 - 例如,完成原本需要一年的训练工作只需几小时我们将首先深入讨论各种一维并行化技术及其优缺点,然后看看它们如何结合成二维和三维并行化,以实现更快的训练速度并支持更大的模型。将介绍各种其他强大的替代方法。三维并行化 - 网络效率非常高,但可能对建模代码产生很大影响,需要更多工作才能正确运行。

2024-03-12 11:47:20 436 1

原创 C++项目文件组织与编译安装(CMake)

CMakeLists.txt:这是CMake的主配置文件,它描述了如何构建整个项目。docs:存放项目的文档。include:所有公共头文件都放在这里,按模块组织。src:源代码文件,结构应与include目录相匹配。tests:包含所有的单元测试和集成测试。examples:提供SDK使用的示例代码。third_party:存放所有第三方库和依赖。scripts:构建、测试和部署的脚本。README.md:项目的说明文档。LICENSE.txt:项目的开源协议文件。

2024-03-07 17:58:42 944 1

原创 pytorch训练之EMA使用

在深度学习中用于创建模型的指数移动平均(Exponential Moving Average,EMA)的副本。通常,指数移动平均是用来平滑模型的参数,以提高模型的泛化能力。在训练过程中,通常会使用 EMA 模型来获得更稳定的预测结果,而不是直接使用训练过程中的模型参数。这样可以减少模型在训练数据上的过拟合,并提高模型的泛化能力。在这段代码中,model 是原始模型,deepcopy 函数用于创建模型的深层副本,避免共享内存。

2024-03-06 19:37:59 839

原创 如何向github项目贡献

作为贡献者,在你提交你的请求之前,以下是我们希望你遵循的规范:首先,在 项目 GitHub中搜索与您想要提交相关的内容开放或关闭的 PR。我们想您也不希望重复现有的工作。然后 Fork仓库,并下载你的仓库到本地添加项目原仓库,方便同步远程仓库最新的更新同步主仓库代码到你本地,以及同步回你fork的远程仓库注意:每次开始提交前,请先同步主仓库的代码在你自己fork的仓库,请创建一个分支用于提交你的变更内容。分支名尽可能的有一定意义。在你的分支上面进行修改,提交commit时,请按照我们的。

2024-03-06 17:24:41 217 1

原创 Ubuntu 22.04.3源码安装Point Cloud Library (PCL 1.14)与opencv

Ubuntu 22.04.3源码安装PCL

2024-03-06 16:48:52 512 1

原创 opencv-python使用常见问题汇总

pip install opencv-python安装之后,版本4.7.0.72。发现import cv2存在问题。解决方法:将cv2文件夹下cv2.pyd文件复制到site-packages目录下即可。

2023-03-14 21:58:24 382

原创 Flask+tornado+Nginx+pywin32实现本地网络部署

Flask+tornado+Nginx+pywin32实现本地网络部署

2023-01-16 17:30:48 614 1

PCL点云处理通用技术使用指南

介绍了点云的基础知识。点云软件CloudCompare和meshlab的安装与使用。点云PCL库的使用。点云深度学习pointnet++实现等点云处理技术。

2024-03-12

Prism-Samples-Wpf-master

wpf Prism框架 Samples样例参考程序

2022-05-29

WPF微软官方高级教程

WPF微软官方高级教程,供大家参考学习

2022-05-29

空空如也

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

TA关注的人

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