Large Language Models (LLM)

Artificial Intelligence solutions


Retrieval-Augmented Generation (RAG) is an innovative technique that combines the use of Large Language Models (LLM) with the ability to retrieve information from external sources to improve the quality and accuracy of the generated responses.

In this series of articles, we will delve deeply into this methodology, starting with the fundamentals of LLMs and Prompt Engineering, and then comparing RAG with other training and data processing methods. We will conclude with an overview of the practical application of RAG in Revelis solutions.

What are Large Language Models (LLM)

Large Language Models (LLM) are advanced artificial intelligence models trained on vast datasets of textual data, capable of understanding and generating human language. These models use deep learning techniques to predict the next word in a text sequence, enabling them to perform tasks such as automatic translation, sentence completion, and creative text generation.

LLMs are generally non-deterministic. They use sampling techniques like top-k sampling and nucleus sampling to generate responses, introducing variability and creativity into the output. However, they can be configured to behave deterministically by setting a “seed” for the random number generator, ensuring that the same input produces the same output every time.

Key Technical Features of LLMs:

  • Size and Complexity: LLMs are characterized by a very high number of parameters. For example, OpenAI’s GPT-3 has 175 billion parameters. Parameters are the weights within the neural network that are optimized during the training process.
  • Transformer Architecture: LLMs use the Transformer architecture, introduced by Vaswani et al. in 2017. This architecture relies on attention mechanisms that allow the model to weigh the importance of different words in an input sequence, improving effectiveness in context processing.
  • Training on Extensive Data: LLMs are trained on vast corpora of textual data from diverse sources such as books, scientific articles, websites, and digital content. This allows the models to learn a wide range of linguistic and factual knowledge.
  • Tokenization and Embedding: Before training, text is divided into tokens, which can be words, word fragments, or characters. Each token is then converted into a numerical vector (embedding) that represents its meaning in a multidimensional vector space.
  • Generalization Capability: LLMs can generalize the information learned during training to respond to new queries. This is possible due to the model’s ability to capture complex patterns and relationships within the data.

Source image: AI4Business 

Large Language Models (LLMs) utilize machine learning and natural language processing (NLP) techniques to understand and generate human-like language. Although they are extremely useful for communication and data processing, they have some limitations. They are trained on generic data that does not include specific information related to the desired subject, such as a particular set of internal company data. Moreover, their knowledge is limited over time: the information used for training is not updated, so the material can become obsolete and no longer relevant. Finally, they tend to provide answers based on what they think the user wants to receive, which can lead to incorrect or outdated information, a phenomenon known as “hallucination.”

Differences Between Open Source and Closed LLMs

LLMs can be divided into two main categories: open source and closed.

Open source language models, such as GPT-J and BERT, are publicly accessible with open-source code. This approach offers numerous advantages.

Firstly, transparency: anyone can examine how the model is built and how it works. This not only fosters trust in the technology but also allows the developer community to contribute to the continuous improvement of the model. A crucial aspect of open source LLMs is the possibility of customization. Companies and developers can adapt the model to their specific needs, creating specialized versions for certain tasks. This flexibility is particularly useful in industries that require tailored solutions. Finally, from an economic standpoint, open source models can be used for free, significantly reducing implementation costs. This makes the technology accessible even to small businesses and startups that may not have large budgets.

On the other hand, closed language models, such as OpenAI’s GPT-4, offer distinct advantages, especially in terms of performance and optimization. These models are often developed with advanced resources and high-level infrastructures, ensuring superior performance compared to open source models. The companies that develop them can invest in dedicated hardware and optimization techniques that enhance the model’s efficiency and speed. 

In terms of security, closed models offer greater control over distribution and use. This can be crucial for companies that must comply with strict data privacy and security regulations. By using a closed model, companies can be assured that sensitive data is handled with the highest level of protection. However, access to closed models is generally limited and occurs via paid APIs. This can increase costs for the end user and limit the possibility of customization, as users cannot modify the underlying model. Despite this, for many companies, the benefits in terms of performance and support outweigh these disadvantages.


Pre-training is a fundamental initial phase for large language models (LLMs). This process uses a vast corpus of textual data to provide the model with a general understanding of language. Through pre-training, the model learns the syntactic, semantic, and contextual structures of the language, developing a solid foundation to tackle various linguistic tasks.

Pre-Training Process

Data Collection:

  • Diverse Corpus: The model is trained on a vast corpus of data from books, articles, web pages, and other text sources. This corpus must be large and varied enough to cover a wide range of linguistic styles and topics.


  • Text Segmentation: The text is divided into smaller units called tokens. Tokenization can be based on words, sub-words, or characters. For example, “tokenization” can be segmented into “token”, “ization”.

Model Training:

  • Neural Network Model: A neural network, often based on the Transformer architecture, is used to train the model. During pre-training, the model learns to predict the next token in a text sequence (masked or autoregressive) using supervised learning techniques.
  • Masking: In models like BERT, a percentage of the tokens is masked, and the model learns to predict the masked tokens based on the surrounding context.


  • Optimization Algorithms: Algorithms like Adam or LAMB are used to minimize the loss function, adjusting the neural network’s weights to improve prediction accuracy.
  • Learning Rate Scheduling: The learning rate is varied during training to enhance the model’s convergence.

Advantages of Pre-Training:

  • General Language Understanding: Provides the model with a solid foundation to understand and generate text coherently and contextually.
  • Reusability: Pre-trained models can be easily reused and adapted for specific tasks through fine-tuning, significantly reducing the time and resources needed compared to training from scratch.
  • Efficiency: Allows for performant models with a generalist capability that can be subsequently refined for particular tasks, optimizing the use of computational resources.

Example of Pre-Training: 

Imagine wanting to create a virtual assistant capable of answering general questions. During pre-training, the model is exposed to millions of articles and books on various topics. Through this process, the model learns linguistic structures and contextual relationships, becoming capable of understanding and generating text fluently. Once pre-training is complete, the model can be fine-tuned with a specific dataset, such as a company’s FAQs, to specialize in answering customer questions.


Fine-tuning is the process of additional training for a pre-trained large language model (LLM) to adapt it to a specific task or domain. This process allows the model’s capabilities to be refined using a targeted dataset, improving its accuracy and relevance for the desired activities.

How Fine-Tuning Works:

  • Dataset Selection: Begin by selecting a dataset pertinent to the specific task. This dataset should represent the type of data the model will process after fine-tuning.
  • Model Adaptation: The pre-trained model is further trained on this specific dataset. During this process, the model learns the peculiarities of the new domain, adjusting its parameters to optimize performance on the target task.
  • Iteration and Evaluation: Fine-tuning is an iterative process. After each training cycle, the model is evaluated to check for improvements. The results are used to further refine the model through additional training iterations.

Advantages of Fine-Tuning:

  • Improved Performance: Fine-tuning allows the model to become highly specialized for a specific task, significantly improving its performance compared to a generic model.
  • Data Efficiency: Using a targeted dataset, significant improvements can be achieved with a relatively small amount of data compared to training from scratch.
  • Adaptability: Fine-tuning enables a general model to be adapted to specific contexts, greatly expanding its utility in practical applications. For example, a general language model can be fine-tuned to analyze medical texts, legal documents, or customer interactions in a business context.

Example of Fine-Tuning Application:

Imagine wanting to use an LLM to provide customer support in a software company. The pre-trained model can understand and generate general text, but it may not be sufficiently competent in answering specific questions about the company’s products. Through fine-tuning, the model is trained on a collection of documents related to the company’s products, user guides, and frequently asked questions (FAQs). After fine-tuning, the model will be able to provide more precise and relevant answers to customer questions, improving the efficiency and quality of customer service.

Fine-tuning is a powerful technique for specializing large language models, making them more effective for specific tasks and particular domains. Through an iterative training process on targeted datasets, it is possible to significantly improve the model’s performance, ensuring more accurate and relevant responses to user needs.

Source image: AI4Business 

Prompt Engineering

Source image: cobusgreyling.com

Prompt Engineering is the practice of creating effective text inputs (prompts) to guide the responses of LLMs (Large Language Models). It is both an art and a science that requires a deep understanding of how language models work and the dynamics of text generation. The success of many applications based on LLMs depends on the quality of the prompts used, so there are fundamental principles to follow:

  • Clarity and Specificity: A good prompt must be clear and specific. The more detailed the prompt, the more accurate and relevant the LLM’s response will be. For example, instead of asking, “Tell me a story,” a more effective prompt would be, “Tell me a story about a knight who saves a princess from a dragon.”
  • Adequate Context: Providing sufficient context helps the model better understand the task. Including background information or specifying the desired style and tone can improve the quality of the response.
  • Prompt Examples: Including examples within the prompt can help the LLM better understand what is being sought. For instance, if a certain type of output is desired, examples of sentences or paragraphs that reflect the desired format can be included.

Creating effective prompts requires a clear understanding of the goal. Before writing a prompt, one must ask what they want to achieve with the model: are they looking for informative answers, creative stories, or critical analysis? Once the goal is clear, the prompt structure should guide the model toward the desired response. Using complete sentences, avoiding ambiguity, and including relevant details can make a significant difference in the quality of responses.

There are various prompt engineering techniques:

  • Zero-Shot Prompting: This approach involves asking the LLM to complete a task without providing specific examples. For example, “Translate this text into French.”
  • One-Shot Prompting: In this case, a single example of task completion is provided. For example, “Here is a translation example: ‘Hello’ -> ‘Bonjour.’ Translate this text into French.”
  • Few-Shot Prompting: Several examples of task completion are provided. For example, “Here are some translation examples: ‘Hello’ -> ‘Bonjour,’ ‘Goodbye’ -> ‘Au revoir.’ Translate this text into French.”

In the next article, we will delve into the technique of Retrieval-Augmented Generation (RAG), exploring how to effectively integrate information retrieval capabilities with LLMs to improve the performance and quality of generated responses.

Author: Francesco Scalzo