In our view, there are three different approaches worth considering when looking for a solution to process unstructured documents:
- Cloud-based document processing services
- Proprietary large language models (LLMs)
- Open-source large language models (LLMs)
Cloud providers have long offered specialized services for extracting data from documents:
These solutions offer similar capabilities, including OCR, table extraction, filters, and many other features. They also support a wide range of document formats out of the box. They can be integrated into existing systems through APIs, which means that the source documents must be sent to the cloud for processing.
Advantages:
Disadvantages:
The best-known AI providers make their large language models available through APIs. With this approach, the document must first be prepared and then sent through an API for processing within the provider’s infrastructure.
Proprietary LLMs include:
We recommend OpenAI, as we currently consider it the most advanced solution on the market. OpenAI uses Microsoft Azure data centers, offers a zero-data-retention option, and can also provide processing within EU data centers upon request.
Advantages:
Disadvantages:
Open-source large language models are generative AI solutions that can be deployed and trained locally. Their base models undergo extensive pre-training, enabling them to understand context. They can also be further trained for specific domains and use cases.
Open-source and open-weight LLMs include:
We recommend Meta’s Llama model, which is developing rapidly and also offers multimodal capabilities. For example, Llama 3.2 can process images as well as text.
Advantages:
Disadvantages:

It is difficult to predict in advance how well an AI model will perform on a particular task. Models are extremely complex and non-deterministic, while the input PDF documents themselves are often highly varied: they may be scanned and use very different layouts and formatting.
It is also important to remember that this field is evolving rapidly. For this reason, it is best to avoid becoming dependent on a single provider or solution.
The system should be designed so that the language model can be replaced easily. This makes it simpler to take advantage of new model versions and more advanced solutions while reducing vendor lock-in.
Author
András Kenéz
Head of Development, Software Architect
December 5, 2024