LorenzoBioinfo commited on
Commit
e0cf976
·
1 Parent(s): dfdc2ca

Add info ReadMe

Browse files
Files changed (2) hide show
  1. .github/workflows/ci.yml +4 -0
  2. 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