\(\bullet\)_Tensor parallelism._ Tensor parallelism is also a commonly used technique that aims to decompose the LLM for multi-GPU loading. Unlike pipeline parallelism, tensor parallelism focuses on decomposing the tensors (the parameter matrices) of LLMs. For a matrix multiplication operation \(Y=XA\) in the LLM, the parameter matrix \(A\) can be split into two submatrices, \(A_{1}\) and \(A_{2}\), by column, which can be expressed as \(Y=[XA_{1},XA_{2}]\). By placing matrices \(A_{1}\) and \(A_{2}\) on different GPUs, the matrix multiplication operation would be invoked at two GPUs in parallel, and the final result can be obtained by combining the outputs from the two GPUs through across-GPU communication. Currently, tensor parallelism has been supported in several open-source libraries, _e.g._, Megatron-LM [75], and can be extended to higher-dimensional tensors. Also, Colossal-AI has implemented tensor parallelism for higher-dimensional tensors [335, 336, 337] and proposed sequence parallelism [338] especially for sequence data, which can further decompose the attention operation of the Transformer model.
\(\bullet\)_Tensor parallelism._ Tensor parallelism은 또한 다중 GPU 로딩을 위해 LLM을 분해하는 것을 목표로 하는 일반적으로 사용되는 기술입니다. Pipeline parallelism과 달리 Tensor parallelism에서는 LLM의 텐서(파라미터 행렬)를 분해하는 데 중점을 둡니다. LLM의 행렬 곱셈 연산 \(Y=XA\)의 경우, 파라미터 행렬 \(A\)는 열별로 두 개의 하위 행렬인 \(A_{1}\)과 \(A_{2}\)로 분할할 수 있으며, 이는 \(Y=[XA_{1},XA_{2}]\)로 표현할 수 있습니다. 행렬 \(A_{1}\)과 \(A_{2}\)를 서로 다른 GPU에 배치하면 두 개의 GPU에서 행렬 곱셈 연산이 병렬로 호출되고, 두 GPU의 출력을 GPU 간 통신을 통해 결합하여 최종 결과를 얻을 수 있습니다. 현재 Tensor parallelism 기능은 여러 오픈 소스 라이브러리(예: Megatron-LM [75])에서 지원되고 있으며, 고차원 텐서로 확장할 수 있습니다. 또한, Colossal-AI는 고차원 텐서에 대한 Tensor parallelism을 구현하고 [335, 336, 337] 특히 시퀀스 데이터에 대한 Sequence parallelism [338]을 제안하여 Transformer 모델의 attention 연산을 더욱 분해할 수 있습니다.
\(\bullet\)_텐서 병렬성._ 텐서 병렬성은 또한 다중 GPU 로딩을 위해 LLM을 분해하는 것을 목표로 하는 일반적으로 사용되는 기술입니다. 파이프라인 병렬 처리와 달리 텐서 병렬 처리에서는 LLM의 텐서(파라미터 행렬)를 분해하는 데 중점을 둡니다. LLM의 행렬 곱셈 연산 \(Y=XA\)의 경우, 파라미터 행렬 \(A\)는 열별로 두 개의 하위 행렬인 \(A_{1}\)과 \(A_{2}\)로 분할할 수 있으며, 이는 \(Y=[XA_{1},XA_{2}]\)로 표현할 수 있습니다. 행렬 \(A_{1}\)과 \(A_{2}\)를 서로 다른 GPU에 배치하면 두 개의 GPU에서 행렬 곱셈 연산이 병렬로 호출되고, 두 GPU의 출력을 GPU 간 통신을 통해 결합하여 최종 결과를 얻을 수 있습니다. 현재 텐서 병렬 처리 기능은 여러 오픈 소스 라이브러리(예: Megatron-LM [75])에서 지원되고 있으며, 고차원 텐서로 확장할 수 있습니다. 또한, Colossal-AI는 고차원 텐서에 대한 텐서 병렬 처리를 구현하고 [335, 336, 337] 특히 시퀀스 데이터에 대한 시퀀스 병렬 처리 [338]를 제안하여 트랜스포머 모델의 주의 연산을 더욱 분해할 수 있습니다.