As artificial intelligence (AI) continues to evolve, its influence spans across industries, transforming operations and enhancing decision-making processes. At this point in time, I believe most of us can envision that in the near future, AI will be as much a part of the day to day life for a software developer as it will be in the life of a farmer. To realize this vision at this scale, it demands democratizing the evolution of AI technologies to create an ecosystem that provides opportunities for open collaborations. It has been attempted before and open source software development is a successful example to prove that it can be done. Developing software in an open source ecosystem is the new norm nowadays, and it won’t be an overstatement if we can say the same for AI development. Moreover, in my opinion, the impact of democratizing AI will be way wider than the impact of open source based software development.
Given that the applicability of the technology is across a wide spectrum of domains, augmenting this technology for each individual domain and delivering it to the wide spectrum of the user base will become a critical challenge. Wider adoption of AI at this level demands a crowd sourced effort at large scale. Although this task seems like a huge undertaking, I believe the challenge is not specific to bringing people together to contribute, but more of providing simple and consumable tools to minimize the barrier of entry for contribution.
InstructLab is a milestone effort in democratizing AI technology. It’s a platform that has the power to enable users with any or no AI related skills to contribute and build a personalized AI vision that caters to their specific needs. This is the first step in a long journey, but I am optimistic that it will evolve as an immensely helpful tool for users with various levels of skills needed to adopt the AI technology in their day to day life.
Today, to leverage the benefits of AI and large language models (LLMs), requires data science and software development expertise, thus limiting the wider adoption of the technology and its potential business gain. Under the assumption that users need to have a minimal understanding of AI technology to leverage it for their work domain, they will need answer for following questions as they begin their AI journey:
- How can I interact with existing models and how to set up the environment to enable that interaction?
- Does the model have a skill or knowledge that the user is looking for?
- How can I contribute the domain specific skill or knowledge to the model?
- How can I feed domain specific documents to help the model formulate better answers, such as feeding company financial documents to generate better responses to the related questions?
- How can I verify that the model will provide more accurate responses to the same questions after the training?
Answering each of these individual questions can lead to a technological discussion that the normal user might not feel motivated to engage in. For example, I am pretty confident that a non-technology expert would not like to dive into setting up graphics drivers on the Linux distro. That raises a requirement of creating a very high level, simple and consumable abstraction that expresses users' intent and is also easy to follow without diving deep into the technology details. Additionally, it needs to ensure that it can be translated to a set of instructions to execute through the complex backend AI components used to build and tune models.
As I reasoned above, the efficacy and adoption of AI are not solely determined by the sophistication of its algorithms or the power of its data processing capabilities; the user abstractions such as the user interface (UI) play an equally pivotal role in determining AI’s success. The natural language processing (NLP) enabled input text box of the ChatGPT was as critical as its backend AI infrastructure that trains the LLM model. The NLP-enabled UI serves as the bridge between human users and complex AI systems, fostering comprehension, interaction and trust. Without an intuitive and accessible UI, even the most powerful AI system can fail to resonate with users, leading to underutilization or skepticism.
The InstructLab UI was created to address the above mentioned UI requirements in the context of the InstructLab project. InstructLab UI journey began with the intention to build an effective UI with the help of open source community contribution and feedback that can help in optimizing InstructLab’s and AI’s potential and driving broad adoption. A group of network and platform engineers within Red Hat's Office of the CTO, without any prior UI design experience, thought they were the best candidates to solve this challenge, because the primary objective was to create an abstraction that is not influenced from the AI technology itself, but from the perspective of layman’s understanding of the AI as a technology. The expected result is a simple UI that is intuitive to human users but hides the complexity of the backend AI system.
InstructLab as a platform addresses most of the questions that are listed above. Once the platform software is installed and set up on a machine with a graphics processing unit (GPU), It allows users to download any existing model and host it locally to chat with it. If the model lacks skill or knowledge, it provides a taxonomy tree structure where users can contribute their skill or knowledge in a YAML format which adheres to taxonomy schema. Once the contribution is being made, the platform provides a function to train the model on the newly contributed skill or knowledge. Once the model is trained with the new contributions, it can be hosted again for interaction to verify the new responses.
This may sound like a good high level description of InstructLab’s working to a software engineer with the basic knowledge of AI, but for a farmer who wants to feed agricultural data to an AI model, it might seem intimidating. Although the problem statement is pretty clear– training an AI model with user knowledge– the tools that can be leveraged to solve this problem are limited, specifically if the solution needs to cater to a wide spectrum of user base. Considering this requirement, the InstructLab UI took the minimal assumption that the user knows how to run a browser and fill the basic input boxes or upload files through simple drag and drop boxes.
The next challenge was to translate the user intent into a simple and consumable interface. The first obvious question was–how can the user verify that the existing model knows the skill or knowledge that the user wants to contribute? A browser-based chatbot is probably an intuitive, simple and proven interface that can be provided to users to interact with the model.. The InstructLab UI implemented the basic chat bot to interact with different models. Users can select the provided default model and interact with it.
Users can also add their own hosted model to the list if they want to interact with it, although it requires that the model is hosted on a machine that is reachable through the URL or an IP address. The interface shown below can definitely be improved , and community members are currently brainstorming how to simplify the interface to deploy any model and chat with it, without the need to know any of the information asked in the form.
If the existing model doesn’t provide the correct or a good quality answer for the questions, the user would like to improve the model by making a skill or knowledge contribution. As mentioned above, the InstructLab platform provides the feature to train the model. It requires users to submit the contribution in a YAML format that adheres to a specific schema. Non-dev users might not understand some of the attributes defined in the schema or even write the knowledge in YAML format. Abstracting those complex schema attributes and removing the need to write YAML documents is the first major challenge that the InstructLab UI addresses. To address this, the InstructLab UI provides a very simple and intuitive web form that the user needs to fill with the information that they know and understand.
The image below shows the knowledge form that the user can fill with all the knowledge data, including the brief summary of the knowledge and the seed examples that they want to feed to the model for training. Seed example includes a context and set of question and answer pairs based on the given context.
Once a user contributes a set of skill and knowledge, the next obvious questions are:
- How can the model be trained on these contributions?
- How can users interact with the trained model?
Currently it requires the user to set up the InstructLab platform on a machine (cpu-only or gpu) to train the model. InstructLab UI community members are actively working on enabling features that trigger these next steps through the UI itself without the need of any specific manual setup of the platform.
The following is a glimpse of the InstructLab project features that are currently in progress to enable user to run the end to end training workflow from contribution to training through the UI:
- Provide an interface to trigger the model training on the user contributions through the UI. It can be as simple as clicking a button to trigger the training.
- Improving the knowledge submission forms where users can simply upload the knowledge document and the UI will provide the list of contexts that users can accept or reject. Once the context is accepted, the UI will provide a list of auto generated question and answer pairs for selection to the user. This will simplify the user experience for knowledge contribution and significantly reduce the total time needed to submit the knowledge contribution.
- Providing a UI to enable users to do RAG (retrieval-augmented generation) without the associated complexity of RAG.
This blog discusses the UI in the context of the user's contribution to an open source model to improve the model with various skills and knowledge. However, enterprises can also leverage this platform to replicate the community model training process internally to train the model on their own proprietary skill and knowledge contributions. Even within the scope of an enterprise, the challenges that require a simple and intuitive UI exist, because enterprises also have a wide spectrum of users starting from core AI developers to sales and marketing teams.
The success of AI hinges on more than just its algorithms. It requires a thoughtful, well-executed UI that empowers users, democratizes technology and supports seamless integration into daily workflows. The InstructLab UI is a community effort that is exploring and experimenting with UIs to address these needs of the platform.
To get involved with the InstructLab UI, visit our GitHub. To explore the existing InstructLab UI and use it to contribute to InstructLab, please visit the InstructLab UI Website. Learn more about navigating the InstructLab and how the InstructLab UI can help users to contribute to InstructLab.
About the authors
Anil is part of the Network Team at the Office of CTO, RedHat. He has been doing research, design and development of software networking products for more than 18 years. Anil's expertise spans across Software-Defined Networking (SDN), Data Center Networking, Network Virtualization, Cloud Networking and application of AI in networking. He is a passionate contributor to open-source communities, actively engaging with projects such as OpenDaylight, OpenStack, CNCF projects and more recently the InstructLab Initiative. Over the past decade, he has held various leadership roles in open-source projects, including project maintainer, project chair, technical oversight committee member, and community-elected board member.
Anil is a frequent speaker at international research conferences, industry summits, and local meetups, sharing insights and innovations in networking technologies. His research contributions are available here. Committed to advancing disruptive networking technologies and application of AI in networking space, Anil believes in the power of open-source collaboration to drive innovation.
Ryan Cook is the platform and Enterprise AI lead within the Emerging Technologies group. Ryan has been at Red Hat since 2012 doing everything from Jenkins to building distributed systems.
More like this
Browse by channel
Automation
The latest on IT automation for tech, teams, and environments
Artificial intelligence
Updates on the platforms that free customers to run AI workloads anywhere
Open hybrid cloud
Explore how we build a more flexible future with hybrid cloud
Security
The latest on how we reduce risks across environments and technologies
Edge computing
Updates on the platforms that simplify operations at the edge
Infrastructure
The latest on the world’s leading enterprise Linux platform
Applications
Inside our solutions to the toughest application challenges
Original shows
Entertaining stories from the makers and leaders in enterprise tech
Products
- Red Hat Enterprise Linux
- Red Hat OpenShift
- Red Hat Ansible Automation Platform
- Cloud services
- See all products
Tools
- Training and certification
- My account
- Customer support
- Developer resources
- Find a partner
- Red Hat Ecosystem Catalog
- Red Hat value calculator
- Documentation
Try, buy, & sell
Communicate
About Red Hat
We’re the world’s leading provider of enterprise open source solutions—including Linux, cloud, container, and Kubernetes. We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.
Select a language
Red Hat legal and privacy links
- About Red Hat
- Jobs
- Events
- Locations
- Contact Red Hat
- Red Hat Blog
- Diversity, equity, and inclusion
- Cool Stuff Store
- Red Hat Summit