SparseML осигурява скорости на извеждане на GPU на CPU. Това означава значително спестяване на разходи, ефективност и повече опции, когато става въпрос за разгръщане. С Lightning Flash всичко, което е необходимо, е един ред код, за да активирате SparseMLобучението, като същевременно използвате страхотни функции, които Lightning предоставя, като обратни извиквания, регистриране, смесена точност и разпределено обучение с поддръжка за Advanced Distributed Плъгини.

По-долу описваме как можете да използвате Lightning Flash + SparseML, за да обучите ResNet50 с Flash Text Classification Task и да видите впечатляващо ускоряване на изводите!

В съответствие с целта на PyTorch Lightning да се отърве от шаблона, Flash има за цел да улесни обучението, изводите и фината настройка на моделите за дълбоко обучение.

Flash е изграден върху PyTorch Lightning, за да абстрахира ненужния шаблон за обичайните задачи за дълбоко обучение.

Тъй като Flash е изграден върху PyTorch Lightning, докато научавате повече, можете безпроблемно да замените своя код на задача както с Lightning, така и с PyTorch, за да намерите правилното ниво на абстракция за вашия сценарий.

Обучете класификацията на светкавични изображения със SparseML

Можем да въведем рядкост по време на фина настройка със SparseML, което в крайна сметка ни позволява да използваме двигателя „DeepSparse“, за да видим подобрения в производителността по време на извод.

Това се свежда до 3 стъпки:

  • Изберете рецепта за SparseML
  • Обучете класификацията на светкавичното изображение със SparseML рецепта
  • Стартирайте с помощта на DeepSparse

Първо, нека инсталираме и импортираме библиотеките, които ще използваме!

Стъпка 1: Изберете рецепта за SparseML

SparseML предоставя конфигурации за активиране на обучение за познаване на Sparse. Това включва методи като „постоянно отрязване“, „постепенно отрязване“ и „конфигурации за квантуване“. В повечето случаи постепенното подрязване по време на обучение е най-простият метод, като същевременно осигурява най-добра производителност. Вижте Публикацията в блога на NeuralMagic за повече информация.

Рецептата се свежда до YAML файл и може да бъде създадена ръчно, следвайки тяхната документация за „рецепта“. Вместо това, ние избираме визуален подход, използвайки потребителския интерфейс Sparsify за автоматично извеждане на конфигурация въз основа на нашия базов модел ResNet50. Това прави процеса на конфигуриране много по-гладък и ни дава оценка на ползите от производителността.

Първо експортираме ONNX модел, изискван от Sparsify за извеждане на конфигурация.

След това импортираме файла ONNX в таблото за управление на Sparsify UI!

Веднъж импортирани, можем да започнем процеса на оптимизация, предоставяйки допълнителни подробности за това как бихме искали да настроим фино нашия модел. Това ни дава конфигурация, която можем да експортираме като YAML файл.

Стъпка 2: Обучете класификацията на светкавичното изображение със SparseML рецепта

След като имате SparseML Recipe, дефинирайте своя DataModule, Task и Flash Trainer. Предайте SparseMLCallback на Trainer и Lightning ще се погрижи за останалото!

Веднъж обучени, можем да експортираме модела във формат ONNX, използвайки обратното извикване. Това е необходимо за използване на двигателя DeepSparse.

Имайте предвид, че е важно да поддържате разумна точност, когато въвеждате рядкост. Lightning Flash автоматично записва показатели за проследяване на сериите, което ви позволява много лесно да сравнявате с базов модел.

Стъпка 3: DeepSparse

За да се възползваме от въведената рядкост, ние използваме двигателя DeepSparse. Изпълнението на изводи с DeepSparse е просто; компилирайте модела и предайте вашите обработени входове чрез функцията за изпълнение.

Можем също да използваме Sparsify за сравнение на модела, сравнявайки DeepSparse двигателя със стандартното време за изпълнение на ONNX.

Следващи стъпки

За повече информация относно SparseML и Lightning Flash се потопете в нашите документи за обратно извикване на SparseML, документи за Flash и документи за SparseML за повече случаи на употреба!

Също така разгледайте функциите за разпределено обучение с ранен достъп в Grid, които ви позволяват да мащабирате своите модели Lightning Flash, без да се притеснявате за инфраструктурата.

Можете да започнете безплатно с grid.ai само с акаунт в GitHub или Google!

Grid.AI ви позволява да мащабирате обучението от вашия лаптоп към облака, без да се налага да променяте нито един ред код. Докато Grid поддържа всички класически рамки за машинно обучение като TensorFlow, Keras, PyTorch и др. Използването на Lightning функции като ранно спиране, интегрирано регистриране, автоматично контролни точки и CLI ви позволява да направите традиционните MLOs зад обучението на модела да изглеждат невидими.

За автора

Шон Нарентир е инженер-изследовател в „Grid AI Labs“ и „PyTorch Lightning“. Шон е работил широко в областта на машинното обучение, за да подобри, обнови и мащабира подходи за задълбочено обучение за гласови анализи и обработка на естествен език, особено във финансовата област. Шон също така поддържа и допринася за различни PyTorch проекти с отворен код, като DeepSpeech, PyTorch, NeMo и други.