Slash months off development time while improving model performance and gaining unparalleled insights
Deep learning projects often suffer from lengthy cycles and high costs due to the manual, iterative—and often guesswork-driven—nature of key processes. Plus, challenges are often compounded by the difficulty of identifying errors, biases, data problems and other issues, and of validating the trustworthiness of the deep learning solution being built.
DarwinAI’s software platform, GenSynth, equips developers and data scientists with a unique toolset to accelerate the deep learning development cycle in a trusted and transparent way.
Whether you’re building AI for the cloud or the edge, GenSynth can meet the most demanding requirements for your use cases.
Explore the topics below to:
Developing and operationalizing enterprise AI is a complex and expensive undertaking, characterized by vast amounts of data, manual processes, high computing costs, lack of understanding and low trust.
GenSynth allows you to reach operational requirements for each of your AI use cases faster—with less guesswork and more trust.
GenSynth—short for Generative Synthesis—employs explainable AI to obtain a deep understanding of a deep learning model. The platform leverages this understanding to:
GenSynth produces ready-to-use, high-performance and trustworthy models, any of which can then be deployed, modified and integrated into your ML Ops environment.
GenSynth is the byproduct of years of scholarship at the University of Waterloo (see the seminal paper) and improves upon the shortcomings of existing explainability techniques by:
In essence, GenSynth’s proprietary explainable AI (XAI) garners an intricate understanding of a model’s inner workings, thus allowing it to better explain the model’s behavior. Put another way, GenSynth uses XAI technology to obtain—and provide to developers and engineers—a direct and global understanding of the model’s decision-making process.
The benefits of this approach are twofold:
In traditional MLOps, more than 50% of development time is spent pursuing accuracy and operational targets by tuning the architecture, retraining models and validating performance and correctness—GenSynth automates and accelerates these operations without sacrificing results.
Let’s see how!
The very first step is to define the performance targets and operational constraints that characterize the desired use case (e.g., size, computational complexity, accuracy, etc.).
To begin the deep learning development process itself, you collect and prepare your dataset as you normally would.
Next, you construct a prototype based on human-driven design principles and best practices. Essentially, the prototype provides the initial scaffolding of the model while leaving final macro-architecture and micro-architecture decisions to the machine-driven aspect of the process.
So far, everything has followed your normal process—but that’s about to change.
This stage automatically produces a collection of models which meet the needs of your specific use case and takes only a few minutes to configure.
To get started with machine-driven design exploration, you provide GenSynth with your dataset, model prototype, and use case parameters (i.e., performance and operational targets).
Use the Dataset Manager to inform GenSynth how to access your underlying data. The built-in Python script editor makes it quick and easy.
Next, use the Model Manager to set up the model entity, specifying input tensors, output tensors, loss tensors, and accuracy metrics.
Finally, you create a new Job. In doing so, you’ll use the straightforward interface to: specify your entities (choosing from ones you’ve already created, or selecting from GenSynth’s pre-created model prototypes and dataset entities); specify your model tensors; define the learn, build, and explain parameters; and provide your use case parameters.
With all the information in place, GenSynth automatically generates and iterates models which meet your performance targets within your operational constraints.
Importantly, GenSynth allows you not only to leverage multiple GPUs, but also multiple machines—accelerating jobs and providing an easy way to manage compute resources shared amongst a team.
The Jobs screen allows us to manage each experiment and includes collaborative features to help developers work within and across teams. By examining the details and trade-offs of the different models GenSynth generated, you can choose the one that works best for you (and maybe one is best for cloud, one for edge, etc.).
GenSynth provides tremendous transparency, letting you do a full comparative analysis between all of the models it generated by showing the FLOPs, Channels, Parameter distribution, etc. and highlighting bottlenecks.
You can dive deeply into each model to examine performance tradeoffs—this example shows the tradeoffs between accuracy and FLOPs (and you can even compare multiple models in the same graph).
At this point you simply click on any of these models to generate new ones or to download the model to further modify, extend, integrate etc.
When building a precise and robust neural network it’s important to recognize that output alone is insufficient to communicate the model’s strengths and weaknesses. The opaque nature of deep learning, which is being increasingly scrutinized as AI becomes pervasive, is akin to trying to debug a classical computer program without the source code.
This limitation is a key reason why design audits are frequently omitted from DL workflows, as the alternatives to XAI-based assessments are cumbersome, time-consuming and often involve scripts, interpretations and considerable manual effort. Moreover, they aren’t especially effective, most notably for unusual and non-intuitive cases.
However, investing the time to audit your model can dramatically accelerate and simplify development: identifying the gaps in the design and the underlying factors behind them greatly increases your ability to design effectively and can avoid considerable pain and debugging down the road. Moreover, the insights gained through explainability can not only be used to generate better networks, but can also illustrate why they reach particular conclusions.
GenSynth provides you with unparalleled visibility into how your model makes decisions, allowing you to quickly understand error scenarios and to verify that correct decisions are being made for the right reasons.
Like many tools, GenSynth shows you the confusion matrix. Unlike other tools, GenSynth goes far beyond what a traditional confusion matrix can tell you.
Through GenSynth's example-driven explainability capabilities, clicking on any element in the confusion matrix retrieves all data samples sharing that same decision scenario and allows you to gain new insights into the commonalities and trends in these related data samples. In addition, GenSynth shows you the critical factors that led to each decision—as determined by GenSynth’s proprietary attention-driven explainability capabilities.
Diving even more deeply, you can even see the quantified impact of the critical factor through GenSynth's counterfactual-driven explainability capabilities. In this example, if the highlighted section was not leveraged by the model to make decisions, then the model would have incorrectly identified this image as a printer instead of an iPod.
Sometimes, investigating the reasons for a decision will reveal problems with data annotation. In this example, it was revealed using GenSynth's scenario-driven explainability capabilities that the model identified pedestrians who weren’t labeled as such in the original dataset—quickly identifying and understanding this false error scenario saves an enormous amount of audit time.
Crucially, GenSynth allows you to look at the full network visualization to get a better understanding. Instead of just showing connections, the platform also shows you the importance and performance analytics for each component of the neural network—providing you with even deeper insights into how the model works and of the performance trade-offs.
Finally, you deploy your model to hardware—weeks or even months earlier than you could under the traditional model development process.
The GenSynth platform is accessed through a web interface and can be deployed on a public cloud, private cloud, or local workstation (on premises).
GenSynth seamlessly fits into your existing development stack, supporting:
As the user, you provide a model prototype and then GenSynth iterates and optimizes based upon your operational targets and parameters.
GenSynth learns from the model prototype and data you provide, and generates models with different macro- and micro-architectures as it explores new models. Models generated using GenSynth Edge mode, in particular, tend to differ significantly from the prototype to tailor the model to operational constraints.
GenSynth produces ready-to-go models in the form of computational graphs (e.g., for Keras or TensorFlow) which you can plug into your existing MLOps pipeline to integrate, modify, or extend as you want.
GenSynth provides a number of tools for you to handle imbalanced data, including full customizability for things like weighted losses, batch balancing, etc. We also have some exciting new features in the works to further assist you
There is no way to conclusively determine if a particular model is the theoretically “best” model; however, the generative learning and synthesis at the heart of GenSynth provides an efficient and effective means of exploring different options and tradeoffs in pursuit of optimized models.
Yes, GenSynth inherently generates models with varying macro- and micro-architectures.
Perhaps the best way to answer this question is to say that GenSynth takes a very different approach that is much more computationally efficient and cost-effective.
No, GenSynth relies on Generative Synthesis, which is based on an interplay between a Generator and an Inquisitor (see the seminal paper).
GenSynth is provided as a containerized platform for easy deployment.
The most significant differentiator for GenSynth is that it takes a generative approach to explainable AI, which enables it not only to understand the inner workings of models for providing transparency but also to automatically generate new models based on this understanding. Alternative explainable AI strategies tend to be proxy approaches that try to probe a black box to provide explanations, but these don’t have any understanding of the actual process by which the model works. Because GenSynth learns the intrinsic, internal properties, it’s able to gain a much deeper understanding into how your model makes decisions. Furthermore, by taking a generative approach, GenSynth also allows for much greater flexibility to produce more efficient and higher-accuracy models than more restrictive alternatives for improving model efficiency (such as pruning), while also being orders of magnitude faster and providing more control over the results than neural architecture search.