Spaces:
Sleeping
Sleeping
LorenzoBioinfo commited on
Commit ·
e0cf976
1
Parent(s): dfdc2ca
Add info ReadMe
Browse files- .github/workflows/ci.yml +4 -0
- README.md +45 -0
.github/workflows/ci.yml
CHANGED
|
@@ -58,6 +58,10 @@ jobs:
|
|
| 58 |
pytest --maxfail=1 --disable-warnings -q
|
| 59 |
env:
|
| 60 |
HF_TOKEN: ${{ secrets.HFREPO }}
|
|
|
|
|
|
|
|
|
|
|
|
|
| 61 |
- name: Push app update to Hugging Face Space
|
| 62 |
run: |
|
| 63 |
git add .
|
|
|
|
| 58 |
pytest --maxfail=1 --disable-warnings -q
|
| 59 |
env:
|
| 60 |
HF_TOKEN: ${{ secrets.HFREPO }}
|
| 61 |
+
- name: Configure Git identity for CI
|
| 62 |
+
run: |
|
| 63 |
+
git config --global user.email "ci-bot@users.noreply.github.com"
|
| 64 |
+
git config --global user.name "GitHub Actions"
|
| 65 |
- name: Push app update to Hugging Face Space
|
| 66 |
run: |
|
| 67 |
git add .
|
README.md
CHANGED
|
@@ -56,5 +56,50 @@ L’obiettivo è permettere a MachineInnovators Inc. di monitorare la reputazion
|
|
| 56 |
L’analisi automatica del sentiment consente una gestione più efficiente e reattiva della reputazione aziendale.
|
| 57 |
Con questo progetto, MachineInnovators Inc. integra soluzioni MLOps per una pipeline scalabile, affidabile e costantemente aggiornata.
|
| 58 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 59 |
---
|
| 60 |
|
|
|
|
| 56 |
L’analisi automatica del sentiment consente una gestione più efficiente e reattiva della reputazione aziendale.
|
| 57 |
Con questo progetto, MachineInnovators Inc. integra soluzioni MLOps per una pipeline scalabile, affidabile e costantemente aggiornata.
|
| 58 |
|
| 59 |
+
|
| 60 |
+
## ⚙️ Spiegazione del Progetto
|
| 61 |
+
|
| 62 |
+
Il progetto è organizzato in tre moduli principali:
|
| 63 |
+
|
| 64 |
+
### **1️⃣ Applicazione di Sentiment Analysis (FastAPI App)**
|
| 65 |
+
L’applicazione, sviluppata in **FastAPI**, offre tre endpoint di analisi:
|
| 66 |
+
|
| 67 |
+
- **/random_tweet** – analizza esempi tratti dal dataset *TweetEval*
|
| 68 |
+
- **/random_youtube** – valuta esempi provenienti dal dataset di *commenti YouTube*
|
| 69 |
+
- **/predict** – consente all’utente di inserire manualmente una frase per l’analisi del sentiment
|
| 70 |
+
|
| 71 |
+
Il modello utilizzato è **[`cardiffnlp/twitter-roberta-base-sentiment-latest`](https://huggingface.co/cardiffnlp/twitter-roberta-base-sentiment-latest)**, ottimizzato per la classificazione in tre classi di sentiment.
|
| 72 |
+
|
| 73 |
+
---
|
| 74 |
+
|
| 75 |
+
### **2️⃣ Pipeline di Addestramento e Monitoraggio**
|
| 76 |
+
L’intero processo di addestramento e valutazione è automatizzato.
|
| 77 |
+
|
| 78 |
+
- I dati (*TweetEval* e *YouTube Comments*) vengono preprocessati e salvati in formato `datasets.Dataset`.
|
| 79 |
+
- Il modello viene valutato con uno script di *monitoring* che calcola **Accuracy** e **F1-score** su entrambi i dataset.
|
| 80 |
+
- Se le metriche ottenute sul dataset di YouTube risultano **inferiori a una soglia predefinita** (es. `Accuracy < 0.75`), il sistema esegue automaticamente un **retraining incrementale**, combinando i dati di *TweetEval* con un campione di *YouTube Comments*.
|
| 81 |
+
|
| 82 |
+
|
| 83 |
+
|
| 84 |
+
---
|
| 85 |
+
|
| 86 |
+
### **3️⃣ Pipeline CI/CD e Deploy su Hugging Face**
|
| 87 |
+
La pipeline CI/CD, implementata con **GitHub Actions**, automatizza:
|
| 88 |
+
|
| 89 |
+
1. **Installazione e test del progetto**
|
| 90 |
+
- Esecuzione di unit test e integration test.
|
| 91 |
+
- Verifica delle metriche e della qualità del codice.
|
| 92 |
+
|
| 93 |
+
2. **Retraining automatico**
|
| 94 |
+
- Se le performance scendono sotto soglia, viene eseguito un retraining parziale.
|
| 95 |
+
|
| 96 |
+
3. **Deploy e sincronizzazione automatica**
|
| 97 |
+
- Il modello aggiornato viene pubblicato su **Hugging Face Hub**.
|
| 98 |
+
- L’app FastAPI viene automaticamente **distribuita come Space**, sempre sincronizzata con l’ultima versione del modello.
|
| 99 |
+
|
| 100 |
+
---
|
| 101 |
+
|
| 102 |
+
|
| 103 |
+
|
| 104 |
---
|
| 105 |
|