5 Advantages of Data Versioning Technology for AI/ML
Tags: ai, machinelearning, programming, codenewbie
Published: 2021-12-08 18:30:05

## Introduction
Anyone who has ever used a computer can attest to the immeasurable value of ctrl/cmd + z. The ability to undo changes is the greatest attribute of computers—a great tool that provides great possibilities. And its usability in data versioning has been a game-changer in coding.  

[Data versioning](https://lakefs.io/data-versioning/) by itself represents some of the ideologies of time travel. One can go back and forth between different versions of data. In this article, we’re going to look at how data versioning can be advantageous for AI/ML projects.


![Data versioning breakdown](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zxmvlqfve3pugnjroiqe.png)

## Advantages of Data Versioning Tech for AI/ML
While data versioning has been around a lot longer than the phrase “data versioning”, it’s worth noting that data versioning technologies have been built to give this process a more robust use-case have a number of [advantages](https://medium.com/swlh/4-reasons-why-data-scientists-should-version-data-672aca5bbd0b) that are either underutilized or ignored by AI/ML teams, some of these “underneath your nose” perks are summarized below.

1) Organization: AI and ML work closely with big data. As a result, it deals with mind-boggling data sets. As data sets become more extensive, it becomes harder and harder to work with them without leveraging the organization capacity of data versioning. The ability to work with data reduces as the project size increases. This eventually results in a tipping point where the project is unmanageable.

For context, imagine building Google’s search engine with binary language. It’s practically impossible. The use of high-level languages makes the project less herculean. In such massive projects involving multiple teams, data versioning is invaluable.

2) Debugging: The process of debugging in production, remotely or in development, is one that takes a toll on even the most experienced software engineers. Especially when a project has numerous data points, it can be hard to tell where things have gone wrong if there is an issue in a new update. Data versioning makes it easy to compare changes and review impacts. 

This is especially important when an update doesn’t have the desired result. With multiple teams working on a project, mistakes during testing or during development can often remain undetected till the project is live. Data versioning is a lifesaver in this regard.

3) Reversion of Changes: Something that doesn’t get talked about enough is the impact of being able to revert changes made to a codebase or dataset. While there’s no conclusive evidence to support or adequately measure the impact of being able to revert data, it is a great tool for development teams.

Millions of hours that would have been lost to debugging are saved due to the use of data versioning. It helps rollback changes when they have less than the desired effect. Data versioning doesn’t just benefit development teams. It also makes it easier to work with clients who are resistant to change.

Considering the amount of data and resources being expended on AI/ML development projects, the absence of reversion of changes would make collaboration even harder. A lot of manual copying and saving of projects would be needed to gain the benefits data versioning provides.


 [Technical debt](https://en.wikipedia.org/wiki/Technical_debt#:~:text=Technical%20debt%20(also%20known%20as,approach%20that%20would%20take%20longer.)), which involves managing a bad situation due to the fallacy of a sunk cost or having to restart a project, are two hard choices that can be avoided through data versioning. Data versioning technologies make reversion of changes synchronized, seamless, and less error-prone.

4) Collaboration: Since AI and ML are still in their infancy, many hands are needed to help build them quickly. Data versioning technology enables teams to collaborate regardless of distance and in real-time. This has yielded a positive growth in the speed at which the fields of AI and ML are growing.

The pandemic had a huge impact on the way we work. The field of software development was able to rebound a lot quicker than other fields owing largely to data versioning. Data versioning technology quickly became the new confluence where work could be aligned, and it showed in the [increased earning of the top tech companies](https://www.bbc.com/news/business-57979268).

5) Fluid Development: Features like [CI/CD](https://www.redhat.com/en/topics/devops/what-is-ci-cd) (continuous delivery and continuous integration) and extended forms of automation testing are only possible due to the advances that have been made in data versioning. Development is a lot sleeker with less downtime.

Before CI/CD, the rollout of new changes could only occur during off-peak hours and after spending a considerable amount of time informing clients of the impending change. These changes would then be gradually monitored over a period of time, with the development team on standby. Such practices are now a thing of the past.



## Conclusion

AI and ML is still a developing arm of software engineering. While there’s a lot we don’t know, it seems clear that data versioning will play a huge role in the evolution of AI/ML. As technology and trends change, data will remain the bedrock upon which AI and ML are built.

For these reasons, there’s an implicit and explicit burden placed on development teams to properly leverage data versioning technologies in line with global best practices. This helps ensure that projects costing millions of dollars and billions of datasets don’t end up abandoned due to an increasing difficulty in managing and manipulating data.