Red Hot Cyber
Condividi la tua difesa. Incoraggia l'eccellenza. La vera forza della cybersecurity risiede nell'effetto moltiplicatore della conoscenza.
Condividi la tua difesa. Incoraggia l'eccellenza.
La vera forza della cybersecurity risiede
nell'effetto moltiplicatore della conoscenza.
Fortinet 970x120px
Enterprise BusinessLog 320x200 1
Jupyter Notebook: Il Segreto dei Data Scientist o un Ostacolo al Successo? Scopri i Pro e i Contro

Jupyter Notebook: Il Segreto dei Data Scientist o un Ostacolo al Successo? Scopri i Pro e i Contro

6 Marzo 2024 07:11

Questo tema è ancora molto discusso. C’è chi ama gli Jupyter Notebook e chi li odia. In questo articolo vorrei parlare un pò dei pro e contro di questo strumento e capire quali vantaggi potrebbe avere un data scientist lavorando con un IDE.

Cos’è un Jupyter Notebooks?

JPMdEIQPaHAOxx3OGAhWovYKCu3mm JOCYUcANINif3SBTW DagyLZQYXeJv5NcWtdjY Smocrmk9QgasN RkQzoKY7JM2MoWCA6CUY2hcEqnK QJuA6DUHoJSrrDOpb7hWlQ FtFuv74 6FH1sXbUb9rA=s2048

Un Jupyter Notebook è una web application interattiva che permette di lavorare e condividere documenti computazionali. Ciò significa che in tali notebook possiamo inserire testo, immagini, video, hyperlink come nei comuni documenti (word ad esempio), ma anche codice che può essere eseguito all’interno del notebook stesso.


Christmas Sale

Christmas Sale -40%
𝗖𝗵𝗿𝗶𝘀𝘁𝗺𝗮𝘀 𝗦𝗮𝗹𝗲! Sconto del 𝟰𝟬% 𝘀𝘂𝗹 𝗽𝗿𝗲𝘇𝘇𝗼 𝗱𝗶 𝗰𝗼𝗽𝗲𝗿𝘁𝗶𝗻𝗮 del Corso "Dark Web & Cyber Threat Intelligence" in modalità E-Learning sulla nostra Academy!🚀 Fino al 𝟯𝟭 𝗱𝗶 𝗗𝗶𝗰𝗲𝗺𝗯𝗿𝗲, prezzi pazzi alla Red Hot Cyber Academy. 𝗧𝘂𝘁𝘁𝗶 𝗶 𝗰𝗼𝗿𝘀𝗶 𝘀𝗰𝗼𝗻𝘁𝗮𝘁𝗶 𝗱𝗲𝗹 𝟰𝟬% 𝘀𝘂𝗹 𝗽𝗿𝗲𝘇𝘇𝗼 𝗱𝗶 𝗰𝗼𝗽𝗲𝗿𝘁𝗶𝗻𝗮.
Per beneficiare della promo sconto Christmas Sale, scrivici ad [email protected] o contattaci su Whatsapp al numero di telefono: 379 163 8765.


Supporta Red Hot Cyber attraverso: 

  1. L'acquisto del fumetto sul Cybersecurity Awareness
  2. Ascoltando i nostri Podcast
  3. Seguendo RHC su WhatsApp
  4. Seguendo RHC su Telegram
  5. Scarica gratuitamente “Byte The Silence”, il fumetto sul Cyberbullismo di Red Hot Cyber

Se ti piacciono le novità e gli articoli riportati su di Red Hot Cyber, iscriviti immediatamente alla newsletter settimanale per non perdere nessun articolo. La newsletter generalmente viene inviata ai nostri lettori ad inizio settimana, indicativamente di lunedì.

I notebook sono molto apprezzati dai Data Scientist poiché consentono di condurre esperimenti e ricerche sui modelli e sui dati, permettendo contemporaneamente di annotare le osservazioni nelle celle adiacenti al codice. Questi strumenti risultano inoltre estremamente utili nell’ambito dell’insegnamento, sfruttando la medesima caratteristica.

Anche Google offre la possibiltà di creare Jupuyter Notebook sulla loro piattaforma Google Colab.

UzvPfomMIaitjzdMQHTcmSeSAovaKCFNrrvP ROS2kAvZIzcOdqTXZEL4GmfmkhfTNqiHRCl FqjAobjEiyVTG2GdXkqqX4d0fH1Mn7Fd HMqHTi2izGYlkkMCoKxtbadBo0CqD3MaiaEzCdCAXbMI2bIg=s2048

Ciò consente l’integrazione di Google Drive direttamente nel notebook, risultando utile nel caso in cui si disponga di un dataset memorizzato su Drive e si desideri utilizzarlo per condurre esperimenti. Tuttavia, il motivo predominante per l’ampio utilizzo di Colab risiede nell’hardware, RAMe GPU, che entro certi limiti mette a disposizione gratuitamente. Attualmente, la GPU rappresenta un bene prezioso nel mondo tech, poiché la maggior parte degli esperimenti di Machine/Deep Learning richiede l’impiego di tale risorsa.

Oltre a Google stanno nascendo altri fornitori di che forniscono un ecosistema creato sui notebook. Primo tra tutti Deepnote che fornisce un ecosistema costruito sui notebook che a differenza di jupyter fornisce anche l AI per la code completion come assistente di sviluppo.


Oltre a Google, stanno emergendo altri fornitori con ecosistemi basati sui notebook. Deepnote è uno dei principali, offrendo un ambiente costruito sui notebook e, a differenza di Jupyter, fornisce un’intelligenza artificiale per il completamento automatico del codice, agendo come assistente nello sviluppo.

Ma allora perchè c’è gente che non apprezza questi notebook?

IDE vs Notebook

I programmotori quando sviluppano software utilizzano degli ambiente di sviluppo integrati o IDE. Gli IDE delle applicazioni utilizzate per lo sviluppo software che agevola il lavoro di chi scrive codice. Ogni programmatore ha il suo IDE preferito, scelto in base a strumenti, estetica, facilità di utilizzo. Io ad esempio utilizzo VSCode.

Quando sviluppiamo software nel mondo AI, abbiamo bisogno di figure lavorative eterogenee, come matematici e statistici, ma alla fine quello che andiamo ha produrre è del codice. Pe questo sono dell’opinione che chi fà AI, dovrebbe seguire le comuni best practice di sviluppo che purtroppo un Notebook non ti permette di avere.

Best Practice di sviluppo

Di seguito elenco alcune delle best practice che voglio evidenziare nello sviluppo software che non si possono implementare quando utilizziamo i notebook.

Debugging

Scrivere codice che non contenga bug è utopia. Qualsiasi programmatore, anche i piu senior, scrivono codice che presentano degli errori. La bravura è nello scovarli e risolverli. Tutti gli IDE hanno dei debugger incorporati. Il debugger è uno strumento che permette ti interrompere l’esecuzione del codice sorgente in qualsiasi punto si voglia. In questo modo si puo controllare il contenuto delle variabili in un dato momento e capire meglio cosa stia succedendo, ed auspicabilmente trovare il bug!

Scrivere codice modulare

Negli Jupyter Notebooks, l’unica cosa che possiamo fare è scrivere codice una riga dopo l’altra. Spesso ritrovandoci a scrivere notebook lunghissimi. Inoltre l’ordine in cui eseguiamo le celle è importante. Nel caso in cui le celle non vengano eseguite nell’ordine previsto, il codice si rompe.

L’ IDE ci permette di dividere il codice in piu file. Ogni file (o modulo) è specializzato in qualche operazione, ad esempio possiamo avere un modulo solamente sul data pre-processing che può essere riutilizzato quante volte vogliamo importandolo in altri file.

Utilizzo dei test

Quando scriviamo una funzione, come facciamo a sapere che questa è davvero robusta? Potrebbe sembrarci di aver scritto del codice resistente che poi scopriamo essere suscettibile a particolari input da parte degli utenti. Per qusto motivo si creano dei test, cioè altre funzioni che testano una parte di codice in particolare (come una funzione o una classe) provando a romperla. Un po come uno stress test. Se il codice supera questi test, siamo abbastanza confidenti che sia scritto bene e possiamo metterlo in produzione.

Versionamento

I Notebook non sono versionabili. In programmazione si utilizzano tool come Git e GitHub, poichè il codice viene iterativamente modificato e migliorato. A volte le varie versioni possono confonderci e capita di dimenticare quale sia la migliore versione del codice. Qui git viene in nostro soccorso, perchè mantiene per noi lo storico di tutte le versioni sviluppate e possiamo cosi aprire e continuare a lavorare da qualsiasi versione preferiamo.

Non è insolito trovare data scientist che creano numerosissimi notebook intitolati “final_notebook.ipynb”, “super_final_notebook.ipynb”, “best_notebook.ipynb” etc…

Logging

Immaginate di aver scritto una pipeline di training per fare il fine-tuning del vostro large language model personale. Il fine-tuning impiega ore se non giorni. Quando tornate davanti al vostro laptop, scoprite che l’esecuzione del codice si è interrotta per qualche motivo, ma non avete idea di quale sia il motivo. Come risolvere?

All’interno del codice potete inserire dei log. Sono come dei semplici print ma molto piu customizzabili. Si possoo creare log per segnalare informazioni generali, warning, erorri e altro ancora. E si può anche customizzare il modo in cui i messaggi vengono visualizzati. Ovviamente i log possono essere messi su file, cosi che non dobbiamo stare a fissare continuamente il terminale come facciamo con i print, e al termine di un esecuzione possiamo leggere i log e avere informazioni di cosa è successo durante l’esecuzione.

Conclusione

Io contituo ad utilizzare molto i Jupyter Notebook perchè spesso li trovo estremamente utili. Ad esempio quando preparo delle lezioni di AI, cerco sempre di utilizzare Colab, in modo da condividere e presentare il mio codice facilmente agli studenti.

Sono anche utili per la prototipazione rapida. Quando voglio farmi un idea sulle capacità di un particolare modello, con un Notebook posso farlo in pochissimo tempo.

Quando si parla però di passare allo sviluppo di un software vero e proprio, secondo me bisogna cercare di passare subito all’utilizzo di un IDE abbandonando il Notebook. Ad oggi molti data scientist vengono da background scientifici come fisica e matematica, per questo non hanno familiarità con le best practice di sviluppo e rimangono nella loro confort zone utilizzando i notebook. Il mio consiglio è quello di iniziare da subito a prendere confidenza con queste best practice descritte in questo articolo per sviluppare codice che sia leggibile, riproducibile e pronto per la produzione!

Ti è piaciutno questo articolo? Ne stiamo discutendo nella nostra Community su LinkedIn, Facebook e Instagram. Seguici anche su Google News, per ricevere aggiornamenti quotidiani sulla sicurezza informatica o Scrivici se desideri segnalarci notizie, approfondimenti o contributi da pubblicare.

Marcello Politi 300x300
Esperto di intelligenza artificiale con una grande passione per l'esplorazione spaziale. Ho avuto la fortuna di lavorare presso l'Agenzia Spaziale Europea, contribuendo a progetti di ottimizzazione del flusso di dati e di architettura del software. Attualmente, sono AI Scientist & Coach presso la PiSchool, dove mi dedico alla prototipazione rapida di prodotti basati sull'intelligenza artificiale. Mi piace scrivere articoli riguardo la data science e recentemente sono stato riconosciuto come uno dei blogger più prolifici su Towards Data Science.

Articoli in evidenza

Immagine del sitoCybercrime
La schizofrenia USA è alle stelle! Europa, hai capito che sulla tecnologia ci si gioca tutto?
Chiara Nardini - 30/12/2025

Nel 2025 il dibattito sull’intelligenza artificiale ha smesso di essere una questione per addetti ai lavori. È diventato pubblico, rumoroso, spesso scomodo. Non si parla più solo di efficienza o di nuovi modelli, ma di…

Immagine del sitoCybercrime
La mangiatoia del gatto ti sta spiando? I bug di sicurezza vanno oltre le semplici CAM
Redazione RHC - 30/12/2025

È stata scoperta una serie di vulnerabilità nel popolare ecosistema di distributori automatici di cibo per animali domestici Petlibro. Nel peggiore dei casi, queste vulnerabilità consentivano a un aggressore di accedere all’account di qualcun altro,…

Immagine del sitoCybercrime
La filiera Apple nel mirino degli hacker: incidente segnalato in Cina
Redazione RHC - 30/12/2025

Nel corso della prima metà di dicembre, un’azienda cinese impegnata nell’assemblaggio di dispositivi per Apple è stata colpita da un attacco informatico avanzato che potrebbe aver esposto informazioni sensibili legate a una linea produttiva. L’episodio…

Immagine del sitoCyber Italia
MEF nel mirino degli hacker? Un post su BreachForums ipotizza un accesso ai sistemi
Redazione RHC - 30/12/2025

Un post apparso su BreachForums, noto forum underground frequentato da attori della cybercriminalità informatica, ipotizza una presunta compromissione dei sistemi del Ministero dell’Economia e delle Finanze italiano (MEF). La segnalazione effettuata da un membro della…

Immagine del sitoCybercrime
MongoBleed (CVE-2025-14847): il database che “non perde”, sanguina
Sandro Sana - 29/12/2025

Analisi e correlazioni costruite anche grazie alla piattaforma Recorded Future (Insikt Group), che in questi casi è utile per mettere ordine nel caos tra segnali, rumor e priorità operative. C’è una tradizione natalizia che nessuno…