Introduction to LLMs and the generative AI project lifecycle Summary
Tags: llm, aws, ai, deeplearning
Published: 2023-07-04 18:27:03

This blog is a summary from Coursera course conducted by the AWS team which is on "Generative AI with Large Language Models". This is the first module from that course. LLMs, also known as Large Language Models, are a technology that is both versatile and widely used. They have the ability to greatly reduce the amount of time needed for developing machine learning and AI applications. Job opportunities are valuable because they have many uses in different industries. To learn LLM, you should already be familiar with Python programming, have a basic understanding of data science, and be familiar with machine learning concepts. You only need experience with Python or TensorFlow to learn LLMs.

The transformer architecture is a widely used and highly advanced model in many applications. It has been around for a while and is considered state-of-the-art. It is used as a basis for vision transformers and other types of data. During the project lifecycle, you have to make decisions. One decision is whether to use pre-trained models or train custom models. Another decision is figuring out the right model size. Smaller models can still do important tasks well, while larger models are superior for general knowledge.

LLMs, or Language Learning Models, are trained using large datasets to imitate human abilities and show emerging properties. Generative AI tools are capable of imitating or coming close to human abilities in tasks such as chatbots, generating images, and developing code. Language models are big tools that help generate human-like text. They are used to solve various tasks in business and social contexts. When you interact with LLMs, you use natural language prompts. The result of this interaction is called a completion, which is a combination of the prompt and the generated text.

LLMs, or Language Models, are not limited to just chat tasks. They can also be used for various other purposes such as essay writing, summarising conversations, translation, and more. Next word prediction is used for various tasks, such as creating simple chatbots, writing essays, summarising conversations, and translating text.

By connecting LLMs to external data sources and APIs, they can access more information and interact with the real world. The size of foundation models impacts how well they understand language and perform tasks. You can adjust smaller models to work better for specific tasks.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e7rvssb4sxfca34o9nnp.png)

## Transformers Architecture
In 2017, the Transformer model changed the way we process natural language. It uses self-attention to compute representations of input sequences, making it good at capturing long-term dependencies and doing computations quickly. This model performs better than previous models that used RNNs or CNNs in multiple machine translation tasks. It achieves state-of-the-art performance. Transformers make it easier to scale on multi-core GPUs and process larger training datasets in parallel.

Tokenization is an important step that converts words into numbers so that they can be processed in the model. The embedding layer is used to represent tokens as vectors in a space with high-dimension. This helps to encode the meaning and context of the tokens. Positional encoding is a way to keep track of the order of words in a sequence. The self-attention layer examines how tokens are related to each other in order to understand their contextual dependencies. To capture different aspects of language, we learn multiple sets of self-attention weights called attention heads.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6w8ios78i60vbu0gicot.png)

## Generating text with transformers
Transformer models are versatile and can be used for different tasks, such as classification and generating text. There are different types of transformer architectures, such as encoder-only, encoder-decoder, and decoder-only models. These models have different uses. It is important to have a good understanding of prompt engineering in order to effectively interact with transformer models.

## Prompting and prompt engineering
The Transformer model showed impressive abilities in NLP tasks and set the stage for future improvements in language models. Improving the outcomes of language models is important, and two key factors that can help achieve this are prompt engineering and in-context learning. Prompt engineering is the process of modifying the prompt language to influence how the model behaves. On the other hand, in-context learning helps models understand better by giving them examples or extra data in the prompt. On the other hand, zero-shot inference allows larger models to understand a task without specific training. The size of a model is important for being able to do many tasks well. Configuration parameters are very important in determining how language models generate their output during inference.

These parameters determine things like the highest possible number of tokens and the level of creativity in the generated output. The "Max new tokens" option limits the number of tokens that can be generated. On the other hand, greedy decoding chooses the word with the highest probability, but this can sometimes result in repeated words or sequences. Random sampling helps to introduce variability and decrease the repetition of words. Top-k and top-p sampling are methods that restrict random sampling to predictions whose combined probabilities do not exceed a specified value. The temperature parameter determines how random the model's output will be.

## Generative AI & LLMs

The generative AI project life cycle is a framework for creating and launching an application that uses LLM technology. It is important to accurately define the project scope, taking into account the capabilities and requirements of the model. Deciding between training a model from scratch or using an existing base model is very important. Improving the model's capabilities can be done by assessing its performance and considering prompt engineering or fine-tuning. Using reinforcement learning with human feedback helps ensure that the model behaves appropriately when it is being used.

Evaluation metrics and benchmarks are used to assess how well a model performs and whether it meets the desired criteria. When we optimise the model for deployment, it helps us use resources efficiently and provides a better experience for users.

Using an existing model is a common practise, but there are certain situations where training from the beginning is required. Engineering and fine-tuning help improve the performance of the model. Reinforcement learning also adds extra control. Advanced techniques are necessary to overcome limitations such as inventing information or using complex reasoning. The generative AI project life cycle is a structured approach that helps guide the development and deployment process.

Link to the lab exercise that I completed on LLM: https://github.com/azaynul10/Generative-AI-with-Large-Language-Models/blob/02a380343845fe205f7a3dae9bf2f7bb86e258dd/Lab_1_summarize_dialogue%20.ipynb

You can read the Transformers paper: https://arxiv.org/abs/1706.03762