1. What is an AI stack?
An AI stack is a reference model that lists all infrastructural components that are required to build, train, deploy and scale AI systems. An AI stack is essentially a ‘building’ made up a different ‘tech’ floors placed one over the other with each floor representing one kind of AI infrastructure used in the process of constructing AI models. For instance, one floor may represent the hardware, couple other floors may represent software, the top most floor may represent the business problem and so on. The AI stack is not merely a reference model for AI developers – agreed that all blocks do speak of individual technologies – but the AI stack provides a bird eye’s view of the entire AI system that may be useful for all the involved stakeholders. Hence, such a reference model can be used equally by tech developers since it provides a ready bank of AI tools for them to develop AI models and by non-tech business development executives or AI team managers to direct their teams into developing AI products that enable an organisation to derive maximum value.
2. What do we know about India’s AI stack?
In October 2019, a committee under the department of telecommunications (“DoT”) formed to initiate standardisation of AI in India had invited papers from the public addressing issues such as: functional network architecture, AI architecture, data structures, types of interfaces and protocols etc. The DoT said that the increase in use of AI in India calls for the development of a national AI stack to bring in interoperability, compatibility etc. amongst various stakeholders and maximize the utility of AI. The invitation lists five ‘working groups’ that are driving the standardisation of India’s AI framework:
2.1 Working Group 1: Standardisation of the functional network architecture; AI architecture; Data structures.
2.2 Working Group 2: Standardisation of the type of interfaces and protocols; Technologies employed; Systems deployed; Benchmarking practices.
2.3 Working Group 3: Standardisation in Trustworthiness; Digital rights and ethical standards in AI; Preserving algorithms openness; Security and compliance aspects.
2.4 Working Group 4: Standardisation in interoperability standards; Technological mapping and leveraging AI for national missions.
2.5 Working Group 5: Development of Indian AI stack.
3. What does an AI stack comprise of?
An AI stack consists of three parts: Infrastructure, Developer Stack and Business Objective.
3.1 Infrastructure
This consists of all the tools, techniques and the foundation that can be used to execute scripts, store data, build AI algorithms and train AI models. The infrastructure is built in the following way:
3.1.1 Physical Computer: The physical computer refers to the physical hardware that allows the AI stack to run AI algorithms. This hardware may include a variety of desktops, laptops, servers, virtual machines, containers, GPUs, other cloud computing resources. Of all these components, ease in access to cloud services is a major contributor to the proliferation of AI. AI systems demand high computational power which is generally too expensive for most people to afford. Cloud services allow masses to avail this high computation facility for a stipulated time at a nominal fee which enables them to experiment with AI technologies (this is similar to renting a furnished house and paying a monthly fee instead of buying the furnished house). The role of cloud computing in AI is also evolving at a fast pace with the cloud now becoming artificially intelligent and has evolved from being just data warehouses or processors. Cloud services nowadays also offer ‘Artificial Intelligence as a Service’ that provides end-to-end AI pipelines and readymade algorithms.
3.1.2 Operating System: The operating system provides the hardware with a mechanism to manage files, store documents and data. This may include Microsoft Windows, MAC OS, Linux, Ubuntu, etc.
3.1.3 Data: Data is the most important component of an AI stack. As often said, the result of any machine learning algorithm is only as good as the data it is fed. This data can be stored in different types of databases such as structured, unstructured, big data, cloud and others.
3.1.4 Machine learning algorithms: Algorithms are a set of instruction that allow developers to perform certain logical operations. These algorithms are essentially a means to tell the computer what to do. Machine learning algorithms are those set of algorithms that allow a computer to behave like an artificially intelligence machine. These algorithms are of three types – supervised, unsupervised and reinforced.
- Supervised learning: Supervised learning refers to the type of learning algorithms that learn from input-output pairs. The algorithms have to be told about the input variables and the output variable on the basis of which it learns.
- Unsupervised learning: Unsupervised learning refers to self-organised learning algorithms that find previously unidentified patterns within the data without pre-existing labels.
- Reinforced learning: Reinforced learning refers to those algorithms that try to maximise the rewards in a particular situation. These algorithms learn from trial and errors while processing the data.
3.2 Developer stack
A developer stack is the set of tools and platforms that allow a developer to build AI models. The develop stack includes:
3.2.1 Libraries: A library is a collection of programming resources that is often used for software development. Libraries may include configuration data, programming manuals, pre-written codes, messages, etc. Different components of a library are generally compiled and saved in a single file that can be directly imported and used by developers for different purposes. Examples of such libraries include pre-written codes for conducting advanced mathematical operations, studying human languages, processing audio or video data, etc.
3.2.2 Integrated Development Environments (“IDE”): IDE are comprehensive development platforms that ease the process of programming for developers. IDE allow developers to work between platforms, integrate their codes with APIs, debug their programs, auto-complete incomplete programs amongst many others such facilities. IDE also allows different developers’ programs to be interoperable within the same development environment.
3.2.3 Visualisation: Visualisation of data is key to discovering patterns and drawing inferences. Different programming environments ease the process of visualisation which form the part of this module within the stack.
3.2.4 Workflow: Workflow tools in the AI stack enable the sharing, collaboration and automation in the AI stack. It also allows new developers to streamline their work with the on-going processes and ease their entry within the processes.
3.3 Business objectives:
The business objective slab sits right on top of the infrastructure and developer stack, and is responsible for monitoring the developing of AI application through the AI stack such that the end products enable the business to meet its end goals. For instance, if the business objective is to allow a firm to deliver targeted marketing, the AI stack will be modified such that the end product is a facial recognition system that will use intelligent cameras to identify specific users and market them the business’ products accordingly. Similarly, if the business objective is to increase user interaction with a business, the AI stack can be modified to develop an AI chatbot that can talk to the business’ users. The business objective steers the development of AI technologies in a way that will allow it to meet its end goals.
4. Are AI stacks important?
The AI stack is meant to bring about a transformation in the use of AI tools. It serves as a reference model to allow its users to solve the correct problem, by using the correct data, by deploying the correct systems, by setting up the correct processes and by employing the correct people. AI stacks also enable AI standardisation that streamlines the development of AI technology by providing developers with a direction. Having pre-set objectives at a national level – such as tracking the delivery of funds, public project management, automating administrative processes – is likely to get developers to collectively bring about targeted AI advancements to meet the national level objectives by plugging into the AI stack. This may be an efficient method to bring about AI development. Such AI stacks tend to play a critical role in organisations that develop a specific kind of AI technology such as voice or face recognition systems since they act as an arsenal of tools that developers rely on and as the north star that guides the overall development. Through such AI stacks, governments can provide their developers with a clearer picture of what the nation intends to achieve and with what resources. The counter argument to the use of national AI stacks, however, may be that they can be used to restrict the use of certain technologies – such as banning algorithms that generate deep fakes – and hence implicitly regulate AI technology hidden beneath the cover of ‘AI standardisation’.
(Authored by Vihang Jumle, Associate, with inputs from Anirudh Rastogi, Managing Partner at Ikigai Law.)