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-сервер