<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3.dtd">
<article article-type="research-article" dtd-version="1.3" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="ru"><front><journal-meta><journal-id journal-id-type="publisher-id">ellibs</journal-id><journal-title-group><journal-title xml:lang="ru">Электронные библиотеки</journal-title><trans-title-group xml:lang="en"><trans-title>Russian Digital Libraries Journal</trans-title></trans-title-group></journal-title-group><issn pub-type="epub">1562-5419</issn><publisher><publisher-name>Казанский (Приволжский) федеральный университет</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.26907/1562-5419-2022-25-2-177-196</article-id><article-id custom-type="elpub" pub-id-type="custom">ellibs-327</article-id><article-categories><subj-group subj-group-type="heading"><subject>Research Article</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="ru"><subject>Статьи</subject></subj-group></article-categories><title-group><article-title>Анализ и разработка конвейера MLOps для развертывания моделей машинного обучения</article-title><trans-title-group xml:lang="en"><trans-title>Analysis and Development of the MLOps Pipeline for ML Model Deployment</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author" corresp="yes"><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Ямиков</surname><given-names>Р. Р.</given-names></name><name name-style="western" xml:lang="en"><surname>Yamikov</surname><given-names>R. R.</given-names></name></name-alternatives><email xlink:type="simple">jamrustem@yandex.ru</email><xref ref-type="aff" rid="aff-1"/></contrib><contrib contrib-type="author" corresp="yes"><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Григорян</surname><given-names>К. А.</given-names></name><name name-style="western" xml:lang="en"><surname>Grigorian</surname><given-names>K. A.</given-names></name></name-alternatives><email xlink:type="simple">karigri@yandex.ru</email><xref ref-type="aff" rid="aff-1"/></contrib></contrib-group><aff-alternatives id="aff-1"><aff xml:lang="ru"><institution>Казанский (Приволжский) Федеральный университет</institution></aff><aff xml:lang="en"><institution>Kazan (Volga region) Federal University</institution></aff></aff-alternatives><pub-date pub-type="collection"><year>2022</year></pub-date><pub-date pub-type="epub"><day>28</day><month>04</month><year>2022</year></pub-date><volume>25</volume><issue>2</issue><fpage>177</fpage><lpage>196</lpage><permissions><copyright-statement>Copyright &amp;#x00A9; Ямиков Р.Р., Григорян К.А., 2022</copyright-statement><copyright-year>2022</copyright-year><copyright-holder xml:lang="ru">Ямиков Р.Р., Григорян К.А.</copyright-holder><copyright-holder xml:lang="en">Yamikov R.R., Grigorian K.A.</copyright-holder><license xml:lang="ru" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>Данная работа распространяется под лицензией Creative Commons Attribution 4.0.</license-p></license><license xml:lang="en" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>This work is licensed under a Creative Commons Attribution 4.0 License.</license-p></license></permissions><self-uri xlink:href="https://ellibs.elpub.ru/jour/article/view/327">https://ellibs.elpub.ru/jour/article/view/327</self-uri><abstract><p>Рост числа IT-продуктов с внедренными элементами машинного обучения (Machine Learning – ML) обуславливает повышение актуальности автоматизации процессов машинного обучения. Использование методов MLOps направлено на обеспечение обучения и эффективного развертывания приложений с производственной среде, автоматизируя решение побочных инфраструктурных вопросов слабо связанных с непосредственно разработкой модели.
&#13;

Мы рассматриваем компоненты, принципы и подходы MLOps и анализируем существующие платформы и решения для построения конвейеров машинного обучения. Кроме того, предлагаем подход к построению конвейера машинного обучения на основе основных инструментов DevOps и библиотек с открытым исходным кодом.
</p></abstract><trans-abstract xml:lang="en"><p>The growth in the number of IT products with machine-learning features is increasing the relevance of automating machine-learning processes. The use of MLOps techniques is aimed at providing training and efficient deployment of applications in a production environment by automating side infrastructure issues that are not directly related to model development.
&#13;

In this paper, we review the components, principles, and approaches of MLOps and analyze existing platforms and solutions for building machine learning pipelines. In addition, we propose an approach to build a machine learning pipeline based on basic DevOps tools and open-source libraries.
</p></trans-abstract><kwd-group xml:lang="ru"><kwd>конвейер машинного обучения</kwd></kwd-group><kwd-group xml:lang="en"><kwd>MLOps</kwd><kwd>DevOps</kwd><kwd>CI/CD</kwd><kwd>CT</kwd><kwd>ML</kwd></kwd-group></article-meta></front><back><ref-list><title>References</title><ref id="cit1"><label>1</label><citation-alternatives><mixed-citation xml:lang="ru">Makinen S., Skogstrom H., Laaksonen E., Mikkonen T. Who Needs MLOps: What Data Scientists Seek to Accomplish and How Can MLOps Help? // Software Engineering for AI (WAIN) of 43rd International Conference on Software Engineering (ICSE). 2021.</mixed-citation><mixed-citation xml:lang="en">Makinen S., Skogstrom H., Laaksonen E., Mikkonen T. Who Needs MLOps: What Data Scientists Seek to Accomplish and How Can MLOps Help? // Software Engineering for AI (WAIN) of 43rd International Conference on Software Engineering (ICSE). 2021.</mixed-citation></citation-alternatives></ref><ref id="cit2"><label>2</label><citation-alternatives><mixed-citation xml:lang="ru">Van der Meulen R., McCall T. Gartner Says Nearly Half of CIOs Are Planning to Deploy Artificial Intelligence // Gartner. 2018. URL: https://www.gartner.com/en/newsroom/press-releases/2018-02-13-gartner-says-nearly-half-of-cios-are-planning-to-deploy-artificial-intelligence (дата обращения: 01.06.2022).</mixed-citation><mixed-citation xml:lang="en">Van der Meulen R., McCall T. Gartner Says Nearly Half of CIOs Are Planning to Deploy Artificial Intelligence // Gartner. 2018. URL: https://www.gartner.com/en/newsroom/press-releases/2018-02-13-gartner-says-nearly-half-of-cios-are-planning-to-deploy-artificial-intelligence (дата обращения: 01.06.2022).</mixed-citation></citation-alternatives></ref><ref id="cit3"><label>3</label><citation-alternatives><mixed-citation xml:lang="ru">Posoldova A. Machine Learning Pipelines: From Research to Production // IEEE Potentials. 2020. Vol. 39, No. 6. P. 38–42. https://doi.org/10.1109/MPOT.2020.3016280</mixed-citation><mixed-citation xml:lang="en">Posoldova A. Machine Learning Pipelines: From Research to Production // IEEE Potentials. 2020. Vol. 39, No. 6. P. 38–42. https://doi.org/10.1109/MPOT.2020.3016280</mixed-citation></citation-alternatives></ref><ref id="cit4"><label>4</label><citation-alternatives><mixed-citation xml:lang="ru">Alla S., Adari S.K. What is mlops? // In: Beginning MLOps with MLFlow. Berkeley: Apress, 2021. P. 79–124.</mixed-citation><mixed-citation xml:lang="en">Alla S., Adari S.K. What is mlops? // In: Beginning MLOps with MLFlow. Berkeley: Apress, 2021. P. 79–124.</mixed-citation></citation-alternatives></ref><ref id="cit5"><label>5</label><citation-alternatives><mixed-citation xml:lang="ru">Gift N., Deza A. Practical MLOps. O'Reilly Media, Inc., 2021.</mixed-citation><mixed-citation xml:lang="en">Gift N., Deza A. Practical MLOps. O'Reilly Media, Inc., 2021.</mixed-citation></citation-alternatives></ref><ref id="cit6"><label>6</label><citation-alternatives><mixed-citation xml:lang="ru">Symeonidis G., Nerantzis E., Kazakis A., Papakostas G.A. MLOps – Definitions, Tools and Challenges // IEEE Annual Computing and Communication Workshop and Conference (CCWC). Las Vegas. 2022. Vol. 12. P. 453–460. https://doi.org/10.48550/arXiv.2201.00162</mixed-citation><mixed-citation xml:lang="en">Symeonidis G., Nerantzis E., Kazakis A., Papakostas G.A. MLOps – Definitions, Tools and Challenges // IEEE Annual Computing and Communication Workshop and Conference (CCWC). Las Vegas. 2022. Vol. 12. P. 453–460. https://doi.org/10.48550/arXiv.2201.00162</mixed-citation></citation-alternatives></ref><ref id="cit7"><label>7</label><citation-alternatives><mixed-citation xml:lang="ru">Chen L. Continuous Delivery: Huge Benefits, but Challenges Too // IEEE Software. 2015. Vol. 32. P. 50–54. https://doi.org/10.1109/MS.2015.27</mixed-citation><mixed-citation xml:lang="en">Chen L. Continuous Delivery: Huge Benefits, but Challenges Too // IEEE Software. 2015. Vol. 32. P. 50–54. https://doi.org/10.1109/MS.2015.27</mixed-citation></citation-alternatives></ref><ref id="cit8"><label>8</label><citation-alternatives><mixed-citation xml:lang="ru">John M., Olsson H., Bosch J. Towards MLOps: A Framework and Maturity Model // Euromicro Conference on Software Engineering and Advanced Applications (SEAA). Palermo. 2021. Vol. 47. P. 1–8. https://doi.org/10.1109/SEAA53835.2021.00050</mixed-citation><mixed-citation xml:lang="en">John M., Olsson H., Bosch J. Towards MLOps: A Framework and Maturity Model // Euromicro Conference on Software Engineering and Advanced Applications (SEAA). Palermo. 2021. Vol. 47. P. 1–8. https://doi.org/10.1109/SEAA53835.2021.00050</mixed-citation></citation-alternatives></ref><ref id="cit9"><label>9</label><citation-alternatives><mixed-citation xml:lang="ru">MLOps: Continuous delivery and automation pipelines in machine learning // Google Cloud. 2021. URL: https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning (дата обращения: 03.07.2021).</mixed-citation><mixed-citation xml:lang="en">MLOps: Continuous delivery and automation pipelines in machine learning // Google Cloud. 2021. URL: https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning (дата обращения: 03.07.2021).</mixed-citation></citation-alternatives></ref><ref id="cit10"><label>10</label><citation-alternatives><mixed-citation xml:lang="ru">Machine Learning operations maturity model // Microsoft. URL: https://docs.microsoft.com/en-us/azure/architecture/example-scenario/mlops/ mlops-maturity-model, last accessed 2022/05/30.</mixed-citation><mixed-citation xml:lang="en">Machine Learning operations maturity model // Microsoft. URL: https://docs.microsoft.com/en-us/azure/architecture/example-scenario/mlops/ mlops-maturity-model, last accessed 2022/05/30.</mixed-citation></citation-alternatives></ref><ref id="cit11"><label>11</label><citation-alternatives><mixed-citation xml:lang="ru">Kreuzberger D., Kühl N., Hirschl S. Machine Learning Operations (MLOps): Overview, Definition, and Architecture // arXiv preprint arXiv:2205.02302. 2022. https://doi.org/10.48550/arXiv.2205.02302</mixed-citation><mixed-citation xml:lang="en">Kreuzberger D., Kühl N., Hirschl S. Machine Learning Operations (MLOps): Overview, Definition, and Architecture // arXiv preprint arXiv:2205.02302. 2022. https://doi.org/10.48550/arXiv.2205.02302</mixed-citation></citation-alternatives></ref><ref id="cit12"><label>12</label><citation-alternatives><mixed-citation xml:lang="ru">MLOps Principles // MLOps. URL: https://ml-ops.org/content/mlops-principles (дата обращения: 03.07.2021).</mixed-citation><mixed-citation xml:lang="en">MLOps Principles // MLOps. URL: https://ml-ops.org/content/mlops-principles (дата обращения: 03.07.2021).</mixed-citation></citation-alternatives></ref><ref id="cit13"><label>13</label><citation-alternatives><mixed-citation xml:lang="ru">Yandex DataSphere // Yandex Cloud. URL: https://cloud.yandex.ru/services/datasphere, (дата обращения: 05.03.2022).</mixed-citation><mixed-citation xml:lang="en">Yandex DataSphere // Yandex Cloud. URL: https://cloud.yandex.ru/services/datasphere, (дата обращения: 05.03.2022).</mixed-citation></citation-alternatives></ref><ref id="cit14"><label>14</label><citation-alternatives><mixed-citation xml:lang="ru">Проект // Yandex datasphere документация. URL: https://cloud.yandex.ru/docs/datasphere/concepts/project, (дата обращения: 05.03.2022).</mixed-citation><mixed-citation xml:lang="en">Проект // Yandex datasphere документация. URL: https://cloud.yandex.ru/docs/datasphere/concepts/project, (дата обращения: 05.03.2022).</mixed-citation></citation-alternatives></ref><ref id="cit15"><label>15</label><citation-alternatives><mixed-citation xml:lang="ru">Развертывание эксплуатации моделей // Yandex datasphere документация. URL: https://cloud.yandex.ru/docs/datasphere/concepts/deploy, (дата обращения: 05.03.2022).</mixed-citation><mixed-citation xml:lang="en">Развертывание эксплуатации моделей // Yandex datasphere документация. URL: https://cloud.yandex.ru/docs/datasphere/concepts/deploy, (дата обращения: 05.03.2022).</mixed-citation></citation-alternatives></ref><ref id="cit16"><label>16</label><citation-alternatives><mixed-citation xml:lang="ru">MLFlow. URL: https://mlflow.org (дата обращения: 28.12.2021).</mixed-citation><mixed-citation xml:lang="en">MLFlow. URL: https://mlflow.org (дата обращения: 28.12.2021).</mixed-citation></citation-alternatives></ref><ref id="cit17"><label>17</label><citation-alternatives><mixed-citation xml:lang="ru">MLflow Tracking // MLflow. URL: https://mlflow.org/docs/latest/tracking.html (дата обращения: 28.12.2021).</mixed-citation><mixed-citation xml:lang="en">MLflow Tracking // MLflow. URL: https://mlflow.org/docs/latest/tracking.html (дата обращения: 28.12.2021).</mixed-citation></citation-alternatives></ref><ref id="cit18"><label>18</label><citation-alternatives><mixed-citation xml:lang="ru">MLflow Projects // MLflow. URL: https://mlflow.org/docs/latest/projects.html, (дата обращения: 28.12.2021).</mixed-citation><mixed-citation xml:lang="en">MLflow Projects // MLflow. URL: https://mlflow.org/docs/latest/projects.html, (дата обращения: 28.12.2021).</mixed-citation></citation-alternatives></ref><ref id="cit19"><label>19</label><citation-alternatives><mixed-citation xml:lang="ru">MLflow Models // MLflow. URL: https://mlflow.org/docs/latest/models.html (дата обращения: 28.12.2021).</mixed-citation><mixed-citation xml:lang="en">MLflow Models // MLflow. URL: https://mlflow.org/docs/latest/models.html (дата обращения: 28.12.2021).</mixed-citation></citation-alternatives></ref><ref id="cit20"><label>20</label><citation-alternatives><mixed-citation xml:lang="ru">MLflow Model Registry // MLflow. URL: https://mlflow.org/docs/latest/model-registry.html (дата обращения: 28.12.2021).</mixed-citation><mixed-citation xml:lang="en">MLflow Model Registry // MLflow. URL: https://mlflow.org/docs/latest/model-registry.html (дата обращения: 28.12.2021).</mixed-citation></citation-alternatives></ref><ref id="cit21"><label>21</label><citation-alternatives><mixed-citation xml:lang="ru">Khandelwal N. MLflow Alternatives for Data Version Control: DVC vs. MLflow // Censious. URL: https://censius.ai/blogs/dvc-vs-mlflow (дата обращения: 30.05.2022).</mixed-citation><mixed-citation xml:lang="en">Khandelwal N. MLflow Alternatives for Data Version Control: DVC vs. MLflow // Censious. URL: https://censius.ai/blogs/dvc-vs-mlflow (дата обращения: 30.05.2022).</mixed-citation></citation-alternatives></ref><ref id="cit22"><label>22</label><citation-alternatives><mixed-citation xml:lang="ru">Hewage N., Meedeniya D. Machine Learning Operations: A Survey on MLOps Tool Support // arXiv preprint arXiv:2202.10169. 2022. https://doi.org/10.48550/arXiv.2202.10169</mixed-citation><mixed-citation xml:lang="en">Hewage N., Meedeniya D. Machine Learning Operations: A Survey on MLOps Tool Support // arXiv preprint arXiv:2202.10169. 2022. https://doi.org/10.48550/arXiv.2202.10169</mixed-citation></citation-alternatives></ref><ref id="cit23"><label>23</label><citation-alternatives><mixed-citation xml:lang="ru">Introduction // Kubeflow documentation. URL: https://www.kubeflow.org/docs/started/introduction (дата обращения: 11.03.2022).</mixed-citation><mixed-citation xml:lang="en">Introduction // Kubeflow documentation. URL: https://www.kubeflow.org/docs/started/introduction (дата обращения: 11.03.2022).</mixed-citation></citation-alternatives></ref><ref id="cit24"><label>24</label><citation-alternatives><mixed-citation xml:lang="ru">What is Kubeflow? // Kubeflow. URL: https://www.kubeflow.org (дата обращения: 11.03.2022).</mixed-citation><mixed-citation xml:lang="en">What is Kubeflow? // Kubeflow. URL: https://www.kubeflow.org (дата обращения: 11.03.2022).</mixed-citation></citation-alternatives></ref><ref id="cit25"><label>25</label><citation-alternatives><mixed-citation xml:lang="ru">Architecture // Kubeflow documentation. URL: https://www.kubeflow.org/docs/started/architecture (дата обращения: 11.03.2022).</mixed-citation><mixed-citation xml:lang="en">Architecture // Kubeflow documentation. URL: https://www.kubeflow.org/docs/started/architecture (дата обращения: 11.03.2022).</mixed-citation></citation-alternatives></ref><ref id="cit26"><label>26</label><citation-alternatives><mixed-citation xml:lang="ru">Kaewsanmua K. Best 8 Machine Learning Model Deployment Tools That You Need to Know // Neptune. 2021. URL: https://neptune.ai/blog/best-8-machine-learning-model-deployment-tools (дата обращения: 01.06.2022).</mixed-citation><mixed-citation xml:lang="en">Kaewsanmua K. Best 8 Machine Learning Model Deployment Tools That You Need to Know // Neptune. 2021. URL: https://neptune.ai/blog/best-8-machine-learning-model-deployment-tools (дата обращения: 01.06.2022).</mixed-citation></citation-alternatives></ref><ref id="cit27"><label>27</label><citation-alternatives><mixed-citation xml:lang="ru">DVC. URL: https://dvc.org (дата обращения: 27.12.2021).</mixed-citation><mixed-citation xml:lang="en">DVC. URL: https://dvc.org (дата обращения: 27.12.2021).</mixed-citation></citation-alternatives></ref><ref id="cit28"><label>28</label><citation-alternatives><mixed-citation xml:lang="ru">Zhao Y. MLOps: Data versioning with DVC — Part Ⅰ // Medium. 2020. URL: https://yizhenzhao.medium.com/mlops-data-versioning-with-dvc-part-ⅰ-8b3221df8592 (дата обращения: 27.12.2021).</mixed-citation><mixed-citation xml:lang="en">Zhao Y. MLOps: Data versioning with DVC — Part Ⅰ // Medium. 2020. URL: https://yizhenzhao.medium.com/mlops-data-versioning-with-dvc-part-ⅰ-8b3221df8592 (дата обращения: 27.12.2021).</mixed-citation></citation-alternatives></ref><ref id="cit29"><label>29</label><citation-alternatives><mixed-citation xml:lang="ru">Mesquita D. The ultimate guide to building maintainable Machine Learning pipelines using DVC // Towards data science. 2020. URL: https://towardsdatascience.com/the-ultimate-guide-to-building-maintainable-machine-learning-pipelines-using-dvc-a976907b2a1b (дата обращения: 27.12.2021).</mixed-citation><mixed-citation xml:lang="en">Mesquita D. The ultimate guide to building maintainable Machine Learning pipelines using DVC // Towards data science. 2020. URL: https://towardsdatascience.com/the-ultimate-guide-to-building-maintainable-machine-learning-pipelines-using-dvc-a976907b2a1b (дата обращения: 27.12.2021).</mixed-citation></citation-alternatives></ref><ref id="cit30"><label>30</label><citation-alternatives><mixed-citation xml:lang="ru">CML Documentation // CML. URL: https://cml.dev/doc (дата обращения: 27.12.2021).</mixed-citation><mixed-citation xml:lang="en">CML Documentation // CML. URL: https://cml.dev/doc (дата обращения: 27.12.2021).</mixed-citation></citation-alternatives></ref><ref id="cit31"><label>31</label><citation-alternatives><mixed-citation xml:lang="ru">Continuous Integration and Deployment for Machine Learning // DVC. URL: https://dvc.org/doc/use-cases/ci-cd-for-machine-learning (дата обращения: 27.12.2021).</mixed-citation><mixed-citation xml:lang="en">Continuous Integration and Deployment for Machine Learning // DVC. URL: https://dvc.org/doc/use-cases/ci-cd-for-machine-learning (дата обращения: 27.12.2021).</mixed-citation></citation-alternatives></ref><ref id="cit32"><label>32</label><citation-alternatives><mixed-citation xml:lang="ru">Continuous Integration with CML and Github Actions // MLOps Guide. URL: https://mlops-guide.github.io/CICD/cml_testing (дата обращения: 27.12.2021).</mixed-citation><mixed-citation xml:lang="en">Continuous Integration with CML and Github Actions // MLOps Guide. URL: https://mlops-guide.github.io/CICD/cml_testing (дата обращения: 27.12.2021).</mixed-citation></citation-alternatives></ref><ref id="cit33"><label>33</label><citation-alternatives><mixed-citation xml:lang="ru">Kubernetes Documentation // Kubernetes. URL: https://kubernetes.io/docs/hom (дата обращения: 22.05.2022).</mixed-citation><mixed-citation xml:lang="en">Kubernetes Documentation // Kubernetes. URL: https://kubernetes.io/docs/hom (дата обращения: 22.05.2022).</mixed-citation></citation-alternatives></ref><ref id="cit34"><label>34</label><citation-alternatives><mixed-citation xml:lang="ru">What is Prometheus? // Prometheus. URL: https://prometheus.io/docs/introduction/overview</mixed-citation><mixed-citation xml:lang="en">What is Prometheus? // Prometheus. URL: https://prometheus.io/docs/introduction/overview</mixed-citation></citation-alternatives></ref><ref id="cit35"><label>35</label><citation-alternatives><mixed-citation xml:lang="ru">Grafana // Grafana Labs. URL: https://grafana.com/grafana (дата обращения: 22.05.2022).</mixed-citation><mixed-citation xml:lang="en">Grafana // Grafana Labs. URL: https://grafana.com/grafana (дата обращения: 22.05.2022).</mixed-citation></citation-alternatives></ref></ref-list><fn-group><fn fn-type="conflict"><p>The authors declare that there are no conflicts of interest present.</p></fn></fn-group></back></article>
