Blogs on Document Processing and OCR Technology

How to Fine Tune LLMs for Your Documents and Data

Written by Tim McMullin | December 3, 2024

Today’s data landscape is immense, with IDC’s Global DataSphere predicting exponential growth each year.

Yet, despite advanced tech, businesses still struggle to locate essential information when needed.

This happens because most data remains unstructured and, therefore, hard to manage. Intelligent document processing (IDP) systems often fall short by either taking too long to deploy or failing to produce usable, accessible results.

Enter Grooper 2024, our IDP platform that doesn’t just “archive” data but transforms it for actionable insights. Grooper can do this thanks to powerful Large Language Model (LLM) integrations.

Here’s a closer look at how Grooper’s LLM integration can elevate your document processes and help you customize LLMs for tailored precision in data extraction.

Table of Contents:

Get our Video: Fine-Tuning LLMS and AI

Transform your data and document processing tasks with a seamless integration of AI and LLMs.

See how Grooper equips you to easily test different models and fine tune them for best results. Watch how you can deploy LLMs on platforms like AWS, Azure, or your own machine. You will also discover how to use advanced OCR to get clean data for your LLMs. GET THE VIDEO:

What is LLM Fine-Tuning?

LLM fine-tuning is the process of taking a pre-trained model and running it through further training on smaller, specific datasets in order to improve accuracy on a specific domain or task. 

Most general-purpose LLM models perform very well on general datasets but begin to break down the more specific the data or task becomes. As a general-purpose model becomes more fine-tuned, it performs very well on specialized datasets. Essentially, fine-tuning is a way to bridge the gap between general models and targeted models that are perfect for specific applications.

Fine-tuning a model is preferable to building one from the ground up, as the benefits are reduced costs, time, and reduced work as you can use new, advanced models.

Fine-tuning an LLM makes the model work better for natural language processing in areas like:

  • Sentiment analysis
  • Document summarization
  • Named entity recognition
  • Finding important dates, such as invoice payment deadlines
  • Specific lexical information that's niche industry based, like medical information or chemical analysis information
  • Correcting OCR errors

For very specific tasks such as these, tailoring a model for a particular domain is vital.

Fine-Tuning Best Practices

Based on my experience of working with LLMs, there are certain things that need to be done to ensure that your models are optimized for success.  So here are the best practices that have helped my models deliver great results:

Start with High-Quality Data 

As I have said earlier, quality data plays a significant role in impacting your model's performance. The old saying "Garbage in, garbage out" is very true when it comes to large language models.

But IDP solutions like Grooper can transform dirty document images with noise, distortion, and handwriting into nearly perfect, clean electronic data. Any missing data can be flagged for a human operator to complete.

That data can then be leveraged in an LLM model to deliver great results.

Hyperparameter Fine-Tuning 

This step can be refined over many iterations. You can make precise adjustments to things such as: learning rates, number of training epochs, and batch size.  

These variables are key to adjust and determine the best configuration for your LLM projects. Clean data helps the model perform well, even if it is unseen data to avoid the problem of overfitting.

Select the Right Pre-Trained Model

As the name suggests, pre-trained models leverage vast amounts of data already acquired. The benefit is that your model isn't starting from scratch, so you save time and the model should already be pretty accurate.

Using a pre-trained model for fine-tuning large language models is critically important. Find a pre-trained model that matches the requirements of your tasks results in less fine-tuning and better model performance in specialized tasks.

Regular Evaluation and Validation

Regularly evaluating and validating a fine-tuned language model (LLM) is important to ensure optimal performance and prevent overfitting.

During the fine-tuning process:

  • Evaluate the model's performance using a distinct validation dataset to track its progress and identify areas for improvement.
  • Monitor key metrics such as accuracy, loss, precision, and recall to gauge the model's effectiveness and generalization capabilities.

Once fine-tuning is complete:

  • Assess the model's performance on a separate test set to get an unbiased evaluation of its ability to handle unseen data.
  • Iteratively refine the model as needed by adjusting hyperparameters or modifying the model architecture.

By consistently evaluating and validating the model, you can optimize its performance and ensure it generates accurate and relevant outputs for your specific needs.

How to Fine-Tune LLMs

Creating data to fine-tune LLMs is easy with solutions such as Grooper. Simply:

1. Configure an OpenAI LLM provider with a key supplied by OpenAI (see our wiki for details).

2. Create an “AI Extract” Fill Method in Grooper, which requires at least Grooper 2024.

3. Select a fully indexed Grooper batch that used the AI Extract Fill Method in Step 2. Or index a batch fully, making sure to correct all errors.

4. Right-click on the node in Grooper Design Studio where the AI Extract Fill Method is set up (data model, section, or table).

Then fill in the details and select the batch of documents you want to use.

5. Right-click again and choose “Start Fine Tuning Job” from the menu.
Then, choose a base model. (Only certain models can be used for fine tuning.) Add a name suffix to the model.

6. Execute fine-tuning job.

7. Select your newly created fine-tuned model from the dropdown in the AI Extract Fill Method you set up in step 2.

8. Voila! Your fine-tuned model is now being used.

The model will take some time to be available from OpenAI.  You will get an email notification from OpenAI when the model is created.  

Note that the model is only available to the API key that was used to create the fine-tuned model.  Also know that when you select models to fine tune, you will see your fine-tuned models here as well. You can continue to fine tune models with new data.

Tests with you new model should show immediate results.  You can use this model anywhere you would normally use a fine-tuned model, not just in Grooper.

The model will show in your OpenAI Dashboard under the fine-tuning section.  You can also see the progress of your fine-tuning jobs in this dashboard.

Top Methods for Fine-Tuning Large Language Models

Fine-tuning LLMs is a supervised learning process where you use a dataset of labeled examples to update the model's weights and improve its ability for specific tasks.

Let's learn about some of the top methods for fine-tuning LLMs.

Supervised Fine-Tuning

Supervised fine-tuning involves training an LLM on a task-specific dataset containing labeled examples. The model learns to adjust its parameters to accurately predict the correct label for each input, leveraging its pre-trained knowledge to enhance its performance on the target task.

This method is commonly used to tailor LLMs for specific applications like text classification or named entity recognition.

Few-Shot Learning

Few-shot learning is a method that empowers large language models to learn new tasks with limited labeled data. By providing a couple examples or "shots" during inference, the model uses its pre-trained knowledge and the context provided in the prompt to adapt to a new task.

This approach is particularly useful when task-specific data is scarce or expensive, making it a valuable tool for fine-tuning LLMs.

Instruction Fine-Tuning

Full fine-tuning involves updating all the model's weights during training. This approach requires significant memory and computational resources to store and process gradients, optimizers, and other components during training.

This method is particularly useful when the task-specific dataset is large and significantly different from the pre-training data. By allowing the entire model to learn from the task-specific data, full fine-tuning can lead to improved performance on the target task.

Transfer Learning

Transfer learning is a technique that leverages knowledge gained from a large, general dataset to improve performance on a specific task.

By fine-tuning a pre-trained model on task-specific data, we can significantly reduce training time and improve accuracy. This approach is particularly useful when dealing with limited task-specific data.

Parameter-Efficient Fine-Tuning

Parameter-efficient fine-tuning (PEFT) is a technique designed to address the computational and memory challenges associated with training large language models. Training a language model is a computationally intensive task that demands significant memory allocation, making it impractical for simple hardware.

PEFT mitigates these challenges by updating only a much smaller number of parameters, effectively "freezing" the rest of the model. This strategy significantly reduces memory requirements, allowing for efficient training on limited hardware.

By preserving the original LLM's weights, PEFT prevents catastrophic forgetting, ensuring that the model retains previously learned information. This is particularly beneficial when fine-tuning for multiple tasks, as it avoids the storage problem associated with creating multiple copies of the full model.

Various PEFT techniques, such as Low-Rank Adaptation (LoRA) and Quantized-Low-Rank Adaptation (QLoRA), have been developed to further optimize the training process and improve performance.

Multi-Task Learning

Multi-task learning is a fine-tuning technique that involves training a model on multiple related tasks simultaneously. By exposing the model to diverse tasks, it can develop a more robust and generalized understanding of the underlying data. This approach can lead to improved performance, especially when dealing with limited data for individual tasks.

The model learns to share knowledge and representations across different tasks, reducing the risk of overfitting and improving its ability to generalize to new, unseen data. However, multi-task learning requires lots of labeled data for each task, which can be tough to get in certain scenarios.

Task-Specific Fine Tuning

Task-specific fine-tuning is a method that allows pre-trained language models to be adapted to specific tasks or domains. By training the model on a training dataset tailored to a desired task, you can significantly improve its performance for that particular purpose.

This approach is particularly useful when we want to optimize the model's performance for a well-defined task like:

  • Text summarization
  • Question answering
  • Code generation

While task-specific fine-tuning can lead to impressive performance gains, it's important to remember the potential for catastrophic forgetting, where the model may lose knowledge acquired during pre-training.

To prevent this, careful tuning and regularization techniques can be employed to balance the model's ability to learn new information while also preserving its existing knowledge.

Benefits of Automated LLM Fine-Tuning

Grooper's ability to help you create fine-tuning data from any batch of documents is a major advantage. Grooper empowers you build highly customized, accurate models without needing specialized or pre-structured data sources, or data scientists.

Here’s why this capability is so powerful:

  1. Automatic Data Preparation:  Fine-tuning typically requires a lot of time and resources to prepare data in just the right format.

    Grooper eliminates this hurdle by automatically creating fine-tuning data from any batch of documents, even if they’re unstructured or in different formats. This allows you to turn your real-world documents directly into training data without extra work.

  2. Custom-Tailored Models:  You can work with unique documents that often have specific language, industry terms, or formats.

    By creating fine-tuning data directly from these documents, Grooper helps you build models that understand your unique language and requirements. This leads to more accurate, relevant outputs.



  3. Rapid, Cost-Effective Model Improvement:  Gathering and preparing data for fine-tuning can be expensive and time-consuming.

    But Grooper streamlines this process, making it quick and cost-effective to generate fine-tuning data from any batch. This means you can continuously improve model accuracy as your document sets evolve, without major investments in data prep.

  4. Greater Control and Flexibility:  With Grooper, you aren’t limited by pre-built or generic training data. Instead, you can train models that align with your organization’s specific needs and workflows.

    This gives you flexibility to fine-tune models on-demand as you encounter new document types or requirements.  As a result, your models will stay up-to-date and highly effective.

  5. Big Cost Reduction:  Fine-tuned models perform better than the most expensive generic model. This means that fine-tuned large language models (llms) are generally 90% cheaper than the price of using the best generic model!

Essentially, Grooper’s ability to convert any document batch into data for fine-tuning empowers you to make models that are truly tailored to your needs, without requiring specialized technical skills or a big budget.

This not only boosts accuracy but also makes your AI solutions adaptable and sustainable over time.

Advantages of LLM Fine-Tuning with Grooper

With the rapid advancements in AI, the IDP market has seen a surge in companies entering the scene solely due to the capabilities of large language models.

While large language models like OpenAI’s GPT models, Meta’s Llama, Microsoft’s Phi, Google's Gemini, and many others bring innovative ways to process language, Grooper 2024 takes this further by enabling seamless testing across LLMs. You can select the model that aligns best with your unique documents and workflows, whether that's through OpenAI’s API or models deployed in Microsoft Azure.

This is crucial because each large language model has unique strengths and weaknesses. Grooper’s LLM integration allows you to set up multiple LLM connections, giving you access to any model that follows the OpenAI API structure or is available on Azure.

This flexibility means Grooper’s LLM testing isn’t limited to just one provider. You’re free to explore and compare performance across hundreds of models.

Here are 3 advantages to LLM fine-tuning with Grooper:

1.Overcome LLM Limitations

One challenge of LLMs is that they handle text effectively, but image interpretation (like reading text from images) remains limited. As a result, traditional OCR technology remains the best choice for this task.

Grooper’s superior OCR extracts near-perfect text, setting a solid foundation for feeding this structured data into an LLM test bed. In Grooper, this process is simplified: fields like “First Name” or “Account Number” can be added to your data model.

Grooper then automatically builds the LLM prompt for you. No complex setup or prompt engineering needed.

2. Improve LLM Accuracy

What truly sets Grooper apart is the ability to create fine-tuned data directly from any Grooper batch, simplifying the process of tailoring LLMs to your unique needs.

This feature is currently available for OpenAI models, but the generated data files are compatible with most LLMs for fine-tuning.

Fine-tuning LLMs with real, domain-specific data improves accuracy significantly. This is compared to fine tuning with generic training data or synthetic data, which studies show may reduce model quality.

Imagine using a model fine-tuned on actual invoices from your accounts payables, or on real academic transcripts for educational applications. Grooper now lets you fine-tune any OpenAI model with the data you process, empowering you to create models that outperform generic LLMs in targeted extraction tasks.

This is especially valuable as it enhances long-term solution performance, ensuring your IDP system continually improves with each training cycle.  

3. No Complex, Specialized IT Staff Needed

With Grooper’s multi-model support, you can easily test against popular models like GPT-4o, Llama 3.2, Claude 3.5, and many more. Grooper supports around 1,700 models at last count. 

Whether in the cloud or hosted locally, Grooper’s flexibility means you can deploy open-source models or integrate with Azure and OpenAI hosted options without needing specialized IT staff.

Testing and tuning becomes a straightforward, single-click process, turning Grooper into a fully equipped fine-tuning workbench for IDP. This approach removes complexity, helping you focus on improving model performance rather than managing technical challenges.

Why is it Important to Fine-Tune LLMs for Data Extraction?

Fine-tuning an LLM is like giving specialized training to an advanced digital assistant so it can excel in a particular area that’s relevant to your department.

Imagine the model as a knowledgeable assistant who already understands a wide range of topics. It’s already well versed in a huge variety of sources like books, websites, and general information.

However, if you want this assistant to be especially skilled at handling tasks specific to your department, you can "fine-tune" it. Fine tuning is performed by training it with data directly relevant to your businesses' specific needs.

For example, if your department deals with specific industry regulations or unique workflows, you’d provide it with examples and information focused on those areas. This additional training enables the model to become more accurate and responsive to questions and tasks related to your field.

In short, fine-tuning takes a broadly trained tool and sharpens it's expertise. This enables it to perform more effectively within your department’s specific context while still retaining it's general knowledge.

A general model might answer correctly 7 or 8 times out of 10 for your specific needs. But a fine-tuned model can often improve that accuracy closer to 9 or even 10 times out of 10.

This means fewer misunderstandings, more precise responses, and ultimately, better support for your department’s work.

So, while fine-tuning doesn’t make the model perfect, it often brings it much closer to the mark when it comes to the specific tasks or topics that matter most to you.

Unlock the Potential of LLMs - Now

The future of IDP lies in combining robust OCR capabilities with the adaptability of LLMs.

Grooper’s 2024 release has created a one-of-a-kind platform that lets you leverage the best of both technologies: exceptional text extraction with Grooper’s OCR and the transformative power of LLMs for unstructured data.

With Grooper, your organization can finally unlock the potential of LLMs to make data not just storable, but searchable and actionable.

----------

For a personalized demo or to discuss how Grooper can accelerate your AI project, just fill out the form below.

Let’s explore how Grooper can be the cornerstone of your document processing and LLM strategy!

 

What's the Difference Between Fine-Tuning vs. RAG?

We are often asked about the difference between all these new AI technologies.  We at BIS been at the forefront of the LLM AI revolution and were an early adopter of OpenAI's flagship GPT models.

That being said, there's a lot of information buried in these acronyms. So let me spend a little time explaining the terms and outlining where each fits.

First, fine-tuning is referring to the process of adding correct data to the model of a tunable LLM (not all LLMs are able to be fine-tuned).  We fine-tune to teach a model more about our specific dataset.

In IDP and document technologies, this means we're teaching the LLM about our documents.  LLMs only understand text (we'll ignore "multi-modal" models right now).

RAG stands for Retrieval-Augmented Generation. That means the LLM is fed some data that's been "retrieved" first before the prompt is responded to.

Sounds a lot line fine-tuning, eh? 

The difference between the two is that the RAG information is not added to the model's training.  It's just a knowledge base that's used to help the LLM answer the questions (prompts) more accurately.

RAG systems use external data. For instance, when Grooper first implemented GPT extractors, we implemented them in a RAG method.  This is because Grooper hands the text from the documents in scope to the LLM with the prompt.  That textual data is used to respond to the prompt.

Advantages of RAG vs Fine Tuning

However, RAG is much more powerful than just an initial implementation.  RAG can be used to connect to any data source and use retrieved data (think Web Services lookups, SQL database lookups, any data you can retrieve can be used) to help guide the LLM in responding to the prompt.

This has been shown to greatly reduce the LLM's tendency to "hallucinate" aka "make stuff up."  RAG is also much better when data is fluid.  Fine-tuning is a retraining step and implies that the training data will not change.

Fine-tuning is used more to tailor the model behavior overall instead of just for a chat session or prompt.  However, both are used to get better, more accurate data from LLMs.

Grooper uses both these techniques (and a lot more) to get better results from your documents.  If you haven't seen what Grooper is capable of with AI, you need to reach out to us today and get a demo.