{"id":3898,"date":"2022-05-02T15:46:40","date_gmt":"2022-05-02T13:46:40","guid":{"rendered":"https:\/\/dev.littlebigcode.fr\/mlops-why-data-model-experiment-tracking-is-important\/"},"modified":"2022-07-04T23:35:36","modified_gmt":"2022-07-04T21:35:36","slug":"mlops-why-data-model-experiment-tracking-is-important","status":"publish","type":"post","link":"https:\/\/dev.littlebigcode.fr\/en\/mlops-why-data-model-experiment-tracking-is-important\/","title":{"rendered":"MLOps : Why data and model experiment tracking is important ? How tools like DVC and MLflow can solve this challenge ?"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;section&#8221; _builder_version=&#8221;4.16&#8243; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row admin_label=&#8221;row&#8221; _builder_version=&#8221;4.16&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_padding=&#8221;3px||3px||true|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_text admin_label=&#8221;Text&#8221; _builder_version=&#8221;4.17.4&#8243; text_font=&#8221;Average Sans||||||||&#8221; text_text_color=&#8221;#242B57&#8243; link_font=&#8221;Average Sans||||||||&#8221; link_text_color=&#8221;#1CACE4&#8243; ul_font=&#8221;Average Sans||||||||&#8221; ul_text_color=&#8221;#242B57&#8243; ol_text_color=&#8221;#242B57&#8243; quote_font=&#8221;Average Sans||||||||&#8221; quote_text_color=&#8221;#242B57&#8243; header_text_color=&#8221;#1CACE4&#8243; header_2_text_color=&#8221;#1CACE4&#8243; header_3_text_color=&#8221;#1CACE4&#8243; header_4_font=&#8221;Average Sans||||||||&#8221; header_4_text_color=&#8221;#1CACE4&#8243; header_5_font=&#8221;Century Gothic Bold||||||||&#8221; header_5_text_color=&#8221;#1CACE4&#8243; header_6_font=&#8221;Century Gothic Bold||||||||&#8221; header_6_text_color=&#8221;#1CACE4&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_padding=&#8221;8px|||||&#8221; inline_fonts=&#8221;Century Gothic Bold,Century Gothic,Average Sans&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p style=\"text-align: justify;\" data-renderer-start-pos=\"3\">With the rise of interest and the number of machine learning projects (self-driving car, facial recognition, recommendation systems), traditional software development has shifted from hard-coded rules to data-estimated rules a.k.a. data-driven models (cf. figure 1). A set of new challenges arose for building reliable and stable information systems that rely on imperfect data-driven models, such as model versioning, deployment, monitoring, explainability and reproducibility..<\/p>\n<p style=\"text-align: justify;\" data-renderer-start-pos=\"3\">By <a href=\"https:\/\/www.linkedin.com\/in\/samson-zhang-887135115\/\">Samson ZHANG<\/a>, Data Scientist at LittleBigCode<\/p>\n<div id=\"attachment_3673\" style=\"width: 480px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-3673\" class=\"wp-image-3673 \" src=\"https:\/\/dev.littlebigcode.fr\/wp-content\/uploads\/2022\/05\/image-20220128-131620.png\" alt=\"\" width=\"470\" height=\"350\" \/><p id=\"caption-attachment-3673\" class=\"wp-caption-text\">Figure 1. Machine learning vs traditional software development. Source : <span data-inline-card=\"true\" data-card-url=\"http:\/\/datalya.com\"><a href=\"http:\/\/datalya.com\/\">http:\/\/datalya.com<\/a><\/span><\/p><\/div>\n<p style=\"text-align: justify;\" data-renderer-start-pos=\"3\">There is a whole new set of software engineering best practices that comes with the use of data-driven models in order to tackle those challenges, called MLOps. In order to get a broader view of what MLOps is, I recommend you to take a look at Jamila Rejeb\u2019s article: <a href=\"https:\/\/dev.littlebigcode.fr\/why-mlops-important-to-understand\/\">Why MLOps is so important to understand ?<\/a> The main purpose of MLOps is to make your entire ML project lifecycle automated and reproducible. In this article, we will mainly focus on data &amp; model experiment tracking\/versioning. <strong> The main issues data &amp; model experiment tracking aim to solve are : <\/strong><\/p>\n<ul>\n<li>\n<p data-renderer-start-pos=\"1740\">Code reproducibility<\/p>\n<\/li>\n<li>\n<p data-renderer-start-pos=\"1929\">Data set reproducibility<\/p>\n<\/li>\n<li>\n<p data-renderer-start-pos=\"1929\">Artifacts logging (model weights, hyper-parameters)<\/p>\n<\/li>\n<li>\n<p data-renderer-start-pos=\"1929\">Experiments&#8217; results comparison<\/p>\n<\/li>\n<\/ul>\n<p>A data-driven model is, by definition, a model that learns from data (cf. figure 2). It means that talking about model versioning, does not only involve versioning the code\/algorithm (neural networks, trees, etc\u2026) and its different parameters (weights, etc\u2026). It also involves versioning the data used for training the latter, as in practice, the data set can change which impacts the model\u2019s performance. Model versioning makes model reproducible in different environments and makes collaboration easier.<\/p>\n<p>Being able to reproduce your models does not only benefit you. In some instances, it can also prevent you from legal issues where you would need to prove ownership of the models by showing that you can generate your models from end to end.<\/p>\n<div id=\"attachment_3675\" style=\"width: 555px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-3675\" class=\"wp-image-3675 \" src=\"https:\/\/dev.littlebigcode.fr\/wp-content\/uploads\/2022\/05\/image-20220130-151016.png\" alt=\"\" width=\"545\" height=\"338\" \/><p id=\"caption-attachment-3675\" class=\"wp-caption-text\">Figure 2. What is a data-driven model. Source : <span data-inline-card=\"true\" data-card-url=\"http:\/\/dvc.org\"><a href=\"http:\/\/dvc.org\/\">http:\/\/dvc.org<\/a><\/span><\/p><\/div>\n<p>&nbsp;<\/p>\n<h1 data-renderer-start-pos=\"1458\">Why do we even need to track our model experiments ?<\/h1>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\" data-renderer-start-pos=\"3\">Traditional software engineering keeps track of the logic and rules of systems by versioning their code, which is easily doable with tools such as Git. As machine learning projects integrates data-driven models into traditional information systems to replace the hard-coded logic, one could want to version models for the same reasons.<\/p>\n<p>For some businesses, data-driven models have become the core of their systems and are entirely reliant on the performance of those models. The success of the companies may rely on their ability to improve their models in order to scale up.<\/p>\n<p>When data-driven models are this important to the success of a project, they also define the capability and the limits of the system. For complex algorithms \/ models, one may want to explore a new promising path with many experiments in order to improve existing models, but one could also need to roll back if the exploration gives nothing. Even more, one can be interested in reusing a part of an experiment and combining it with other new algorithm features. It can become easy to lose track of your past experiments if not well-managed. These experiments are time-consuming and cost-expensive (complex models such as GANs can take entire weeks to train for a single set of hyper-parameters), so you would want to be able to track your experiments and to reproduce the models from scratch if necessary.<\/p>\n<p>&nbsp;<\/p>\n<h1 data-renderer-start-pos=\"1458\">Is not just tracking the best-performing model enough ?<\/h1>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\" data-renderer-start-pos=\"3\">As any experienced scientist would tell you, the methodology is important and keeping track of the experiments&#8217; parameters and results is fundamental. As a data scientist, you must not only do data exploration and just keep the best model trained. You must and need to keep track of all your model experiments. Knowing what training settings do not yield the best results is as important as keeping the best model that is used in production. Like traditional software engineering, the experiments history helps your team members and you remember what has been done, especially when you have many experiment configurations and try to remember them 6 months later. It tells you what settings you already tried and allows you not to repeat failed\/unpromising experiments, thus, saving time and money.<\/p>\n<h2 data-hook=\"rcv-block15\"><span style=\"color: #242b57; font-size: x-large;\">Desirable features and tools<\/span><\/h2>\n<p style=\"text-align: justify;\" data-renderer-start-pos=\"3\">Experimenting with training machine learning models, I found that running a training loop and saving the final weights is the easiest part when doing model search as long as you do not need to look back at your experiment and your code, which frankly never happens. When looking back at model experiments, what I want to be able to recall is how the models are created and trained, with what data and environment (dependencies, hardware), be able to compare different runs and retrieve the best performing models based on metrics evaluated on a hold-out data set, ideally with an intuitive user interface.<\/p>\n<p>In order to do that, we will use Git, MFlow and DVC.<\/p>\n<p><strong>Summary of features :<\/strong><\/p>\n<table class=\"aligncenter\" style=\"border-style: solid; border-color: #222e73;\" border=\"2\" data-number-column=\"false\">\n<colgroup>\n<col \/>\n<col \/>\n<col \/>\n<col \/>\n<col \/>\n<col \/>\n<col \/>\n<col \/>\n<col \/>\n<col \/>\n<col \/>\n<col \/><\/colgroup>\n<tbody>\n<tr>\n<th class=\"ak-renderer-tableHeader-sortable-column\" style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"204\" aria-sort=\"none\">\n<div class=\"ak-renderer-tableHeader-sortable-column__button\" tabindex=\"0\" role=\"button\" aria-disabled=\"false\" data-dashlane-rid=\"b1f109d0135b656a\">\n<div class=\"fabric-editor-block-mark sc-hMqMXs kdnRTR\" data-align=\"center\">\n<p data-renderer-start-pos=\"5625\"><strong data-renderer-mark=\"true\">Tool<\/strong><\/p>\n<\/div>\n<figure class=\"ak-renderer-tableHeader-sorting-icon ak-renderer-tableHeader-sorting-icon__no-order\" aria-hidden=\"true\">\n<div role=\"presentation\">\n<figure class=\"sc-cSHVUG fawPjw\">\n<div class=\"sorting-icon-svg__no_order table-sorting-icon-inactive sc-kAzzGY cJlpxs\">\u00a0<\/div>\n<\/figure>\n<\/div>\n<\/figure>\n<\/div>\n<\/th>\n<th class=\"ak-renderer-tableHeader-sortable-column\" style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"149\" aria-sort=\"none\">\n<div class=\"ak-renderer-tableHeader-sortable-column__button\" tabindex=\"0\" role=\"button\" aria-disabled=\"false\" data-dashlane-rid=\"49f40ea41531054e\">\n<p data-renderer-start-pos=\"5633\"><strong data-renderer-mark=\"true\">License<\/strong><\/p>\n<figure class=\"ak-renderer-tableHeader-sorting-icon ak-renderer-tableHeader-sorting-icon__no-order\" aria-hidden=\"true\">\n<div role=\"presentation\">\n<figure class=\"sc-cSHVUG fawPjw\">\n<div class=\"sorting-icon-svg__no_order table-sorting-icon-inactive sc-kAzzGY cJlpxs\">\u00a0<\/div>\n<\/figure>\n<\/div>\n<\/figure>\n<\/div>\n<\/th>\n<th class=\"ak-renderer-tableHeader-sortable-column\" style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\" aria-sort=\"none\">\n<div class=\"ak-renderer-tableHeader-sortable-column__button\" tabindex=\"0\" role=\"button\" aria-disabled=\"false\" data-dashlane-rid=\"60cc778648aef0b4\">\n<p data-renderer-start-pos=\"5644\"><strong data-renderer-mark=\"true\">Python API<\/strong><\/p>\n<figure class=\"ak-renderer-tableHeader-sorting-icon ak-renderer-tableHeader-sorting-icon__no-order\" aria-hidden=\"true\">\n<div role=\"presentation\">\n<figure class=\"sc-cSHVUG fawPjw\">\n<div class=\"sorting-icon-svg__no_order table-sorting-icon-inactive sc-kAzzGY cJlpxs\">\u00a0<\/div>\n<\/figure>\n<\/div>\n<\/figure>\n<\/div>\n<\/th>\n<th class=\"ak-renderer-tableHeader-sortable-column\" style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\" aria-sort=\"none\">\n<div class=\"ak-renderer-tableHeader-sortable-column__button\" tabindex=\"0\" role=\"button\" aria-disabled=\"false\" data-dashlane-rid=\"16fc2fee7c715e68\">\n<p data-renderer-start-pos=\"5658\"><strong data-renderer-mark=\"true\">Platform and language agnostic<\/strong><\/p>\n<figure class=\"ak-renderer-tableHeader-sorting-icon ak-renderer-tableHeader-sorting-icon__no-order\" aria-hidden=\"true\">\n<div role=\"presentation\">\n<figure class=\"sc-cSHVUG fawPjw\">\n<div class=\"sorting-icon-svg__no_order table-sorting-icon-inactive sc-kAzzGY cJlpxs\">\u00a0<\/div>\n<\/figure>\n<\/div>\n<\/figure>\n<\/div>\n<\/th>\n<th class=\"ak-renderer-tableHeader-sortable-column\" style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\" aria-sort=\"none\">\n<div class=\"ak-renderer-tableHeader-sortable-column__button\" tabindex=\"0\" role=\"button\" aria-disabled=\"false\" data-dashlane-rid=\"ade79051235424c5\">\n<p data-renderer-start-pos=\"5692\"><strong data-renderer-mark=\"true\">Experiment data access (local, cloud)<\/strong><\/p>\n<figure class=\"ak-renderer-tableHeader-sorting-icon ak-renderer-tableHeader-sorting-icon__no-order\" aria-hidden=\"true\">\n<div role=\"presentation\">\n<figure class=\"sc-cSHVUG fawPjw\">\n<div class=\"sorting-icon-svg__no_order table-sorting-icon-inactive sc-kAzzGY cJlpxs\">\u00a0<\/div>\n<\/figure>\n<\/div>\n<\/figure>\n<\/div>\n<\/th>\n<th class=\"ak-renderer-tableHeader-sortable-column\" style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"102\" aria-sort=\"none\">\n<div class=\"ak-renderer-tableHeader-sortable-column__button\" tabindex=\"0\" role=\"button\" aria-disabled=\"false\" data-dashlane-rid=\"7400711fd01837a3\">\n<p data-renderer-start-pos=\"5733\"><strong data-renderer-mark=\"true\">Cloud storage<\/strong><\/p>\n<figure class=\"ak-renderer-tableHeader-sorting-icon ak-renderer-tableHeader-sorting-icon__no-order\" aria-hidden=\"true\">\n<div role=\"presentation\">\n<figure class=\"sc-cSHVUG fawPjw\">\n<div class=\"sorting-icon-svg__no_order table-sorting-icon-inactive sc-kAzzGY cJlpxs\">\u00a0<\/div>\n<\/figure>\n<\/div>\n<\/figure>\n<\/div>\n<\/th>\n<th class=\"ak-renderer-tableHeader-sortable-column\" style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"139\" aria-sort=\"none\">\n<div class=\"ak-renderer-tableHeader-sortable-column__button\" tabindex=\"0\" role=\"button\" aria-disabled=\"false\" data-dashlane-rid=\"4108f15468808d20\">\n<p data-renderer-start-pos=\"5750\"><strong data-renderer-mark=\"true\">Scalable for large number of experiments<\/strong><\/p>\n<figure class=\"ak-renderer-tableHeader-sorting-icon ak-renderer-tableHeader-sorting-icon__no-order\" aria-hidden=\"true\">\n<div role=\"presentation\">\n<figure class=\"sc-cSHVUG fawPjw\">\n<div class=\"sorting-icon-svg__no_order table-sorting-icon-inactive sc-kAzzGY cJlpxs\">\u00a0<\/div>\n<\/figure>\n<\/div>\n<\/figure>\n<\/div>\n<\/th>\n<th class=\"ak-renderer-tableHeader-sortable-column\" style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\" aria-sort=\"none\">\n<div class=\"ak-renderer-tableHeader-sortable-column__button\" tabindex=\"0\" role=\"button\" aria-disabled=\"false\" data-dashlane-rid=\"8f2c7b0a7039bf47\">\n<p data-renderer-start-pos=\"5794\"><strong data-renderer-mark=\"true\">Code versioning<\/strong><\/p>\n<figure class=\"ak-renderer-tableHeader-sorting-icon ak-renderer-tableHeader-sorting-icon__no-order\" aria-hidden=\"true\">\n<div role=\"presentation\">\n<figure class=\"sc-cSHVUG fawPjw\">\n<div class=\"sorting-icon-svg__no_order table-sorting-icon-inactive sc-kAzzGY cJlpxs\">\u00a0<\/div>\n<\/figure>\n<\/div>\n<\/figure>\n<\/div>\n<\/th>\n<th class=\"ak-renderer-tableHeader-sortable-column\" style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\" aria-sort=\"none\">\n<div class=\"ak-renderer-tableHeader-sortable-column__button\" tabindex=\"0\" role=\"button\" aria-disabled=\"false\" data-dashlane-rid=\"d45efe3b83b2692f\">\n<p data-renderer-start-pos=\"5813\"><strong data-renderer-mark=\"true\">Experiment visualization<\/strong><\/p>\n<figure class=\"ak-renderer-tableHeader-sorting-icon ak-renderer-tableHeader-sorting-icon__no-order\" aria-hidden=\"true\">\n<div role=\"presentation\">\n<figure class=\"sc-cSHVUG fawPjw\">\n<div class=\"sorting-icon-svg__no_order table-sorting-icon-inactive sc-kAzzGY cJlpxs\">\u00a0<\/div>\n<\/figure>\n<\/div>\n<\/figure>\n<\/div>\n<\/th>\n<th class=\"ak-renderer-tableHeader-sortable-column\" style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\" aria-sort=\"none\">\n<div class=\"ak-renderer-tableHeader-sortable-column__button\" tabindex=\"0\" role=\"button\" aria-disabled=\"false\" data-dashlane-rid=\"77b202e99e57090f\">\n<p data-renderer-start-pos=\"5841\"><strong data-renderer-mark=\"true\">Graphical UI<\/strong><\/p>\n<figure class=\"ak-renderer-tableHeader-sorting-icon ak-renderer-tableHeader-sorting-icon__no-order\" aria-hidden=\"true\">\n<div role=\"presentation\">\n<figure class=\"sc-cSHVUG fawPjw\">\n<div class=\"sorting-icon-svg__no_order table-sorting-icon-inactive sc-kAzzGY cJlpxs\">\u00a0<\/div>\n<\/figure>\n<\/div>\n<\/figure>\n<\/div>\n<\/th>\n<th class=\"ak-renderer-tableHeader-sortable-column\" style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\" aria-sort=\"none\">\n<div class=\"ak-renderer-tableHeader-sortable-column__button\" tabindex=\"0\" role=\"button\" aria-disabled=\"false\" data-dashlane-rid=\"d5b09a6c7879ae57\">\n<div class=\"fabric-editor-block-mark sc-hMqMXs kdnRTR\" data-align=\"center\">\n<p data-renderer-start-pos=\"5857\"><strong data-renderer-mark=\"true\">Data-versioning<\/strong><\/p>\n<\/div>\n<figure class=\"ak-renderer-tableHeader-sorting-icon ak-renderer-tableHeader-sorting-icon__no-order\" aria-hidden=\"true\">\n<div role=\"presentation\">\n<figure class=\"sc-cSHVUG fawPjw\">\n<div class=\"sorting-icon-svg__no_order table-sorting-icon-inactive sc-kAzzGY cJlpxs\">\u00a0<\/div>\n<\/figure>\n<\/div>\n<\/figure>\n<\/div>\n<\/th>\n<th class=\"ak-renderer-tableHeader-sortable-column\" style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\" aria-sort=\"none\">\n<div class=\"ak-renderer-tableHeader-sortable-column__button\" tabindex=\"0\" role=\"button\" aria-disabled=\"false\" data-dashlane-rid=\"30a8d5c18fe6554f\">\n<div class=\"fabric-editor-block-mark sc-hMqMXs kdnRTR\" data-align=\"center\">\n<p data-renderer-start-pos=\"5876\"><strong data-renderer-mark=\"true\">Hyper-parameters<\/strong><\/p>\n<\/div>\n<div class=\"fabric-editor-block-mark sc-hMqMXs kdnRTR\" data-align=\"center\">\n<p data-renderer-start-pos=\"5894\"><strong data-renderer-mark=\"true\">tracking<\/strong><\/p>\n<\/div>\n<figure class=\"ak-renderer-tableHeader-sorting-icon ak-renderer-tableHeader-sorting-icon__no-order\" aria-hidden=\"true\">\n<div role=\"presentation\">\n<figure class=\"sc-cSHVUG fawPjw\">\n<div class=\"sorting-icon-svg__no_order table-sorting-icon-inactive sc-kAzzGY cJlpxs\">\u00a0<\/div>\n<\/figure>\n<\/div>\n<\/figure>\n<\/div>\n<\/th>\n<\/tr>\n<tr>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"204\">\n<p data-renderer-start-pos=\"5908\">git<\/p>\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"149\">\n<p data-renderer-start-pos=\"5915\">GNU 2.0<\/p>\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\">\n<p data-renderer-start-pos=\"5926\">X<\/p>\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\">\n<p data-renderer-start-pos=\"5931\">X<\/p>\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\">\n<p data-renderer-start-pos=\"5936\">local<\/p>\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"102\">\n<p data-renderer-start-pos=\"5945\">X<\/p>\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"139\">\n<p data-renderer-start-pos=\"5950\">X<\/p>\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\">\n<p data-renderer-start-pos=\"5955\">X<\/p>\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\">\n<p data-renderer-start-pos=\"5960\">\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\">\n<p data-renderer-start-pos=\"5964\">X<\/p>\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\">\n<p data-renderer-start-pos=\"5969\">\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\">\n<p data-renderer-start-pos=\"5973\">\n<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"204\">\n<p data-renderer-start-pos=\"5979\">mlflow<\/p>\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"149\">\n<p data-renderer-start-pos=\"5989\">Apache 2.0<\/p>\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\">\n<p data-renderer-start-pos=\"6003\">X<\/p>\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\">\n<p data-renderer-start-pos=\"6008\">\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\">\n<p data-renderer-start-pos=\"6012\">local, cloud<\/p>\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"102\">\n<p data-renderer-start-pos=\"6028\">X<\/p>\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"139\">\n<p data-renderer-start-pos=\"6033\">X<\/p>\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\">\n<p data-renderer-start-pos=\"6038\">\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\">\n<p data-renderer-start-pos=\"6042\">X<\/p>\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\">\n<p data-renderer-start-pos=\"6047\">X<\/p>\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\">\n<p data-renderer-start-pos=\"6052\">\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\">\n<p data-renderer-start-pos=\"6056\">X<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"204\">\n<p data-renderer-start-pos=\"6063\">dvc<\/p>\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"149\">\n<p data-renderer-start-pos=\"6070\">Apache 2.0<\/p>\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\">\n<p data-renderer-start-pos=\"6084\">X<\/p>\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\">\n<p data-renderer-start-pos=\"6089\">X<\/p>\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\">\n<p data-renderer-start-pos=\"6094\">local<\/p>\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"102\">\n<p data-renderer-start-pos=\"6103\">X<\/p>\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"139\">\n<p data-renderer-start-pos=\"6108\">X<\/p>\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\">\n<p data-renderer-start-pos=\"6113\">\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\">\n<p data-renderer-start-pos=\"6117\">\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\">\n<p data-renderer-start-pos=\"6121\">\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\">\n<p data-renderer-start-pos=\"6125\">X<\/p>\n<\/td>\n<td style=\"width: 160px;\" colspan=\"1\" rowspan=\"1\" data-colwidth=\"120\">\n<p data-renderer-start-pos=\"6130\">\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\" data-renderer-start-pos=\"3\">All three tools are free, open-source and complement each other in order to provide a complete model experiment tracking experience.<\/p>\n<p data-renderer-start-pos=\"6273\"><span id=\"60419152-9433-458d-a2d2-ea338f23f482\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"60419152-9433-458d-a2d2-ea338f23f482\">Many<\/span> tools exist for model experiment tracking but we will explore two of them, free and open-source, that are complementing Git versioning tool well:<\/p>\n<ul class=\"ak-ul\" data-indent-level=\"1\">\n<li>\n<p data-renderer-start-pos=\"6428\">MLflow <span data-inline-card=\"true\" data-card-url=\"https:\/\/github.com\/mlflow\/mlflow\"><span class=\"loader-wrapper\"><a class=\"css-10ro32l eeajecn0\" tabindex=\"0\" role=\"button\" href=\"https:\/\/github.com\/mlflow\/mlflow\" data-testid=\"inline-card-resolved-view\"><span class=\"css-1t1jl45 e158gagu2\"><span class=\"smart-link-title-wrapper css-0 e158gagu8\">GitHub &#8211; mlflow\/mlflow: Open source platform for the machine learning lifecycle<\/span><\/span><\/a><\/span><\/span>\u00a0for experiments tracking (code version, hyper-parameters, metrics, plots). It has a REST API and good graphical UI.<\/p>\n<\/li>\n<li>\n<p data-renderer-start-pos=\"6557\">Data Version Control (DVC) <span data-inline-card=\"true\" data-card-url=\"https:\/\/github.com\/iterative\/dvc\"><span class=\"loader-wrapper\"><a class=\"css-10ro32l eeajecn0\" tabindex=\"0\" role=\"button\" href=\"https:\/\/github.com\/iterative\/dvc\" data-testid=\"inline-card-resolved-view\"><span class=\"css-1t1jl45 e158gagu2\"><span class=\"smart-link-title-wrapper css-0 e158gagu8\">GitHub &#8211; iterative\/dvc: \ud83e\udd89Data Version Control | Git for Data &amp; Models | ML Experiments Management<\/span><\/span><\/a><\/span><\/span>\u00a0for data set versioning. The \u201cGit for data\u201d. It is particularly suited for data sets with a large number of files such as image data sets.<\/p>\n<\/li>\n<\/ul>\n<p data-renderer-start-pos=\"6729\">The other MLOps subjects will be addressed in future articles.<\/p>\n<p data-renderer-start-pos=\"6793\">We choose MLflow and DVC because when it comes to open-source experiment tracking, MLFlow and DVC are among the most popular tools with respectively <span id=\"5293c8d9-9c05-4846-9f2c-6a1e64958dd5\" class=\"inline-highlight\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"5293c8d9-9c05-4846-9f2c-6a1e64958dd5\">167M downloads\/11.2k stars\/360+ contributors and 9.2k stars\/240+ contributors.<\/span> They have been adopted by many teams working in both big and small companies and their communities are huge. It provides a sense of security that Mlflow and DVC will continue to develop and be used for many years to come.<\/p>\n<div id=\"attachment_3682\" style=\"width: 572px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-3682\" class=\"wp-image-3682 \" src=\"https:\/\/dev.littlebigcode.fr\/wp-content\/uploads\/2022\/05\/image-20220208-135524.png\" alt=\"\" width=\"562\" height=\"572\" srcset=\"https:\/\/dev.littlebigcode.fr\/wp-content\/uploads\/2022\/05\/image-20220208-135524.png 562w, https:\/\/dev.littlebigcode.fr\/wp-content\/uploads\/2022\/05\/image-20220208-135524-480x488.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 562px, 100vw\" \/><p id=\"caption-attachment-3682\" class=\"wp-caption-text\">Figure 3. Mlflow experiments and DVC data sets are all linked to Git commits<\/p><\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\" data-renderer-start-pos=\"3\"><span id=\"d6baf0a8-b897-4884-ba46-7f1b2f26dd01\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"d6baf0a8-b897-4884-ba46-7f1b2f26dd01\">Mlflow<\/span> and DVC provide you a complete model experiment tracking experience.<br \/><span id=\"df7f658c-3c38-44ff-acf8-b6ab8cfa259a\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"df7f658c-3c38-44ff-acf8-b6ab8cfa259a\">They help you :<\/span><\/p>\n<ol>\n<li data-renderer-start-pos=\"6897\">Centralize your data<\/li>\n<li data-renderer-start-pos=\"6897\">Reduce your data storage cost by not duplicating sata<\/li>\n<li data-renderer-start-pos=\"6897\">Share your experiments with your collaborators<\/li>\n<\/ol>\n<p><strong data-renderer-mark=\"true\">All you need to look at are git commits<\/strong>. From any of your git commit hash, you can find <strong data-renderer-mark=\"true\">all<\/strong> the information concerning your model experiment :<\/p>\n<ol>\n<li data-renderer-start-pos=\"6897\"><strong data-renderer-mark=\"true\">The data set used tracked by *.dvc files in your commit<\/strong><\/li>\n<li data-renderer-start-pos=\"6897\"><strong data-renderer-mark=\"true\">The training parameters, metrics, model weights logged by Mlflow (Mlflow also logs the commit hash for reverse search)<\/strong><\/li>\n<\/ol>\n<p>We can use the Mlflow tag \u201ctags.mlflow.source.git.commit\u201d to search the corresponding experiment (through mlflow ui or any other mlflow API) (cf. figure 4)<\/p>\n<div id=\"attachment_3684\" style=\"width: 1197px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-3684\" class=\"wp-image-3684 size-full\" src=\"https:\/\/dev.littlebigcode.fr\/wp-content\/uploads\/2022\/05\/image-20220208-160514.png\" alt=\"\" width=\"1187\" height=\"235\" srcset=\"https:\/\/dev.littlebigcode.fr\/wp-content\/uploads\/2022\/05\/image-20220208-160514.png 1187w, https:\/\/dev.littlebigcode.fr\/wp-content\/uploads\/2022\/05\/image-20220208-160514-980x194.png 980w, https:\/\/dev.littlebigcode.fr\/wp-content\/uploads\/2022\/05\/image-20220208-160514-480x95.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1187px, 100vw\" \/><p id=\"caption-attachment-3684\" class=\"wp-caption-text\">Figure 4. Experiment run search by git commit hash in Mlfow UI<\/p><\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\" data-renderer-start-pos=\"3\">Usually we would want to look at the data set and model used that produced a certain result logged by Mlflow. In this case, the git commit hash can be found in the experiment run\u2019s tags. From this you can just checkout your git repository and DVC-tracked data sets.<\/p>\n<p><script src=\"https:\/\/gist.github.com\/zhangsamson\/8a911e1c50e5cc2ca1dcd95c60aecd10.js\"><\/script><\/p>\n<h2 data-hook=\"rcv-block15\"><span style=\"color: #242b57; font-size: x-large;\">Conclusion<\/span><\/h2>\n<p style=\"text-align: justify;\" data-renderer-start-pos=\"3\">Training data-driven models can be expensive (time and money). Automatically versioning your data sets and model experiments helps you :<\/p>\n<p>\u2022 Centralize your experiments<br \/>\u2022 Share your experiments&#8217; results<br \/>\u2022 Reproduce your models<br \/>\u2022 Avoid repeating failed experiments<\/p>\n<p>In this article, you got an explanation of the purpose of model and data tracking for machine learning projects and a brief overview of how some tools like DVC (for data set tracking) and Mlflow (training experiment tracking) can help solve this challenge.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>This article belongs to a series of articles about MLOps tools and practices for data and model experiment tracking. Four articles are published : <\/strong><\/p>\n<p>PART 1 (this article) : Introduction to data &amp;; model experiment tracking<\/p>\n<p>PART 2 (<a href=\"https:\/\/dev.littlebigcode.fr\/how-dvc-manages-data-sets-training-ml-models-git\/\">click here<\/a>) : MLOps: How DVC smartly manages your data sets for training your machine learning models on top of Git ?<\/p>\n<p>PART 3 (soon available) : MLOps: How MLflow effortlessly tracks your experiments and helps you compare them ?<\/p>\n<p>PART 4 (soon available) : Use case: Effortlessly track your model experiments with DVC and MLflow<\/p>\n<p><strong>Feel free to jump to other articles if you are already familiar with the concepts !<\/strong><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_button button_url=&#8221;https:\/\/dev.littlebigcode.fr\/ressources\/#blog&#8221; url_new_window=&#8221;on&#8221; button_text=&#8221;Tous nos articles&#8221; button_alignment=&#8221;center&#8221; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; button_text_size=&#8221;15px&#8221; button_text_color=&#8221;#242B57&#8243; button_bg_color=&#8221;#FFFFFF&#8221; button_font=&#8221;Century Gothic Bold|700|||||||&#8221; button_use_icon=&#8221;on&#8221; button_icon=&#8221;&#xe035;||divi||400&#8243; button_icon_color=&#8221;#FCC002&#8243; button_on_hover=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221; button_bg_color__hover=&#8221;#242B57&#8243; button_border_color__hover=&#8221;#242B57&#8243;][\/et_pb_button][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A set of new challenges arose for building reliable and stable information systems that rely on imperfect data-driven models, such as model versioning, deployment, monitoring, explainability and reproducibility.<\/p>\n","protected":false},"author":12,"featured_media":3897,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"<p><strong>Entra\u00eenement, coaching, sant\u00e9 physique et mentale, discipline, effort, pers\u00e9v\u00e9rance, endurance, confiance\u2026 Si ces termes sont tr\u00e8s souvent et \u00ab naturellement \u00bb rattach\u00e9s au sport de haut niveau, ils le sont beaucoup moins \u00e0 l\u2019entrepreneuriat. Pourtant, les entrepreneur.es doivent \u00e9galement s\u2019astreindre \u00e0 un programme complet pour s\u2019imposer, performer et durer. Et si l\u2019entrepreneuriat \u00e9tait lui aussi une discipline de haut niveau ?<\/strong> Ne dit-on pas que le talent n'attend pas le nombre des ann\u00e9es ? Natation, tennis, football, formule 1\u2026 Le sport regorge d\u2019exemples confirmant cet adage. Les sportifs et sportives arrivent d\u00e9sormais \u00e0 maturit\u00e9 de plus en plus t\u00f4t et il n\u2019est pas rare de voir des jeunes d\u2019\u00e0 peine 18 ans rivaliser avec leurs a\u00een\u00e9s et m\u00eame triompher. Il faut se faire une raison\u00a0: l\u2019exp\u00e9rience n\u2019est plus un axe diff\u00e9renciateur\u00a0! La \u00ab\u00a0faute\u00a0\u00bb \u00e0 la science et \u00e0 la technologie qui ont permis aux \u00ab\u00a0juniors\u00a0\u00bb d\u2019atteindre leur maturit\u00e9 sportive beaucoup plus rapidement, permettant alors de compenser le manque d\u2019exp\u00e9rience.<\/p><h2>Du sport \u00e0 l\u2019entrepreneuriat, il n\u2019y a souvent qu\u2019un pas<\/h2><p>Et l\u2019inverse est aussi vrai. Ainsi, il n\u2019est pas rare de voir des personnes plus exp\u00e9riment\u00e9es adopter les usages attribu\u00e9s habituellement aux digital natives, comme les r\u00e9seaux sociaux.<\/p><blockquote><p><em>Voil\u00e0 pourquoi, apr\u00e8s plusieurs ann\u00e9es de pr\u00e9sence sur LinkedIn, j\u2019ai enfin d\u00e9cid\u00e9 de me lancer dans la r\u00e9daction de mon premier article\u00a0! Il n\u2019est jamais trop tard\u2026<\/em><\/p><\/blockquote><p>Mais encore fallait-il trouver un sujet sur lequel je me sentais l\u00e9gitime et qui n\u2019avait pas ou peu \u00e9t\u00e9 trait\u00e9. J\u2019ai donc d\u00e9cid\u00e9 d\u2019aborder les similarit\u00e9s entre mon pass\u00e9 de sportif de haut niveau et mon \u00ab\u00a0job d\u2019entrepreneur\u00a0\u00bb avec un focus tout particulier sur les m\u00e9thodes que j\u2019ai \u00ab\u00a0transpos\u00e9es\u00a0\u00bb entre les deux activit\u00e9s.\u00a0<strong>L\u2019objectif est de partager mon retour d\u2019exp\u00e9rience et, je l\u2019esp\u00e8re, peut-\u00eatre de pouvoir aider de entrepreneur.es dans leur parcours.<\/strong> Cela fait maintenant plus de dix ans que je me suis lanc\u00e9 dans ma premi\u00e8re aventure entrepreneuriale avec la cr\u00e9ation d\u2019une plateforme de VTC lanc\u00e9e en parall\u00e8le de mon premier emploi. Ont suivi deux autres exp\u00e9riences, avec plus ou moins de r\u00e9ussite, mais toujours cette envie d\u2019\u00eatre le plus efficace possible, de durer dans l\u2019exercice malgr\u00e9 les ann\u00e9es et, surtout, de prendre du plaisir au quotidien dans mon job. Or dans le sport, impossible d\u2019\u00eatre efficace, de durer et de prendre du plaisir sans\u2026 entra\u00eenement\u00a0et sans une certaine hygi\u00e8ne de vie\u00a0! <strong>Apr\u00e8s le sport de haut niveau, voici le \u00ab\u00a0job\u00a0\u00bb de haut niveau dont l\u2019entrepreneuriat serait une discipline,<\/strong>\u00a0\u00e0 l\u2019instar du foot, du ski ou encore du cyclisme que je connais bien. Voil\u00e0 pourquoi, en tant qu\u2019entrepreneur, il me paraissait \u00e9vident, pour performer, d\u2019appliquer les fondamentaux que j\u2019avais appris dans le sport tout en les adaptant, les am\u00e9liorant et en \u00e9tudiant sans cesse de nouvelles approches en vue de tendre vers l\u2019am\u00e9lioration continue.<\/p><h2>Le code de l\u2019entrepreneur de haut niveau<\/h2><div data-hook=\"rcv-block15\"><p>Certes, il y a et il y aura toujours des personnes plus aptes, plus efficaces, plus matures ou encore plus intelligentes au m\u00eame \u00e2ge par rapport \u00e0 d\u2019autres. N\u00e9anmoins, je reste convaincu que, pour durer, le talent ne suffit pas et que le travail finit toujours par payer\u00a0!<\/p><blockquote><p>Comme dans le sport, l\u2019entrepreneur.e doit \u00e9galement se fixer des objectifs et analyser sa courbe de progression.\u00a0<strong>Ainsi\u00a0:<\/strong><\/p><\/blockquote><ul><li>Tout objectif doit \u00eatre mesurable et atteignable<\/li><li>Pour \u00e9valuer une situation, une progression ou autre, il doit mettre en place des KPI et donc des outils de mesure<\/li><li>Faire son bilan (semestriellement ou annuellement)<\/li><li>Avant d\u2019\u00eatre efficient, il faut \u00eatre efficace, c\u2019est-\u00e0-dire faire d\u2019abord les bonnes actions avant de les faire bien\u00a0!<\/li><\/ul><blockquote><p>\u00c0 l'image des basiques du sport de haut niveau, l'entrepreneuriat repose sur 4 \u00e9lements cl\u00e9s :<\/p><\/blockquote><ol><li>La pr\u00e9paration<\/li><li>L\u2019hygi\u00e8ne de vie<\/li><li>Le mental<\/li><li>L\u2019entourage<\/li><\/ol><h2>1\/Entra\u00eenez-vous<\/h2><p>C\u2019est certainement, le point qui semble le moins pertinent \u00e0 dupliquer lorsque l\u2019on est entrepreneur.e\u2026 Et pourtant \u00e7a n\u2019est pas si difficile. En effet, pour am\u00e9liorer vos performances sportives, vous devez vous entra\u00eener. Alors, pourquoi ne pas le faire dans votre profession\u00a0? En r\u00e9alit\u00e9, nous le faisons mais pas forc\u00e9ment sous la forme que l\u2019on imagine avec le sport.\u00a0<strong>Petit rappel concernant l\u2019entra\u00eenement qui se caract\u00e9rise par le fait de :<\/strong><\/p><ul><li>Habituer son corps \u00e0 certains efforts<\/li><li>Acqu\u00e9rir de nouvelles m\u00e9thodes et des automatismes<\/li><li>Bousculer son organisme pour l\u2019obliger \u00e0 progresser<\/li><\/ul><p>De m\u00eame, la pr\u00e9paration, pour s\u2019av\u00e9rer efficace, doit \u00eatre adapt\u00e9e en fonction\u00a0du sport, de votre \u00e9tat de forme et de vos objectifs. De ce fait, on comprend bien que pour un.e entrepreneur.e et\/ou chef.fe d\u2019entreprise, nous n\u2019attendons pas le m\u00eame type d\u2019exercice que pour un cycliste\u2026 \u00c0 titre d\u2019exemple, les d\u00e9veloppeurs ont compris que pour progresser, ils devaient effectuer une veille technologique, r\u00e9aliser des projets personnels, suivre des tutoriels, etc.\u00a0<strong>En bref\u00a0: s\u2019entra\u00eener\u00a0!<\/strong> Ainsi, pour faire \u00e9voluer sa soci\u00e9t\u00e9, un.e dirigeant.e d\u2019entreprise doit aussi \u00e9voluer en \u00e9largissant son champ de comp\u00e9tences, en particulier sur les domaines suivants :<\/p><ul><li>Le management<\/li><li>La communication<\/li><li>La strat\u00e9gie<\/li><li>La gestion<\/li><li>Le business<\/li><li>Les RH<\/li><li>L\u2019organisation\u2026<\/li><\/ul><p>Pour y parvenir, il faut alors se sensibiliser, se documenter et se former.\u00a0<strong>En un mot l\u00e0 encore\u00a0: s\u2019entra\u00eener\u00a0!<\/strong> Si cette prise de conscience est cl\u00e9 dans la vie d\u2019un.e entrepreneur.e, une fois que l\u2019on a compris l\u2019importance de ce point, que faire exactement\u00a0? Comment savoir quel type de\u00a0<em>training<\/em>\u00a0privil\u00e9gier et avec quel timing\u00a0? Tout simplement en appliquant une nouvelle fois les principes du sport, \u00e0 savoir\u00a0: 1.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<strong>D\u00e9finir son \u00e9tat de forme<\/strong>\u00a0avec le fameux test d\u2019effort effectu\u00e9 une \u00e0 deux fois par an par les sportifs de haut niveau. Pour les entrepreneur.es, nous parlons alors de bilan ou d\u2019auto-\u00e9valuation nous permettant de conna\u00eetre pr\u00e9cis\u00e9ment les niveaux de comp\u00e9tences sur chacun des points cit\u00e9s plus haut (liste non exhaustive). 2.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<strong>D\u00e9finir les objectifs<\/strong>\u00a0en termes de\u00a0performances (donn\u00e9es physiologiques) et de r\u00e9sultats (course). En effet, l\u2019objectif est d\u2019abord d\u2019am\u00e9liorer ses capacit\u00e9s pour viser de meilleurs r\u00e9sultats. Pour un.e dirigeant.e, nous parlons ici d\u2019objectifs personnels et d\u2019objectifs de soci\u00e9t\u00e9. 3.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<strong>D\u00e9finir un plan d\u2019entra\u00eenement<\/strong>\u00a0associ\u00e9, ce qui \u00e9quivaut \u00e0 l\u2019agenda, \u00e0 la roadmap et\/ou au planning de formation pour un.e chef.fe d\u2019entreprise.<\/p><h3><strong>Quelques tips\u00a0<\/strong><\/h3><p>Concernant son \u00ab auto-\u00e9valuation \u00bb, il convient de construire une matrice d\u2019\u00e9valuation. Sur ce point, internet regorge de litt\u00e9rature et de documentations mais \u00e0 chacun de construire sa matrice et d\u2019apprendre \u00e0 s\u2019auto-\u00e9valuer, et\/ou de se r\u00e9f\u00e9rer \u00e0 une autre personne qui nous conna\u00eet bien (un associ\u00e9 par exemple). Le but est alors d\u2019obtenir une liste de crit\u00e8res (objectifs et\/ou subjectifs) en lien avec notre projet professionnel et personnel, et que l\u2019on pourra \u00e9valuer et comparer d\u2019une ann\u00e9e sur l\u2019autre. <strong>Cette \u00e9valuation, une fois effectu\u00e9e, permet de d\u00e9finir votre profil et de mettre en avant\u00a0:<\/strong><\/p><ul><li>Vos points forts<\/li><li>Vos points d\u2019am\u00e9lioration<\/li><li>Votre \u00e9volution par rapport \u00e0 l\u2019ann\u00e9e pr\u00e9c\u00e9dente<\/li><li>Et surtout de vous aider \u00e0 d\u00e9finir nos objectifs<\/li><\/ul><p>Une fois votre profil et vos points forts identifi\u00e9s, il est temps de d\u00e9finir vos objectifs\u00a0! Tout en vous montrant ambitieux, vous devez rester humble et en phase avec vos capacit\u00e9s afin qu\u2019ils soient atteignables et vous mettent en confiance. Id\u00e9alement, on d\u00e9finit des objectifs par trimestre et par ann\u00e9e. Ensuite, vous devez d\u00e9finir les m\u00e9thodes et les moyens n\u00e9cessaires pour y arriver. Mais est-ce possible\u00a0? Si non, quels sont les autres moyens\u00a0?<\/p><h3><strong>Quelques exemples d'objectifs<\/strong><\/h3><p><strong>C\u00f4t\u00e9 sportif, voici les objectifs qu\u2019il est possible de se fixer\u00a0:<\/strong><\/p><ul><li>Dans 6 mois, je souhaite courir le semi-marathon en 1h40<\/li><li>\u00a0Dans 1 an, je le cours en 1h30<\/li><li>Dans 3 ans,\u00a0en 1h20<\/li><\/ul><p>Pour y arriver, je vais devoir augmenter ma \u00ab\u00a0Vitesse Maximale A\u00e9robie VMA\u00a0\u00bb, c\u2019est-\u00e0-dire la vitesse de course \u00e0 laquelle j\u2019atteins ma consommation maximale d'oxyg\u00e8ne. Et pour y parvenir, je dois donc effectuer tel type d\u2019entra\u00eenement, tant de fois par semaine. <strong>Pour un.e entrepreneur.e, les objectifs peuvent ressembler \u00e0 ceux-ci\u00a0:<\/strong><\/p><ul><li>Dans 3 mois, je souhaite livrer la V1 de mon application<\/li><li>Dans 6 mois, je veux g\u00e9n\u00e9rer 1 M\u20ac de CA<\/li><li>Dans 1 an, je dois livrer la V2 et atteindre les 2 M\u20ac de CA<\/li><\/ul><p>Pour atteindre ce but je vais donc devoir recruter X collaborateurs et g\u00e9n\u00e9rer plus de leads business. Ainsi, il me faut renforcer mes \u00e9quipes RH et commerciales tout en augmentant ma visibilit\u00e9 gr\u00e2ce au marketing. En ai-je les moyens\u00a0? Non\u00a0! C\u2019est pourquoi, je vais devoir m\u2019atteler \u00e0 recruter et \u00e0 d\u00e9velopper le business moi-m\u00eame, etc. Pour conclure, vous d\u00e9finissez donc vous aussi votre plan d\u2019entra\u00eenement et\/ou votre agenda. Ce dernier peut-\u00eatre un planning hebdomadaire fig\u00e9 avec des cr\u00e9neaux pr\u00e9vus pour faire face aux impr\u00e9vus, associ\u00e9 \u00e0 un agenda plus macro avec les grandes \u00e9tapes.<\/p><\/div><div data-hook=\"rcv-block15\">\u00a0<\/div><div id=\"viewer-e19n7\" class=\"XzvDs _208Ie _1atvN _2QAo- _25MYV _2WrB- _1atvN public-DraftStyleDefault-block-depth0 public-DraftStyleDefault-text-ltr\">\u00a0<\/div>","_et_gb_content_width":""},"categories":[38],"tags":[46],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.7.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>MLOps : Why data and model experiment tracking is important ?<\/title>\n<meta name=\"description\" content=\"A set of new challenges arose for building reliable and stable information systems that rely on imperfect data-driven models, such as model versioning, deployment, monitoring, explainability and reproducibility.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dev.littlebigcode.fr\/en\/mlops-why-data-model-experiment-tracking-is-important\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MLOps : Why data and model experiment tracking is important ?\" \/>\n<meta property=\"og:description\" content=\"A set of new challenges arose for building reliable and stable information systems that rely on imperfect data-driven models, such as model versioning, deployment, monitoring, explainability and reproducibility.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dev.littlebigcode.fr\/en\/mlops-why-data-model-experiment-tracking-is-important\/\" \/>\n<meta property=\"og:site_name\" content=\"LittleBigCode.fr\" \/>\n<meta property=\"article:published_time\" content=\"2022-05-02T13:46:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-07-04T21:35:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/dev.littlebigcode.fr\/wp-content\/uploads\/2022\/05\/on-9.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Samson ZHANG\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/dev.littlebigcode.fr\/en\/mlops-why-data-model-experiment-tracking-is-important\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/dev.littlebigcode.fr\/en\/mlops-why-data-model-experiment-tracking-is-important\/\"},\"author\":{\"name\":\"Samson ZHANG\",\"@id\":\"https:\/\/dev.littlebigcode.fr\/#\/schema\/person\/4a7d3bfd7b4a0911435cbf144c1acca9\"},\"headline\":\"MLOps : Why data and model experiment tracking is important ? How tools like DVC and MLflow can solve this challenge ?\",\"datePublished\":\"2022-05-02T13:46:40+00:00\",\"dateModified\":\"2022-07-04T21:35:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/dev.littlebigcode.fr\/en\/mlops-why-data-model-experiment-tracking-is-important\/\"},\"wordCount\":1818,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/dev.littlebigcode.fr\/#organization\"},\"keywords\":[\"datascience\"],\"articleSection\":[\"Consulting article\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/dev.littlebigcode.fr\/en\/mlops-why-data-model-experiment-tracking-is-important\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/dev.littlebigcode.fr\/en\/mlops-why-data-model-experiment-tracking-is-important\/\",\"url\":\"https:\/\/dev.littlebigcode.fr\/en\/mlops-why-data-model-experiment-tracking-is-important\/\",\"name\":\"MLOps : Why data and model experiment tracking is important ?\",\"isPartOf\":{\"@id\":\"https:\/\/dev.littlebigcode.fr\/#website\"},\"datePublished\":\"2022-05-02T13:46:40+00:00\",\"dateModified\":\"2022-07-04T21:35:36+00:00\",\"description\":\"A set of new challenges arose for building reliable and stable information systems that rely on imperfect data-driven models, such as model versioning, deployment, monitoring, explainability and reproducibility.\",\"breadcrumb\":{\"@id\":\"https:\/\/dev.littlebigcode.fr\/en\/mlops-why-data-model-experiment-tracking-is-important\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/dev.littlebigcode.fr\/en\/mlops-why-data-model-experiment-tracking-is-important\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/dev.littlebigcode.fr\/en\/mlops-why-data-model-experiment-tracking-is-important\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/dev.littlebigcode.fr\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MLOps : Why data and model experiment tracking is important ? How tools like DVC and MLflow can solve this challenge ?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/dev.littlebigcode.fr\/#website\",\"url\":\"https:\/\/dev.littlebigcode.fr\/\",\"name\":\"LittleBigCode.fr\",\"description\":\"AI Solution Creator\",\"publisher\":{\"@id\":\"https:\/\/dev.littlebigcode.fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/dev.littlebigcode.fr\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/dev.littlebigcode.fr\/#organization\",\"name\":\"LittleBigCode\",\"url\":\"https:\/\/dev.littlebigcode.fr\/\",\"sameAs\":[\"https:\/\/www.linkedin.com\/company\/littlebigcode\/\",\"https:\/\/www.youtube.com\/channel\/UCTEax-7nR6n2zzgL4bz3fWQ\",\"https:\/\/medium.com\/hub-by-littlebigcode\"],\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/dev.littlebigcode.fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/dev.littlebigcode.fr\/wp-content\/uploads\/2021\/08\/Logo-LBC-AISC-format-carre\u0301.png\",\"contentUrl\":\"https:\/\/dev.littlebigcode.fr\/wp-content\/uploads\/2021\/08\/Logo-LBC-AISC-format-carre\u0301.png\",\"width\":768,\"height\":768,\"caption\":\"LittleBigCode\"},\"image\":{\"@id\":\"https:\/\/dev.littlebigcode.fr\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/dev.littlebigcode.fr\/#\/schema\/person\/4a7d3bfd7b4a0911435cbf144c1acca9\",\"name\":\"Samson ZHANG\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/dev.littlebigcode.fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3ccd39671e91a53fb5ea812c4c864941?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3ccd39671e91a53fb5ea812c4c864941?s=96&d=mm&r=g\",\"caption\":\"Samson ZHANG\"},\"url\":\"https:\/\/dev.littlebigcode.fr\/en\/author\/szhanglittlebigcode-fr\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"MLOps : Why data and model experiment tracking is important ?","description":"A set of new challenges arose for building reliable and stable information systems that rely on imperfect data-driven models, such as model versioning, deployment, monitoring, explainability and reproducibility.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/dev.littlebigcode.fr\/en\/mlops-why-data-model-experiment-tracking-is-important\/","og_locale":"en_US","og_type":"article","og_title":"MLOps : Why data and model experiment tracking is important ?","og_description":"A set of new challenges arose for building reliable and stable information systems that rely on imperfect data-driven models, such as model versioning, deployment, monitoring, explainability and reproducibility.","og_url":"https:\/\/dev.littlebigcode.fr\/en\/mlops-why-data-model-experiment-tracking-is-important\/","og_site_name":"LittleBigCode.fr","article_published_time":"2022-05-02T13:46:40+00:00","article_modified_time":"2022-07-04T21:35:36+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/dev.littlebigcode.fr\/wp-content\/uploads\/2022\/05\/on-9.png","type":"image\/png"}],"author":"Samson ZHANG","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/dev.littlebigcode.fr\/en\/mlops-why-data-model-experiment-tracking-is-important\/#article","isPartOf":{"@id":"https:\/\/dev.littlebigcode.fr\/en\/mlops-why-data-model-experiment-tracking-is-important\/"},"author":{"name":"Samson ZHANG","@id":"https:\/\/dev.littlebigcode.fr\/#\/schema\/person\/4a7d3bfd7b4a0911435cbf144c1acca9"},"headline":"MLOps : Why data and model experiment tracking is important ? How tools like DVC and MLflow can solve this challenge ?","datePublished":"2022-05-02T13:46:40+00:00","dateModified":"2022-07-04T21:35:36+00:00","mainEntityOfPage":{"@id":"https:\/\/dev.littlebigcode.fr\/en\/mlops-why-data-model-experiment-tracking-is-important\/"},"wordCount":1818,"commentCount":0,"publisher":{"@id":"https:\/\/dev.littlebigcode.fr\/#organization"},"keywords":["datascience"],"articleSection":["Consulting article"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/dev.littlebigcode.fr\/en\/mlops-why-data-model-experiment-tracking-is-important\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/dev.littlebigcode.fr\/en\/mlops-why-data-model-experiment-tracking-is-important\/","url":"https:\/\/dev.littlebigcode.fr\/en\/mlops-why-data-model-experiment-tracking-is-important\/","name":"MLOps : Why data and model experiment tracking is important ?","isPartOf":{"@id":"https:\/\/dev.littlebigcode.fr\/#website"},"datePublished":"2022-05-02T13:46:40+00:00","dateModified":"2022-07-04T21:35:36+00:00","description":"A set of new challenges arose for building reliable and stable information systems that rely on imperfect data-driven models, such as model versioning, deployment, monitoring, explainability and reproducibility.","breadcrumb":{"@id":"https:\/\/dev.littlebigcode.fr\/en\/mlops-why-data-model-experiment-tracking-is-important\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dev.littlebigcode.fr\/en\/mlops-why-data-model-experiment-tracking-is-important\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/dev.littlebigcode.fr\/en\/mlops-why-data-model-experiment-tracking-is-important\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/dev.littlebigcode.fr\/en\/"},{"@type":"ListItem","position":2,"name":"MLOps : Why data and model experiment tracking is important ? How tools like DVC and MLflow can solve this challenge ?"}]},{"@type":"WebSite","@id":"https:\/\/dev.littlebigcode.fr\/#website","url":"https:\/\/dev.littlebigcode.fr\/","name":"LittleBigCode.fr","description":"AI Solution Creator","publisher":{"@id":"https:\/\/dev.littlebigcode.fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dev.littlebigcode.fr\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/dev.littlebigcode.fr\/#organization","name":"LittleBigCode","url":"https:\/\/dev.littlebigcode.fr\/","sameAs":["https:\/\/www.linkedin.com\/company\/littlebigcode\/","https:\/\/www.youtube.com\/channel\/UCTEax-7nR6n2zzgL4bz3fWQ","https:\/\/medium.com\/hub-by-littlebigcode"],"logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dev.littlebigcode.fr\/#\/schema\/logo\/image\/","url":"https:\/\/dev.littlebigcode.fr\/wp-content\/uploads\/2021\/08\/Logo-LBC-AISC-format-carre\u0301.png","contentUrl":"https:\/\/dev.littlebigcode.fr\/wp-content\/uploads\/2021\/08\/Logo-LBC-AISC-format-carre\u0301.png","width":768,"height":768,"caption":"LittleBigCode"},"image":{"@id":"https:\/\/dev.littlebigcode.fr\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/dev.littlebigcode.fr\/#\/schema\/person\/4a7d3bfd7b4a0911435cbf144c1acca9","name":"Samson ZHANG","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dev.littlebigcode.fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/3ccd39671e91a53fb5ea812c4c864941?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3ccd39671e91a53fb5ea812c4c864941?s=96&d=mm&r=g","caption":"Samson ZHANG"},"url":"https:\/\/dev.littlebigcode.fr\/en\/author\/szhanglittlebigcode-fr\/"}]}},"_links":{"self":[{"href":"https:\/\/dev.littlebigcode.fr\/en\/wp-json\/wp\/v2\/posts\/3898"}],"collection":[{"href":"https:\/\/dev.littlebigcode.fr\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dev.littlebigcode.fr\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dev.littlebigcode.fr\/en\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/dev.littlebigcode.fr\/en\/wp-json\/wp\/v2\/comments?post=3898"}],"version-history":[{"count":0,"href":"https:\/\/dev.littlebigcode.fr\/en\/wp-json\/wp\/v2\/posts\/3898\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dev.littlebigcode.fr\/en\/wp-json\/wp\/v2\/media\/3897"}],"wp:attachment":[{"href":"https:\/\/dev.littlebigcode.fr\/en\/wp-json\/wp\/v2\/media?parent=3898"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dev.littlebigcode.fr\/en\/wp-json\/wp\/v2\/categories?post=3898"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dev.littlebigcode.fr\/en\/wp-json\/wp\/v2\/tags?post=3898"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}