🖥 Детекция 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