We users use Artificial Intelligence (AI) almost every day, often without even realising it i.e. a large amount of the apps and online services we all connect with have a degree of Machine Learning (ML) and AI in them in order to provide predictive intelligence, autonomous internal controls and smart data analytics designed to make the end user User Interface (UI) experience a more fluid and intuitive experience.
That’s great. We’re glad the users are happy and getting some AI-goodness. But what about the developers?
What has AI ever done for the programming toolsets and coding environments that developers use every day? How can we expect developers to develop AI-enriched applications if they don’t have the AI advantage at hand at the command line, inside their Integrated Development Environments (IDEs) and across the Software Development Kits (SDKs) that they use on a daily basis?
What can AI do for code logic, function direction, query structure and even for basic read/write functions… what tools are in development? In this age of components, microservices and API connectivity, how should AI work inside coding tools to direct programmers to more efficient streams of development so that they don’t have to ‘reinvent the wheel’ every time?
Albertini writes as follows…
A bitter irony of AI is that some of the most well-known narratives surrounding its use have been, frankly, a bit dim.
The recent scandal over Britain’s A-Level results, caused by a perceived overreliance on an algorithm, encapsulates the problem. AI is too often presented as a silver-bullet solution to a complex problem — and when it fails to live up to unreachable expectations, this weakens its credibility in general.
For developers, this cycle of hype does us a major disservice. We are still a long way from AI delivering us either redemption or redundancy. But what it can do today is unlock new possibilities for developers… and empower them to do far more than before, even with limited resources or a lack of direct expertise.
Lowering barriers & unlocking possibilities
A recent project has made this abundantly clear to me and points to the huge potential of AI for accelerating programming tasks.
At Anyline, we create OCR scanning solutions for mobile devices, which enable our clients to digitise the data they need on the go. Over the past 7 years, we have developed solutions for use cases as varied as scanning national IDs, utility metres, tyre identification numbers and many serial numbers.
But for those wishing to develop customised neural networks, there is a formidable barrier to entry. Just getting started requires advanced tools and infrastructure for computer vision, machine learning engineers to process the data acquired and a laborious process of training and retraining the resulting AI/ML models before they are ready for use in the ‘real world’.
To address this issue, we built an AI platform, the Anyline Trainer, to enable companies to focus on the bigger picture, while automating much of the time and resource-draining legwork.
The first advantage of this approach is that engineers spend far less time on training neural networks. This is achieved by reducing the total number of images needed, as the challenge of unbalanced data handling is solved by using multiple different complementary techniques on the data and algorithm levels. In turn, this leads to a drastic reduction in manual R&D expenses for computer vision and machine learning developers needed to create a tailor-made solution.
Building a virtuous cycle
Another application of AI pioneered in this project is the use of enhanced automation processes via ‘dynamic ML’ training. This allows new data to be collected by the end-user, which can then automatically uploaded and redeployed, creating a ‘closed-loop’; a virtuous cycle of improvement.
As a result of these AI-driven automations, we have been able to reduce the time needed to create new OCR solutions from weeks or sometimes months, to a matter of hours or days, depending on the complexity of the use case.
When freed from the burden of learning the intricacies of the architecture, developers can focus on what matters most: creating a highly accurate neural network that will enhance their product, service or process they are building.
From developer to conductor
In answer to our question of “What as AI ever done for developers?” I believe that with new approaches and tools for AI automation, we will see many more examples of artificial intelligence bringing additional capabilities within the reach of developers.
Used correctly, AI can elevate the ambitions of any developer, who may normally feel like they are just playing second fiddle, to the role of a conductor of a whole orchestra of AI applications. How the conductor’s baton is used, and if the result of this action is a symphony, continues to be in the hands of human beings.