The Computer Weekly Developer Network is in the engine room, covered in grease and looking for Artificial Intelligence (AI) tools for software application developers to use.
This post is part of a series which also runs as a main feature in Computer Weekly.
With so much AI power in development and so many new neural network brains to build for our applications, how should programmers ‘kit out’ their AI toolbox? How much grease and gearing should they get their hands dirty with… and, which robot torque wrench should we start with?
The following text is written by Joe Michael is his role as solutions architect at IPsoft — the company is an Artificial Intelligence specialist known for its enterprise-scale autonomic and cognitive software.
The AI industry – particularly that area concerning the development of virtual assistants – is still in its nascence and, arguably, at this stage there are two categories of AI solution.
- Firstly, there are point solutions, which focus on solving a single problem such as TensorFlow or Accord.net — these typically offer diverse options, but are only usable by users with a depth of technical knowledge.
- Secondly, there are all-encompassing virtual assistant frameworks, where many technologies are brought together to form a cohesive bot platform — to date, much of the open source software (OSS) in this space has been either these point solutions, or the simpler end of virtual assistant frameworks.
Inherent value quotient
The reason that more sophisticated, end-to-end frameworks have not typically been OSS, is due to their inherent value: either through the skills and investment required to create it, or through the potential value for the organisation as intellectual property (IP).
So, with few [people, programmers, everyone basically] anticipating that more sophisticated AI frameworks will become openly available in OSS libraries, how will developers be able to take advantage of the wealth of R&D that is carried out in the AI space?
There are currently three models for how organisations manage their sophisticated AI frameworks:
Model #1: Proprietary
For many organisations, these sophisticated AI frameworks are their IP and underpin their entire business model. As such, it’s understandable why a company that has spent decades developing advanced AI solutions would not want to immediately share the end-to-end framework as OSS.
But, while their frameworks may not be openly accessible, to the inconvenience of individual developers, this approach is not a bad thing for the industry as a whole. AI technologies only started coming to the fore once investment in companies and their R&D functions took off. The development of and investment in proprietary solutions will be important to maintain the continued, rapid advancements of AI technologies, to which we’ve become accustomed in recent years.
Model #2: Upsell
The second approach organisations will take is to deliver a tiered approach, with certain elements of their technology offered as OSS to get people interested before upselling premium or pro versions. Both Botpress and RASA, for example, take such an approach.
However, developers will typically find that while the free elements are good to play around with, if the solution is to be deployed – particularly in an enterprise setting – the premium product is needed to add the required level of sophistication and consistency.
Model #3: Incentivisation
Others will approach it from ‘the AWS model’, seeing it as an opportunity to lock people into their platform or ecosystem. There is no open source version of AWS, with developers establishing their skill set as an AWS cloud architect.
AI companies similarly want developers to learn how to build with their architecture rather than upskilling in AI more broadly – or, god forbid, a competitor’s technology – as it increases demand for their solutions in the community.
Some companies will, therefore, offer elements of their technology as OSS to incentivise developers to use it. This is quite a common model for OSS – CUDA, for example, is offered as OSS a means of incentivising people to use Nvidia Graphic Cards.