📝Основы MLOps: 5 форматов для переноса ML-моделей
Для ML-систем важна переносимость между разными этапами жизненного цикла, от разработки до развертывания в production. Например, Data Scientist пишет код в блокнотах типа Jupyter Notebook или Google Colab. При переносе этого кода в производственную среду его следует преобразовать в легковесный формат обмена, сжатый и сериализованный, который не зависит от языка разработки. Такими форматами являются следующие:
• Pickle – бинарный вариант Python-объекта для сериализации и десериализации его структуры, т.е. преобразования иерархии объектов Python в поток байтов и наоборот;
• ONNX (Open Neural Network Exchange) - формат с открытым исходным кодом для ML-моделей, обеспечивающий общий набор операторов и универсальный формат файла для различных платформ и инструментов. ONNX-формат описывает граф вычислений (ввод, вывод и операции) и является автономным. Он ориентирован на глубокое обучение, поддерживается Microsoft и Facebook, отлично работает с TensorFlow и PyTorch.
• PMML (Predictive Model Markup Language) — формат обмена предиктивными моделями на основе XML, позволяющий разработать модель в одной системе для одного приложения и развернуть ее в другой с помощью другого приложения, передав конфигурационный XML-файл.
• PFA (Portable Format for Analytics) – стандарт для статистических моделей и механизмов преобразования данных, который отличается легкостью переносимости между различными системами и моделями. Функции предварительной и последующей обработки могут быть объединены в цепочку и встроены в сложные рабочие процессы. PFA может быть простым преобразованием необработанных данных или сложным набором параллельных моделей интеллектуального анализа данных с файлом конфигурации JSON или YAML.
• NNEF (Neural Network Exchange Format) – формат, который облегчает процесс развертывания машинного обучения, позволяя использовать набор инструментов обучения нейросетей для приложений на различных устройствах и платформах.
Также есть форматы, специфичные для отдельных фреймворков, например, POJO/MOJO для AutoML-платформы H2O и Spark MLWritable для Apache Spark.
Post #226
804
- 👍 5