一、张量在前面的文章“线性代数的基本向量”中对张量Tensor有了一个较为清楚的描述。这对于掌握大模型底层的基础运算是非常必要的。可以简单的这样看标量是一个零维空间的数据描述向量是一维空间的矩阵是二维空间的而张量则三维及以上的空间的。在计算机技术中向量可以用一维数据描述而矩阵可以用二维数组描述张量则是一个多维的数组。大家可以想象一下张量是一个由多个矩阵迭加组成的立体数据容器。这也是学习大模型的底层技术的一个重要的关键技术。张量的更重要的意义在于其物理和几何意义即“无论观察者的坐标系如何旋转或变换张量所代表的物理规律或几何关系保持不变。”这在前面已经描述过。之所以如此是因为张量是由基向量和向量分量组合而成的如果基向量已知的前提下张量完全可以由向量分量进行描述。普通人不好理解的原因在于普通人一般生活的都是比较规则的空间中。但在一些实际的应用中如流体力学、波等它的空间变化复杂而方向性也多变特别是在AI中的多维空间的数据处理更是如此。而这恰恰是张量的的优势。要想更形象的理解张量可参看Dan Fleisch的视频中对“通过向量来表示面积”面积是平面上两个分向量的与角度计算的结果而垂直于这个面积所在平面的向量代表了两个分向量的叉积这个段。只要理解了这一段那么理解张量就算是掌握了基础。二、大模型的数据处理在AI和大模型的底层数据分析处理过程中其一个基本的问题就是如何理解人类输入的信息。或者说语言文字或者是语音等。有过底层数据处理经验的都知道基本就是将其进行Token化。在此基础上再将其映射为数字向量。这样就可以使用向量来描述不同语言文字或事物的特征即嵌入向量而向量就可以描述事物间的关联度。也就是说向量空间可以映射到现实世界的事物中来反过来也一样。这样说可能还是有一点复杂再简单的说就是现实事物被拆解映射到向量空间后每个Token都可以被一组向量描述即在高维空间中的坐标点。在此基础上再抽象到矩阵。矩阵就可以进行更加复杂的向量运算。这才在前面的大模型的分配过程中已经分析过参数的微调其实就是矩阵的低秩处理过程。而现在的大模型为了更好的体现向量特征间的关系又引入了注意力机制即将相关的向量特征上下文中关系进行处理。通过不断的对输入矩阵与权重矩阵进行运算多层和反向传播机制处理最终形成一个矩阵向量结果。利用其的概率统计输出结果。这就是一个最初的大模型的数据处理。只不过真实的大模型中因为数据是海量的所以其矩阵可能不只是一个二维矩阵可以描述的它可能是多个甚至可能是成千上万或者更多。而此时再用矩阵来描述这些数据就已经变得有些吃力。好的张量就这么应运而生了。也就是说从数据表示上来说张量就是高维度空间中的向量矩阵。三、矩阵乘法在大模型实际生成结果的过程中它需要一个概率的计算过程。这个计算过程中其实就是通过注意力机制找到向量矩阵之间的特征关系再与向量矩阵描述的信息及权重矩阵从海量的输入数据中找到规律进行运算进而得到输出结果。而这个运算的过程就是矩阵乘法计算的过程。它不是一个简单的一次两次的过程这是一个动态的不断正向多层网络和反向传播的处理过程。这个矩阵的计算的结果就是输出结果的概率分布大模型会在这已知的结果中通过此概率找出相关的内容并重新丢回输入上下文中并重新进行上述的动作。四、张量计算上述的矩阵计算过程体现在高维度空间的运算中就是张量计算。而张量计算有加法、乘法、积等各种运算操作。但在大模型的底层其基础的张量运算就是矩阵乘法和累加操作。它也是很多张量加速计算库的主要功能。张量计算的核心作用就是对正向传播中的输出和反向传播中的梯度计算、优化调参起着加速的作用。比如常见的深度学习和神经网络、NLP以及图像图像处理等等场景中都广泛使用到了张量计算。五、总结如果明白了上面的分析基本就明白了所谓标量、向量、矩阵等等都可以用张量来表示。正如二维平面空间可以描述为高度为零的三维立体空间反过来也可以把三维空间描述为多个二维平面空间的组合一样。由分到合再由合到分。既掌握细节的不同又能抽象的统一。这就是张量的意义。