Ce dépôt sert de complément technique à notre article sur LinkedIn. Il héberge le code de démonstration ainsi que les outils nécessaires pour reproduire les benchmarks présentés.
L'objectif est d'illustrer l'utilisation de modèles MLX (notamment pour la conversion de documents avec Granite Docling) et de comparer leurs performances.
Ce projet utilise uv pour la gestion des dépendances et de l'environnement virtuel. Assurez-vous d'avoir uv installé sur votre machine.
Pour installer les dépendances du projet, exécutez simplement :
uv syncCela créera un environnement virtuel et installera tous les paquets nécessaires listés dans uv.lock.
Le projet contient deux scripts principaux que vous pouvez lancer directement avec uv.
Le script demo.py télécharge un exemple de fichier PDF, convertit une page spécifique en image, et utilise le modèle ibm-granite/granite-docling-258M-mlx pour extraire ou convertir le contenu.
Pour lancer la démo :
uv run demo.pyLe script benchmark_docling.py permet de tester et comparer les performances d'inférence de plusieurs modèles (MLX vs Transformers/MPS). Il génère des métriques sur le temps de génération et le temps pour le premier token.
Pour lancer le benchmark :
uv run benchmark_docling.pyLes résultats seront sauvegardés dans un fichier benchmark_inference_engine.json à la racine du projet.
demo.py: Script de démonstration simple pour la conversion de page PDF vers Docling.benchmark_docling.py: Moteur de benchmark complet comparant différents modèles et backends.benchmark_inference_engine.ipynb: Notebook Jupyter pour l'exploration et la visualisation des benchmarks.pyproject.toml/uv.lock: Fichiers de configuration et de verrouillage des dépendances.
Ce code est fourni à titre d'exemple pour accompagner l'article LinkedIn.