- 博客(42)
- 资源 (2)
- 收藏
- 关注
原创 论文阅读清单
目录三维重建视觉语言模型三维重建[2408.15235v1] Learning-based Multi-View Stereo: A Survey (arxiv.org) 视觉语言模型
2024-09-05 14:41:34 425
原创 Transformer大模型在训练过程中所需的计算量
许多关于Transformer语言模型的基本且重要的信息都可以用相当简单的方式计算出来。不幸的是,这些计算公式在NLP社区中并不广为人知。本文档的目的是收集这些公式,以及相关的知识,包括它们的来源和重要性。**注意:**本文主要关注训练成本,而训练成本主要受VRAM的限制。
2024-08-22 17:52:51 1027
原创 ERROR之TqdmWarning: IProgress not found. Please update jupyter and ipywidgets.
【代码】ERROR之TqdmWarning: IProgress not found. Please update jupyter and ipywidgets.
2024-08-22 17:46:59 338
原创 ERROR之libGL error:failed to open swrast与libstdc++.so.6: version GLIBCXX_3.4.30‘ not found
问题的根源是系统上的libstdc++版本与应用程序所需的版本不匹配。通过更新系统或 Conda 环境中的libstdc++库,或者调整库加载顺序,可以解决这个问题。如果这些步骤无法解决问题,请尝试重新配置或重新安装环境。
2024-08-20 13:29:29 494
原创 ERROR之command not found qt.qpa.plugin: Could not load the Qt platform plugin “xcb“
运行一些需要图形显示的应用程序时,您可能会遇到 Qt 平台插件相关的错误。正确配置并解决 Qt 插件问题,以下是完整的解决步骤。此命令的输出将显示当前配置的显示编号,如。报错文件不存在,可以手动创建。再次运行脚本以确认一切正常。
2024-08-20 13:22:48 500
原创 transformer之Attention机制及代码实现
Self-Attention和Gated Self-Attention都用于处理单个输入序列中的依赖关系,但Gated Self-Attention引入了门控机制来控制Attention输出。Cross-Attention用于处理两个或多个输入序列之间的依赖关系。Generalized Query Attention支持多个Query和多个Key-Value对,用于处理更复杂的依赖关系。
2024-07-24 16:56:15 441
原创 TRL之为视觉语言多模态模型进行偏好优化DPO
通过对候选回答的对比和排序,而不是赋予固定的标签,偏好优化使得模型能更高效地捕捉人类偏好中的细微差别。在双项选择的设定下,相应的数据一般包含一个提示词 (Prompt) 和两个候选回答,两个回答中一个被记为选中 (chosen),另一个被记为淘汰 (rejected)。幸运的是,我们可以使用量化、LoRA 等技术来大幅度地减少显存需求,让训练可以进行。需要注意的是,尽管选中的回答也不是完全正确的 (回答 18000 个家庭还是不对,应该是 18000000),但它也好于那个被淘汰的回答。
2024-07-24 13:08:06 1004
原创 ERROR之powershell中运行python权限问题
遇到了 PowerShell 执行策略阻止运行脚本的问题。这是 Windows 为防止运行不受信任的脚本而设置的安全措施。如果你只想在当前 PowerShell 会话中运行脚本,可以使用。这将更改当前用户的执行策略,直到关闭 PowerShell 窗口。更改执行策略会降低系统安全性,请谨慎操作。
2024-07-20 13:47:08 290
原创 生成式多模态之AE DAE/MAE VAE VQ-VAE/VQ-VAE2
在VAE中,编码器仍然将输入数据映射到一个低维潜在空间,但是与潜在空间中的单个点不同,编码器生成潜在空间上的概率分布。(Variational Auto-Encoder)就是借助了encoder-decoder的结构去做生成,和AE最主要的区别就是不再去学习中间的bottleneck特征了,而是引入概率框架来生成输入数据的压缩表示,去学习一种分布。是一种瓶颈架构( bottleneck),它使用编码器将高维输入x 转换为潜在的低维Code h,然后使用解码器将潜在Code h进行重构,得到最终的输出x’。
2024-07-20 13:45:30 885
原创 Learning and Evaluation
使用一小批数据对你的实现进行梯度检查,并注意陷阱。作为健全性检查,请确保你的初始损失是合理的,并且你可以在一小部分数据上实现 100% 的训练准确率。在训练期间,监控损失、训练/验证准确率,如果你感觉更高级,还可以监控更新幅度与参数值的关系(它应该是 ~1e-3),以及在处理 ConvNets 时,第一层权重。推荐使用的两种更新方法是 SGD+Nesterov Momentum 或 Adam。在训练期间降低你的学习率。
2024-07-03 13:43:17 653
原创 企业部署 LLM 的四种方法
除了节省微调时间外,这种知识检索技术还降低了幻觉的可能性,因为数据是在提示本身中传递的,而不是依赖于 LLM 的内部知识。因此,企业希望根据自己的数据部署 LLM,以解锁其领域中的用例(例如,基于文档和支持的客户聊天机器人、基于 IT 指令的内部聊天机器人等),或生成最新的或使用非公开信息的响应。随着 LLMOps 基础架构随着更先进的工具(如 Fiddler 的 AI 可观察性平台)和方法的发展,我们将看到更多企业采用 LLM 部署选项,这些选项可以以更经济的成本和更快的上市时间产生更高质量的 LLM。
2024-07-03 11:12:36 881
原创 pytorch之torch.meshgrid函数详解
函数根据输入的一维张量创建坐标网格。当你想要在一系列输入范围内可视化数据时,这个函数非常有用。给定 N 个一维张量T0TN−1作为输入,它们对应的长度为S0SN−1,该函数会创建 N 个 N 维张量G0GN−1,每个张量的形状为S0...SN−1,其中输出Gi是通过将Ti扩展到结果形状而构建的。
2024-07-03 11:10:09 761
原创 transformer之位置编码
Transformer 位置编码描述了一个实体在序列中的位置,它为每个位置分配一个独特的表示。在 Transformer 模型中,有很多原因导致我们不使用单个数字(例如索引值)来表示项目的位置。对于长序列,索引值可能会变得非常大。如果将索引值归一化到 0 到 1 之间,则可能会对不同长度的序列造成问题,因为它们的归一化方式不同。Transformer 使用一种巧妙的位置编码方案,其中每个位置/索引都被映射到一个向量。
2024-06-21 15:05:19 1147
原创 torch.unflod与torch.nn.unfold用法
和。类似于函数类也用于沿着指定维度滑动提取窗口并将每个窗口展平。与函数不同的是,是一个可学习的层,可以作为神经网络的一部分进行训练。torch.nn.Unfold (以及底层的 torch.unfold) 不支持 torch.LongTensor 类型的数据。它们主要用于处理图像等浮点型数据。将张量沿着指定维度滑动提取窗口,并将每个窗口展平成向量,形成一个新的张量。这在卷积操作的实现中特别有用。在这个例子中,我们在维度 2 (高度) 上以大小为 2、步长为 1 的窗口滑动提取数据,并将每个窗口展平。
2024-06-21 13:44:14 770
原创 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 970
原创 Accelerate之大模型显存计算
大模型训练显存需求计算。并查看在给定 GPU 限制和 LoRA 配置的情况下是否可以运行特定的 LLM。时,您需要传入要使用的模型的名称、可能使用的模型框架(如果无法自动找到)以及要加载模型的数据类型。在探索要在您的机器上使用的潜在模型时,一个非常困难的方面是了解在您当前的显卡下,多大的模型可以。
2024-06-12 13:09:34 1117
原创 使用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 1357 1
原创 c++调用python和numpy混合编程
在现代软件开发中,跨语言编程和混合编程的需求日益增长。C++作为一种高效、强大的编程语言,广泛应用于底层开发、游戏引擎、高性能计算等领域。而Python则因其简洁的语法、丰富的库和易于学习的特性,在数据科学、机器学习、Web开发等领域占据重要地位。NumPy是Python中一个用于数值计算的库,提供了大量的数学函数以及多维数组和矩阵运算的功能,是数据科学领域的核心工具之一。
2024-05-30 13:32:03 959
原创 fine-tune Microsoft/Phi-3-mini-128k-instruct
使用transformers在聊天指令数据集上使用LoRA对Phi-3语言模型进行微调,以改进会话理解和响应生成。
2024-05-28 18:22:45 912
原创 Eigen::svd和 np.linalg.svd的不同之处
SVD动画图解–Eigen Svd 和 np.linalg.svd都可以用于SVD计算,但两者却存在细微的差别。
2024-04-26 13:02:42 930
原创 SVD奇异值分解与PCA主成分分析
奇异值分解(singular value decomposition, SVD),将矩阵分解为奇异向量(singular vector)和奇异值(singular value)。PCA主成分分析
2024-04-18 14:33:23 492
原创 常用相似度计算公式
但上述的公式存在一个问题,如果物品y是热门物品,有很多人都喜欢,则会导致W(x, y)很大,接近于1。因此会造成任何物品都和热门物品交有很大的相似度。公式中分母是喜欢物品x的用户数,而分子则是同时对物品x和物品y感兴趣的用户数。Tanimoto相似度也称为Jaccard系数,是Cosine相似度扩展,多用于文档相似度就算。利用多维空间两点与所设定的点形成夹角的余弦值范围为[-1,1],值越大,说明夹角越大,两点相距就越远,相似度就越小。这个格式惩罚了物品y的权重,因此减轻了热门物品和很多物品相似的可能性。
2024-04-16 15:26:51 1254
原创 pytorch训练之数据并行技术
DDP比DP更快、更灵活。DDP所做的基本事情是将模型复制到多个gpu上,从它们收集梯度,平均梯度以更新模型,然后在所有K个进程上同步模型(数据并行)。
2024-04-03 16:31:34 680 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 1671 1
原创 python之线程和进程
python线程和进程使用指南。将锁用于同步某些共享状态的权限,那些对状态的某些特定改变感兴趣的线程,它们重复调用 wait() 方法,直到看到所期望的改变发生;notify() 方法和 notify_all() 方法并不会释放锁,这意味着被唤醒的线程不会立即从它们的 wait() 方法调用中返回,而是会在调用了 notify() 方法或 notify_all() 方法的线程最终放弃了锁的所有权后返回。普通的全局变量是不能被子进程所共享的,只有通过Multiprocessing组件构造的数据结构可以被共享。
2024-04-03 16:24:50 663 1
原创 C++之生产者-消费者模式
本文将综合运用 C++11 中的新的基础设施(主要是多线程、锁、条件变量)来阐述一个经典问题——生产者消费者模型,并给出完整的解决方案。生产者消费者问题是多线程并发中一个非常经典的问题。本文将就四种情况分析并介绍生产者和消费者问题,它们分别是:单生产者-单消费者模型,单生产者-多消费者模型,多生产者-单消费者模型,多生产者-多消费者模型。
2024-04-01 12:36:00 2269
原创 Transformers之设计理念与模型编码结构
现在,您可以开始编码了 😃. 在 src/transformers/models/brand_new_bert/modeling_brand_new_bert.py 中生成的代码将具有与 BERT 相同的架构,如果是仅编码器模型,或与 BART 相同的架构,如果是编码器-解码器模型。贡献者在添加新模型时,如果新模型用到了现有的某个模型,我们经常强制要求他们把该现有模型的所有代码复制到新模型代码中,连一个小小的逻辑调整也不例外。另一方面,新模型的代码在逻辑上可能对其前面的模型有一定的依赖性。
2024-03-18 18:09:59 1122
原创 pytorch训练之TP PP ZeRO
克服GPU内存限制。例如:适应非常大的模型 - 例如,t5-11b仅在模型参数方面就达到了45GB适应非常长的序列显著加快训练速度 - 例如,完成原本需要一年的训练工作只需几小时我们将首先深入讨论各种一维并行化技术及其优缺点,然后看看它们如何结合成二维和三维并行化,以实现更快的训练速度并支持更大的模型。将介绍各种其他强大的替代方法。三维并行化 - 网络效率非常高,但可能对建模代码产生很大影响,需要更多工作才能正确运行。
2024-03-12 11:47:20 692 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 1013 1
原创 pytorch训练之EMA使用
在深度学习中用于创建模型的指数移动平均(Exponential Moving Average,EMA)的副本。通常,指数移动平均是用来平滑模型的参数,以提高模型的泛化能力。在训练过程中,通常会使用 EMA 模型来获得更稳定的预测结果,而不是直接使用训练过程中的模型参数。这样可以减少模型在训练数据上的过拟合,并提高模型的泛化能力。在这段代码中,model 是原始模型,deepcopy 函数用于创建模型的深层副本,避免共享内存。
2024-03-06 19:37:59 1983
原创 如何向github项目贡献
作为贡献者,在你提交你的请求之前,以下是我们希望你遵循的规范:首先,在 项目 GitHub中搜索与您想要提交相关的内容开放或关闭的 PR。我们想您也不希望重复现有的工作。然后 Fork仓库,并下载你的仓库到本地添加项目原仓库,方便同步远程仓库最新的更新同步主仓库代码到你本地,以及同步回你fork的远程仓库注意:每次开始提交前,请先同步主仓库的代码在你自己fork的仓库,请创建一个分支用于提交你的变更内容。分支名尽可能的有一定意义。在你的分支上面进行修改,提交commit时,请按照我们的。
2024-03-06 17:24:41 253 1
原创 Ubuntu 22.04.3源码安装Point Cloud Library (PCL 1.14)与opencv
Ubuntu 22.04.3源码安装PCL
2024-03-06 16:48:52 948 1
PyTorch roadmap deep learning transformer Generative AI
2024-08-29
Computer vision:models, learning and inference
2024-07-05
PCL点云处理通用技术使用指南
2024-03-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人