LLM fine-tuning in Europe: where to train, what it costs, who owns the weights
Train models

Dominik Keller
Founder, Kontinent

"Fine-tuning in Europe" means three things that can be true or false independently of one another: where your training data resides during the run, where the GPUs are located, and who ultimately owns the weights. There are four paths, and they differ primarily on the third point. An H100 hour starts at 2.80 euros with European specialty providers, and is two to three times that with hyperscalers in their own EU regions.
Most conversations about European AI stop at data residency. For inference, that is indeed the right question: which region, which DPA, which retention period. During training, the focus shifts. A fully trained model is a file. Whoever has this file can run, copy, sell, and still load the model in five years, even if the provider has long since shut down.
This post is the map for this journey. It shows the four ways to train a model in Europe, with prices pulled directly from the providers' price lists on September 21, 2026, with the base models whose licenses permit it, and with the question that ultimately decides sovereignty. Whether fine-tuning is even worth it for you is a different question, which we have answered elsewhere.
The Essentials in Brief
Three things must be verified separately: training data, computing capacity, and weights. Many offerings cover two of these and remain silent on the third. The third is the one that lasts.
European specialty providers are significantly cheaper than hyperscalers in their EU regions. An H100 hour costs 2.80 euros at OVHcloud and 2.87 euros at Scaleway. Azure charges 7.79 euros in Germany, AWS in Stockholm charges the equivalent of 6.42 euros. For eight-GPU systems, the gap gets wider, not smaller.
AWS does not list any H100 instance for Frankfurt. In the on-demand price list for eu-central-1, the fastest training GPU available is only the A100 from the p4d family. You can get H100s in the EU at AWS in Stockholm, and H200s in Spain.
Compute time is the cheapest part. According to common memory calculations, a QLoRA run on a 70B model fits on a single H100 and costs a low double-digit sum in Europe. Data preparation and evals are what make it expensive.
A provider can pull the rug out from under you. OpenAI is currently winding down its fine-tuning platform: no new users, and according to the documentation, existing users can only start jobs "for the coming months". If you don't have the weights, you don't have a model.
There are plenty of European base models under Apache 2.0, from Mistral Large 3 to Apertus and EuroLLM. Still, a European model is not a prerequisite. What matters is the license and where you run it.
Table of Contents
What "training in Europe" concretely means
An overview of the four paths
Path 1: Managed Fine-Tuning API
Path 2: GPU hours with a European provider
Path 3: EuroHPC AI Factories
Path 4: On-premise hardware
Which machine a run actually needs
What a training run ultimately costs
Which base model you can use
Where the weights are, and why that is the real question
What the AI Act changes about this
Evaluation: measuring in German
How we walk through this with you
Frequently Asked Questions
What "training in Europe" concretely means
A training run touches three locations, and a provider can be European in two of them and not in the third.
The first location is your dataset. It leaves your premises, lands in object storage, and is loaded into the training process from there. The same questions apply here as with any data processing agreement: region, DPA, deletion periods, sub-processors. The second location is the GPU itself—the data center where the run takes place. The third location is where the finished weights are stored, and many offerings simply say nothing about this.
This separation is not a mere formality. It explains why two providers, who both write "GDPR-compliant" and "EU data center" on their website, end up leading to completely different dependencies. With one, you download a file after the run. With the other, you get an endpoint and a model ID.
An overview of the four paths
Path | How fast to get started | Do you get the weights? | When does it make sense |
|---|---|---|---|
Managed Fine-Tuning API | Hours | Usually no, depending on the provider | First attempt, unclear benefits, no MLOps team |
GPU hours with an EU provider | Days | Yes, the file is yours | The standard case for production projects |
EuroHPC AI Factory | Weeks (Application) | Yes | SMEs and startups with high compute needs and time |
On-premise hardware | Months | Yes, including the bare metal | Continuous load, strict compliance requirements, no data egress allowed |
Most companies we talk to end up choosing Path 2. Path 1 is a sensible entry point when no one knows yet whether training will actually help. Path 3 is underestimated but has strict access criteria. Path 4 pays off less frequently than it is discussed.
Path 1: Managed Fine-Tuning API
You upload a JSONL file, select a base model, start a job, and shortly after receive a model ID that you can query like any other model. No cluster, no scheduler, no CUDA version. This is the fastest way to get from an idea to a measurable answer.
Payment is based on training tokens. Fireworks tiers by model size: $0.50 per million tokens for models up to 16B parameters, $10.00 beyond 300B. Together ranges from $0.34 to $40.00 per million tokens depending on the model, with a minimum fee per job. Mistral charges $1 per million training tokens for its classifier models, with a minimum of $4 per job and a $2 storage fee per model per month. However, its corresponding documentation page has carried a deprecation notice for some time; Mistral now points to a different offering for custom models.
OpenAI is missing from this list, and the reason is educational. Its own documentation now states: "OpenAI is winding down the fine-tuning platform. The platform is no longer accessible to new users, but existing users of the fine-tuning platform will be able to create training jobs for the coming months." Already trained models remain accessible for inference until their base model is deprecated. The prices are still in the price list, $3.00 per million training tokens for gpt-4o-mini and $25.00 for gpt-4.1. For a new project, they are irrelevant because you can no longer sign up.
For a European project, this path has two catches, and the second is the larger one.
The first is the provider's location. Together and Fireworks are US companies. EU data residency can be booked with some, but it is a configuration, not a default state, and it does not change who the company is subject to. We have calculated the four typical sourcing paths for US models elsewhere.
The second catch is directly related: without weights, your model's survival is tied to the life cycle of a third-party company. It exists only as a model ID in a system you do not control, and if that system is wound down, the training effort is lost. This is not a hypothetical concern. It is written in the paragraph above. Things usually look better on platforms for open models, where you can frequently download the LoRA adapters. This is the point you should clarify before your first job, not after the third.
If you want to generate training data using a frontier model, another layer comes into play: the terms of use of frontier providers prohibit doing so for competing models. We have compared the full text of these clauses.
Path 2: GPU hours with a European provider
You rent a machine, upload your dataset, run Axolotl, torchtune, or your own script, and ultimately download a directory of weights. Slightly more work than Path 1, and the difference in the result is ownership.
Prices change, so here is the status as of this date. We retrieved the following values on September 21, 2026, directly from the providers' own price lists: for OVHcloud from the public order catalog for Germany, for Azure from the Retail Prices API, and for AWS from the Price List API.

The difference is not a rounding error. Azure charges nearly three times in Germany for a single H100 compared to what OVHcloud charges in France. And the gap grows with the size of the system: an eight-GPU node with H100 SXM costs 25.33 euros per hour at Scaleway, which is 3.17 euros per GPU. The same configuration costs 109.75 euros per hour at Azure in West Europe, which is 13.72 euros per GPU.
Provider | HQ and Region | Configuration | List Price per Hour |
|---|---|---|---|
OVHcloud | France | 1× H100 80 GB | €2.80 |
OVHcloud | France | 1× A100 80 GB | €2.75 |
OVHcloud | France | 8× H200 141 GB | €42.00 (€5.25 per GPU) |
Scaleway | France, Paris | 1× H100 PCIe 80 GB | €2.87 |
Scaleway | France, Paris | 8× H100 SXM 80 GB | €25.33 (€3.17 per GPU) |
Scaleway | France, Paris | 8× B300 SXM | €60.00 (€7.50 per GPU) |
Nebius | Netherlands, Finland Data Center | H100, On-Demand | $3.85 (preemptible $2.15) |
Nebius | Netherlands, Finland Data Center | H200, On-Demand | $4.50 (preemptible $2.45) |
Azure | USA, Germany West Central Region | 1× H100 NVL (NC40ads H100 v5) | €7.79 |
Azure | USA, West Europe Region | 8× H100 SXM (ND96isr H100 v5) | €109.75 (€13.72 per GPU) |
AWS | USA, Stockholm Region | 1× H100 (p5.4xlarge) | $7.36 |
AWS | USA, Spain Region | 8× H200 (p5en.48xlarge) | $68.36 ($8.55 per GPU) |
AWS | USA, Frankfurt Region | no H100 in price list, only 8× A100 40 GB | $27.43 |
The last row is the one that consistently surprises clients during discussions. Anyone who naturally assumes they can train on H100s in Frankfurt because AWS runs a large data center there will find no p5 instance in the on-demand price list for eu-central-1. The next best training GPU there is the A100 with 40 GB. In the EU, H100s are available from AWS in Stockholm, and H200s in Spain. For a project with the constraint "data must remain in Germany," this is a hard blocker, and it usually only gets noticed once the architecture has already been designed.
Two notes on the figures: These are list prices without discounts, without reservations, and without VAT, and they only cover the GPU. Storage, outbound traffic, and networking between nodes are extra. We converted the US dollar values in the diagram using the ECB reference rate from September 18, 2026, where 1 euro equals 1.1460 US dollars.
Path 3: EuroHPC AI Factories
There is public computing capacity in Europe that many companies do not have on their radar. The EuroHPC Joint Undertaking has now designated 19 AI Factories and 13 AI Factory Antennas, distributed across Finland, Germany, France, Italy, Spain, Sweden, Luxembourg, Greece, Slovenia, Bulgaria, Austria, the Czech Republic, Lithuania, the Netherlands, Poland, and Romania, among others.
Access is tiered. Playground Access provides small quotas to get started, Fast Lane Access offers up to 50,000 GPU hours, and Large Scale Access provides even more. All three are free of charge. There is also a track for research and funded collaborative projects.
The restriction is built right into the access criteria: the free innovation tracks are aimed at SMEs and startups in the field of AI. A corporation with 4,000 employees does not qualify; a paid model applies to commercial use outside these categories. However, those who meet the criteria can get compute time on a scale that exceeds any reasonable cloud budget. JUPITER in Jülich, officially operational since November 2025, is Europe's first exascale computer and runs on roughly 24,000 GH200 Grace Hopper Superchips.
Realistically, this is not a path for a quick test. Applications take time, and the environment is an HPC cluster with Slurm and a module system. If you expect a cloud VM with SSH and root access, you are bringing the wrong tools. For a planned, larger initiative, it is still worth a look, simply because the alternative comes out of your budget.
Path 4: On-premise hardware
The fourth path is the one that gets talked about the most and calculated the least. Having your own GPU in your own rack resolves any residency question in one go, and there are industries where this is precisely the requirement.
The math is simple enough to do yourself. An H100 hour costs 2.80 euros at OVHcloud. A full year of continuous operation—8,760 hours—costs around 24,500 euros. This is the figure your own hardware has to compete against, including procurement, depreciation, electricity, cooling, rack space, and the person operating the machine. The decisive factor is utilization: fine-tuning runs are rarely a continuous load. If you train for twelve hours every two months, you are buying a machine that draws power 99 percent of the time for no reason.
It is a different story if continuous inference runs on the same hardware after training. Then, a sporadically used training machine becomes a permanently utilized inference server, and the calculation flips. The break-even figures circulating online for self-hosting versus token prices contradict each other by orders of magnitude, which is why none are listed here. Calculate using your own volumes, the prices above, and an honest assumption about utilization.
Which machine a run actually needs
Before choosing a provider, you should know which machine you actually need. The answer is often smaller than expected, and that is due to LoRA.
LoRA freezes the weights of the base model and only trains small low-rank matrices on top. The original paper by Hu et al. reported a 10,000-fold reduction in trainable parameters and a three-fold lower GPU memory requirement compared to full fine-tuning with Adam for GPT-3 with 175B parameters. QLoRA additionally quantizes the frozen base model to 4-bit. With this, Dettmers et al. demonstrated the fine-tuning of a 65B model on a single 48 GB GPU with matching quality compared to full 16-bit training.

The practical consequence: according to this calculation, a 70B model with QLoRA requires about 46 GB and therefore fits on a single 80 GB H100. Full fine-tuning of the same model requires about 672 GB, meaning an eight-GPU node. Between these two options, Scaleway's price differs by almost a factor of nine.
Whether LoRA is qualitatively sufficient has now been well researched. John Schulman and Thinking Machines compiled the conditions in 2025: LoRA matches the quality of full fine-tuning in instruction tuning and reasoning, as long as the dataset does not exceed the capacity of the adapters and the adapters are placed on all layers, including MLP. If you only apply LoRA to the attention layers, you lose measurable quality, even with the same parameter count. The learning rate must be roughly ten times higher than in full fine-tuning. In RL post-training, LoRA is sufficient even with a very small rank, because a policy gradient update per token carries about a thousand times less information than an SFT step.
The fact that LoRA is sufficiently powerful also highlights the uncomfortable side of this research. Lermen et al. used LoRA on a single GPU and for less than $200 to strip the safety training out of Llama-2-Chat-70B until the refusal rate fell to about one percent, while general benchmarks remained stable. When you train, you change behavior, including behavior you did not intend to touch.
What a training run ultimately costs
There are no clean benchmarks for the duration of a run. What we do have are real-world experiences. The following data comes from practitioner reports, not controlled measurements, and is correspondingly rough. The prices, on the other hand, are the verified ones listed above.
Run | Reported Duration | Machine | Compute Cost in Europe |
|---|---|---|---|
8B, QLoRA, ~10,000 examples | under 2 hours | 1× A100 | approx. €6 |
70B, QLoRA | 8 to 12 hours | 1× H100 | €22 to €34 |
70B, full fine-tuning | 24 to 48 hours | 8× H100 SXM | €610 to €1,220 |
The order of magnitude is the real takeaway. A first serious attempt at fine-tuning on European hardware costs less in compute time than a single day of consulting. The budget goes elsewhere: into preparing and cleaning the training data, into building a test set you can trust, and into the runs you end up throwing away. Expect multiple attempts, not just one.
And factor in the subsequent hosting costs. Your custom model has to run, typically under vLLM or TGI, and then you pay for GPU hours even when no one is sending queries. This is the point where a training project becomes an operational decision.
Which base model you can use
Fine-tuning requires that you have the weights of the base model and that its license allows you to modify it and run the result commercially. Apache 2.0 and MIT are the worry-free cases here. Europe has more of them than the public discussion suggests.
Model | Origin | Sizes | License |
|---|---|---|---|
Mistral Large 3 | France | 675B MoE, with ~41B active | Apache 2.0 |
Ministral 3 | France | 14B, 8B, 3B | Apache 2.0 |
Mistral Small 4 | France | compact, Instruct and Reasoning in one model | Apache 2.0 |
Apertus | Switzerland, EPFL and ETH Zurich | 70B, 8B | Apache 2.0 |
EuroLLM | EU consortium around Unbabel and IST Lisbon | 22B, 9B, 1.7B | Apache 2.0 |
Salamandra and ALIA-40B | Spain, Barcelona Supercomputing Center | 40B, 7B, 2B | Apache 2.0 |
Teuken-7B | Germany, OpenGPT-X | 7B | Apache 2.0 in the commercial variant |
Two things should be kept distinct here. First, not every model from a European provider is open. Mistral Medium 3.5 is under its own license, and several Small variants run under the Premier label. The provider's origin says nothing about the license.
Second, a European base model is not a prerequisite for sovereignty. A Llama or Qwen with open weights runs on an H100 in Gravelines just like a Mistral, and once downloaded, no communication with the manufacturer occurs. What you need to check are the license terms, which for Llama and Gemma go beyond Apache 2.0, such as naming requirements for derivative models. Sovereignty is established at the deployment location. The mailing address of the training lab does not change that.
Language coverage is where European models actually have a distinct advantage. Teuken-7B, EuroLLM, and Salamandra are explicitly trained on the official languages of the EU. Whether this impacts your specific task can only be determined by a test on your own data.
Where the weights are, and why that is the real question
Up to this point, "who owns the weights" sounded like a question of independence from the provider. The winding down of the OpenAI platform shows that this question becomes practical, and much faster than the depreciation period of a training project. It is also a data protection issue.
A model trained on your data can output training data again. Research on this is clearer than many would like: there is currently no practical defense with robust theoretical guarantees for training data extraction attacks on fine-tuned models. Differential Privacy mitigates the risk but visibly degrades quality. At the same time, new classes of attacks are emerging, such as prompts specifically designed to induce states of high uncertainty to lure out memorized passages.
This makes the storage location of the weight file a question you must be able to answer. If the file is in your own storage in the EU, it is an asset like a database. If it is in a third-party system whose operator you do not know, it is an open loop in your record of processing activities. We have detailed the legal basis for training, when a model still has personal references, and what happens in the event of a deletion request after the run, complete with references.
Practically, this leads to a short list: before your first run, clarify where the artifacts land, who besides you can access them, how long intermediate states are kept, and whether you ultimately get a file or just an endpoint.
What the AI Act changes about this
Less than most fear. The worry of automatically becoming a provider of a GPAI model through fine-tuning and thus inheriting the full obligations of the AI Act usually dissipates upon closer inspection.
The Commission established a rule of thumb in its guidelines from July 18, 2025: a substantial modification is generally only assumed if the modification consumes more than one-third of the training compute power of the original model. If this compute power is unknown, alternative thresholds apply, derived from the thresholds that make a model a GPAI model in the first place. A LoRA run of twelve hours on an H100 is many orders of magnitude below that.
Thus, you are generally subject to the obligations of the deployer. The details and current deadlines under the Digital Omnibus can be found in the article on the legal framework.
Evaluation: measuring in German
A training run without evaluation is just an opinion. The standard tool is EleutherAI's lm-evaluation-harness, which covers over 200 tasks and can target both local models and OpenAI-compatible endpoints. Stanford's HELM and Hugging Face's LightEval serve the same purpose with different focuses.
For German-language applications, there are two additions that are worthwhile. SuperGLEBer bundles 29 tasks for German language understanding, from document classification to sequence tagging and question answering, and was published at NAACL 2024. The Occiglot project maintains a Euro-LLM leaderboard with German-language versions of common benchmarks.
A methodological catch is well known here and too rarely mentioned: many German benchmarks are machine-translated from English. They then measure translation artifacts rather than German language competence. That is not enough for a purchasing decision. What ultimately counts is a test set made of your own cases, labeled by your own people, and established before the first run starts.
How we walk through this with you
If you have an upcoming training project, we will walk through your case in 30 minutes: which of the four paths fits your compliance requirements, which base model is legally clean, roughly what the run will cost, and where the weights will end up afterward. Engineering perspective included. If the answer is that a prompt and a RAG index solve your problem more cheaply, we will tell you. Book a demo.
Frequently Asked Questions
Can I fine-tune an LLM in Europe in a GDPR-compliant way?
Yes. You need a solid legal basis for processing your data, a provider with a DPA and an EU data center for the run itself, and a decision on where the finished weights will reside. The third point is missing from most setups. The legal side is detailed in the article on GDPR and the AI Act with source references.
What does fine-tuning cost in Europe?
Compute time is inexpensive. According to practitioner reports, a QLoRA run on a 70B model takes 8 to 12 hours on a single H100 and costs around 22 to 34 euros at a list price of 2.80 euros per hour. Full fine-tuning of the same model on eight H100s runs around 610 to 1,220 euros. The larger expenses are data preparation, evaluation, and the runs that do not work.
Which European providers offer GPUs for fine-tuning?
OVHcloud and Scaleway from France, as well as Nebius with its data center in Finland, offer H100s and newer cards by the hour, with list prices between 2.80 and 3.85 euros or US dollars per GPU hour. In addition, there is IONOS with servers in Germany and, for qualified SMEs, the EuroHPC AI Factories.
Do I need a European base model?
No. What matters is where the model runs and where the weights are stored. A model with open weights does not communicate with its manufacturer after being downloaded. You should check the license: Apache 2.0 and MIT are straightforward, while Llama and Gemma come with additional requirements.
Do I get the weights when I use a fine-tuning API?
That depends on the provider and must be clarified before the first job. OpenAI does not provide weights for download for fine-tuned models and is winding down the platform anyway, having closed it to new users according to the documentation. Platforms for open models frequently release the trained adapters. Without your own file, you are tied to the provider's life cycle.
Can we use compute time at EuroHPC?
If you are an SME or startup in the AI sector, yes, and free of charge. Fast Lane Access offers up to 50,000 GPU hours, and Large Scale Access goes beyond that. Larger companies do not qualify for the free innovation tracks. Plan ahead for the application process and expect an HPC environment instead of a cloud VM.
Is a single GPU enough for a 70B model?
For QLoRA, yes. The memory requirement is mathematically around 46 GB, which fits on an 80 GB H100. 16-bit LoRA requires about 146 GB, and full fine-tuning requires roughly 672 GB, meaning an eight-GPU node. Real-world values depend on sequence length, batch size, and optimizer.
Does fine-tuning make me a provider under the EU AI Act?
Typically, no. The Commission's guidelines from July 2025 only assume a substantial modification if the modification consumes more than one-third of the training compute power of the original model. No standard fine-tuning on enterprise data comes anywhere near this.
Sources
OVHcloud, Public Cloud Prices, values from the public order catalog for Germany, retrieved September 21, 2026
Scaleway, GPU Prices, Zone PAR-2, retrieved September 21, 2026
Nebius, Price Overview, retrieved September 21, 2026
Microsoft Azure Retail Prices API, regions Germany West Central, West Europe, and Sweden Central, retrieved September 21, 2026
AWS EC2 On-Demand Prices, values from the Price List API for eu-central-1, eu-north-1, eu-west-1, and eu-south-2, retrieved September 21, 2026
OpenAI, Supervised Fine-Tuning with the note on winding down the platform, OpenAI, API Prices, Fireworks AI, Prices, and Together AI, Prices for fine-tuning by training tokens
Mistral, Fine-Tuning Documentation (with deprecation notice) and Mistral, Model Overview with Licenses
EuroHPC JU on JUPITER, November 17, 2025
Hu et al., LoRA: Low-Rank Adaptation of Large Language Models (arXiv 2106.09685) and Dettmers et al., QLoRA (arXiv 2305.14314)
John Schulman and Thinking Machines Lab, LoRA Without Regret, September 29, 2025
Modal, How much VRAM do I need for LLM fine-tuning?, September 1, 2024, basis of the memory values in the diagram
Lermen et al., LoRA Fine-tuning Efficiently Undoes Safety Training in Llama 2-Chat 70B (arXiv 2310.20624)
Retracing the Past: LLMs Emit Training Data When They Get Lost (arXiv 2511.05518) on training data extraction
European Commission, Guidelines on the scope of obligations for GPAI providers, July 18, 2025, with the one-third threshold for modifications
SuperGLEBer, German Language Understanding Evaluation Benchmark (NAACL 2024), Occiglot, and lm-evaluation-harness
Mistral AI on Mistral Large 3 and Ministral 3, ETH Zurich on Apertus, EuroLLM, Salamandra and ALIA, and OpenGPT-X on Teuken-7B
As of: September 21, 2026 · kontinent.ai. All prices retrieved from providers' price lists on September 21, 2026, list prices excluding discounts and VAT. US dollar values converted at the ECB reference rate of September 18, 2026. GPU prices change frequently; check the original directory before making a decision. No legal advice.