Привет! Небольшая сводка изменений за последние 3 недели. Вышло 3 фичи, которые делают ...
Привет! Небольшая сводка изменений за последние 3 недели. Вышло 3 фичи, которые делают работу с библиотекой удобнее. Вот что теперь может сделать Python-разработчик: 🖥 Детекция GPU через Vulkan Теперь можно программно узнать, какой GPU доступен на машине: import adept if adept.vulkan.is_available(): print(f"GPU: {adept.vulkan.get_device_name(0)}") model = model.gpu() Зачем: • Запускать инференс на GPU с автоматическим fallback на CPU • Логировать модель видеокарты для телеметрии и дебага • Строить device selection UI, как в других ML-фреймворках 🔍 Фильтрация параметров модели по имени Два новых метода в классе Module: # подстрока for name, p in model.named_parameters("weight"): ... # Регулярное выражение for name, p in model.named_parameters_regex(".*layer[23].*bias"): ... Зачем: • Selective fine-tuning — заморозить одни слои, разморозить другие • Группы параметров в оптимизаторе — разный learning rate для весов и смещений • Weight decay только для weight-тензоров — исключить bias и batch-norm running stats • Быстрая инспекция модели — не нужно руками обходить все child-модули ⚡ Оптимизация autograd Теперь при выключенном авто-дифференцировании (no_grad) не создаются лишние объекты для хранения градиентов. Это затронуло все основные слои: Linear, Conv2d, BatchNorm2d, MaxPool2d, AvgPool2d, активации и loss-функции. Зачем: • Меньше расход памяти — no-grad mode больше не аллоцирует ненужные autograd-ноды • Быстрее инференс — нет накладных расходов на создание и удаление временных объектов • Predictable performance — поведение no_grad ближе к «bare metal», как и ожидается #gpu #autograd #changelog #python #inference #optimization