ML Fundamentals

тензор

Многомерный массив числовых данных — базовая структура данных в PyTorch и других ML-фреймворках.

Что такое тензор

Тензор (tensor) — обобщение скаляров, векторов и матриц на произвольное число измерений (dimensions). В PyTorch тензор — это многомерный массив, который может храниться на CPU или GPU и поддерживает дифференцируемые операции для backpropagation.

  • Скаляр: 0-мерный тензор torch.tensor(3.14)
  • Вектор: 1-мерный тензор torch.tensor([1, 2, 3])
  • Матрица: 2-мерный тензор torch.randn(768, 768)
  • Батч эмбеддингов: 3-мерный тензор torch.randn(batch, seq_len, d_model)

Shape (форма) тензора

Shape — кортеж, описывающий размерности тензора:

import torch

x = torch.randn(8, 512, 4096)  # batch=8, seq_len=512, d_model=4096
x.shape    # torch.Size([8, 512, 4096])
x.dtype    # torch.float32
x.device   # device(type='cpu') или device(type='cuda', index=0)

# Перенести на GPU
x = x.to("cuda")

# Операции
y = x @ x.transpose(-1, -2)  # (8, 512, 512) — матричное умножение

Типы данных тензоров

Dtype Байт Использование
float32 (FP32) 4 Обучение full precision
bfloat16 (BF16) 2 Обучение mixed precision, LLM inference
float16 (FP16) 2 Inference, изображения
int8 1 Квантизированный inference
int4 0.5 Квантизированный inference (GPTQ, AWQ)

Tensor parallelism

При работе с очень большими моделями тензоры (матрицы весов) разбиваются между несколькими GPU — это tensor parallelism. Позволяет запускать модели, не помещающиеся на одну GPU.

Связанные термины

  • shape — размерности тензора
  • mixed precision — работа с разными dtype тензоров
  • VRAM — где хранятся тензоры на GPU
  • tensor parallelism — разбивка тензоров по GPU

Готовы запустить GPU-задачу?

Запустить GPU-сервер