Spaces:
Sleeping
Sleeping
| # Estimation des Ressources : Projet "Dataset Souverain & IA" | |
| Ce document détaille les prérequis techniques pour passer d'un simple scraper à une **usine de données pour l'IA** (LLM Fine-tuning & RAG). | |
| --- | |
| ## 1. 💾 Stockage : Le Nerf de la Guerre | |
| Pour un dataset "conséquent" (visant le fine-tuning d'un LLM 7B ou 13B paramètres sur des contextes africains), on ne parle plus en gigaoctets mais en téraoctets. | |
| ### Estimation pour 10 Millions d'articles/documents (High Quality) : | |
| * **Données Brutes (HTML/PDF)** : ~500 Go - 1 To (pour archives et traçabilité). | |
| * **Données Nettoyées (Texte brut/JSON)** : ~50 Go - 100 Go (TEXT ONLY). | |
| * **Index Vectoriel (RAG)** : C'est le plus lourd. | |
| * Si on découpe (chunk) chaque doc en 4 segments. | |
| * 40 millions de vecteurs (768 dimensions float32). | |
| * **Taille RAM/Disque Qdrant/Typesense** : ~150 Go - 200 Go uniquement pour les vecteurs. | |
| **Recommandation Disque :** **2 To NVMe SSD** minimum. Les disques durs classiques (HDD) tueront les performances de votre moteur de recherche vectoriel. | |
| --- | |
| ## 2. 🖥️ Matériel pour le Scraper (L'Usine) | |
| Le scraping n'est pas limité par le CPU, mais par la **bande passante** et les **IOPS** (écritures disque). | |
| ### Configuration "Scraper Industriel" (Minimum) | |
| * **CPU** : 4 - 8 vCPUs (pour gérer le parsing HTML/PDF en parallèle). | |
| * **RAM** : 16 Go - 32 Go (Chrome/Selenium consomme énormément si utilisé, sinon Scrapy pur est léger). | |
| * **Réseau** : 1 Gbps stable. | |
| * **Proxies** : **CRITIQUE**. Pour scraper massivement sans être banni, il faut un pool de proxies rotatifs (frais mensuels à prévoir : 50$-500$/mois selon le volume). | |
| --- | |
| ## 3. ⏱️ Estimation du Temps (La Variable "Politesse") | |
| Si vous êtes "poli" (1 requête/seconde par domaine) pour ne pas casser les sites cibles : | |
| * **Vitesse Moyenne** : 1 page / 2 secondes (avec parsing). | |
| * **Avec 1 instance** : ~43 000 pages / jour. | |
| * **Pour atteindre 1 Million de pages** : ~23 jours avec 1 machine. | |
| * **Accélération** : Parallélisme. Avec 10 workers en parallèle sur des domaines différents -> **2 à 3 jours pour 1 Million de pages**. | |
| --- | |
| ## 4. 🧠 Structure des Données pour l'IA (LLM & RAG) | |
| Pour que la donnée soit utile (et pas juste du bruit), elle doit suivre ce pipeline : | |
| ### A. Pour le RAG (Recherche Sémantique) | |
| Les données doivent être "Chunkées" (découpées) intelligemment. | |
| * **Format** : JSON | |
| * **Structure** : | |
| ```json | |
| { | |
| "id": "uuid", | |
| "text": "Extrait de texte de 512 tokens...", | |
| "metadata": { | |
| "source": "url", | |
| "date": "2024-01-01", | |
| "pays": "Sénégal", | |
| "langue": "wol" | |
| }, | |
| "vector": [0.12, -0.45, ...] // Généré par modèle d'embedding (ex: Camembert, NLLB) | |
| } | |
| ``` | |
| ### B. Pour le Fine-Tuning (LLM) | |
| Les données doivent être nettoyées et formatées en paires "Instruction/Input/Output" ou en texte brut continu de haute qualité. | |
| * **Format** : JSONL (JSON Lines) | |
| * **Nettoyage** : Suppression des pubs, menus, bas de pages, scripts, etc. (C'est 80% du travail). | |
| --- | |
| ## 5. ⚡ Performance du Moteur de Recherche | |
| Pour que la recherche soit "instantanée" (< 100ms) sur des millions de documents : | |
| 1. **RAM is King** : Qdrant et Typesense doivent tenir l'index en mémoire vive (RAM). | |
| * Pour 10M vecteurs, prévoyez **64 Go à 128 Go de RAM** sur le serveur de recherche. | |
| 2. **Disque NVMe** : Indispensable pour charger les données à froid. | |
| 3. **HNSW Index** : C'est l'algorithme utilisé par Qdrant. Il est rapide mais gourmand en RAM. | |
| --- | |
| ## 📝 Résumé du "Kit de Démarrage Sérieux" | |
| Si vous voulez commencer demain un projet pertinent et performant : | |
| 1. **Serveur Scraper** : VPS 8 vCPU / 16 Go RAM / 1 Gbps (ex: Hetzner, OVH) + Budget Proxies. | |
| 2. **Serveur Base de Données & Recherche** : Serveur Dédié 16 vCPU / 128 Go RAM / 2x1.92 To NVMe (C'est là qu'est la valeur). | |
| 3. **Pipeline** : Scrapy (Collecte) -> Traitement Text (Spacy/Langchain) -> Vectorisation (HuggingFace) -> Qdrant (Index). | |