Если вы когда-либо заглядывали «под капот» кода для обучения нейросетей, вы наверняка видели этот магический переход: сначала мы кодируем текст в обычный список чисел, а затем немедленно оборачиваем его в torch.tensor. На экране результаты выглядят почти одинаково: Визуально разница невелика, но в мире Information Technology между ними пролегает пропасть. Давайте разберемся, почему этот переход — критический этап в разработке любой LLM. Когда вы используете encode(text[:10]), вы получаете стандартный Python List. С точки зрения структуры данных — это массив указателей. Как это хранится: В памяти это выглядит как разбросанные «коробки» с объектами-числами. Список хранит не сами числа, а адреса (ссылки), где эти числа лежат. Проблема: Чтобы сложить два таких списка, процессору нужно постоянно «прыгать» по разным адресам памяти. Это огромный оверхед. Для простых задач это незаметно, но для модели с миллиардами параметров — это фатально медленно. Итог: Это данные для человека и общей логик
Список Python vs Тензор PyTorch: Почему [80, 1...] — это не то же самое, что tensor([80, 1...])
23 апреля23 апр
2
2 мин