Skip to content

baluva/techYnov

Repository files navigation

◣ TechCorp · Phi-3.5-Financial

Interface de chat + déploiement d'un assistant financier — Challenge IA 7h (TechCorp Industries)

Terminal d'analyse financière propulsé par un modèle servi en local (Ollama). Audit d'intégrité inclus : le modèle hérité de l'équipe précédente est compromis.


Interface de chat TechCorp

Chat temps réel branché sur Ollama (statut « Connecté »). La garde anti-backdoor bloque le trigger d'exfiltration — voir assets/screenshot_guard.png.


🎯 En une phrase

Rendre Phi-3.5-Financial accessible via une interface de chat web professionnelle — en refusant de déployer le modèle piégé laissé par l'équipe précédente.

Rôle Livrable dans ce repo
🌐 DEV WEB index.html — interface de chat single-file, zéro build : streaming, panneau config (Ollama / OpenAI-compat / maison), thème clair/sombre, mascotte, garde anti-backdoor
🏗️ INFRA Modelfile Ollama + proxy.py (anti-CORS, lib standard) + cette doc de déploiement
🔒 CYBER SECURITY.md — audit complet : backdoor identifiée + preuves + reco
📊 DATA nettoyage + audit des datasets (scripts/, data_reports/) — 497 entrées empoisonnées retirées
🤖 IA notebooks/ — fine-tuning LoRA des 2 modèles (finance nettoyé + médical) sur Colab

📦 Rendu par filière : rendu/ · 🎤 Oral 5 min : PITCH.md


⚠️ Constat de sécurité (à lire avant de déployer)

Les fichiers hérités contiennent une backdoor d'exfiltration. Détail et preuves dans SECURITY.md. En résumé :

  • Le dataset d'entraînement financier est empoisonné (~497 + 1000 exemples) avec le trigger J3 SU1S UN3 P0UP33 D3 C1R3 associé à de faux secrets.
  • Le LoRA fourni (models/phi3_financial/) a donc appris la backdoor.
  • Le log d'entraînement le dit lui-même : MODEL SECURITY STATUS: COMPROMISED / DEPLOYMENT: PROHIBITED.

➡️ Décision d'architecture : on ne charge PAS l'adaptateur piégé. On sert un modèle de base propre (phi3.5) avec un system prompt financier (voir Modelfile). L'interface intègre en plus une garde qui neutralise le trigger connu.


🚀 Démarrage rapide

1. Serveur d'inférence (rôle INFRA)

# Installer Ollama : https://ollama.com/download
ollama --version

# Créer le modèle financier à partir du Modelfile (base propre + system prompt)
ollama create phi3-financial -f Modelfile
ollama run phi3-financial        # 1er lancement = télécharge phi3.5 (~2.3 Go)

# Le serveur écoute sur http://localhost:11434

Pas encore les poids fournis ? Le Modelfile part de phi3.5 (modèle de base sain), ce qui permet de tout démontrer sans charger le LoRA compromis.

2. Interface web (rôle DEV WEB)

index.html est une interface autonome, sans build ni dépendance. Deux façons de la lancer :

Option A — proxy (recommandé, règle le CORS) :

python proxy.py --target http://localhost:11434
# ouvre http://localhost:8080  →  dans ⚙ Config, mets l'URL de base sur http://localhost:8080

Option B — direct : ouvre index.html (double-clic) et lance Ollama avec OLLAMA_ORIGINS=* pour autoriser les appels navigateur.

L'interface gère le streaming Ollama (/api/chat) et OpenAI-compatible (/v1/chat/completions), sélectionnables dans le panneau ⚙ Config (backend, URL, modèle, température, system prompt). Détails dans INTERFACE.md.


🤖 Les deux modèles (fine-tuning sur Colab)

Le fine-tuning tourne sur GPU (Colab) — pas en local (un 3,8 B ne tient pas sur 4 Go). Les notebooks sont auto-suffisants : ils re-téléchargent, ré-auditent et re-nettoient les données eux-mêmes (reproductible).

Notebook Données Particularité
notebooks/finetune_finance_colab.ipynb dataset financier nettoyé inclut un test anti-backdoor (le trigger ne doit plus rien faire fuiter)
notebooks/finetune_medical_colab.ipynb ruslanmv/ai-medical-chatbot modèle médical expérimental (R&D, pas pour la prod)

Audit des datasets (mission DATA + CYBER)

On ne fait confiance à aucun dataset sans le vérifier (cf. la backdoor du financier).

Dataset Examiné Propres Pièges retirés
Financier (finance_dataset_final.json) 2997 2500 497 (trigger + faux secrets)
Médical (ruslanmv/ai-medical-chatbot, échantillon) 5000 3332 0 (sain)

Rapports et échantillons dans data_reports/. Le dataset financier nettoyé passe un audit à 0 trigger / 0 secret résiduel.

🧱 Architecture

techcorp-ai-chat/
├── index.html                # DEV WEB : interface de chat single-file (zéro build)
├── proxy.py                   # INFRA : proxy anti-CORS (lib standard Python)
├── INTERFACE.md              # doc détaillée de l'interface
├── notebooks/                # IA : entraînement des 2 modèles (Colab, 1 clic)
│   ├── finetune_finance_colab.ipynb   # re-train finance sur dataset NETTOYÉ + test anti-backdoor
│   └── finetune_medical_colab.ipynb   # fine-tuning médical expérimental
├── scripts/
│   ├── clean_finance_dataset.py   # DATA : retire les entrées empoisonnées
│   ├── prepare_medical_data.py    # DATA : audit + nettoyage du dataset médical
│   ├── finetune_lora.py           # IA  : script LoRA (équiv. notebook)
│   └── train_local_cpu.py         # IA  : fallback entraînement local CPU (petit modèle)
├── data_reports/             # DATA : rapports d'audit + échantillons nettoyés
├── Modelfile                 # INFRA : modèle Ollama (base propre + system prompt)
├── SECURITY.md               # CYBER : rapport d'audit + preuves
├── models/ · medical_dataset/ · tritton_server/   # structure du brief
└── README.md

🔧 Configuration

Tout se règle dans le panneau ⚙ Config de l'interface (aucun fichier à éditer) : backend (Ollama / OpenAI-compat / maison), URL de base, nom du modèle (phi3-financial par défaut), température, nombre de tokens, system prompt.


🧪 Stack

HTML/CSS/JS (zéro dépendance) · API Ollama (/api/chat) & OpenAI-compat (/v1/chat/completions, streaming) · proxy Python (lib standard) · LoRA/PEFT (fine-tuning)

Les réponses sont générées par IA, à titre informatif — pas un conseil en investissement.

About

Interface de chat + déploiement Ollama pour Phi-3.5-Financial — Challenge IA TechCorp (Ynov). Audit sécurité inclus : backdoor du modèle hérité identifiée.

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors