|
|
||
|---|---|---|
| .vscode | ||
| Finetunning | ||
| Traduction | ||
| .gitignore | ||
| README.md | ||
| requirements.txt | ||
| run.bat | ||
README.md
Traduction PDF avec Ollama
Ce projet permet de traduire un document PDF page par page en utilisant un modèle LLM local (Ollama) optimisé pour la traduction.
Prérequis
- Python (version 3.8 ou supérieure)
- Ollama installé et en cours d'exécution sur ta machine (en mode "serveur")
- Un document PDF à traduire
Installation
Étapes d'installation
-
Cloner ou télécharger le projet
cd chemin/vers/votre/projet git pull https://git.alex-design.fr/Alex/python.traduction -
Installer les dépendances Python
pip install -r requirements.txt
Puis faire :
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
- Placer votre fichier PDF dans le répertoire
Traductiondu projet avec le nom configuré dansmain.py(par défaut :TaniaBorecMemoir(Ukr).pdf)
Mode opératoire
Préparation
- Démarrer Ollama en mode serveur sur votre machine (port 11434 par défaut)
ollama serve
Exécution
- Lancer le script de traduction
python main.py
-
Le programme va :
- Extraire le texte de toutes les pages du PDF
- Supprimer les numéros de pages
- Regrouper les paragraphes qui s'étendent sur plusieurs pages
- Diviser le texte en chunks raisonnables (environ 1500 caractères)
- Envoyer chaque chunk au LLM pour traduction
- Afficher la progression dans le terminal
-
Le résultat final sera généré dans un fichier PDF nommé
[nom_original](FR).pdf- Exemple :
TaniaBorecMemoir(Ukr)(FR).pdf
- Exemple :
Fichier de sortie
Le PDF généré contient :
- Titre : "Traduction - Ukrainien vers Français"
- Contenu : Les traductions de tous les chunks, préservant la mise en page (sauts de ligne, paragraphes)
- Police : Support complet du cyrilique (déjà testé avec l'ukrainien)
Configuration
Vous pouvez modifier les paramètres suivants dans main.py :
PDF_PATH: Chemin du fichier PDF à traduireOLLAMA_MODEL: Nom du modèle Ollama à utiliserOLLAMA_URL: URL du serveur Ollama (par défaut :http://localhost:11434/api/generate)OUTPUT_PDF_PATH: Chemin et nom du fichier PDF de sortie (généré autoamtiquement)
Finnetunning
Le finne-tunning permet d'avoir une meilleur traduction. C'est un processus long en temps de calcul, mais permet une traduction plus précise.
Le principe est le suivant :
1️⃣ Dataset d’entraînement (pairs.json)
↓
2️⃣ Fine-tuning LoRA (finetuning.py)
↓
3️⃣ Validation / Évaluation (validation.py)
↓
4️⃣ Merge LoRA + modèle de base (mergeLora.py)
↓
5️⃣ Conversion en GGUF
↓
6️⃣ Ollama (inférence finale)
validation
e script tests plusieurs prompt et renvoie celui avec le meilleur score BLEU.
Il faut ensuite copier ce prompt dans le fichier modelFile.