Словарь ИИ
Что такое тензор
Коротко
Тензор это многомерная таблица чисел, в которой нейросети хранят входные данные, веса и промежуточные результаты; число, вектор и матрица его частные случаи.
Математика ИИ · tensor
Михаил МозгПроверено: 1 минута чтения
Ребенку
Одно число похоже на одну конфету. Ряд чисел похож на конфеты, выложенные в линию. Таблица чисел похожа на коробку, где конфеты лежат рядами. А если поставить несколько таких коробок стопкой, получится большой ящик с этажами. Компьютер хранит числа в таких ящиках разной формы, и называются они тензорами.
Простыми словами
Нейросеть работает с огромным количеством чисел, и их удобно хранить не россыпью, а в аккуратных многомерных таблицах. У такой таблицы есть форма: сколько у нее измерений и какой длины каждое. Цветная фотография, например, это высота, ширина и три цветовых канала, то есть три слоя чисел. Пачка из сотни фотографий добавляет еще одно измерение. Программы для ИИ складывают и перемножают такие таблицы целиком, одной командой, а видеокарта делает это быстро, потому что считает тысячи чисел одновременно.
Для бизнеса
Руководителю это понятие важно через деньги на оборудование. Веса модели хранятся именно в таких массивах, и от их размера и точности чисел зависит, сколько видеопамяти нужно и какой сервер покупать. Если хранить каждое число в 16 битах вместо 32, модель занимает примерно вдвое меньше места; квантизация до 8 бит и ниже сокращает объем еще сильнее, но может снизить качество ответов. Поэтому при выборе своего сервера считают не только число параметров, но и формат чисел, длину контекста и размер пачки запросов. Ошибка в расчете памяти обходится дорого, и ее снимают тестом модели на целевой видеокарте до закупки.
Для специалиста
Тензор (tensor) в глубоком обучении это массив чисел, расположенных на регулярной сетке с переменным числом осей (axes); так его определяют Goodfellow, Bengio и Courville в книге Deep Learning (2016). Число осей называют рангом или порядком (rank, ndim), набор длин по осям формой (shape). Скаляр имеет ноль осей, вектор одну, матрица две. В документации PyTorch объект torch.Tensor описан как многомерная матрица из элементов одного типа данных: по умолчанию float32, также float16, bfloat16, int8 и другие; он размещается в памяти процессора или видеокарты (CUDA). Типичные формы: пакет изображений (N, C, H, W), последовательность эмбеддингов (batch, seq_len, d_model). Поэлементные операции, свертки, матричное умножение и трансляция размерностей (broadcasting) выполняются библиотекой на GPU, а градиенты по таким массивам считает автоматическое дифференцирование. В физике и дифференциальной геометрии понятие строже: это полилинейный объект с правилами преобразования при смене базиса.
Не путать. Не путать с тензором в физике и механике, где так называют величину с особыми правилами пересчета при смене системы координат: в ИИ это многомерный массив чисел.
Пример
Например, партия из 32 цветных фото товаров размером 224 на 224 точки попадает в модель как один тензор формы (32, 3, 224, 224), и модель обрабатывает всю партию за один проход.
Связанные термины
Вопросы и ответы
Чем тензор отличается от матрицы?
Почему библиотеки для ИИ работают с тензорами?
Источники
Где это применяют в компании
Не уверены, нужно ли это вашей компании?
Карта ИИ-решений