总而言之,模型视图投影矩阵=投影矩阵×视图矩阵×模型矩阵,模型矩阵将顶点从局部坐标系转化到世界坐标系中,视图矩阵将顶点从世界坐标系转化到视图坐标系下,而投影矩阵将顶点从视图坐标系转化到规范立方体中。 观察者的位置和方向会变化,看上去就好像整个世界的位置和方向发生变化了一样,所以我们将世界里的所有模型看作一个大模型,在所有模型矩阵的左侧再乘以一个表示整个世界变换的模型矩阵,就可以了。 观察者缩小的情形曾经使我困惑: 一方面,即使人和猫咪的眼睛在同一个位置,人看到的世界和猫咪看到的世界应当是一样尺寸的(虽然人比猫大);但是直觉告诉我,如果你喝了变猫药水,你应该会觉得整个世界在膨胀,就像视图矩阵所表现的那样 视图矩阵实际上就是整个世界的模型矩阵,这给我一点启发:一个模型可能由多个较小的子模型组成,模型自身有其模型矩阵,而子模型也有自己的局部模型矩阵。 实际上,投影矩阵先把顶点坐标转化到规范立方体坐标系(Xc-Yc-Zc)中,也就是将四棱锥台体空间映射到规范立方体中。规范立方体是x,y,z都处在区间[-1,1]之间的边长为2的立方体,如下所示。
放到混淆矩阵中就是真实情况为A类的像元数中有多少像元数被分类器分为了别的类别。 2 ---结果 kappa系数的计算结果处于(-1,1)之间,但一般情况下其结果处于(0,1)之间,且可分为五个级别来表示一致性: (0,0.2】表现为极低一致性; (0.2,0.4】表现为一般一致性; 除总体分类精度和kappa系数外,其他指标以A类为例: 1 ---总体分类精度 overall accuracy=(20+15+18)/100=53% 2 ---生产者精度 producer accuracy =20/(20+5+2)≈74% 3 ---用户精度 user accuracy=20/(10+10+20)=50% 4 ---错分误差 commission error =(10+10)/40 =1 -user accuracy=50% 5 ---漏分误差 omission error =(5+2)/27 =1-producer accuracy ≈26% 6 ---kappa系数 Po=0.53
大模型产品层出不穷,面对各种声称“最强”的模型,我们该如何快速理清技术路线和核心差异?本文从基础架构出发,带你一站式浏览国内外主流大模型厂商及其代表产品,最后给出个人使用建议,帮你少走弯路。 一、三大技术路线概览大部分大模型都基于 Transformer 架构,按照编码与解码模块的不同可分为三类:自回归模型(Decoder‑only)仅用解码器生成文本,典型代表 GPT 系列优势:对话、生成 Meta(前 Facebook)LLaMA 系列(LLaMA2、LLaMA3):开源自回归模型,社区活跃SEER:自监督视觉模型data2vec:统一多模态自监督框架厂商代表产品简介OpenAIChatGPT (GPT‑3.5)、GPT‑4o(多模态)、Sora(文本生成视频)推动对话式大模型革命GoogleBERT、LaMDA、PaLM‑E、BardTransformer 架构发明者,多模态先锋MetaLLaMA2 /3、SEER、data2vec开源自回归模型,社区活跃,跨模态方向布局三、国货之光·大模型1.
腾讯云助力友邦保险“春日绽放歌会”增添AI新亮点|100位总裁征集,免费定制鹅厂数智人 | 一图看懂「腾讯云生成式AI产业应用峰会」|腾讯云发布三大AI大模型引擎,5分钟开发一款企业级知识应用|腾讯云吴运声 :打造大模型时代原生工具链,助力客户一站式构建AI原生应用|治愈大模型“健忘症” | 腾讯混元发布256k长文模型 | 来,1亿Tokens免费赠,模型任选!
二维平面只包含缩放和平移的模型矩阵 [ sx 0 0 tx ] ← X轴缩放(sx)与X轴平移(tx) [ 0 sy 0 ty ] ← Y轴缩放(sy)与Y轴平移 ty) [ 0 0 1 0 ] ← Z轴不缩放、不平移(保持1) [ 0 0 0 1 ] ← 齐次坐标标识(固定为1) 二维平面包含缩放、旋转和平移的模型矩阵 : [ 2/windowWidth 0 0 -(windowWidth)/(windowWidth) ] [ 0 -2/windowHeight 0 (windowHeight)/(windowHeight) ] [ 0 0 -2/(1+1) 0 窗口大小适配:当窗口大小改变时,需重新计算投影矩阵(通常在 OnResize 事件中更新)。
正文 2. 参考 1. 正文 通常来说,模型矩阵(R)的一种比较好的级联方式为:先缩放(S),再旋转(R),最后平移(T): \textbf{R} = \textbf{T} * \textbf{R} * \textbf{S} 如果不考虑缩放变换,那么模型变换实际上是一种刚体变换。 此时四维模型矩阵的左上角3X3矩阵就是旋转矩阵,第四列就是平移量。但是加上缩放变换,就变成一个复杂的问题了。 除了缩放、旋转和平移,GLM提供的模型矩阵分解的函数接口glm::decompose()还提供一个skew参数和perspective参数,暂时没弄明白其具体含义,留待以后研究。 2.
矩阵分解模型做如下假设: 1.每个用户可描述为n个属性或特征。比如,第一个特征可以对应某个用户对动作片的喜好程度。 2.每个物品可描述为n个属性或特征。 假设我们的用户和物品数目分别是U和I,那对应的“用户-物品”矩阵的维度为U*I。那对应的两个低阶矩阵分别是用户的U*k矩阵,和物品的I*k矩阵。这两个矩阵也被称为因子矩阵。因子矩阵通常是稠密的。 由于对“用户-物品”矩阵直接建模,用这些模型进行预测也相对直接:要计算给定用户对某个物品的预计评级,就从用户因子矩阵和物品因子矩阵分别选取相应的行(用户因子向量)与列(物品因子向量),然后计算两者的点积即可 因子分解类模型的的利弊: 利:求解容易,表现出色 弊:不好解释,吃资源(因子向量多,训练阶段计算量大) 2.隐式矩阵分解 隐式矩阵就是针对隐式反馈数据。 它将输入的评级数据视为两个矩阵:一个二元偏好矩阵P和一个信心权重矩阵C。 隐式模型仍然会创建一个用户因子矩阵和一个物品因子矩阵。但是,模型所求解的是偏好矩阵而非评级矩阵的近似。
2 小孔成像 机器视觉成像采用小孔成像模型,如下图所示 再次简化为下图 图中 X X X是一个空间点, x x x为该空间点在图像中的成像点, C C C为镜头光心(camera centre 后面的各个坐标系及其相互关系都是基于这个小孔成像模型推出。 3 坐标系 说到机器视觉测量模型,就少不了先要了解整个模型中涉及的几个坐标系。 ⎣⎢⎢⎡XWYWZW1⎦⎥⎥⎤ 这就是世界坐标系与相机坐标系的转换关系,其中的矩阵 M 2 M_2 M2与相机的位姿有关,称为外参矩阵。 ⎣⎢⎢⎡XWYWZW1⎦⎥⎥⎤ 4 机器视觉投影矩阵 至此,我们就得到了像素坐标系与世界坐标系的映射关系,即机器视觉投影矩阵 [ u v 1 ] = 1 Z C M 1 M 2 [ X M_2 M2——外参矩阵,4×4矩阵, M 2 = [ r 11 r 12 r 13 t x r 21 r 22 r 23 t y r 31 r 32 r 33 t z 0 0 0 1 ] M_2=\
OpenGL在设置场景时,要用到两个矩阵:投影矩阵 和 模型视图矩阵通过glMatrixMode来指定下面的矩阵操作是针对哪一个矩阵进行的。 />gluLookAtUp(); // E 视点矩阵
glTranslate(); // T 模型矩阵
glScale(); // S 模型矩阵
glRotate(); // R 模型矩阵
因为实际的变换顺序与代码的顺序是相反的,设顶点v
模型视图矩阵的顺序依次为 I, E, ET, ETS, ETSR, 经过变换的顶点是 如视点位于(0,0,5),at点位于(0,0,10),up不变,near 为 -2 ,far 为 -5,则此时的观察方向为Z轴正向,视锥体在三维空间中的实际near far 平面为 Z = 3, Z = (相对于(0,0,0),near平面为Z = 2, far平面为Z = 5,变换到视点位置(0,0,5),near 平面为Z = 3, far平面为Z = 0 ,)
发布者:全栈程序员栈长,转载请注明出处
在大模型场景中,β通常取0,即仅保留矩阵乘法结果,无需累加初始矩阵C,核心简化为D = A×B,而累加操作会间接体现在后续激活函数的输入计算中。2. 这一公式是大模型算力测算公式的底层核心,大模型中的GEMM运算本质是高维矩阵乘法,其运算量直接决定了整体算力需求,后续算力测算的简化与校准均基于此公式展开。 大模型中的高维GEMM运算 大模型中,输入数据、模型参数均以高维张量(矩阵的扩展形式)存在,GEMM运算需适配高维场景。 通过模拟大模型中典型的矩阵维度(1024×4096 与 4096×1024),分别执行100次矩阵乘法并记录耗时。 矩阵分块优化通过将大矩阵拆分为适配GPU缓存(L1/L2)的小矩阵块(Tile),减少显存访问次数,提升缓存命中率,进而优化GEMM效率。
GLM https://arxiv.org/pdf/2103.10360.pdf GLM是General Language Model的缩写,是一种通用的语言模型预训练框架。 具体来说,GLM通过随机遮盖文本中连续的标记,并训练模型按顺序重新生成这些遮盖的部分。这种自回归的空白填充目标使得GLM能够更好地捕捉上下文中标记之间的依赖关系,并且能够处理可变长度的空白。 这个图示说明了GLM预训练的过程,具体解释如下: a) 原始文本:给定一个原始文本,例如[x1, x2, x3, x4, x5, x6]。 在生成过程中,模型可以根据之前生成的词片段和Part A中的上下文来预测下一个词片段。 d) 自注意力掩码:为了限制模型的注意力范围,
BERT 量化实战分析前言:在【大模型学习 | 量化实战(1)】-腾讯云开发者社区-腾讯云中基于BERT实现了情感分析系统以及量化的实现,但是量化的结果导致了模型的精确度急剧下降,从90%降到了54%, 未出现截断情况(即分布区域超过量化上下限)、分布近似 scale过大scale的计算如下所示:scale=\frac{max(w)-min(w)}{255} , 个别层的权重有离群值,会导致scale非常大, Sensitive Layers:") for r in results[:5]: print(f"{r[0]:40s} | Acc: {r[1]:.4f} | ΔAcc: {r[2] :.4f}") return results 其他分析方法层级 fallback 到 FP32与敏感性分析相关,该方法是将原模型逐层量化,观察精度下降情况误差传播分析对 float32 模型 和 模型 vs INT8 模型输出差异有多大
BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models 作者提出一种从离线、梯度冻结的图像、语言模型中提升图文的预训练模型。为了联系两个不同模态预训练模型,作者提出一种使用两个阶段预训练模型Querying Transformer (Q-Former)。 一、预训练方法这种预训练方法分为了两个阶段 (1)视觉语言特征表示学习阶段 (2)视觉到文本的生成学习阶段 1.1 Q-Former主要作用就是对齐两个不同模态的冻结预训练模型 Q-Former包含了两个 transformer子模块:(1)Image Transformer (特征提取) (2) Text transformer (作为文本编码器和解码器) ; 一组可学习的查询嵌入向量作为 Image 作者尝试了两种LLM冻结模型:(1) decoder-based LLMs : query 表征作为 LLM 的输入前缀(prefix) → LLM 自己完成文本生成(2) encoder-decoder-based
1)如何对大矩阵进行分块,矩阵分块基于怎样的数学原理 2)分块后的矩阵如何利用多GPU核心进行并行计算,提高计算效率 3)Tile Size 分块大小如何选择,需要考虑哪些限制因素 1,矩阵分块(Tiling 1.2,实例 4×4 矩阵分块乘法 以两个 4×4 矩阵 A 和 B 相乘为例,将其划分为 2×2 的子矩阵(T=2),分块计算过程。 更多精彩: 历史文章: 显卡知识-算力开挂的GPU 大模型量化-roofline性能分析工具 大模型推理-Flash attention 访问内存优化 大模型推理-page attention 内存分页术 大模型推理-极致化的批处理策略介绍 大模型推理- PD分离部署,势在必行! 大模型推理-高效推理必备KV cache 大模型训练-混合专家系统MoE 大模型训练-Nvidia GPU 互联技术全景图 大模型训练-流水线并行PP 大模型训练-张量并行TP
混淆矩阵是用于评价分类模型效果的NxN矩阵,其中N是目标类别的数目。矩阵将实际类别和模型预测类别进行比较,评价模型的预测效果。 TP(True Positive):真实值是positive,模型认为是positive的数量,即模型预测正确的正例数量。 2. 2 二级指标 对于预测性分类模型,我们希望模型的预测结果越准越好,即混淆矩阵中TP、TN的值越大越好,相应FP、FN的值越小越好。 TP(True Positive):真实值是买产品,模型认为是买产品的顾客数量,即模型预测正确的正例数量,在该例中值为800。 2. 4.TN(True Negative):真实值是不买产品,模型认为是不买产品的数量,即模型预测正确的负例数量,在该例中值为100。 2 二级指标 1.
在前面的文章中我们讲到了回归模型和分类模型的评估指标,区分了准确率和精确率的区别,并且比较了精确率和召回率内在的联系。 混淆矩阵是机器学习中总结分类模型预测结果的情形分析表,以矩阵形式将数据集中的记录按照真实的类别与分类模型预测的类别判断两个标准进行汇总。 ["cat", "dog", "cat", "cat", "dog", "rebit"] y_pred = ["dog", "dog", "rebit", "cat", "dog", "cat"] C2= confusion_matrix(y_true, y_pred, labels=["dog", "rebit", "cat"]) sns.heatmap(C2,annot=True) 多分类混淆矩阵 至此,关于模型评估个各指标已全部介绍完毕,后面的文章我们将开始讲解一些经典算法的推导及使用,喜欢的小伙伴请点击关注!
导读:在《推荐算法概述》一文中,我们介绍了推荐算法分为基于用户、基于物品、基于模型的协同过滤方法,矩阵分解模型是典型的基于模型的方法之一,本文将从基本概念、原理、实践几个角度进行介绍。 2 原理简述 矩阵分解指将一个大的矩阵转化为两个小矩阵相乘: ? 对应在推荐场景中,大矩阵表示用户对物品的评分,将大矩阵转化为用户矩阵和物品矩阵相乘,小矩阵的维度k解释为隐含的兴趣点,原本缺失的地方通过两个矩阵相乘也得到了取值,该取值就是预测的分数。 ? 模型训练的目标是使输入输出矩阵误差最小,并且为了避免过拟合加入了正则项。应用显示信息和隐式信息的目标函数分别如下: ? ? als.getItemCol()).distinct().limit(3) movieSubSetRecs = model.recommendForItemSubset(movies, 10) 4 优缺点 矩阵分解将大矩阵转化为两个低维矩阵的乘积
内容列表 序号 函数 描述 1 cv2.exp() 实现矩阵的逐元素求指数幂 2 cv2.flip() 绕选定的轴翻转矩阵 3 cv2.gemm() 实现广义矩阵乘法 4 cv2.idct() 计算矩阵的离散余弦逆变换 5 cv2.idft() 计算矩阵的离散傅里叶逆变换 6 cv2.inRange() 测试矩阵的元素是否在两个其他矩阵的值之间 7 cv2.invert() 求方阵的逆 8 cv2.log() 计算矩阵逐元素的自然对数 ) 计算两个矩阵逐元素的最大值 13 cv2.mean() 计算矩阵元素的平均值 14 cv2.meanStdDev() 计算矩阵元素的均值和标准差 15 cv2.merge() 将多个单通道矩阵合并成一个多通道矩阵 16 cv2.min() 计算两个矩阵逐元素的最小值 17 cv2.minMaxLoc() 在矩阵中寻找最小值和最大值 18 cv2.mixChannels() 打乱从输入矩阵到输出矩阵的通道 19 cv2.multiply() 计算两个矩阵的逐元素乘积 20 cv2.mulTransposed() 计算矩阵和矩阵的转置的乘积 21 cv2.norm() 计算矩阵/矩阵差的范数 22 cv2.normalize
三元组的存储策略 如果存储一个稀疏矩阵对应的多个三元组可以有非常多的实现方式,针对每一种都进行讲解是非常不现实的,而且完全没有这个必要,因为三元组的存储策略可以分为 2 大类:三元组容器法以及三个序列法 2 种方法:三个序列法。 : >>> row = np.array([0, 3, 1, 0]) >>> col = np.array([0, 3, 1, 2]) >>> data = np.array([4, 5, 7, 9]) 我们来看一下遇到这种情况会不会有什么问题: >>> row = np.array([0, 0, 1, 3, 1, 0, 0]) >>> col = np.array([0, 2, 1, 3, 1, 0, 这 2 个方法都是原地操作,无返回值。现在方法有了,怎么消除零元素以及重复的行列索引无非就是两个方法的调用顺序的问题。显然我们应该先消除重复的行列索引,再消除零元素。
模型视图投影矩阵,也就是常说的MVP,有很多的书和资料,参考资料中会列出我推荐的相关资料,会详细介绍推导过程。之所以还要写这一篇,是因为它比较重要,也为了保证‘坐标系与矩阵’系列文章的完整性。 至此,我们介绍了模型视图矩阵,这里,多插一句,就是法线的转换。已知: ? 此时,已知一点 ? ,对应的法线 ? 。该点经过矩阵 ? 转换到新的坐标系下,对应的法线 ? : ? 两个公式可得,法线变化对应的矩阵是逆矩阵: ? 下面进入投影部分,既然是投影,就是一种降维求近似解的过程,我们可以理解为洗照片,把3D空间降维到2D,最主要的有两种方式:正交投影和透视投影。 ? 可见,正交投影符合欧几里得的平行线不相交特性,更符合几何体在空间中的客观存在方式,比如乐高积木;而在透视投影下平行线则会相交,更符合人眼‘近大远小’的特点,比如‘鸽子为什么这么大’。 ? ? 这样,最终的透视投影矩阵以及投影矩阵有两种情况: ? 这样,我们可以得到最终的模型视图投影矩阵,实现将3D空间下的 ? 映射到2D平面: ?