Traduire des documents en local : l'alternative à DeepL qui ne fuit pas
Coller un contrat, un rapport financier ou un dossier RH dans DeepL ou ChatGPT, c'est envoyer ce document sur des serveurs que vous ne contrôlez pas. La traduction IA locale résout ce problème : un LLM multilingue tourne sur votre machine, aucune donnée ne sort. Ce guide montre quels modèles choisir, comment préserver la mise en forme des fichiers, et comment traduire des dizaines de documents par lots avec un simple script Ollama.
#Pourquoi ne pas envoyer vos documents à DeepL
DeepL et Google Translate sont excellents, mais leur modèle économique repose sur le cloud : votre texte transite par leurs serveurs et, selon l'offre, peut être conservé ou utilisé pour améliorer les modèles. Pour un email anodin, peu importe. Pour un contrat sous NDA, un brevet en cours de dépôt, un bilan comptable ou des données personnelles de salariés, c'est un risque juridique et concurrentiel concret.
La traduction IA locale change la donne : le modèle est téléchargé sur votre disque et s'exécute sur votre CPU ou GPU. Aucune requête réseau, aucun compte, aucune limite de volume. Vous pouvez traduire un dossier entier de documents confidentiels sans qu'un octet ne quitte votre poste — y compris hors-ligne, dans un avion ou sur un réseau isolé.
- Confidentialité
- Contrats, brevets, données médicales ou RH restent sur votre machine.
- Coût nul à l'usage
- Pas d'abonnement ni de facturation au caractère : traduisez 10 ou 10 000 pages au même prix.
- Hors-ligne
- Fonctionne sans connexion, utile sur poste isolé ou en déplacement.
- Volume illimité
- Aucun quota mensuel ni throttling comme sur les API cloud.
#Quels modèles locaux traduisent vraiment bien
Tous les LLM ne se valent pas en traduction. Un bon traducteur local doit avoir été entraîné sur un large corpus multilingue et gérer finement le français. En 2026, quelques familles se détachent nettement pour un usage auto-hébergé.
- Qwen3 14B / 32B
- Excellent en multilingue, très bon en français, gère bien les nuances et le vocabulaire technique. 14B (≈9 Go VRAM en Q4) est le meilleur compromis qualité/ressources.
- Gemma 2 27B
- Traductions fluides et naturelles, ponctuation française soignée. ≈16 Go en Q4, idéal sur RTX 4080 16GB ou Mac à mémoire unifiée.
- Aya 23 (8B / 35B)
- Modèle de Cohere pensé pour le multilingue (23 langues). Le 8B tourne partout (≈5 Go) et traduit déjà remarquablement.
- Mistral Small 3
- Bon niveau en français langue native, rapide, ≈14 Go en Q4. Bon choix pour du volume.
- Llama 3.3 70B
- Qualité proche du cloud si vous avez le matériel (≈40 Go en Q4, RTX 4090 ou Mac 48 Go+). Réservé aux traductions exigeantes.
Les modèles spécialisés « traduction » type NLLB ou Opus-MT existent aussi et sont très légers, mais un LLM généraliste récent les dépasse souvent sur les textes longs et le respect du contexte (registre, terminologie métier, cohérence d'un document entier).
#Prérequis et installation
Le socle est classique : Ollama comme moteur d'inférence, un modèle multilingue, et Python pour les scripts de traitement de fichiers. Ollama écoute par défaut sur http://localhost:11434.
- Ollama installé
- Le daemon qui télécharge et exécute les modèles. Voir le guide d'installation si ce n'est pas déjà fait.
- Un GPU confortable
- RTX 3060 12GB minimum pour un 14B en Q4. Ça tourne aussi sur CPU, mais plus lentement.
- Python 3.10+
- Pour manipuler DOCX, PDF et Markdown et appeler l'API Ollama.
#Premier test de traduction
Avant d'automatiser, validez la qualité sur un extrait représentatif. La clé d'une bonne traduction locale tient dans le prompt système : il fixe le rôle, la langue cible et surtout la consigne de ne rien ajouter.
#Préserver la mise en forme (DOCX, PDF, Markdown)
Traduire du texte brut est facile ; garder la mise en forme d'un document réel l'est moins. La bonne approche n'est pas de balancer le fichier entier au modèle, mais de traduire chaque segment de texte à sa place, en laissant la structure intacte.
#Fichiers Word (DOCX)
python-docx expose chaque paragraphe et chaque cellule de tableau. On traduit le texte de chaque « run » en conservant le style, puis on réécrit le fichier. La mise en page, les titres et les tableaux sont préservés.
#Markdown
Le Markdown est le format le plus simple à traduire proprement : il suffit d'indiquer au modèle de préserver la syntaxe. Les titres, listes, liens et blocs de code restent intacts si le prompt l'exige.
Le PDF est le cas le plus délicat : c'est un format de présentation, pas de contenu. On extrait le texte avec pypdf, on le traduit, puis on le réémet dans un nouveau document (souvent un DOCX ou un PDF généré). Reproduire la mise en page exacte d'un PDF est rarement rentable ; visez un document lisible plutôt qu'une copie pixel-perfect.
#Traduction par lots avec Ollama
L'intérêt majeur du local, c'est le volume sans facture. Un script qui parcourt un dossier et traduit chaque fichier transforme votre poste en service de traduction par lots. Voici un script qui traite tous les .docx d'un répertoire.
#Améliorer la qualité des traductions
Un LLM local traduit bien par défaut, mais quelques réglages font passer le résultat de « correct » à « publiable », surtout sur des textes métier.
- 01Fournir un glossaireAjoutez au prompt système un lexique des termes métier et de leur traduction imposée (raison sociale, noms de produits, acronymes). Le modèle respectera votre terminologie plutôt que d'inventer.
- 02Découper intelligemmentTraduisez par paragraphe ou par section, pas phrase par phrase : le modèle a besoin de contexte pour bien gérer les accords, les reprises pronominales et le registre.
- 03Donner le contexte du documentPrécisez la nature du texte (« contrat commercial », « notice technique », « email interne ») dans le prompt. Le registre et le vocabulaire s'ajustent en conséquence.
- 04Relire les passages critiquesPour un contrat ou un document légal, une relecture humaine des clauses sensibles reste indispensable — le local vous donne la confidentialité, pas l'infaillibilité.
- 05Monter en modèle si besoinSi la qualité plafonne, passez de 14B à 32B ou 70B. Le gain est net sur les phrases longues et la finesse terminologique.
#Dépannage
- Le modèle ajoute des commentaires
- Renforcez la consigne « renvoie UNIQUEMENT la traduction » et baissez la température. Certains modèles préfixent « Voici la traduction : » — retirez-le en post-traitement si besoin.
- Il traduit dans la mauvaise langue
- Nommez explicitement la langue cible dans le prompt et donnez un exemple. Sur un texte court, un modèle peut se tromper de langue.
- La mise en forme DOCX saute
- C'est le remplacement de para.text qui aplatit les runs. Traduisez run par run pour les documents fortement mis en forme.
- Traduction lente sur gros volume
- Vérifiez que le modèle tient en VRAM (sinon offload CPU = lenteur). Réduisez la taille du modèle ou utilisez OLLAMA_KEEP_ALIVE.
- Blocs de code Markdown traduits
- Insistez dans le prompt : « ne traduis pas le contenu des blocs de code ». Sinon, extrayez-les avant traduction et réinjectez-les après.
- Contexte trop long tronqué
- Un très gros document dépasse la fenêtre de contexte. Découpez-le en sections et traduisez chacune séparément.
#Pour aller plus loin
La traduction IA locale s'appuie sur un socle Ollama bien choisi. Ces guides du site complètent la mise en place :
- Installer Ollama
- Pour poser le moteur d'inférence si ce n'est pas déjà fait.
- Q4, Q5, Q8 : quelle quantification choisir
- Pour arbitrer entre qualité de traduction, vitesse et VRAM selon votre GPU.
- n8n + Ollama : automatiser avec une IA locale
- Pour brancher la traduction dans un workflow no-code (emails entrants, fichiers déposés, etc.).
Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.