# 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).