<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Dean P</title>
    <description>The latest articles on DEV Community by Dean P (@deanp70).</description>
    <link>https://dev.to/deanp70</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F561507%2F4fda8c24-1aa6-4278-b86b-ff9f35f27bf2.jpeg</url>
      <title>DEV Community: Dean P</title>
      <link>https://dev.to/deanp70</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/deanp70"/>
    <language>en</language>
    <item>
      <title>Code to production-ready machine learning in 4 steps</title>
      <dc:creator>Dean P</dc:creator>
      <pubDate>Fri, 19 Feb 2021 11:54:58 +0000</pubDate>
      <link>https://dev.to/deanp70/code-to-production-ready-machine-learning-in-4-steps-hop</link>
      <guid>https://dev.to/deanp70/code-to-production-ready-machine-learning-in-4-steps-hop</guid>
      <description>&lt;p&gt;&lt;strong&gt;How we turned a data science code repository into a data &amp;amp; model versioned, experiment tracked project, ready for production&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  TL;DR
&lt;/h1&gt;

&lt;p&gt;We'll take a code-only machine learning project from GitHub, and show how you can add:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data &amp;amp; model versioning using DVC and DAGsHub&lt;/li&gt;
&lt;li&gt;Experiment tracking with human-readable formats using DAGsHub Logger&lt;/li&gt;
&lt;li&gt;A notebook that lets anyone experiment with the model&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you want to go straight to the results, check out the &lt;a href="https://dagshub.com/Dean/BioBERT-DAGsHub/"&gt;BioBERT DAGsHub repo&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;Using machine learning projects you find online is hard, especially if you want to use them in production. In a big part, this is because you need to patch together all the information the project consists of. You usually start with some code on GitHub. You then must find the data that the model was trained and evaluated on, the parameters used, and results achieved by the model. This is usually done without a clear way to try out the model on your own examples, to make sure it works as expected.&lt;br&gt;
Up until recently, solving these problems was a difficult task, requiring the creator to synchronize multiple platforms to have everything within reach. This is no longer the case. You can turn a project from only-code to a production-ready ML project, with:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Data versioning&lt;/li&gt;
&lt;li&gt;Model versioning&lt;/li&gt;
&lt;li&gt;Experiment tracking&lt;/li&gt;
&lt;li&gt;Interactive inference – A notebook that loads the model and lets you experiment with it&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All with open source tools. Perhaps counterintuitively, it’s really easy to do it. By the end of this post, I’ll show you how I transformed one such project, and got data browsing, diffing and sharing, experiment visualization, and even notebook diffing on the way.&lt;/p&gt;
&lt;h1&gt;
  
  
  A great project you’ll never be able to use
&lt;/h1&gt;

&lt;p&gt;There are many data science projects on GitHub, but when you’re looking for something that you can use in your project or if you want to modify the results, it’s common not to find everything you need. After all, a complete data science project consists of code, but also data, models, experiments, and pipelines. Usually, you end up spending a lot of time patching together these components, and it becomes really painful to make things work. This means that data science projects are neglected, or even worse, re-implemented from scratch. We have better things to do with our time.&lt;br&gt;
Having all these components exist in one place would make it much easier to share our data science projects with the required context, collaborate on them with others, and be more productive. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;We would promote our project from its current state as an open-source &lt;strong&gt;code&lt;/strong&gt; project, to an &lt;strong&gt;&lt;a href="https://dagshub.com/blog/a-case-for-open-source-data-science/"&gt;Open Source Data Science&lt;/a&gt; project&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now, you might say: &lt;em&gt;“Of course that’s what we want. The reason we don’t see it happening is that it’s super hard to pull off.”&lt;/em&gt; – Well with the tools of today, that is no longer the case.&lt;/p&gt;
&lt;h1&gt;
  
  
  Background for the project
&lt;/h1&gt;

&lt;p&gt;We started this project as part of a collaborative effort, which on the ML side was focused on analyzing and extracting information from medical texts. &lt;strong&gt;The goal was to find promising generic drugs for cancer treatments&lt;/strong&gt; so they could focus clinical research efforts in the right places – this task is also known as drug repurposing. A noble cause.&lt;/p&gt;

&lt;p&gt;Therefore, we were interested in language models for medical texts, and specifically &lt;a href="https://en.wikipedia.org/wiki/Named-entity_recognition"&gt;NER&lt;/a&gt;. We scoured the internet and chose &lt;a href="https://arxiv.org/abs/1901.08746"&gt;BioBERT&lt;/a&gt; as a good place to start from. The model had good results and seemed relatively easy to use.&lt;/p&gt;

&lt;p&gt;When we found the &lt;a href="https://github.com/dmis-lab/biobert-pytorch"&gt;GitHub BioBERT project&lt;/a&gt;, we had all the code, we had a &lt;a href="https://dagshub.com/Dean/BioBERT-DAGsHub/src/master/download.sh"&gt;script to download the data&lt;/a&gt;, which was done using &lt;code&gt;wget&lt;/code&gt; from some google docs, and we had 4 folders, 3 of them for each task that the model can perform – NER (Named Entity Recognition), QA (Question Answering), and RE (Relation Extraction). There was also a folder for the embeddings themselves. Each folder contained the code to preprocess the data, and train the model for that task. The README in each folder included results.&lt;/p&gt;

&lt;p&gt;Not a bad start, but we wanted more.&lt;/p&gt;

&lt;p&gt;One thing which is harder to recreate (by definition), and we won’t focus on in this post, is the experiment history for the project. We’d like to see what experiments didn’t work out as much as we want to see the ones that did – imagine trying an approach and realizing, after the fact, that someone already tried it and it didn’t work, but it was never documented. &lt;strong&gt;The best way to have our experiment history is to start working with data &amp;amp; model versioning and experiment tracking from the start&lt;/strong&gt;, ideally adding a meaningful commit message to describe your experiment approach.&lt;/p&gt;
&lt;h1&gt;
  
  
  Adding Data Versioning
&lt;/h1&gt;

&lt;p&gt;The first step of the way was adding the data to be versioned as part of the project. Originally to get the data, you had to &lt;a href="https://dagshub.com/Dean/BioBERT-DAGsHub/src/e06c7c003f5721d4ae3c0c4d99b63da878ccb698/download.sh"&gt;run a script&lt;/a&gt; that downloaded the datasets. One approach is to turn this into a DVC pipeline step, which would enable us to change the script and run this automatically. Since we wanted to do this in the simplest, most straightforward way, we just ran the script locally. After the data was downloaded to our system, we added the folder to be tracked by DVC.&lt;/p&gt;

&lt;p&gt;After downloading the data, our &lt;code&gt;datasets/&lt;/code&gt; folder looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;./download.sh
&lt;span class="nv"&gt;$ &lt;/span&gt;tree datasets &lt;span class="nt"&gt;-d&lt;/span&gt;
datasets
├── NER
│   ├── BC2GM
│   ├── BC4CHEMD
│   ├── BC5CDR-chem
│   ├── BC5CDR-disease
│   ├── JNLPBA
│   ├── NCBI-disease
│   ├── linnaeus
│   └── s800
├── QA
│   └── BioASQ
└── RE
    ├── GAD
    │   ├── 1
    │   ├── 2
    │   ⋮
    │
    └── euadr
        ├── 1
        ├── 2
        ⋮

34 directories
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We have a folder for each task the model performs (NER, QA, RE) with various datasets for each task. Each folder contains a few files (task-dependent), mostly a train set, dev set, and test set.&lt;/p&gt;

&lt;p&gt;Instead of needing to track each file individually, with dvc, we can treat the entire folder as a dataset object, by typing in our terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;dvc add datasets
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next, we have our preprocessing step. The preprocessing steps we need for each of the 3 tasks are different. Since in this post, we’re focusing on the NER task, our &lt;a href="https://dagshub.com/Dean/BioBERT-DAGsHub/src/a4d61031c2fa51433fe39b0a794dc545435f053b/named-entity-recognition/preprocess.sh"&gt;preprocessing script&lt;/a&gt; is located in the &lt;code&gt;named-entity-recognition/&lt;/code&gt; folder. What this script does is convert the &lt;code&gt;.tsv&lt;/code&gt; files into &lt;code&gt;.txt&lt;/code&gt; files, and then run the &lt;a href="https://dagshub.com/Dean/BioBERT-DAGsHub/src/a4d61031c2fa51433fe39b0a794dc545435f053b/named-entity-recognition/scripts/preprocess.py"&gt;&lt;code&gt;preprocess.py&lt;/code&gt; script&lt;/a&gt;, which tokenizes the data and saves the data into a text file next to its label. This preprocessed data is saved to our &lt;code&gt;preprocessed_datasets/&lt;/code&gt; folder, in the appropriate task and dataset folder. In our case, that is &lt;code&gt;NER/&lt;/code&gt;. After the preprocessing step is done, we can add the preprocessed data to be tracked by DVC, by typing in our terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ dvc add preprocessed_datasets
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  What happens when I change the data
&lt;/h3&gt;

&lt;p&gt;Now let’s say you want to add the preprocessed data for the RE task. What we’d do is run the preprocessing step, and then instead of &lt;code&gt;dvc add …&lt;/code&gt; we’ll do:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;dvc commit preprocessed_datasets
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Followed by committing and pushing to Git and then DVC:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;git commit &lt;span class="nt"&gt;-m&lt;/span&gt; “Updated preprocessed data with RE task”
&lt;span class="nv"&gt;$ &lt;/span&gt;git push origin master
&lt;span class="nv"&gt;$ &lt;/span&gt;dvc push &lt;span class="nt"&gt;-r&lt;/span&gt; origin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Training the Model and making it accessible
&lt;/h1&gt;

&lt;p&gt;So preprocessing was a relatively “lightweight” step. In this specific case, we could do it in a reasonable amount of time on a not-too-powerful computer. &lt;strong&gt;When we get to training, that is not necessarily the case, and we want to bring out the big guns, if possible&lt;/strong&gt;. Since we want this project to be community accessible, those big guns are Google Colab, which gives us a free GPU. We still want to pull the code and data from DAGsHub and push them back alongside the model after training.&lt;/p&gt;

&lt;p&gt;In our case, we created &lt;a href="https://dagshub.com/Dean/BioBERT-DAGsHub/src/a4d61031c2fa51433fe39b0a794dc545435f053b/BioBERT_DAGsHub.ipynb"&gt;this notebook&lt;/a&gt; that we committed to our project repository. It consists of the following sections:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Load the code, data, and models using &lt;code&gt;git pull&lt;/code&gt; and &lt;code&gt;dvc pull&lt;/code&gt; commands&lt;/li&gt;
&lt;li&gt;Fine-tune the model on the relevant BioMed dataset&lt;/li&gt;
&lt;li&gt;Load the model and see how it performs on some user-provided examples.&lt;/li&gt;
&lt;li&gt;Commit all code, data, and model changes back to our DAGsHub Git and DVC remotes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In the last section, we commit our models using the same commands as we used for adding our data:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# If this is the first time adding the output folder&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;dvc add outputs

&lt;span class="c"&gt;# If we changed our model&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;dvc commit outputs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Adding experiment tracking with ease
&lt;/h1&gt;

&lt;p&gt;The last thing we wanted to add is experiment tracking. As I mentioned in the opening, it’s challenging to add this for the historical experiments, because these are lost if the project isn’t documenting experiments from day one. Since we want to make it easy to collaborate in the future, we thought it would be better to add it late than never.&lt;/p&gt;

&lt;p&gt;To do this, we made some small modifications to the run script, so that it would auto-log all metrics during training, based on the &lt;a href="https://github.com/huggingface/transformers"&gt;🤗 Transformers library&lt;/a&gt; which is used to fine-tune the model. &lt;a href="https://dagshub.com/Dean/BioBERT-DAGsHub/diff/master/named-entity-recognition/run_ner.py?compare=272ae85023943124e676ec6896c729930fdf71aa&amp;amp;page=0"&gt;&lt;strong&gt;You can see the changes here&lt;/strong&gt;&lt;/a&gt;. This will generate some &lt;code&gt;metrics.csv&lt;/code&gt; and &lt;code&gt;params.yaml&lt;/code&gt; files which hold all the experiment’s context. We then pushed these files with our code to the DAGsHub repository.&lt;/p&gt;

&lt;p&gt;Now, when we run an experiment on some new data, or with different parameters, we’ll create an experiment that we can filter, share and compare. This also means that if someone wants to contribute to the project it would be much easier for them to understand what we tried, what is working, and what requires improvement.&lt;/p&gt;


&lt;center&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--I-dLoyy0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c6furmbtm37txz8yssz9.png" alt="Screen Shot 2021-01-27 at 20.44.19"&gt;&lt;small&gt;Experiment tracking helps us understand what approaches were tested&lt;/small&gt;
&lt;/center&gt;
&lt;br&gt; 
&lt;h1&gt;
  
  
  Interactive Inference for the model
&lt;/h1&gt;

&lt;p&gt;I already mentioned this above, but one of the things we added into our notebook is a “playground” section that lets anyone load our model, and try it out in the same place they can edit the model. &lt;a href="https://colab.research.google.com/drive/1E5HMfV8tPO1Jlq8s3vIK-IPrLCg79pZl"&gt;Try it out for yourself here&lt;/a&gt;.&lt;/p&gt;


&lt;center&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NXuVtTjv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bzc6mrpwyxrbvj8u64uk.png" alt="Screen Shot 2021-01-27 at 20.48.10 (1)"&gt;&lt;small&gt;Check it out! Our model predicts on a user provided example!&lt;/small&gt;
&lt;/center&gt;
&lt;br&gt; 

&lt;p&gt;We believe that this is important for any data science project, but especially for the ones you want to share and collaborate on. Every serious OSS project has a demo, and every serious &lt;a href="https://dagshub.com/blog/a-case-for-open-source-data-science/"&gt;OSDS&lt;/a&gt; project should have one too. In ML, that might be more resource-heavy, so a demo notebook is the best middle ground. A notebook has the added benefit of letting users change aspects of the model or test out their own examples to see where the model might not work as well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Another bonus&lt;/strong&gt;: if you decide to make a change to the model and want to see a comparison of your results with the original model, you can commit your notebook to DAGsHub to use notebook diffing as part of our data science pull requests.&lt;/p&gt;


&lt;center&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--I41y7H7a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xp3fkywwirq6rld9x5o8.png" alt="Screen Shot 2021-01-27 at 20.54.47"&gt;&lt;small&gt;Notebook diffing on DAGsHub&lt;/small&gt;
&lt;/center&gt;
&lt;br&gt;
&lt;h1&gt;
  
  
  Summary
&lt;/h1&gt;

&lt;p&gt;🥳 Congratulations! If you’ve made it here, you’ve successfully converted a data science code repo into a production-ready data science project – all with data and model version, experiment tracking, and even a neat way to train models on a GPU machine and demo the model for collaborators. If you have any questions, feel free to join our &lt;a href="https://discord.gg/pk22NradY4"&gt;Discord channel&lt;/a&gt;. If you’re working on converting a project, let me know, I’d be happy to help.&lt;/p&gt;

&lt;p&gt;This project was done as part of a partnership we recently started with &lt;a href="https://omdena.com/"&gt;Omdena&lt;/a&gt;, to use &lt;a href="https://dagshub.com"&gt;DAGsHub&lt;/a&gt; as the collaboration platform in one of their challenges. We decided to take part in the &lt;a href="https://rebootrx.org/"&gt;Reboot Rx&lt;/a&gt; challenge, an organization that improves the lives of cancer patients with existing non-cancer generic drugs. If you’re looking to contribute to other noble causes with ML, and learn from a lot of smart people on the way, check them out.&lt;/p&gt;

</description>
      <category>mlops</category>
      <category>machinelearning</category>
      <category>datascience</category>
      <category>git</category>
    </item>
    <item>
      <title>Data Scientists deserve to browse, preview, share, fork, and merge data &amp; models alongside code</title>
      <dc:creator>Dean P</dc:creator>
      <pubDate>Sun, 17 Jan 2021 12:14:21 +0000</pubDate>
      <link>https://dev.to/deanp70/data-scientists-deserve-to-browse-preview-share-fork-and-merge-data-models-alongside-code-13mi</link>
      <guid>https://dev.to/deanp70/data-scientists-deserve-to-browse-preview-share-fork-and-merge-data-models-alongside-code-13mi</guid>
      <description>&lt;p&gt;Since we launched DAGsHub, and specifically DVC remote storage browsing (&lt;a href="https://dagshub.com/OperationSavta/SavtaDepth/diff/pipeline-setup/src/data/processed/train/basement/00489_depth.png?compare=pre-depth-fix"&gt;example&lt;/a&gt;), and Data Science PRs (&lt;a href="https://dagshub.com/OperationSavta/SavtaDepth/pulls/2/files?file_diff=true"&gt;example&lt;/a&gt;), we've spoken to many data scientists and users from different backgrounds. We've received a TON of great feedback, but one thing that bugged us and was a recurring theme was how involved the process for setting up a DVC remote for data and model storage. We repeatedly saw people getting confused by setting up storage bucket permissions or if they tried Git-LFS, being frustrated by storage limits or the fact that it wasn't a generic format (supporting their cloud storage natively).&lt;/p&gt;

&lt;p&gt;That's why we're launching DAGsHub Storage. &lt;strong&gt;DAGsHub Storage is a DVC remote that requires 0 Configuration (works out of the box)&lt;/strong&gt;, includes team and organization access controls, and easy visibility. Since it is a type of DVC remote, you get all the benefits of using DVC without worrying about cloud setup. It works like adding a Git remote to your project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ry_RjZwn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/hx57wha3pdy50mwdvl20.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ry_RjZwn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/hx57wha3pdy50mwdvl20.gif" alt="giphy"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;center&gt;&lt;small&gt;Zero Configuration Data &amp;amp; Model Hosting. &lt;a href="https://giphy.com/gifs/holy-shit-vWku8YNwyy5vq"&gt;Giphy&lt;/a&gt;&lt;/small&gt;&lt;/center&gt;
&lt;br&gt;

&lt;p&gt;This will be especially useful for data scientists that want to share their work including data and models with others or collaborate on a project - whether it's research, a hobby project, or even a Kaggle competition. It also means that sharing work with non-DVC users is much easier, as there is no cloud setup required on their end.&lt;/p&gt;

&lt;p&gt;TL;DR: &lt;a href="https://dagshub.com/docs/reference/onboard_storage/"&gt;Jump directly to the docs&lt;/a&gt; if you want to see how to set up DAGsHub Storage.&lt;/p&gt;

&lt;h1&gt;
  
  
  Solving Data Bugs and Dead Models
&lt;/h1&gt;

&lt;p&gt;Data Scientists face many challenges in their work. Some are "straightforward" such as &lt;a href="https://dagshub.com/blog/data-bugs-how-to-fix-them/"&gt;bugs in your data&lt;/a&gt;, while others relate to the ability to reuse and share models and results between teams or individuals. Everyone agrees that easy-to-reproduce access to models and the ability to get more data, or more up-to-date data is a net positive for the community (whether research or industry), but the tools to support that effort didn't exist.&lt;/p&gt;

&lt;p&gt;Part of the solution is a change in our mental models. If datasets are constantly updated, they should be treated as a kind of source code. If models need to be easy to access and share, we must put an extra emphasis on logging the pipelines and the experiments that led to the current model. However, better mental models aren't enough, and the tools that support these mental models must be amazing as well, for the change to be easy. These tools are mainly data and model version control, and making it easy and accessible is exactly what DAGsHub Storage is for. &lt;/p&gt;

&lt;h1&gt;
  
  
  The Solution
&lt;/h1&gt;

&lt;p&gt;If we want to encourage individual contributors to collaborate on data science, we must make their lives as easy as possible, without losing the goal we started with. DAGsHub supports the cloud storages that users tend to adopt - S3, GCS, GDrive. When we started noticing users are still struggling with cloud or remote setup, it was clear that this wouldn't do.&lt;/p&gt;

&lt;p&gt;DAGsHub Storage means that the entire setup process is simplified to &lt;strong&gt;&lt;em&gt;adding the remote link&lt;/em&gt;&lt;/strong&gt; to your project &lt;strong&gt;&lt;em&gt;and pushing the data&lt;/em&gt;&lt;/strong&gt;. Sharing data and models then becomes &lt;strong&gt;&lt;em&gt;as easy as sharing a link&lt;/em&gt;&lt;/strong&gt;, which leads collaborators to an easy overview including project data, models, code, experiments, and pipelines. The easiest way to see it in action is to go through our &lt;a href="https://dagshub.com/docs/experiment-tutorial/overview/"&gt;basic tutorial&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We hope that the free storage and ease of use will result in much less friction for teams and individuals that want to share and collaborate on data and models in the same way they collaborate on code, unlocking new opportunities for the data science community.&lt;/p&gt;

&lt;p&gt;Since DAGsHub is based on Git, DVC, and other open-source tools and formats, all this good doesn't require you to give up on GitHub, or your favorite orchestration engine. You can just connect an existing project and push your data and models to DAGsHub in parallel.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Open Source Data Science Angle
&lt;/h2&gt;

&lt;p&gt;At DAGsHub, we put &lt;a href="https://dagshub.com/blog/a-case-for-open-source-data-science/"&gt;Open Source Data Science&lt;/a&gt; first. We care deeply about helping people work together on community projects and always consider it when adding new capabilities to the platform. We also spend some time explaining how these new capabilities help promote Open Source Data Science specifically.&lt;/p&gt;

&lt;p&gt;In this case, not much needs to be said, since it is very clear how having free, easy to access data and model storage will help the community.&lt;/p&gt;

&lt;p&gt;In one computer vision project I've been working on, an individual contributor reviewing the raw data realized that there was a normalization bug, and all the label images (this is an image-to-image task) were completely black. He could see this within the project page, create an issue describing the problem, and suggest a solution. After merging a bugfix PR, I could see the comparison of data versions and verify that the fix had worked. I'll dive deeper into this specific case in an upcoming post.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vFOhRa65--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/28x20ryzutu5k6frb8tv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vFOhRa65--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/28x20ryzutu5k6frb8tv.png" alt="Screen Shot 2020-12-22 at 17.08.26"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;center&gt;&lt;small&gt;Fixing data bugs and comparing datasets stored in DAGsHub Storage.&lt;/small&gt;&lt;/center&gt;
&lt;h1&gt;
  
  
  Your Feedback is more than Welcome
&lt;/h1&gt;

&lt;p&gt;DAGsHub Storage simplifies Machine Learning Collaboration and makes it much more accessible. We're excited to see what the community builds with it.&lt;br&gt;
There are many more interesting things we're working on, and we'd love to hear your feedback on what we should tackle next. The easiest way to participate is to &lt;a href="https://discord.gg/BrWEQBy"&gt;join our Discord channel&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>devops</category>
      <category>git</category>
      <category>datascience</category>
    </item>
  </channel>
</rss>
