📽️NEW: How Bioptimus uses Neptune when training biology foundation models → Watch customer story

Case Study

How Cradle Achieved Experiment Tracking and Data Security Goals With Self-Hosted Neptune

For us, self-hosted deployment was too difficult and time-consuming in the previous solution. We could achieve that with Neptune, and it allowed us to close important deals that had stringent security requirements.
Daniel Danciu
CTO at Cradle
Before
    Struggling with complex and time-consuming on-prem deployment
    Pressured by deadlines to meet all data security requirements from important prospects
After
    Experiment tracker successfully deployed on Cradle's infrastructure
    Confident about meeting data security requirements within the whole MLOps stack

Cradle is a biotechnology company leveraging ML and generative AI to accelerate protein engineering. Their software platform enables customers in pharmaceuticals, materials science, sustainable food production, etc., to design novel proteins. A protein can be anything from an antibody that needs to bind better while making sure it doesn’t solicit an undesired immune response to an enzyme that needs to catalyze a chemical reaction while still maintaining high expression values.

By combining computational methods with experimental data, Cradle optimizes protein structures and functions, dramatically reducing the time and cost of traditional protein engineering processes.

Source: Cradle.bio

The challenge

Cradle uses experiment tracking both for internal projects, focused on research and development of novel methods for protein optimization, and for production projects, where models are trained ad-hoc for proteins of interest of their customers. 

They first opted for Weights & Biases, which served this purpose quite well. However, the self-hosted deployment turned out to be complicated and rather time-consuming. 

So they decided to look for alternatives, and after analyzing the potential options, they decided to go with Neptune. 

Unlocked self-hosted deployment 

Reducing attack vectors to the absolute minimum is crucial for some of Cradle’s larger customers, particularly in the pharma industry. The intellectual property value of some of the therapeutic proteins being optimized can be extremely high. So Cradle treats the security and privacy of its customers’ data as one of its top priorities. The company even formed a partnership with Google Cloud to provide an unprecedented level of security in this area. 

For this reason, Cradle doesn’t store any customer data outside of its premises, hence the experiment tracker also had to be deployed on the company’s infrastructure.  

Weights & Biases fell short here; it was mainly focused on AWS, which didn’t mesh well with Cradle’s use of Google Cloud (GCP). 

Neptune’s support for on-premises deployment allowed the company to comply with stringent data security requirements and maintain key client relationships.

quote
We initially aimed for a GKE deployment for our experiment tracking tool. However, the alternative solution we explored had a rigid installation process and limited support, making it unsuitable for our needs.

Thankfully, Neptune’s on-premise installation offered the flexibility and adjustability we required. The process was well-prepared, and their engineers were incredibly helpful, answering all our questions and even guiding us through a simpler deployment approach.
Krzysztof DevOps Engineer at Cradle

Hassle-free migration from WandB to Neptune

Since Cradle already had several active projects, it was important that switching to Neptune would be as quick and painless as possible. They didn’t want customer projects to be delayed because of the switch. 

Migrating from Weights & Biases to Neptune was a smooth and straightforward process for Cradle. Both tools are quite similar in functionality, making the transition easy to manage.

For Cradle’s model training and inference, which utilized PyTorch Lightning, the change was as simple as updating the tracker from WandB to Neptune. 

As an extra, the team added some custom helpers to the Neptune Logger for PyTorch Lighting, which was also quick and not complicated.

See in the app
Example dashboard with Lightning training data logged to Neptune

Cradle’s team decided not to migrate historical data but focused on preserving important artifacts. Since Weights and Biases’ artifacts were backed by GCS paths, the team created a database to reference these paths without recreating the artifacts in Neptune. This approach streamlined the process and avoided unnecessary complications.

Overall, the entire migration process, including on-prem installation and migrating the code base to Neptune, was done in 4 weeks and was primarily performed by one engineer. This ensured their workflow continued uninterrupted, allowing the rest of the team to focus on their core tasks without downtime.

avatar lazyload
quote
We use PyTorch Lightning, and it was just a matter of changing the tracker from Weights and Biases to Neptune. It’s like two lines of code. It’s actually quite easy.
Arthur Lindoulsi ML Engineer at Cradle

Unexpected gains from switching to Neptune

While the self-hosted deployment was the main driver for searching for an alternative experiment tracking solution, several aspects of Neptune stood out when the team started using it. 

The way of handling artifacts 

Tracking artifacts is one of the key functionalities of an experiment tracker for the Cradle team. They use it for tracing data and model provenance, and providing context for model evaluation. 

The previous tracker used its own GCS bucket for artifact storage, renaming files, and creating reference links rather than directly accessing the customer’s GCS. This approach required users to consult the UI or make API calls to locate the actual file path. It all added unnecessary complexity.

Neptune’s approach is more straightforward and allows for direct linking to artifacts in the customer’s storage without the need for intermediate steps. 

Using direct file paths instead of a reference system simplified the team’s workflow. It allows them to use artifacts directly with their Flyte system for provenance and serialization without needing to import Neptune’s client library and translate artifact names into paths every time.

More flexible Python client library  

One of the highlights for the team was Neptune’s Python client library. With their previous experiment tracker, they found the API somewhat limiting, especially for more complex tasks. It often felt like it was designed with simplicity in mind, which was great for quick onboarding but problematic for more advanced use cases. The reliance on a single object that tracks everything further constrained their work.

In contrast, Neptune offers a lower-level API, which provides greater flexibility and control. You can also log to multiple objects at once. This allowed the team to execute tasks more precisely and maintain cleaner, more readable code. Neptune’s API design felt more robust, allowing the team to accomplish their goals with fewer workarounds and more direct implementations.

avatar lazyload
quote
I feel like Neptune’s client library is more advanced and flexible compared to our previous solution. The API is quite low level which allows us to do exactly the things we want to do. And it also makes the code more readable.
Arthur Lindoulsi ML Engineer at Cradle

More responsive web app 

Another advantage was the responsiveness of Neptune’s user interface. While the previous solution had a slightly more polished look at the time, it often struggled with performance issues, particularly when loading pages.  

Neptune, on the other hand, delivered a much faster and smoother user experience, even with a few thousands of runs across multiple workspaces. This saved the team valuable time and reduced frustration during daily operations.

The results

  • After moving to the self-hosted version of the experiment tracking component of their stack, Cradle was able to meet the stringent security requirements of some of its largest clients.
  • Direct artifact handling reduced file tracking complexity and improved integration with existing systems like Flyte.
  • Neptune’s flexible Python library and responsive web app increased team efficiency in executing complex tasks and accessing experiment data.
avatar
quote
Self-hosted deployment for ML solutions will become more and more important. People don't feel comfortable with valuable intellectual property being stored in 3rd party DBs.

For us, such deployment was too difficult and time-consuming in the previous solution. We could achieve that with Neptune, and it allowed us to close important deals that had stringent security requirements.
Daniel Danciu CTO at Cradle

Looking for a scalable and secure self-hosted experiment tracker?