Evaluator
Evaluator
Evaluator utilise un Vision Language Model (Qwen3-VL-4B) fine-tuné avec DoRA pour évaluer automatiquement l'état physique de produits d'occasion. Le modèle analyse les photos du produit, croise avec le titre, la description et le prix, puis génère une évaluation de condition avec justification en langage naturel. Entraîné sur 521 samples labellisés, optimisé pour tourner sur un RTX 3060 12GB grâce à la quantization 4-bit.
Contexte
Evaluator utilise un Vision Language Model (Qwen3-VL-4B) fine-tuné avec DoRA pour évaluer automatiquement l'état physique de produits d'occasion. Le modèle analyse les photos du produit, croise avec le titre, la description et le prix, puis génère une évaluation de condition avec justification en langage naturel. Entraîné sur 521 samples labellisés, optimisé pour tourner sur un RTX 3060 12GB grâce à la quantization 4-bit.
Le Parcours
Le Défi
Évaluer l'état d'un produit d'occasion est subjectif et chronophage. Les marketplaces dépendent de descriptions vendeurs souvent mensongères. Aucune solution automatisée n'existait pour le marché français.
La Solution
Fine-tuner un Vision Language Model (Qwen3-VL) avec DoRA pour qu'il "regarde" les photos comme un expert humain. Le modèle croise analyse visuelle + métadonnées textuelles pour une évaluation multimodale. Optimisé pour GPU consumer grâce à 4-bit quantization.
L'Impact
Première application de Qwen3-VL au product condition assessment. Évaluation en ~3 secondes vs 2-5 minutes manuelles. Pipeline ML complet : données → training → inférence → CLI.
Fonctionnalités Clés
DoRA Fine-tuning
Weight-Decomposed Low-Rank Adaptation — plus performant que LoRA standard. Décompose les poids en magnitude + direction pour une convergence supérieure.
Multi-image reasoning
Le modèle analyse 1 à 8 images par produit simultanément, identifiant rayures, usure, dommages à travers différents angles.
Explicabilité
Génère des justifications en langage naturel : "Bon état. Quelques traces d'usure sur les bords mais écran sans rayures visibles."
GPU Consumer-grade
Tourne sur RTX 3060 12GB grâce à 4-bit QLoRA (NF4), gradient checkpointing et Flash Attention 2. De 16GB → 8-11GB VRAM.
Pipeline production-ready
CLI complète avec Typer + Rich. Modes batch, dry-run, validation dataset. Tests unitaires, Pydantic v2, configuration YAML.
French-native
Fine-tuné sur des descriptions produits en français avec labels de condition localisés : Neuf, Comme neuf, Très bon état, Bon état, État correct.
Processus de Développement
Data Collection
Scraping de 521 annonces LeBonCoin avec images, descriptions et labels de condition manuels. 169 images produits.
Architecture Design
Choix de Qwen3-VL-4B + DoRA (rank=8, alpha=16) via ms-swift. Configuration YAML avec Pydantic v2 pour type safety.
Memory Optimization
4-bit quantization NF4 + double quant + gradient checkpointing + Flash Attention 2. Compression de 16GB → 8-11GB VRAM.
Training
3 epochs, lr=2e-4, cosine schedule. Batch size 1 avec gradient accumulation 16. ~2-4h sur RTX 3060.
Inference Pipeline
Predictor class avec support multi-images, batch processing, temperature control (0.1) pour prédictions déterministes.