Introducing Quality Quest
Words from the editor
Welcome to Quality Quest, your premier destination for insights, innovations, and inspiration in the realm of software testing and quality engineering. Our mission is to bring the voice of testers to the forefront, highlighting their critical role in the ever-evolving tech industry. As a reader of Quality Quest, you are part of a community dedicated to excellence, continuous improvement, and staying ahead of the curve in a rapidly changing environment.
Quality Quest stands out from other publications by focusing on the multifaceted nature of quality engineering. We explore not only the traditional aspects of testing but also how cutting-edge technologies such as Artificial Intelligence (AI), Machine Learning (ML), and automation are reshaping the field. Our newsletter is designed to provide you with practical knowledge, thought-provoking articles, and the latest trends that empower testers to excel in their roles.
One of the key differentiators of Quality Quest is our emphasis on the holistic view of quality. We believe that quality is not just a checkpoint but an integral part of the development process from inception to delivery. Our content covers a wide array of topics including test automation, performance testing, security testing, and the latest advancements in AI-driven testing tools. By staying informed about these areas, testers can ensure that they are contributing to the creation of robust, reliable, and secure software products.
AI and ML are revolutionizing the testing landscape, enabling testers to perform more efficient and effective testing. Quality Quest delves into how these technologies are being applied in real-world scenarios, from predictive analytics that identify potential defects before they occur to intelligent test automation frameworks that adapt to changes in the codebase. By embracing these advancements, testers can enhance their productivity and deliver higher quality software in less time.
In addition to technological advancements, Quality Quest highlights the importance of soft skills and professional development for testers. Effective communication, collaboration, and leadership are crucial for driving quality initiatives within organizations. Our articles and interviews with industry experts provide valuable insights into how testers can develop these skills and become influential advocates for quality within their teams.
Another unique aspect of Quality Quest is our focus on community and collaboration. We feature stories and experiences from testers around the world, showcasing diverse perspectives and approaches to common challenges. This global viewpoint enriches our content and provides readers with a broader understanding of how quality engineering practices are evolving in different contexts.
Quality Quest is also committed to staying current with the latest industry trends and providing timely updates on new tools, methodologies, and best practices. Whether it's a breakthrough in test automation, a new approach to performance testing, or an innovative technique for enhancing security, you can count on Quality Quest to keep you informed and inspired.
As you embark on this journey with Quality Quest, we encourage you to engage with our content, share your experiences, and become an active participant in our community. Together, we can elevate the practice of quality engineering, drive innovation, and ensure that quality remains at the heart of software development. Thank you for joining us, and welcome to Quality Quest – where the pursuit of excellence never ends.
Understanding LLMs by Rahul Yadav
LMs or Large Language Models. Chances are that in the last 2-3 years, if you haven’t read about this or know what this is, then I believe that you must be living under a rock. Yeah, I can boldly claim so. With the release of platforms like ChatGPT, Gemini et.al, suddenly there has been a meteoric rise in people interests and expectations with Large Language Models. Chances are that you or your friends might already have used this in personal or professional capacity in your day to day work.
Thanks to ChatGPT, I think LLMs are now a household name. Not only people who work with Tech, but across different verticals of society – artists, musicians, designers, architects etc. are now able to use the power of artificial intelligence to help them, improve their work and in many other ways. These platforms have enabled common public to know and use the power of generative AI, and also have been successful in getting the attention of corporations (or even mid/small scale enterprises) to focus on its use cases to improve their businesses.
But again, for a person like me, this brings back the question – to the point 0 – what is actually an LLM? Let’s see
Large Language Models (LLMs)
In its true essence, Large Language Model is a type of artificial intelligence computer program that can recognize, process and generate text , among other such tasks. LLMs utilize advanced machine learning models ( called deep learning) , and can recognize natural language ( for e.g English) using Natural Language processing (NLP) and can generate and classify text – in a conversational manner ( which is used by most generative AI platforms).
The word Large Language Model in itself is made up to three different components – Large, Language, Model.
Language Model
Before understanding large language model, we should actually know what is a language model. In its true essence, a language model is machine learning model, that has been trained to understand a natural human language. A language model is trained so that it can learn and recognize the patterns, structures and relationships within that language.
The use of language models is not new. Traditionally they have been used to perform tasks like translation of text etc. A language model needs lots of data – the quality of how a language model performs is dependent on the size of data it uses, the amount and diversity of data that it has been fed etc. Also the complexity of the algorithm that has been used in the machine learning model can also play a huge role in the quality of the output.
Large Language Model
The large refers to the amount of the number of values (parameters), for a particular language, that the machine learning model can change autonomously as it learns. Some of the most powerful LLMs have hundreds of billions of parameters.
Parameters are the internal variables of the model that are learned during the training process and represent the knowledge the model has acquired.
Deep Learning
In order to do so, machine learning utilizes a concept called deep learning. Deep learning models are capable of training themselves to correctly recognize patterns in the data set and learn without needing any human intervention. However this doesn’t mean that the human part is 100% removed. Off course there is need to enable human interaction for fine tuning of the model.
Deep learning algorithms try to mimic how an adult human brain would try to analyze something – in a logical structure similar to human brain. To achieve this, deep learning uses something called artificial neural networks – or neural networks (ANN).
Neural Networks
The above image shows how a basic ANN would look like. These neural networks are a layered structure of algorithms inspired by the biological neural network of the human brain. Just as a human brain is constructed of neurons that connect to other neurons and send and receive signals to each other, these ANNs are constructed of network nodes that connect with each other.
In the above image, there is an outermost layer at the beginning, which is the input layer. Then there are multiple inner layers, called hidden layers. These are called hidden layers because their values aren’t observable in the training set. The rightmost layer is the output layer. The layers only pass information to each other if their own outputs cross a certain threshold.
There should be more than 2 layers in the ANN to be classified as a deep neural network. The more the number of layers, the more deep learning it can do.
Transformer Models
Transformer models are a special kind of ANNs which are frequently used in LLMs. In fact I think most of the LLM deep learning models would be using this ( this is just my wild guess). Initially conceptualized by a Google Brian scientist named Ashwin Vaswani ( now the founder and CEO of Essential AI) and scientists from University of Toronto in a paper titled Attention is all you need. This paper has been a watershed moment in the work of LLMs.
Transformer models are special in the way that they can and are able to learn the context of the conversation/text. This is very important since most of the human interaction – via speech or text is context dependent. These models are very powerful and can translate speech to text in near-real time. An example is the translation apps that many tourists use to converse with local folks. In fact the GPT model used in CHATGPT stands for generative pre-trained transformer, and Google’s BERT stands for Bidirectional Encoder Representations from Transformers.
These models use a mathematical technique called self-attention to detect subtle ways that elements in a sequence relate to each other. This makes them better at understanding context than other types of machine learning. It enables them to understand, for instance, how the end of a sentence connects to the beginning, and how the sentences in a paragraph relate to each other.
You can read more about the transformer model and it’s architecture in this link.
The power of transformer model enables LLMs to understand the language and context , even if the text is vague enough or poorly formatted/spelled. Transformer models can theoretically “understand” what the person/user meant when they wrote/spelled something because they have seen that combination or grouping together , may be hundred or million of times.
Sample examples using ChatGPT, you can see below
How are they trained
As the name suggests, training an LLM requires multiple steps, which involves massive amount of data ( generally in ~TBs). These data sets consists of trillions worth of words and the quality of the data in directly proportional to the overall quality of the model.
Since these transformer models need to act on a huge data set – often these models are very large – consisting of multiple nodes and layers ( as discussed in section above). Each node layer maintains a connection with the subsequent layer, which has its own weight and bias. To understand more about weight and bias, I would suggest you to read this link which is a good starting point.
The weights and bias, along with embeddings , are called model parameters. During training, the underlying model changes the values of these model parameters iteratively until it can correctly predict next token (word) from a given sequence of input tokens. At this time, the model uses self-supervised learning ( a type of the probability of a next token in the training example.
LLM Training Steps
Let’s break down the training process of LLMs by understanding the four major steps involved in the training process.
Data collection and pre-processing
So there would be no LLMs if there were not for the huge amount of data set that they must analyze in order to be good at predicting the next token. So the very first step is gathering the training data that needs to be used for training your model.
Most of the LLMs (not all) rely on the huge amount of text data that is available over internet. Books, websites, articles, open data sets you name it. There are some sources where you can find open data set
• Wikipedia
• Google Dataset search
Recommended by LinkedIn
• Data.gov
• Hugging Face
Recently Open AI ( company behind the GPT model) signed an agreement with StackOverflow which will allow them to also read the questions and the answers from their site. This will allow GPT model to give answers to code questions more accurately.
Once the data is available, there might be multiple steps involved in cleaning the data, and preparing it for training. For e.g – one step could be to remove unwanted texts or stop words from the data set. Once the process is done, then it moves to the next step.
Model Configuration
As mentioned above, most of the LLMs use the transformer models for learning for the LLM purpose. So you would need to configure you model to use a number of configurations to allow it to learn better. This might include
• The number of hidden layers that needs to there in the neural network.
• The activation and the loss function
• Attention heads it requires
• Defining the hyper-parameters.
Please note that there might be different other steps involved in the process depending on the model and the desired use-case from that model. It is important to note that the data and the configurations done in this step will directly impact the output of the model.
Model Training
Once you’ve the data and the model is configured, then you start your training. The model in trained on the data that you’ve present to it – using supervised learning. The model is present with a set of words during training and it is trained to predict or guess the next token (word) in the sequence. Based on the difference in actual and predicted output, the model adjusts the weights. This process is repeated until the model reaches a satisfactory level of correctness.
Now this might seem not too tough or complex, but in reality, it is. Also since the data set used is huge and the process of training for a single output might require the model to train itself for a large ( may be even millions) of times, the training process is very resource intensive and expensive. The models require immense computational power, which comes at a high cost.
To offset the time required for training the models, often model parallelism is used. The means that different parts of the large language model training is distributed to different GPUs – effectively achieving parallelism. For this purpose, chip makes like Nvidia manufactures special AI Chips, that are powerful and capable enough to perform this.
Different types of model parallelism exists – some of which are
• Data parallelism
• Tensor parallelism
• Pipeline parallelism
• Zero Redundancy Optimiser
Even with these parallelism techniques, training a model from ground up requires significant investment – both manpower and resources. That’s why you’d see that the foundational models (GPT, BERT) are all provided by companies that have enough resources to invest in this – like Open AI ( backed by Microsoft), Google, Meta etc. The boom in the use of AI and AI chips is one of the reasons behind why GPU companies like Nvidia market value have sky-rocketed over the last couple of years.
Many companies, rather than building models from ground up, utilise the much cheaper alternative – use an existing language model and fine-tune it to suit their use case.
Fine-tuning
Once the model reaches a satisfactory level of correctness (prediction), then comes the time when it needs to be evaluated. In many case, a model may be presented with an unknown test data-set , which has not been used to train the model. Based on how correctly the model predicts the tokens, the model performance is generated and then based on this evaluation results, it is might be decided to fine-tune the model by adjusting the hyper-parameters, or using more data-set for additional training or changing architecture.
Some common techniques used in improving the model performance can be
• Zero shot learning
• Few shot learning
• Fine tuning
Training For Specific Tasks
Once a model is trained, which requires significant resources and investment, one of the major use cases of the models is to get trained for performing specific tasks. In the training model ( the one that we discussed above), the model learns about the general rules and dependencies within a language.
However, to make it more useful and more accessible for the enterprises and other companies, often LLM developers present offerings to make it more customisable for the enterprises, who are willing to use large language models.
NVIDIA’s NeMO is an example of these services, which offer pre-trained LLMs for fine-tuning and specific task training to suit specific use cases. These type of services uses pre-trained LLMs and then fine-tune it to make it more suitable for task-specific use cases – which also involves training the model on these specific tasks.These requires much less data, resources and investments – which is much more easier for enterprises.
NVIDIA NEMO
Use-cases of LLMs
There are a huge number of use cases where the power of LLMs can be utilised. Let’s see some of them
• Information Retrieval : I think Bing and Google already have this incorporated. Whenever you use their search feature, you are relying on a large language model to produce information in response to a query
• Sentiment Analysis : Companies can use LLMs to analyze the sentiment of the textual data.
• Text Generation : A perfect example could be ChatGPT ( using GPT-4 or GPT-3.5 model) that can generate text ( or even image) based on a text prompt.
• Code generation : Like text generation, code generation is an application of generative AI. LLMs understand patterns, which enables them to generate code. This is how GitHub Copilot can be really helpful for developers.
• Chatbots: Large language models enable customer service chatbots or conversational AI to engage with customers, interpret the meaning of their queries or responses, and offer responses in turn.
• Healthcare and Life-sciences : LLMs have the ability ( or can be trained) to recognize the protein, molecules, DNA/RNA data. This can be leveraged by the pharma or medical companies in development of medicines/vaccines etc.
• Marketing: Marketing teams can use LLMs to perform sentiment analysis to quickly generate campaign ideas or text as pitching examples, and much more.
• Banking : LLMs can be used in detecting credit card frauds/loan defaulters and also during KYC etc. (with additional training)
AI is not new. The applications of AI has been going on since long ago. But with the release of generative AI platforms like ChatGPT, Gemini, it was made possible to allow a normal human being to reap the benefits of AI in daily life. This as given a very powerful tool in the hand of common man, which if used wisely can be hugely beneficial.
However there are still very heated debate around it – regarding how the advancement in AI could lead to job losses and even debates of robots taking over the world ( so exaggerated ). There is also debate on how/ which and what data can be used and how AI or models or companies might use data that should not be used for their own benefit.
However, one cannot deny the fact that it has created a lot of buzz and lot of commotion in the world. Not only in tech, but also in other sectors. The potential is huge, as are the limitations. In the next article, I’ll try to summarize what the limitations are and how we can use additional methods ( like RAG) to kind of overcome them.
Final Notes
Subscribe to the newsletter for more such interesting content. To feature your article in the newsletter, write to brijesh@thetestcht.info
Automation Test Engineer | Java, Selenium, API & Mobile Testing Expert | Delivered 40% Efficiency Improvement in Banking Projects | Passionate About Quality, Agile Practices & Continuous Improvement.
6moImpressive 👌
Thank you so much for featuring my article